services: freetakserver: image: ghcr.io/freetakteam/freetakserver:master container_name: freetakserver hostname: freetakserver restart: unless-stopped networks: - traefik-net volumes: - /mnt/HoardingCow_docker_data/TAK/fts_data:/opt/fts:z,rw ports: - 8087:8087 - 8089:8089 - 8443:8443 - 9000:9000 - 19023:19023 environment: FTS_FED_PASSWORD: "${FTS_FED_PASSWORD}" FTS_CLIENT_CERT_PASSWORD: "${FTS_CLIENT_CERT_PASSWORD}" FTS_WEBSOCKET_KEY: "${FTS_WEBSOCKET_KEY}" FTS_SECRET_KEY: "${FTS_SECRET_KEY}" FTS_CONNECTION_MESSAGE: "Welcome to FreeTAKServer. The Parrot is not dead. It's just resting" FTS_COT_PORT: 8087 FTS_SSLCOT_PORT: 8089 FTS_API_PORT: 19023 FTS_FED_PORT: 9000 FTS_DP_ADDRESS: 'freetakserver' FTS_USER_ADDRESS: 'freetakserver' FTS_API_ADDRESS: 'freetakserver' FTS_ROUTING_PROXY_SUBSCRIBE_PORT: 19030 FTS_ROUTING_PROXY_SUBSCRIBE_IP: 'freetakserver' FTS_ROUTING_PROXY_PUBLISHER_PORT: 19032 FTS_ROUTING_PROXY_PUBLISHER_IP: 'freetakserver' FTS_ROUTING_PROXY_SERVER_PORT: 19031 FTS_ROUTING_PROXY_SERVER_IP: 'freetakserver' FTS_INTEGRATION_MANAGER_PULLER_PORT: 19033 FTS_INTEGRATION_MANAGER_PULLER_ADDRESS: 'freetakserver' FTS_INTEGRATION_MANAGER_PUBLISHER_PORT: 19034 FTS_INTEGRATION_MANAGER_PUBLISHER_ADDRESS: 'freetakserver' FTS_OPTIMIZE_API: "True" FTS_DATA_RECEPTION_BUFFER: 1024 FTS_MAX_RECEPTION_TIME: 4 FTS_NUM_ROUTING_WORKERS: 3 FTS_COT_TO_DB: "True" FTS_MAINLOOP_DELAY: 100 FTS_EMERGENCY_RADIUS: 0 FTS_LOG_LEVEL: "info" freetakserver-ui: image: ghcr.io/freetakteam/ui:latest container_name: freetakserver-ui hostname: freetakserver-ui restart: unless-stopped networks: - traefik-net ports: - 5000:5000 volumes: - /mnt/HoardingCow_docker_data/TAK/fts_ui_data:/home/freetak/data:z,rw environment: FTS_IP: "freetakserver" FTS_API_PORT: 19023 FTS_API_PROTO: 'http' FTS_UI_EXPOSED_IP: 'freetakserver-ui' FTS_MAP_EXPOSED_IP: '127.0.0.1' FTS_MAP_PORT: 8000 FTS_MAP_PROTO: 'http' FTS_UI_PORT: 5000 FTS_UI_WSKEY: "${FTS_WEBSOCKET_KEY}" FTS_API_KEY: 'Bearer token' FTS_UI_SQLALCHEMY_DATABASE_URI: 'sqlite:////home/freetak/data/FTSServer-UI.db' labels: - "traefik.enable=true" - "traefik.docker.network=traefik-net" # HTTP -> HTTPS Redirect - "traefik.http.routers.fts-ui-http.rule=Host(`tak.lazyworkhorse.net`)" - "traefik.http.routers.fts-ui-http.entrypoints=web" - "traefik.http.routers.fts-ui-http.middlewares=redirect-to-https" # HTTPS Router - "traefik.http.routers.fts-ui-https.rule=Host(`tak.lazyworkhorse.net`)" - "traefik.http.routers.fts-ui-https.entrypoints=websecure" - "traefik.http.routers.fts-ui-https.tls=true" - "traefik.http.routers.fts-ui-https.tls.certresolver=njalla" # Service & Port - "traefik.http.services.fts-ui.loadbalancer.server.port=5000" # Reuse your existing redirect middleware - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" networks: traefik-net: external: true