Self-hosting n8n on a cheap VPS: what nobody tells you
I run my automations on a budget VPS. It works great, once you have handled the five things every guide skips.
n8n Cloud is the right answer for a lot of people. But if your workflows move video files around, the limits on runs and memory start to hurt. A small VPS (Hetzner, Contabo, DigitalOcean, pick your flavour) gives you unlimited runs for a few euros a month. I run mine that way. Here is what the "install n8n with Docker in 5 minutes" guides skip.
1. HTTPS is not optional
Webhooks are the whole point of self-hosting n8n, and services that call your webhooks expect HTTPS. Put a reverse proxy in front. Caddy is the least work, because certificates are automatic:
# Caddyfile
n8n.yourdomain.com {
reverse_proxy localhost:5678
}Also set WEBHOOK_URL=https://n8n.yourdomain.com/ in your n8n environment. Otherwise n8n keeps generating webhook URLs that point at localhost.
2. SQLite will let you down eventually
The default install stores everything in SQLite. Fine for playing around. Risky once binary data like video files flows through your workflows every day. Move to Postgres early. It is one container and four environment variables, and moving later, with months of run history, is much more painful.
3. Run history will eat your disk
Every run is stored, including binary data if you are not careful. A content pipeline that moves 14 video clips per run fills a 40 GB disk faster than you would expect. Two settings save you:
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168 # keep 7 days
N8N_DEFAULT_BINARY_DATA_MODE=filesystemFilesystem mode keeps the files out of the database, and pruning keeps the history from growing forever. Check disk usage weekly for the first month, until you trust your numbers.
4. Updates: read first, then pull
docker compose pull && docker compose up -d is the whole update. But n8n ships breaking changes in minor versions more often than you would like. Skim the release notes first, and back up your database volume before big version jumps. Two minutes of reading beats an evening of rolling back.
5. You are now the security team
- Turn on n8n user management. Never leave an instance open.
- Firewall everything except 80 and 443 (and SSH, ideally with keys only).
- Your n8n stores every API key you own. Treat access to the server like access to all of those accounts, because that is what it is.
Is it worth it?
If your workflows are light and your time is worth more than anything: stay on Cloud. If you push files around, run a lot, or want community nodes and full control: a VPS pays for itself right away. Just plan one honest afternoon for the setup above. Not the five minutes the thumbnail promised.