Elixir · 1.20.4 (OTP 28)
Elixir hosting, 24/7
Ship a Phoenix application, an API or an Elixir worker and leave it running. The platform recognizes the project from mix.exs and starts it with mix phx.server if it depends on :phoenix, or with mix run --no-halt, in an isolated container with automatic restart.
Who designed Elixir
José Valim, a Brazilian developer, started Elixir in 2011 while working at Plataformatec, after hitting the limits of Ruby on Rails on concurrency. 1.0 shipped in 2014. The language runs on the BEAM, the Erlang virtual machine, built at Ericsson in the 1980s for telephony: many lightweight, isolated processes that recover from failure.

José Valim
Christopher Adams · CC BY 2.0
Concurrency through processes
An Elixir process costs a few kilobytes and shares no memory with the others. Thousands of them live side by side on the same server, passing messages.
Fault tolerance as a method
Supervisors restart the process that broke without taking down the rest. The let it crash philosophy, inherited from Erlang, treats failure as part of the design.
Modern syntax on a mature base
Pipes, pattern matching and macros in an ecosystem with Phoenix and LiveView. Productivity comes from above, and decades of telecom robustness from below.
What the platform does for an Elixir project
The Erlang virtual machine is already good at keeping processes alive; the platform takes care of the container around it.
Detection from mix.exs
With a mix.exs at the project root, the platform knows it is Elixir and picks the runtime on its own. Dependencies are installed and the project is compiled with MIX_ENV=prod; you do not write a Dockerfile or choose an image.
Elixir 1.20 on OTP 28
1.20.4 is the available version, running on OTP 28. To pin the line, declare VERSION in vertracloud.config; without it, the application starts on the recommended one.
Start picked from mix.exs
If mix.exs depends on :phoenix, the application starts with mix phx.server; otherwise, with mix run --no-halt. In production Phoenix reads SECRET_KEY_BASE and PHX_HOST from the environment: put both in the dashboard environment variables.
Auto-restart with a brake
A process that dies does not leave the service down: the container is restarted on its own, on every plan. If it breaks 5 times in 10 minutes, the platform flags a crash loop and turns auto-restart off for 24 hours. Exiting with code 0 does not trigger a restart.
What people run on Elixir here
Workloads with many connections open at once, which is where the BEAM lightweight processes show up.
Phoenix and LiveView
Publish the application to get a vertraweb.app subdomain with TLS. The endpoint has to listen on 0.0.0.0 at the port declared in PORT, and PHX_HOST should be the public host you will use.
JSON APIs with Plug and Phoenix
A service with no UI, just routes and controllers. mix phx.server starts the endpoint, and the dashboard shows real RAM next to the MEMORY ceiling.
Workers with Oban and GenServer
A queue consumer, a periodic routine, a processing pipeline: a mix run --no-halt keeps the OTP application alive without exposing any port.
Discord and Telegram bots
Nostrum and Telegex run as long-lived processes. The token goes in the dashboard environment variables, read with System.get_env, never in a file inside the zip.
Available Elixir versions
1.20.4 is both the recommended and the latest, on OTP 28. With no VERSION in vertracloud.config, the application starts on the recommended one.
| Version | vertracloud.config | Status |
|---|---|---|
| 1.20.4 (OTP 28) | VERSION=1.20 | RecommendedLatest |
The whole configuration
vertracloud.config is an optional INI file at the project root. There is no START to declare: the platform chooses between mix phx.server and mix run --no-halt from mix.exs. VERSION picks the Elixir line; MEMORY sets the RAM ceiling.
NAME=meu-app
MAIN=mix.exs
VERSION=1.20
MEMORY=512A plan for every stage of the project
Memory and storage change with the plan; the language does not. Compare what each plan unlocks and pick the one that fits the project today.
Compare plansAlso runs here
Same platform, same deploy, a different stack.
Frequently asked questions about Elixir hosting
Start, Phoenix and port: the questions people ask most when they deploy Elixir.
Which Elixir version can I use?
Today, 1.20.4, which is both the recommended and the latest, on OTP 28. You can declare the line with the VERSION key in vertracloud.config; without it, the application starts on the recommended one.
Do I have to choose between mix run and mix phx.server?
No. If mix.exs depends on :phoenix, the platform starts with mix phx.server; otherwise, with mix run --no-halt, which keeps the process from exiting as soon as the code finishes loading.
Phoenix crashes at startup complaining about SECRET_KEY_BASE.
In production it requires that value in the environment. Generate one with mix phx.gen.secret and put it in the dashboard environment variables, together with PHX_HOST. The platform does not read a .env file.
The application starts, but the subdomain does not respond.
Two causes. The endpoint has to listen on 0.0.0.0 at the port declared in PORT, not only on 127.0.0.1; and the application has to be published to the web, which requires 512 MB of RAM and is available from the Pro plan up.
Do I need to send the _build and deps folders in the zip?
No, and you should not. Leave _build and deps out of the package: the zip limit is 100 MB and dependencies are rebuilt on the server, for Linux.
Deploy your Elixir project today
Create the account, upload the code with mix.exs and mix.lock, or connect the GitHub repository, and follow the application boot in the dashboard terminal.
Create account