Deploying with Northflank
PaaS with git-push, Docker, managed DBs, and combined frontend + backend services.
PlatformsIntermediate
Why
Northflank lets you deploy frontend, backend, workers, and databases as one project with shared networking and secrets. It supports git-push, Docker, and combined services.
Platform-as-a-Service adoption grew 24% in 2024 as teams shift from VM management to git-push deploys. the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research), and PaaS layers capture the majority of new workloads.
When
Use Northflank for full-stack apps with multiple services and DBs. Avoid for simple single-service apps — overkill.
How
1. Create — northflank.com → New Project
2. Service — add frontend (static), backend (container), worker
3. Database — add Postgres/Redis/Mongo as managed service
4. Networking — services auto-connect via private network
5. Secrets — shared across services in project
6. Domain — custom domain with auto TLS
7. Scale — per-service scaling
Example
// config — deploy-northflank
const config = require("./config");
# northflank.yaml — combined services
project: myapp
services:
frontend:
type: static
build: npm run build
output: dist
backend:
type: container
dockerfile: Dockerfile
port: 3000
env:
DATABASE_URL: postgres://...
worker:
type: container
dockerfile: Dockerfile.worker
command: npm run worker
databases:
- type: postgres
name: main
- type: redis
name: cache
Common Problems
- ⚠Service can't reach DB — wrong secret reference, use service-name:variable syntax
- ⚠Build fails — Northflank uses BuildKit, ensure Dockerfile is BuildKit-compatible
- ⚠Configuration drift between environments — use infrastructure-as-code (Terraform/Pulumi) to keep dev/staging/prod identical
Best Practices
- ✓Use combined services for full-stack — shared networking, secrets, and one deploy
- ✓Use managed DBs — auto-backup, scaling, and connection pooling
- ✓Set up health checks and graceful shutdown — handle SIGTERM to drain in-flight requests before exit