diff --git a/dbsetup.js b/dbsetup.js new file mode 100755 index 00000000..deb6abef --- /dev/null +++ b/dbsetup.js @@ -0,0 +1,23 @@ +#!/usr/bin/env node + +import { spawn } from 'node:child_process' + +const env = { ...process.env } + +await exec('npx next build --experimental-build-mode generate') + +// launch application +await exec(process.argv.slice(2).join(' ')) + +function exec(command) { + const child = spawn(command, { shell: true, stdio: 'inherit', env }) + return new Promise((resolve, reject) => { + child.on('exit', code => { + if (code === 0) { + resolve() + } else { + reject(new Error(`${command} failed rc=${code}`)) + } + }) + }) +} diff --git a/fly.toml b/fly.toml new file mode 100644 index 00000000..3e4f6b0f --- /dev/null +++ b/fly.toml @@ -0,0 +1,33 @@ +# fly.toml app configuration file generated for omniroute on 2026-04-01T14:49:22Z +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. +# + +app = 'omniroute' +primary_region = 'sin' + +[build] + +[processes] + app = 'node ./dbsetup.js node healthcheck.mjs' + +[[mounts]] + source = 'data' + destination = '/data' + auto_extend_size_threshold = 80 + auto_extend_size_increment = '1GB' + auto_extend_size_limit = '10GB' + +[http_service] + internal_port = 8080 + force_https = true + auto_stop_machines = 'stop' + auto_start_machines = true + min_machines_running = 0 + processes = ['app'] + +[[vm]] + memory = '1gb' + cpu_kind = 'shared' + cpus = 1 + memory_mb = 256