In beta. Your first project is free. # Deploy like a PaaS. Pay like a VPS. AI lets anyone build an app now, but putting it online is still hard. ox puts it on your own cheap server, and when something breaks, it hands the exact logs to your AI to fix. [Deploy your first app free](https://console.t12.sorv.dev/login/github) [See how it works](https://console.t12.sorv.dev/#how) Sign in with GitHub. No card. Works with your favourite framework - Django - Ruby on Rails - Laravel - Node.js - Go - Python - FastAPI - Flask - PHP - Rust - Next.js - Nuxt - SvelteKit - Astro - Express - Hono - NestJS - Bun - .NET - Java - Elixir - Static sites - Postgres - MariaDB - Redis - Qdrant - Neo4j how it works ## Set it up once. Then just push to GitHub. 1. Sign in with GitHub. Pick which repos ox can read. 2. Paste one command on your server. Any fresh Ubuntu 26.04 server with 1 GB of memory and your SSH key. If something is missing, it stops before it changes anything. 3. Check the plan, then deploy. ox reads your repo and shows what it will run. Press Deploy when it looks right. [Deploy your first app free](https://console.t12.sorv.dev/login/github) GitHub sign-in. No card. what you get ## What a hosting platform gives you. On a server you own. - Push to deploy Every push to your default branch goes live. - No downtime The new release gets traffic only after its health check passes. - A CLI your AI agent can use Every command can answer in JSON, so Claude Code or Cursor can deploy and read logs. - Postgres, MySQL and Redis Installed on your server, and your app gets DATABASE_URL and REDIS_URL. - Workers and cron Celery, BullMQ and scheduled jobs run beside your app, each as its own service. - Live logs Watch them in the browser, or run `ox logs`. - Alerts An email when a deploy fails, the app crashes or the site goes down. - Data explorer See your tables in the browser, read-only by default. up close ## Change things safely. Undo, backups and staging are built in. - Undo a bad deploy. ox keeps your last 3 releases. Roll back to one and traffic moves once it passes its health check, with no rebuild. `ox rollback shop --wait` - Daily backups on your server. ox backs up your databases and uploaded files every day, on your server. Add an S3 bucket so a copy survives even if the server doesn't. - Try it on staging first. Staging has its own database and address. When it looks right, promote the code to production. - Add a domain, get HTTPS. Point one A record at your server. The HTTPS certificate is set up and renewed for you. [Show all features](https://console.t12.sorv.dev/features) your server ## Your server stays yours. Leave whenever you like. ### Is it safe on my server? - **Locked down on day one.** SSH keys only, fail2ban, daily security updates, and a firewall open on just SSH, 80 and 443. - **No open port for ox.** The agent calls out to ox. ox holds no SSH key to your server. - **One Linux user per app.** Apps never run as root or read each other's files. - **Signed commands only.** The agent refuses any command ox didn't sign. ### What if ox goes away? - **If ox is down** Apps, workers and cron keep running. Deploys and backups wait. - **If you want out** Delete your account and ox removes its agent. Your apps keep running on your own domains as plain systemd services. /From the Founder ## Hi, I'm Saurav. I build ox solo. **Saurav Sharma** builds ox My own apps run on ox, [Lazy Planner](https://lazyplanner.app) too. It's in beta and it's just me building it. I tried several PaaS & self-hosted control panels, but none of them offered the best developer experience to price ratio, & they were too bloated/complex. ox is in an early phase, but I am building it to be the easiest and simplest while being secure, with zero to little cognitive load for devs, & agentic AI features (optional) that actually help users ship fast with more confidence instead of micromanaging or trying to learn a new interface just for putting apps on the internet. In the age of AI, there's no reason to use terrible-looking tools with insane complexity. Right now I'm mainly focused on the backend to improve stability, & after that I'll start on the UI/UX part right away. It's easy to use and it's only the beginning. It only gets better from here. Something broke? [Email me](https://console.t12.sorv.dev/terms#contact). apps ## 85 open-source apps. Deployed and tested. Mastodon, Ghost, WordPress and 82 more, each deployed on a fresh server with no Docker, then checked by a second AI agent that didn't set it up. [How I tested them](https://console.t12.sorv.dev/self-hosting#app-guides) - [**Mastodon** Ruby on Rails](https://console.t12.sorv.dev/blog/self-host-mastodon) - [**Ghost** Node.js](https://console.t12.sorv.dev/blog/self-host-ghost) - [**WordPress** PHP](https://console.t12.sorv.dev/blog/self-host-wordpress) - [**Plausible Analytics** Elixir](https://console.t12.sorv.dev/blog/self-host-plausible) - [**Outline** Node.js](https://console.t12.sorv.dev/blog/self-host-outline) - [**Chatwoot** Ruby on Rails](https://console.t12.sorv.dev/blog/self-host-chatwoot) - [**Grafana** Go](https://console.t12.sorv.dev/blog/self-host-grafana) - [**Keycloak** Java](https://console.t12.sorv.dev/blog/self-host-keycloak) - [**Jellyfin** .NET](https://console.t12.sorv.dev/blog/self-host-jellyfin) - [**Invoice Ninja** Laravel](https://console.t12.sorv.dev/blog/self-host-invoiceninja) - [**Saleor** Django](https://console.t12.sorv.dev/blog/self-host-saleor) - [**NetBox** Django](https://console.t12.sorv.dev/blog/self-host-netbox) - [**Paperless-ngx** Django](https://console.t12.sorv.dev/blog/self-host-paperless) - [**Open WebUI** FastAPI](https://console.t12.sorv.dev/blog/self-host-open-webui) - [**Dify** Flask and Next.js](https://console.t12.sorv.dev/blog/self-host-dify) - [**Redmine** Ruby on Rails](https://console.t12.sorv.dev/blog/self-host-redmine) - [**Firefly III** Laravel](https://console.t12.sorv.dev/blog/self-host-firefly-iii) - [**Documenso** Node.js](https://console.t12.sorv.dev/blog/self-host-documenso) - [**Twenty** NestJS](https://console.t12.sorv.dev/blog/self-host-twenty) - [**Meilisearch** Rust](https://console.t12.sorv.dev/blog/self-host-meilisearch) - [**AFFiNE** NestJS](https://console.t12.sorv.dev/blog/self-host-affine) - [**Akaunting** Laravel](https://console.t12.sorv.dev/blog/self-host-akaunting) - [**Apache Answer** Go](https://console.t12.sorv.dev/blog/self-host-answer) - [**authentik** Django](https://console.t12.sorv.dev/blog/self-host-authentik) - [**Bagisto** Laravel](https://console.t12.sorv.dev/blog/self-host-bagisto) - [**Campfire** Ruby on Rails](https://console.t12.sorv.dev/blog/self-host-campfire) - [**Casdoor** Go](https://console.t12.sorv.dev/blog/self-host-casdoor) - [**CTFd** Flask](https://console.t12.sorv.dev/blog/self-host-ctfd) - [**diaspora*** Ruby on Rails](https://console.t12.sorv.dev/blog/self-host-diaspora) - [**Docmost** NestJS](https://console.t12.sorv.dev/blog/self-host-docmost) - [**Docusaurus** Docusaurus (static site)](https://console.t12.sorv.dev/blog/self-host-docusaurus) - [**DocuSeal** Ruby on Rails](https://console.t12.sorv.dev/blog/self-host-docuseal) - [**Element Web** React (static site)](https://console.t12.sorv.dev/blog/self-host-element-web) - [**Fider** Go](https://console.t12.sorv.dev/blog/self-host-fider) - [**Forem** Ruby on Rails](https://console.t12.sorv.dev/blog/self-host-forem) - [**FreshRSS** PHP](https://console.t12.sorv.dev/blog/self-host-freshrss) - [**Ghostfolio** NestJS](https://console.t12.sorv.dev/blog/self-host-ghostfolio) - [**GlitchTip** Django](https://console.t12.sorv.dev/blog/self-host-glitchtip) - [**Gogs** Go](https://console.t12.sorv.dev/blog/self-host-gogs) - [**Halo** Java](https://console.t12.sorv.dev/blog/self-host-halo) - [**Healthchecks** Django](https://console.t12.sorv.dev/blog/self-host-healthchecks) - [**Jekyll** Jekyll (static site)](https://console.t12.sorv.dev/blog/self-host-jekyll) - [**Jenkins** Java](https://console.t12.sorv.dev/blog/self-host-jenkins) - [**Joplin Server** Node.js](https://console.t12.sorv.dev/blog/self-host-joplin) - [**Kaneo** Node.js](https://console.t12.sorv.dev/blog/self-host-kaneo) - [**Karakeep** Next.js](https://console.t12.sorv.dev/blog/self-host-karakeep) - [**Kavita** .NET](https://console.t12.sorv.dev/blog/self-host-kavita) - [**Kellnr** Rust](https://console.t12.sorv.dev/blog/self-host-kellnr) - [**Kener** SvelteKit](https://console.t12.sorv.dev/blog/self-host-kener) - [**Label Studio** Django](https://console.t12.sorv.dev/blog/self-host-label-studio) - [**Langflow** FastAPI](https://console.t12.sorv.dev/blog/self-host-langflow) - [**linkding** Django](https://console.t12.sorv.dev/blog/self-host-linkding) - [**Linkwarden** Next.js](https://console.t12.sorv.dev/blog/self-host-linkwarden) - [**Litestar Fullstack** Litestar](https://console.t12.sorv.dev/blog/self-host-litestar-fullstack) - [**LobeHub** Next.js](https://console.t12.sorv.dev/blog/self-host-lobehub) - [**Logto** Node.js](https://console.t12.sorv.dev/blog/self-host-logto) - [**Mautic** Symfony](https://console.t12.sorv.dev/blog/self-host-mautic) - [**Maybe** Ruby on Rails](https://console.t12.sorv.dev/blog/self-host-maybe) - [**Mealie** FastAPI](https://console.t12.sorv.dev/blog/self-host-mealie) - [**Memos** Go](https://console.t12.sorv.dev/blog/self-host-memos) - [**Misskey** Node.js](https://console.t12.sorv.dev/blog/self-host-misskey) - [**Moodle** PHP](https://console.t12.sorv.dev/blog/self-host-moodle) - [**New API** Go](https://console.t12.sorv.dev/blog/self-host-new-api) - [**NodeBB** Node.js](https://console.t12.sorv.dev/blog/self-host-nodebb) - [**nopCommerce** ASP.NET Core](https://console.t12.sorv.dev/blog/self-host-nopcommerce) - [**Odoo** Python](https://console.t12.sorv.dev/blog/self-host-odoo) - [**OpenProject** Ruby on Rails](https://console.t12.sorv.dev/blog/self-host-openproject) - [**Orchard Core** ASP.NET Core](https://console.t12.sorv.dev/blog/self-host-orchardcore) - [**PeerTube** Node.js](https://console.t12.sorv.dev/blog/self-host-peertube) - [**PhotoPrism** Go](https://console.t12.sorv.dev/blog/self-host-photoprism) - [**phpMyAdmin** PHP](https://console.t12.sorv.dev/blog/self-host-phpmyadmin) - [**Pixelfed** Laravel](https://console.t12.sorv.dev/blog/self-host-pixelfed) - [**Pleroma** Elixir](https://console.t12.sorv.dev/blog/self-host-pleroma) - [**pretalx** Django](https://console.t12.sorv.dev/blog/self-host-pretalx) - [**pretix** Django](https://console.t12.sorv.dev/blog/self-host-pretix) - [**Quickwit** Rust](https://console.t12.sorv.dev/blog/self-host-quickwit) - [**SearXNG** Flask](https://console.t12.sorv.dev/blog/self-host-searxng) - [**solidtime** Laravel](https://console.t12.sorv.dev/blog/self-host-solidtime) - [**SonarQube** Java](https://console.t12.sorv.dev/blog/self-host-sonarqube) - [**Sonarr** .NET](https://console.t12.sorv.dev/blog/self-host-sonarr) - [**Stirling-PDF** Spring Boot](https://console.t12.sorv.dev/blog/self-host-stirling-pdf) - [**SurrealDB** Rust](https://console.t12.sorv.dev/blog/self-host-surrealdb) - [**Synapse** Python](https://console.t12.sorv.dev/blog/self-host-synapse) - [**VitePress** VitePress (static site)](https://console.t12.sorv.dev/blog/self-host-vitepress) - [**wallabag** Symfony](https://console.t12.sorv.dev/blog/self-host-wallabag) Show all 85 apps compare ## How ox compares. Pick what fits your app. | | A hosting platform Heroku, Render, Railway | A self-hosted panel Coolify, Dokploy | ox | | --- | --- | --- | --- | | Where your app runs | On their machines. | On your server. | On your server. | | What you pay | A price for each app and database, or for what you use. On Heroku, $7 a month for an always-on app, plus $5 for Postgres. | The software is free. You pay for the server. | Your server, plus $0 for one project or $10 a month for all. | | Who looks after the server | They do. | You set it up and keep it secure. | ox locks it down on day one and keeps security updates on. | | What else runs on your server | Nothing. You don't run a server. | The panel and Docker. Coolify asks for 2 GB of memory for itself. | A small agent, 40 MB or less when idle, and Caddy. | | Idle apps | Render's free apps sleep after 15 quiet minutes. | Always on. | Always on, even on Free. | | If you leave | You move your apps and data to a new host. | Your apps stay on your server. | Your apps stay on your server as plain systemd services. | | Best for | Autoscaling, with no server at all. | Open source, Docker images and Compose. | Your own server, with little to look after. | Prices and limits from each company's own pricing and docs pages, as of October 2026. pricing ## Free for one project. $10 a month for all. A project is one repo with its workers, cron and databases. You still pay your cloud company for the server. ### Free **$0** for one project - Your first project, every feature. - Staging and previews don't count. - No card, just GitHub. [Deploy your first app free](https://console.t12.sorv.dev/login/github) ### Pro **$10** a month, or $80 a year (4 months free) - Every project, on every server. - Stop paying and your apps keep running. Only your free project keeps deploys and backups. - An email 4 days before each renewal. Cancel anytime. [Start free, upgrade later](https://console.t12.sorv.dev/login/github) USD, plus tax where it applies. Cancel any time and keep ox Pro to the end of the month or year you paid for. Team invites aren't built yet. faq ## Still on the fence? Here's what people ask me most. Something else? [Email me](https://console.t12.sorv.dev/terms#contact). I'm on Heroku or Render. How do I move? Deploy a copy on ox, move your data with pg_dump, then switch DNS once it works. [Read the Heroku guide](https://console.t12.sorv.dev/blog/heroku-alternative-on-your-own-server) What server do I need? A fresh Ubuntu 26.04 server with 1 GB of memory or more and your SSH key on it, from Hetzner, DigitalOcean or anyone else. ox turns password login off to keep the server safe, so your key is how you log in afterwards. Add the key in your provider's dashboard when you create the server, or run `ssh-copy-id root@your-server-ip` from your computer. If the server has no key, the command stops before it changes anything. Do I need to know Linux? No. You paste one command on the server once. After that, you work in the dashboard or the CLI. Can I bring my database? Yes. Upload a dump up to 95 MB, or a bigger one from your S3 bucket. Does my data pass through ox? Your app and database live on your server. Logs and rows you open pass through ox to your screen, and ox doesn't store them. How is this different from Coolify? Coolify is open source. You run it yourself or pay for Coolify Cloud, and each app runs in Docker. ox's dashboard is hosted for you, so your server runs only a small agent and Caddy, and each app is a plain systemd service. What's the catch? ox is in beta, with no uptime promise yet. If it shuts down, your apps keep running, but deploys, alerts and backups stop. What is ox? ox Cloud, at deploywithox.com, is a deployment platform: you connect a GitHub repo and ox deploys it to your own Ubuntu server with systemd and Caddy, no Docker. It is not Open-Xchange's OX App Suite or OX Security, which are unrelated products. ox looks after the server while you build the app. ## Put your next app on a server you own. [Sign up with GitHub](https://console.t12.sorv.dev/login/github) [Log in](https://console.t12.sorv.dev/login/github) Free for your first project. $10 a month for all of them.