Deploy guides: Django, Next.js, FastAPI, Laravel
Step-by-step guides to deploy Django, Next.js, FastAPI, Node, Laravel and static sites to your own VPS, each with a complete ox.toml that passes ox check.
Last updated 2026-10-08
Each guide below deploys one kind of app to your own VPS with ox: what ox detects in the repo, the complete ox.toml, the database and variables, and the exact messages you see when something fails. Pick your framework.
All guides
Each guide is one kind of app with a complete ox.toml that passes ox check. Most repos need no ox.toml at all, so start with the Quickstart and come here when detection needs help.
- Deploy DjangoDeploy Django to your own VPS without Docker: gunicorn, PostgreSQL, migrations, static files served by Caddy, uploads kept across deploys, in one ox.toml.
- Deploy Next.jsSelf-host Next.js on your own VPS without Vercel or Docker: next start, a health check, PostgreSQL, Prisma migrations and the image cache, in one ox.toml.
- Deploy FastAPIDeploy FastAPI to your own VPS: ox detects the uvicorn start command, installs from uv.lock, runs Alembic migrations, and adds PostgreSQL from one ox.toml.
- Deploy a Node APIDeploy an Express, Fastify or other Node.js API to your own VPS: start script, lockfile install, migrations, PostgreSQL and Redis, from one short ox.toml.
- Deploy LaravelDeploy Laravel to your own Ubuntu VPS: PHP from apt, Composer, a Vite build, PostgreSQL, a queue worker and the scheduler every minute, from one ox.toml.
- Deploy RailsDeploy Rails 8 to your own VPS without Docker or Kamal: precompiled Ruby, gems, assets, db:prepare and Solid Cache, Queue and Cable on PostgreSQL.
- Deploy a static siteDeploy a Vite single-page app, an Astro site or plain HTML to your own VPS. Caddy serves the files over HTTPS, no app process, with a tiny ox.toml or none.
Your stack is not here? The detection rules and the config examples cover Go, Python workers and more, and Troubleshooting lists the messages every deploy can print.