72 lines
1.8 KiB
Markdown
72 lines
1.8 KiB
Markdown
# Infrastructure
|
|
|
|
`dew infra` manages project-local infrastructure services declared under
|
|
`.project/infrastructure`.
|
|
|
|
The initial runtime backend is Podman Quadlets installed into systemd search
|
|
paths. The command surface is runtime-oriented rather than Podman-specific so
|
|
future backends can be added without changing project manifests or common CLI
|
|
workflows.
|
|
|
|
## Layout
|
|
|
|
```text
|
|
.project/infrastructure/
|
|
└── services/
|
|
└── postgres/
|
|
├── metadata.toml
|
|
├── app_postgres.container
|
|
├── app_postgres.container.d/
|
|
├── app_postgres.profiles.d/
|
|
├── configure.schema.json
|
|
├── init.schema.json
|
|
└── config/
|
|
```
|
|
|
|
## Manifest
|
|
|
|
```toml
|
|
[service]
|
|
id = "postgres"
|
|
name = "PostgreSQL"
|
|
unit = "app_postgres.service"
|
|
container_name = "app_postgres"
|
|
|
|
[runtime]
|
|
type = "podman-quadlet"
|
|
|
|
[container]
|
|
file = "app_postgres.container"
|
|
dropins_dir = "app_postgres.container.d"
|
|
profiles_dir = "app_postgres.profiles.d"
|
|
|
|
[schemas]
|
|
configure = "configure.schema.json"
|
|
init = "init.schema.json"
|
|
```
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
dew infra list
|
|
dew infra show postgres
|
|
dew infra validate --all
|
|
dew infra configure postgres schema
|
|
dew infra configure postgres show
|
|
dew infra configure postgres apply --file config.json --set port=5432
|
|
dew infra init postgres schema
|
|
dew infra init postgres run --file init.json
|
|
dew infra install postgres
|
|
dew infra up postgres
|
|
dew infra status postgres
|
|
dew infra logs postgres --lines 200
|
|
dew infra down postgres
|
|
dew infra delete postgres --container
|
|
```
|
|
|
|
Use `--dry-run` on mutating commands to print filesystem, systemctl, journalctl,
|
|
and podman actions without applying them. Use `--scope user` for the default
|
|
user systemd path or `--scope system` for `/etc/containers/systemd`.
|
|
|
|
`dew infra up` installs missing Quadlet files, reloads systemd, then starts the
|
|
unit.
|