Phoenix in production.
Native WebSockets. BEAM efficiency.
Automated asset packaging, BEAM releases, custom WebSocket load-balancing, and Let's Encrypt SSL. Deploy to AWS, GCP, Azure, or Linode in one command.
High performance Elixir infrastructure
Phoenix is famous for handling millions of concurrent users. Keep latency low and connections open with dedicated VM environments.
Native Elixir Releases
Multi-stage Docker build running mix assets.deploy and mix release, generating tiny, standalone executable containers.
Let's Encrypt SSL
Automatic certificate configuration and cron renewals. Secure your LiveView routing endpoints instantly.
Ecto DB integrations
Link managed Postgres or MySQL databases. Connection details are securely mounted into system environment variables.
LiveView WebSocket tuning
Load balancers are tuned for high-concurrency persistent WebSocket links, preventing premature connection timeouts.
GitOps & CI/CD Pipelines
Deploy from GitHub Actions or GitLab CI. Seamless green-blue rollouts ensure no client sockets are dropped.
Erlang VM Clustering
Configure distributed Elixir applications. Spin up multiple node targets and cluster them over secure private networks.
Quickstart — Phoenix live with HTTPS in 3 commands
vxcli vm create \
--name phoenix-vm --cloud aws --region us-east-1 \
--instance-type t3.medium --key-pair-name AWSPRODKEY2
# Save the public IP address
export VM_IP=<public-ip-from-output>vxcli cloud database create-rds phoenix-db --cloud aws --engine postgresvxcli deploy phoenix \
--source-dir ./ \
--app-name web-app \
--http-port 80 \
--env SECRET_KEY_BASE=xxxxxx \
--env DATABASE_URL=postgres://... \
--enable-ssl \
--domain app.example.com \
--ssl-email [email protected] \
--host $VM_IP --ssh-user ubuntu --key-pair-name AWSPRODKEY2
# app.example.com is now live with automated Let's Encrypt SSL.Elixir Phoenix production checklist
- Configure your `Endpoint` host and port parameters inside `runtime.exs` using system environment variables.
- Verify database pool sizes match the number of available connections on your PostgreSQL instance.
- Utilize distributed Elixir node networks if you require cluster-wide PubSub communication without Redis.
- Direct log outputs as structured JSON metadata to stdout, letting log forwarders handle telemetry data.
- Configure standard health routes (returning 200) inside your routers to enable dynamic load balancer routing checks.
Elixir Phoenix hosting FAQ
Own your Elixir Phoenix infrastructure
Deploy Phoenix releases, cluster nodes, and database connection setups with a single developer command.