Moving from Heroku.
Your Procfile, config vars and Postgres backup come along.
Connect a server
Install the agent. It connects out to the panel.
Describe the app
Write
yawl.yamlfrom yourProcfile, thenyawl apply.Move the data
Download the latest backup and
yawl db importit.
services:
- name: shop
kind: web
repo: https://github.com/acme/shop
port: 8080
release: [bin/rails, db:migrate]
domains: [shop.example.com]
- name: shop-worker
kind: worker
repo: https://github.com/acme/shop
command: [bundle, exec, sidekiq]
- name: nightly
kind: cron
repo: https://github.com/acme/shop
schedule: "0 3 * * *"
command: [bin/rails, reports:send]
- name: shop-db
kind: postgres$ heroku pg:backups:capture -a shop $ heroku pg:backups:download -a shop $ yawl db import shop-db latest.dump $ yawl env set shop DATABASE_URL --ref shop-db.url
What becomes what
| Area | Heroku | In Yawl |
|---|---|---|
| App | Buildpacks | Yawl's builder for Go, Node and Python. Railpack for Ruby, PHP, Java and the rest. A Dockerfile wins. |
Procfile web: | The start command, for Go, Node and Python apps. | |
Procfile release: | release: in yawl.yaml. It runs on the new image before it starts. | |
Procfile worker: | A worker service with its command:. | |
| Dynos | replicas:, 1 to 10 copies on one server. | |
| Heroku Scheduler | A cron service with a schedule:. | |
| Data | Heroku Postgres | A Yawl Postgres. yawl db import loads Heroku's backup as it is. |
| Heroku Key-Value Store | A Yawl Valkey. Its data is not imported. | |
| Settings | Config vars | yawl env set. --build gives one to the build too. |
DATABASE_URL | --ref shop-db.url, so it follows the database. | |
PORT | Set by Yawl, as on Heroku. | |
| Custom domains | domains: on the web service, with TLS. |