this repo has no description

knot config for fly.io deployment

uses official tngl/knot image with custom entrypoint to work around
s6-overlay incompatibility with fly.io's init system.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+72
+7
.gitignore
··· 1 + # fly.io 2 + .fly/ 3 + 4 + # secrets 5 + *.env 6 + .env* 7 + !.env.example
+9
Dockerfile
··· 1 + FROM tngl/knot:latest 2 + 3 + # Override entrypoint to bypass s6-overlay (doesn't work on Fly.io) 4 + COPY start.sh /start.sh 5 + RUN chmod +x /start.sh 6 + 7 + # Clear the s6-overlay entrypoint and use our script 8 + ENTRYPOINT [] 9 + CMD ["/start.sh"]
+34
fly.toml
··· 1 + app = 'zzknotzz' 2 + primary_region = 'ord' 3 + 4 + [build] 5 + 6 + [env] 7 + KNOT_SERVER_HOSTNAME = 'zzknotzz.fly.dev' 8 + KNOT_SERVER_DB_PATH = '/home/git/knotserver.db' 9 + KNOT_REPO_SCAN_PATH = '/home/git/repositories' 10 + KNOT_SERVER_INTERNAL_LISTEN_ADDR = '0.0.0.0:5444' 11 + KNOT_SERVER_LISTEN_ADDR = '0.0.0.0:5555' 12 + 13 + [http_service] 14 + internal_port = 5555 15 + force_https = true 16 + auto_stop_machines = 'stop' 17 + auto_start_machines = true 18 + min_machines_running = 0 19 + 20 + [[services]] 21 + protocol = 'tcp' 22 + internal_port = 22 23 + 24 + [[services.ports]] 25 + port = 22 26 + 27 + [[vm]] 28 + memory = '512mb' 29 + cpu_kind = 'shared' 30 + cpus = 1 31 + 32 + [mounts] 33 + source = 'knot_data' 34 + destination = '/home/git'
+22
start.sh
··· 1 + #!/bin/bash 2 + set -e 3 + 4 + # ensure ssh host keys exist 5 + if [ ! -f /etc/ssh/keys/ssh_host_ed25519_key ]; then 6 + mkdir -p /etc/ssh/keys 7 + ssh-keygen -t ed25519 -f /etc/ssh/keys/ssh_host_ed25519_key -N '' 8 + ssh-keygen -t rsa -f /etc/ssh/keys/ssh_host_rsa_key -N '' 9 + ssh-keygen -t ecdsa -f /etc/ssh/keys/ssh_host_ecdsa_key -N '' 10 + fi 11 + 12 + # ensure directories exist 13 + mkdir -p /home/git/repositories 14 + 15 + # ensure git user owns home directory 16 + chown -R git:git /home/git 17 + 18 + # start sshd in background 19 + /usr/sbin/sshd -D -e & 20 + 21 + # run knotserver as git user (foreground) 22 + exec su -s /bin/bash git -c '/usr/bin/knot server'