The latest versions of Silverbullet don’t like starting on fly.io, suddenly. I was running fine before (at least up until a couple of weeks ago), and now… nothing. I wonder if some combination of the Go backend and fly.io is causing problems, but I’m not sure what those problems are.
Initially, I was getting errors from fly around tini:
2025-09-30T16:11:52Z app[d899455a6e1198] dfw [info] INFO Preparing to run: `/sbin/tini -- /docker-entrypoint.sh` as root
2025-09-30T16:11:52Z app[d899455a6e1198] dfw [info] INFO [fly api proxy] listening at /.fly/api
2025-09-30T16:11:52Z app[d899455a6e1198] dfw [info][WARN tini (655)] Tini is not running as PID 1 and isn't registered as a child subreaper.
2025-09-30T16:11:52Z app[d899455a6e1198] dfw [info]Zombie processes will not be re-parented to Tini, so zombie reaping won't work.
2025-09-30T16:11:52Z app[d899455a6e1198] dfw [info]To fix the problem, use the -s option or set the environment variable TINI_SUBREAPER to register Tini as a child subreaper, or run Tini as PID 1.
Since the machine shut down immediately after, I thought tini might be to blame. I’m less sure, now.
Since fly.io doesn’t like other things running as init, I tried making my own Dockerfile locally to run the silverbullet binary directly which skipped using tini. I brought over some of the ENV from the existing Dockerfile and based mine on the GitHub registry version. Still no luck, it looks like the binary immediately exits.
I tried again, this time using the docker-entrypoint.sh, same result.
I ran fly console, which starts a temporary machine in their cloud and gives you a console into it sort of “inside” your Docker container. When I run the silverbullet binary myself I get the same behavior:
7817602a5991e8:/# ./silverbullet
2025/10/01 14:45:18 User authentication enabled for user "drhayes" with lockout limit 10 and lockout time 60s
2025/10/01 14:45:18 Local shell command execution enabled for ALL commands.
2025/10/01 14:45:18 Index page index.md does not yet exist, creating...
2025/10/01 14:45:18 Config page CONFIG.md does not yet exist, creating...
2025/10/01 14:45:18 SilverBullet is now running: http://:::3000
7817602a5991e8:/#
I’m stumped! When I run my new Docker container locally it serves just fine, so this is probably something to do with fly.io.
I’m kind of familiar with Go, but I can’t see anything in the source of the server that stands out as a red flag. And, again, it runsjust fine on my local machine – both outside of Docker and within it.
Anyone else have this problem? Any solutions? Any ideas?