Skip to main content

Requirements

  • Elixir 1.20 (OTP 28) installed locally
  • Account on Vertra Cloud
  • A project with a mix.exs at the root

Project Structure

The platform detects Elixir from mix.exs. It runs mix deps.get and compiles with MIX_ENV=prod. It starts the app with mix run --no-halt, or with mix phx.server when the project depends on :phoenix.

Configuration

vertracloud.config

MAIN is mix.exs.

Phoenix

Phoenix is supported. Set these variables under Environment: In config/runtime.exs, bind to all interfaces and read the port from the environment:
Run mix assets.deploy locally before zipping the project, or use a project without assets (mix phx.new --no-assets). Then send the generated static files in the zip.

Example: Plug Server

Deploy

  1. Compress the project into a .zip or push it to GitHub.
  2. In the dashboard, click New Project and upload the .zip or paste the repository URL.
  3. In Build, check the runtime (Elixir), the main file (mix.exs) and the memory. Start and build commands are under Advanced settings.
  4. Add your environment variables in Environment.
  5. In Network, turn on web publishing so the app gets a *.vertraweb.app address (Pro plan or higher, 512 MB of memory). The app must listen on port 80.
  6. Review and deploy. Follow the output in the Logs tab.
The full walkthrough is in First deploy.

Available Versions

Notes

  • Build: dependencies and compilation run during deployment with MIX_ENV=prod
  • Exclude from the zip: _build and deps folders
  • Environment variables: read them in config/runtime.exs with System.get_env/1
  • Logging: use Logger for logs that appear in real time
  • Listen on 0.0.0.0 on port 80

Common Errors

  • SECRET_KEY_BASE or PHX_HOST is missing: a Phoenix app fails to boot without them. Add both under Environment and restart.
  • Phoenix assets missing: run mix assets.deploy before zipping, or use a project without assets.
  • Site doesn’t open: the endpoint must bind to 0.0.0.0 and port 80, not 127.0.0.1 or 4000.