@o-o - I was not able to make fly.io work. Unfortunately I don't remember all the details, but effectively fly.io and NodeBB were working under different assumptions as far as local resources were concerned. Upon idle my fly machine would lose track of the fly database, and upon restart it would attempt to restart NodeBB from scratch. Until the idle everything worked fine. But at the end of the day my issue was automatically serving the precompiled Javascript resources that NodeBB presupposes.
Outsourcing the database to something like S3 might fix the problem. Also, fly.io changes very quickly, and I know others were having the same problems with other frameworks, so they may now have a workaround.