#!/bin/sh set -e # Start tailscale daemon. Fly.io runs Firecracker microVMs which support # TUN devices natively — no need for --tun=userspace-networking. tailscaled --statedir=/var/lib/tailscale & sleep 2 # Authenticate and join tailnet tailscale up --authkey="${TS_AUTHKEY}" --hostname=flyio-proxy # Wait for tailscale to be ready until tailscale status > /dev/null 2>&1; do sleep 1; done echo "Tailscale connected" # Start Alloy for observability (logs → Loki, metrics → Prometheus) alloy run /etc/alloy/config.alloy \ --server.http.listen-addr=127.0.0.1:12345 \ --storage.path=/tmp/alloy-data & echo "Alloy started" # Start nginx — MagicDNS resolves *.tail8d86e.ts.net hostnames nginx -g "daemon off;"