Reference
pushify.yaml
Declare how your app builds and runs, next to the code. The file wins over dashboard settings on every deploy.
pushify.yamlevery key, in one file
# pushify.yaml — at the root of your repository
framework: nextjs
install: pnpm install --frozen-lockfile
build: pnpm build
start: pnpm start
port: 3000
# output: dist # static sites only
cron:
- name: nightly-report
schedule: "0 3 * * *"
timezone: Europe/Berlin
command: node scripts/report.js
timeoutSeconds: 600
volumes:
- name: uploads
path: /app/uploads
workers:
- name: queue
command: node worker.js
How it is read
Four rules
Where it lives
pushify.yaml or pushify.yml, in the project’s root directory or the repo root.
Every field is optional
Leave one out and the dashboard value applies. Secrets stay in the dashboard.
Invalid files are skipped
An unknown key or bad value logs a warning; the deploy continues without the file.
Added, never removed
Production deploys create or update cron, volumes and workers by name. Nothing is deleted; new ones past the limit are skipped.
Fields
Every key the file accepts
<root>
Build and run
Top-level keys. Commands must fit on one line.
frameworkstring- Skip auto-detection and pin a build strategy: nextjs, react, vue, nuxt, svelte, astro, remix, nodejs, python, django, go, laravel, rails, static… An unknown value falls back to auto-detection. A Dockerfile in the repo still wins.
installstring- Dependency install command run before build (e.g. pnpm install --frozen-lockfile).
buildstring- Build command. Its dependency layer is cached between deploys.
startstring- Process command for the web container.
outputstring- Output directory for static sites, relative to the repo (e.g. dist, out, build).
portnumber- Port your process listens on (1–65535). Pushify routes HTTPS traffic to it.
cron[]
Scheduled commands
Up to 10 per project, counting those added in the dashboard. Each runs inside your app container.
namestring · required- Unique within the project. Shown in the Cron tab and run history.
schedulestring · required- 5-field cron expression ("*/15 * * * *"). Validated at deploy.
commandstring · required- Shell command run via docker exec in the running container.
timezonestring- IANA zone for the schedule (default UTC), e.g. Europe/Berlin.
timeoutSecondsnumber- 10–600. The run is killed past this. New jobs default to 120.
volumes[]
Persistent volumes
Up to 5 per project, counting those added in the dashboard. They survive deploys, restarts and rollbacks.
namestring · required- Lowercase letters, digits and dashes, starting with a letter or digit; max 31 chars. Unique within the project.
pathstring · required- Absolute mount path inside the container (e.g. /app/uploads). System paths such as /etc or /proc are refused.
workers[]
Background workers
Up to 5 per project, counting those added in the dashboard. Started from the same image after each successful deploy.
namestring · required- 1–40 lowercase letters, digits or dashes, no dash at either end. Container becomes pushify-<project>-worker-<name>.
commandstring · required- Command override for the worker container (e.g. node worker.js, celery -A app worker).