Express hosting, from a repository to an https address
Fork the Express API starter or push your own app, give it an address, done. Node.js is detected from package.json, npm, pnpm, yarn and bun all work, and TypeScript builds run before the start.
What the repository needs
- package.json with
expressindependenciesand astartscript. app.listen(process.env.PORT || 8080, "0.0.0.0").- Secrets in environment variables.
The express-api-starter template does all of this with a health route, JSON errors and tests.
TypeScript and bundlers
Keep dist out of git, add a build script, and set the start script to node dist/index.js. When the file the start script runs is not committed and a build script exists, the build runs on every deploy with devDependencies installed. Workspaces (pnpm, npm, yarn) build only the package the app starts.
Behind the proxy
The address is https behind the Cloudflare proxy, so set app.set("trust proxy", 1) for correct client addresses and secure cookies. A custom domain points at the app from its page.
Frequently asked questions
Does Bun or Deno work instead of Node?
Yes. A bun.lock or a packageManager pin naming bun runs the app with bun; deno.json runs it with deno. The runtime is read from the repository.
Which port does the app listen on?
The PORT environment variable, 8080 by default, on 0.0.0.0. A server bound to 127.0.0.1 answers only itself and the web address gets nothing.
How does the public address work?
Give the app a web address in the panel and it is served at https://name.fadehost.app behind the Cloudflare proxy with a certificate. It comes with the plan on every tier. On the free tier the address sleeps when nobody has used it for a while and wakes on the next request; on a paid tier it stays awake. Your own domain can point at it.
What happens on a deploy?
The repository is cloned at your branch, dependencies install, the build runs when there is one, the app starts. With auto-deploy on, every push does the same. The live console shows each step; a failed one is explained in plain words.
Where do files and databases live?
Files written under /data survive redeploys; everything else is rebuilt from the repository. Every paid app includes a one-click MySQL database; PostgreSQL, MongoDB and Redis are managed databases on the same private network, never on the public internet.