just <svc>-* lifecycle commandsPer-service start / stop / restart / status / logs. Naming pattern:
<svc>-<verb>. The framework generates these dynamically per service in the active profile — they exist for every service without anyone writing them per-service.
<svc> prefix)| Command | What it does |
|---|---|
just up |
Start the whole stack per active profile |
just down |
Stop the whole stack |
just restart |
Stop + start everything |
just status |
Container health for every service |
just clean-slate |
Stop + remove all asd-${ASD_ENV}-* containers (safe; only touches current env) |
just cleanup [SERVICE] |
Remove stale containers/networks/volumes |
<svc>-<verb>)For every service in the active profile, these exist:
| Pattern | Example | What it does |
|---|---|---|
<svc>-start |
redmine-start |
Start one service + its dependencies |
<svc>-stop |
redmine-stop |
Stop one service |
<svc>-restart |
redmine-restart |
Stop + start |
<svc>-status |
redmine-status |
Container health for that service |
<svc>-logs [N] |
redmine-logs 100 |
Tail last N lines of logs (default follow mode) |
<svc>-shell |
redmine-shell |
Open a shell inside the container |
For database-backed services, db-specific recipes:
| Pattern | Example | What it does |
|---|---|---|
<svc>-psql [ARGS] |
redmine-psql -c "SELECT count(*) FROM issues" |
psql shell or one-shot query |
<svc>-mysql [ARGS] |
mattermost-mysql -e "..." |
mysql shell (mariadb-backed services) |
<svc>-db-shell |
n8n-db-shell |
Generic DB shell, autodetects engine |
Each packages/<svc>/manifest.yaml declares the service. packages/<svc>/install.just typically extends the framework's generic recipes. The framework's common.just provides:
# Generic per-service recipe template (simplified)
start service:
@just _service-start {{service}}
stop service:
@just _service-stop {{service}}
# Plus pattern matching for <svc>-start → start <svc>
So just redmine-start resolves to just start redmine resolves to the framework's _service-start helper, which reads the manifest, brings up the container per the package's compose file, runs lifecycle hooks.
No service-specific code in the framework. Every service inherits these recipes for free.
# Daily — what's running, what's not
just status
# A service is sluggish — restart it
just <svc>-restart
# Debug a service that won't start
just <svc>-logs # check for the error message
just <svc>-shell # poke around inside the container
just <svc>-psql # query the database
# Stack-wide refresh after a big change
just down
just up
# (faster: just restart — but lifecycle hooks don't re-run)
# Full cleanup before a fresh bootstrap
just clean-slate # nuke containers + networks
just bootstrap-local <profile> # start fresh
To see what recipes exist for a specific service:
just --list | grep ^ <svc>-
# Or with full names:
just --list | grep -E "^\s+(<svc>-|<svc>$)"
/pma/reference/cli — full CLI overview./pma/cookbook/upgrade-a-service-safely — uses restart + status verb extensively./pma/reference/cli/backup — paired with restart for restore drills.