Configuration¶
Every app in Plitho is configured through a plitho.yml file committed to the root of your repository. On each git push, Plitho reads this file from the pushed commit.
Minimal Example¶
apps:
- name: myapp
runtime: node
process:
web:
cmd: node server.js
server_port: 3000
Full Reference¶
apps:
- name: myapp.com # required — matches the git remote name
runtime: node # node | python | static | shell
runtime_version: "20" # optional; specific runtime version
auto_restart: true # restart on deploy (default true)
threads: 2 # worker threads (python only)
process:
web: # HTTP-facing process (required)
cmd: "node server.js"
server_port: "3000"
workers: 2
enabled: true
worker: # optional background process
cmd: "node worker.js"
workers: 1
env:
NODE_ENV: production
DATABASE_URL: postgres://...
scripts:
release:
- npm run build
predeploy:
- npm ci
postdeploy:
- echo "deployed"
destroy:
- echo "cleanup"
nginx:
include_file: /etc/nginx/snippets/myapp.conf
Note
Domain configuration (server_name, https_only) and resource limits (resources) are managed through the Plitho dashboard, not plitho.yml. See the Apps and Resources docs.
Sections¶
| Section | Description |
|---|---|
| Runtimes | Node.js, Python, Static, and Shell — which to choose and how they work |
| Environment Variables | Secrets and config vars for your app |
| Scripts | Build steps, migrations, and cleanup hooks |
| Resources | CPU and memory limits (set via dashboard) |