Port Yapılandırma
.ironflock/ dizininde port-template.yml dosyası oluşturarak uygulamanızın uzaktan erişim için hangi servisleri açığa çıkaracağını tanımlayın.
Temel Örnek
ports:
- name: Web Interface
port: 5000
main: true
protocol: httpsBu yapılandırma, 5000 numaralı portu uzaktan erişim için kullanılabilir hale getirir. Kullanıcılar, tüneli cihazlarındaki uygulama ayarlarından etkinleştirebilir.
Tam Örnek
ports:
- name: Web Interface
port: 1100
main: true
protocol: http
- name: Video Stream
port: 1200
protocol: http
- name: Remote Desktop
port: 5900
protocol: tcp
- name: LoRaWAN Gateway
port: 1700
protocol: udpAlan Referansı
| Alan | Zorunlu | Açıklama |
|---|---|---|
name | Evet | Cihazın uygulama ayarlarında gösterilen etiket |
port | Evet | Servisin dinlediği yerel port numarası |
main | Hayır | true ise bu port, cihazın uygulama listesindeki hızlı erişim simgesi için kullanılır |
protocol | Hayır | http (varsayılan), https, tcp veya udp |
Enjekte Edilen Ortam Değişkenleri
Tanımladığınız her port için platform, kodunuzun servise gerçekte nereden erişilebileceğini — adresleri sabit kodlamadan — keşfedebilmesi için uygulamanızın konteynerlerine ortam değişkenleri enjekte eder:
| Değişken | Açıklama |
|---|---|
DEVICE_LAN_IP | Cihazın yerel ağdaki IP adresi |
DEVICE_PORT_FOR_<port> | Tanımladığınız portun yerel ağda yayınlandığı, cihaz üzerindeki port |
REMOTE_PORT_FOR_<port> | Tünel aktifken tünel sunucusu tarafından tahsis edilen genel port (TCP ve UDP) |
REMOTE_PORT_FOR_<port>_CLOUD | Cihaz, tünelleri bulut üzerinden yönlendiren bir IronFlock instance’ında çalıştığında internete açık port (TCP ve UDP) |
<port>, port-template.yml dosyasında tanımladığınız port numarasıdır. Yukarıdaki Remote Desktop örneği için uygulama, DEVICE_PORT_FOR_5900 değişkenini ve — tüneli aktifken — REMOTE_PORT_FOR_5900 değişkenini alır.
Uygulamalar aynı cihazda eşzamanlı olarak çalışabileceğinden, tanımlanan portlar cihazdaki boş bir porta otomatik olarak eşlenir. Yerel ağ adreslerini her zaman, tanımlanan portu varsaymak yerine enjekte edilen değerlerden oluşturun:
import os
lan_ip = os.environ.get("DEVICE_LAN_IP")
lan_port = os.environ.get("DEVICE_PORT_FOR_5900")
# servis, yerel ağda {lan_ip}:{lan_port} adresinden erişilebilirDeğişkenler konteyner başlatıldığında ayarlanır. Tünel portları uygulama çalışırken değişebilir (örneğin bir tünel yeniden bağlandığında); bu nedenle güncel değerler ayrıca /data/env/<VARIABLE_NAME>.txt altındaki dosyalar olarak güncel tutulur — IronFlock SDK’ları bunları otomatik olarak okur.
Protokoller Nasıl Çalışır
HTTP / HTTPS
Web tabanlı servisler için. IronFlock, trafiği cihazın yerel portuna yönlendiren bir genel URL oluşturur. Kullanıcılar URL’yi tarayıcılarında açar.
TCP
VNC (Uzak Masaüstü) veya doğrudan soket bağlantıları gibi protokoller için. IronFlock, tünel sunucusunda bir uzak port tahsis eder ve bunu uygulamanıza REMOTE_PORT_FOR_<port> olarak açığa çıkarır.
UDP
LoRaWAN iletişimi veya VPN tünelleri gibi protokoller için. TCP’ye benzer şekilde — bir uzak port tahsis edilir ve REMOTE_PORT_FOR_<port> olarak açığa çıkarılır.
Board’lara Yerleştirme
Embed Widget kullanarak bir cihazın uzaktan erişim tünelini doğrudan bir board’a yerleştirebilirsiniz. Bu, kullanıcıların şunları yapabildiği sorunsuz bir deneyim oluşturur:
- Tüm cihazlardaki global verileri izleme
- Yerleşik web arayüzleri aracılığıyla bireysel cihazlarla etkileşim kurma
Hepsi aynı dashboard içinde.
port-template.ymldosyasında uzaktan erişim yapılandırmak tünelleri otomatik olarak etkinleştirmez. Yalnızca yetkili kullanıcılar cihazlarındaki tünelleri etkinleştirebilir veya devre dışı bırakabilir.