Deploy an app
From a Git repo, a container image, or the directory you are standing in.
There are three ways to get an app running, and they differ only in where the code comes from.
From a Git repo
marina vessels create shop --repo acme/shop Marina works out what the repo builds into and how to start it. Most projects need nothing more. Push to the default branch and it rebuilds and redeploys on its own.
Add --branch to track something other than the default.
From the directory you are in
No repo, no registry, nothing to connect:
marina vessels create shop --dir . The directory is uploaded and built the same way a repo would be. Good for a project that is not on GitHub yet, and for trying something quickly.
From a container image
If you already build your own image:
marina vessels create shop --image ghcr.io/acme/shop:1.4 Nothing is built. The image runs as-is, so what you tested is what runs.
After it exists
Link the directory once and the everyday commands need no arguments:
marina link shop
marina deploy
marina logs --follow deploy rebuilds from the source the app already has. deploy --dir . sends this directory instead.
Telling Marina how to build
When detection is not what you want, put a marina.toml at the root of your repo:
[processes]
web = "node server.js"
[build.env]
VITE_API_URL = "https://api.example.com" web is the process that serves HTTP traffic. [build.env] holds variables your build needs, which is different from the config vars your app reads while running: set those with marina env set, and never put a real secret in a committed file. The full file has four keys.
Size
An app reserves memory, and that is what it is billed on:
| Size | Memory |
|---|---|
starter | 0.25 GB |
standard | 0.5 GB |
pro | 1 GB |
pro-plus | 2 GB |
marina vessels create shop --repo acme/shop --size standard
marina vessels scale pro Scaling is upgrades only, and the difference is settled immediately rather than at the end of the month. See the pricing page for what each costs, and how apps run for what a size reserves.
When a build fails
marina vessels builds
marina logs The build log is your build’s output. A failed deploy leaves the previous version serving, so a broken build never takes your app down; marina vessels rollback puts an earlier deploy back deliberately.
