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.

Hetzner Cloud

Locations

Hetzner Cloud runs in six locations across Europe, North America, and Asia. Pick the one closest to your users for the lowest latency.

Location Slug Country
Nuremberg nbg1 Germany
Falkenstein fsn1 Germany
Helsinki hel1 Finland
Ashburn, VA ash United States
Hillsboro, OR hil United States
Singapore sin Singapore

All locations run the same server stack. The European locations (Nuremberg, Falkenstein, Helsinki) typically offer the widest selection of sizes.

Sizes

Hetzner offers shared vCPU (the CPX and CX lines) and dedicated vCPU (the CCX line) servers. Shared-vCPU sizes are the most cost-effective starting point and run Phoenix apps comfortably; dedicated-vCPU sizes are worth it for consistently CPU-bound workloads.

Common shared-vCPU sizes:

Slug vCPUs RAM Disk
cpx11 2 2 GB 40 GB
cpx21 3 4 GB 80 GB
cpx31 4 8 GB 160 GB
cpx41 8 16 GB 240 GB
cpx51 16 32 GB 360 GB

Dedicated-vCPU sizes (the CCX line) scale from 8 GB / 2 vCPU up to 192 GB / 48 vCPU for larger production workloads.

The exact sizes available depend on the location and are refreshed from the Hetzner API, so the dropdown always reflects what's currently on offer. Note that Hetzner's smallest size starts at 2 GB RAM (there's no 1 GB tier). As with every Potions server, swap space is configured automatically.

Choosing a Size

2 GB RAM (cpx11): A solid entry point for development, staging, and small production apps. Fits PostgreSQL and a Phoenix app with room for the brief memory overlap during zero-downtime deploys.

4 GB RAM (cpx21): A comfortable starting point for production - room for PostgreSQL, multiple apps, and deploy overhead.

8 GB RAM and up: For larger workloads or servers hosting several apps. The dedicated-vCPU CCX line is a good fit when your app is consistently CPU-bound.

Pricing

Hetzner bills you directly for your servers at their standard rates. Potions doesn't add any markup. Check Hetzner's cloud pricing for current rates - Hetzner is often among the most cost-effective options for the resources you get.

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.