What is Potions
Potions is a deployment and server management platform built specifically for Phoenix applications. Connect your DigitalOcean account (more providers coming soon), and GitHub repos, and Potions handles the rest: provisioning servers, building releases, managing SSL certificates, and deploying with zero downtime.
The Problem
Deploying a Phoenix app to a Virtual Private Server (VPS) means solving a long list of infrastructure problems:
- Provisioning a server with the right Erlang/OTP and Elixir versions
- Installing and configuring PostgreSQL
- Setting up a reverse proxy with automatic SSL
- Hardening SSH, configuring firewalls, enabling security updates
- Building Mix releases and shipping them to the server
- Managing environment variables, domains, and DNS
- Deploying without dropping requests
Sure, you could do all of this manually. But that takes hours of setup per server and ongoing maintenance.
Platform-as-a-Service (PaaS) options abstract this away, but you give up control of your infrastructure and pay a premium for it.
Potions gives you the best of both worlds. The automation of a PaaS while allow you to keep your apps on your servers.
What Potions Does
Server Provisioning
Add a server, pick a region and size, and Potions does the rest. You get a VPS fully configured for Phoenix apps. Every server ships with PostgreSQL, Caddy (for automatic SSL), a locked-down firewall, SSH hardening, and everything needed to run Elixir releases. The whole process takes about 5-10 minutes.
See Creating a Server for details.
Zero-Downtime Deployments
Potions uses a blue-green deployment strategy. When you deploy, the new release starts on an idle slot while the current version keeps serving traffic. After health checks pass, traffic switches to the new instance. Your users won't see any interruption.
See Zero-Downtime Deployments for the full breakdown.
Domain Management and SSL
Add custom domains through the dashboard, verify DNS, and Let's Encrypt SSL certificates are provisioned automatically.
Environment Variables
To make deploying easier, Potions generates environment variables like, SECRET_KEY_BASE, DATABASE_URL, PHX_HOST, and others when you create an app. You can add, edit, and delete your app's environment variables from the dashboard.
Database Management
Each app gets its own PostgreSQL database, created automatically. Potions handles automated daily backups with configurable retention.
Scheduled Tasks
Run recurring Elixir functions on a cron schedule directly from the dashboard. You define the command, set the schedule, and Potions executes it for you.
Monitoring
Track server CPU, memory, and disk usage all from the dashboard. Optional health checks allow you to verify your app is responding, with automatic status tracking.
How It's Different
You own the servers. Unlike PaaS options - where you're renting compute - Potions lets you run your apps on your own servers.
Built for Phoenix. Potions was built for Elixir and Phoenix. It understands Mix releases, the BEAM runtime, Ecto migrations, and the Phoenix ecosystem. Server provisioning installs exactly what Phoenix apps need, and the deploy pipeline is optimized for OTP releases.
Predictable costs. Take the guesswork out of how much you're paying to host your apps. Run your apps on VPS with predictable pricing. No markup, no per-request pricing, no surprise bills from traffic spikes.
Ready to Get Started?
See the Quick Start Guide for the full walkthrough.