← Tüm çalışmalar Proje

Üretim Altyapısı: Fabrika İçi Servisler ve Güvenli Uzak Erişim

22 Mayıs 2026

FastAPI nginx MQTT (Mosquitto) WireGuard autossh systemd

BESA'nın üretim hattında, sahada (fabrika içinde) çalışan ve üretim sürecinin farklı adımlarını yöneten bir sunucu altyapısı kurdum ve işletiyorum.

Fabrika içinde neler çalışıyor

Bu sunucu üzerinde, üretim sürecinin farklı ihtiyaçlarına karşılık gelen bağımsız servisler (FastAPI tabanlı, nginx arkasında) çalışıyor: stok/sayım takibi, reçete/ürün ağacı (BOM) yönetimi, talep/sipariş takibi, üretilen kartlara seri numarası ataması, LoRaWAN modüllerinin test istasyonunda sonuç kaydı ve istatistiği, ve üretim hattındaki LoRaWAN cihazlarının canlı takibi. Ayrıca bir MQTT broker, üretim hattındaki cihazlarla seri numarası atama gibi anlık haberleşmeyi sağlıyor.

Üretimden buluta köprü

Üretim hattından çıkan bir cihazın, ayrıca bulutta çalışan izleme/kontrol sistemine (WELCO) otomatik olarak tanıtılması gerekiyor. Bunun için, fabrika sunucusu ile bulut sunucusu arasında MQTT üzerinden çalışan bir köprü servisi yazdım: üretim hattında bir cihaz seri numarası aldığında bu servis onu bulut tarafına otomatik ekliyor, hattan düşen/iptal edilen cihazları da aynı şekilde buluttan siliyor. Böylece üretim ve saha/izleme tarafı elle senkronize edilmek zorunda kalmıyor.

Fabrika ağını internete açmadan yönetim

Bu sunucu doğrudan internete açık değil; buna rağmen uzaktan erişim ve izleme gerekiyor. Bunu iki bağımsız kanaldan çözdüm:

  • WireGuard mesh: sunucu, diğer sahalardaki cihazlarla ve merkezi altyapıyla aynı özel VPN ağının bir parçası.
  • Ters SSH tüneli: sunucu, bulut sunucusuna doğru kalıcı bir autossh tüneli açıyor ve kendi servis portlarını bu tünel üzerinden, sadece bulut sunucusunun kendi üzerinden erişilebilir şekilde dışarı veriyor. Böylece fabrika tarafında hiçbir gelen bağlantı portu açmaya gerek kalmadan, ihtiyaç anında bulut üzerinden bu servislere ulaşılabiliyor.

İki kanalın birbirinden bağımsız olması, birinde sorun çıksa bile diğerinin çalışmaya devam etmesini sağlıyor.

Basit bir örnek

Ters SSH tünelinin fikrini özetleyen, gerçek yapılandırmadan bağımsız minik bir örnek:

autossh -M 0 -N \
  -R 127.0.0.1:7655:127.0.0.1:8000 \
  -i anahtar.pem -p 2222 kullanici@bulut-sunucu