Server Regions & Sizes
When you create a server, you choose a region and a size. The region determines where your server is physically located, and the size determines how much CPU, RAM, and disk space it has.
DigitalOcean
Regions
Potions supports 13 DigitalOcean regions across North America, Europe, Asia, and Australia. Pick the region closest to your users for the lowest latency.
| Region | Slug | Location |
|---|---|---|
| Amsterdam 3 |
ams3 |
Netherlands |
| Atlanta 1 |
atl1 |
Georgia, USA |
| Bangalore 1 |
blr1 |
India |
| Frankfurt 1 |
fra1 |
Germany |
| London 1 |
lon1 |
United Kingdom |
| New York 1 |
nyc1 |
New York, USA |
| New York 2 |
nyc2 |
New York, USA |
| New York 3 |
nyc3 |
New York, USA |
| San Francisco 2 |
sfo2 |
California, USA |
| San Francisco 3 |
sfo3 |
California, USA |
| Singapore 1 |
sgp1 |
Singapore |
| Sydney 1 |
syd1 |
Australia |
| Toronto 1 |
tor1 |
Canada |
All regions have the same capabilities - there are no feature differences between them. If your users are concentrated in one area, pick the closest region. New York and Frankfurt are great options for global traffic.
Sizes
All DigitalOcean sizes run the same server stack (PostgreSQL and Caddy, with pre-built Elixir releases) and can host multiple apps.
| vCPUs | RAM | Disk | Swap |
|---|---|---|---|
| 1 | 1 GB | 25 GB | 512 MB |
| 1 | 2 GB | 50 GB | 1 GB |
| 2 | 2 GB | 60 GB | 1 GB |
| 2 | 4 GB | 80 GB | 1 GB |
Potions automatically configures swap space on every server - 512 MB for the 1 GB tier and 1 GB for all larger sizes. Swap gives your server breathing room during memory spikes without affecting normal performance.
Choosing a Size
1 GB RAM: Good for development, staging, and small production apps with light traffic. PostgreSQL and a single Phoenix app fit comfortably. Keep in mind that deploys briefly run two instances of your app during the zero-downtime switchover, which doubles memory usage for a short window.
2 GB RAM / 1 vCPU: A solid starting point for production. Enough room for PostgreSQL, multiple Phoenix apps, and the memory overhead during deploys.
2 GB RAM / 2 vCPU: Same memory as the tier above but with a second CPU core. Useful if your app is CPU-bound (heavy computation, image processing, or high concurrency on the BEAM scheduler).
4 GB RAM / 2 vCPU: For larger production workloads or servers hosting several apps. Gives PostgreSQL room for bigger working sets and lets you run multiple apps without contention.
Pricing
DigitalOcean bills you for your droplets at their standard rates. Potions doesn't add any markup to infrastructure costs. Check DigitalOcean's pricing page for current rates.
More Providers Coming Soon
Potions is adding support for additional cloud providers.
Things to Know
- Multiple apps share server resources. If you're running several apps on one server, factor in the combined memory and CPU usage when choosing a size.
- Builds don't consume server resources. Potions builds your release on a separate build server, not on your app server. The only server resource used during deploys is the upload and restart step.