Deploy any Node HTTP server (Express, Fastify, Koa, Hono, plain http) to Wokku.
Prerequisites
- A Wokku account and a connected server
- An SSH key registered for
git push - A Node app with a
package.json
1. Create the app
Apps → New App → server, name my-node-app, box size, Create.
bash
wokku apps:create my-node-app --server my-server
2. Prepare your app
The Node buildpack reads package.json. Provide a start script and listen on
process.env.PORT:
json
{
"scripts": { "start": "node server.js" },
"engines": { "node": ">=20" }
}
js
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`listening on ${port}`));
// careful
Optionally pin the start command with a Procfile:
procfile
web: npm start
3. Environment variables
App → Config → add NODE_ENV=production and your secrets.
bash
wokku config:set my-node-app NODE_ENV=production
4. Add a database (optional)
bash
wokku addons:create postgres my-node-app
Read process.env.DATABASE_URL in your pg/Prisma/Drizzle client. See
Create & Link a Database.
5. Deploy
bash
git remote add wokku git@git.wokku.cloud:my-node-app
git push wokku main
Connect under Apps → Connect GitHub for push-to-deploy —
see GitHub Auto-Deploy.
bash
git remote add wokku git@git.wokku.cloud:my-node-app
git push wokku main
Live at https://my-node-app.wokku.app.
Add a custom domain
Custom Domains — SSL is automatic.
Troubleshooting
- Crashes on boot — hardcoded port. Use
process.env.PORT. npm cifails — commit yourpackage-lock.json.- Wrong Node version — pin it via
"engines": { "node": ... }.