feat: deploy cities labeler

This commit is contained in:
gov committed 2026-11-04 16:55:41 -05:00
1 parent 98121c0195
commit f998954be9
7 files changed
+124 -1

No files matched your search

+18
View File
@@ -107,6 +107,20 @@ Requires a recent PDS image (telemetry added in `@atproto/pds` 0.5.26, distro ta
| `pds_telemetry_enabled` | `false` | Enable OpenTelemetry + monitoring stack |
| `pds_grafana_image_tag` | `13.1.1` | Grafana Docker image tag (pinned — no floating major tag) |
### Cities labeler
Optional. Deploys [atproto-cosocial-labeler](https://git.cosocial.info/CoSocial-Canada/atproto-cosocial-labeler) (city badges requested over Bluesky DMs) to `/pds/cities`, behind Caddy at `pds_cities_hostname`. Its label database lives in `cities/data`, so it's included in PDS backups.
| Variable | Required | Default | Description |
|---|---|---|---|
| `pds_cities_enabled` | no | — | Deploy the cities labeler |
| `pds_cities_repo` | yes (if enabled) | — | Git URL of the labeler repo |
| `pds_cities_version` | no | `main` | Branch, tag, or commit to deploy |
| `pds_cities_hostname` | yes (if enabled) | — | Public DNS name for the labeler service (needs an A record) |
| `pds_cities_handle` | no | `cities.<pds_hostname>` | Labeler account handle |
| `pds_cities_app_password` | yes (if enabled) | — | Labeler account app password with DM access |
| `pds_cities_signing_key` | yes (if enabled) | — | Label signing key (hex); its public key must match the labeler's DID document |
### Backup service
| Variable | Required | Default | Description |
@@ -207,6 +221,8 @@ Auto-deploys on push to `main`. Set up these in Gitea repo settings (Settings >
| `PDS_TELEMETRY_ENABLED` | *(optional)* Set to `true` to enable telemetry + monitoring stack |
| `PDS_SERVICE_NAME` | *(optional)* PDS display name for branding |
| `PDS_PRIMARY_COLOR` | *(optional)* Primary color (hex) for branding |
| `PDS_CITIES_HOSTNAME` | *(optional)* Set to deploy the cities labeler at this hostname |
| `PDS_CITIES_REPO` | *(with cities)* Git URL of the labeler repo |
Outgoing emails are sent from `techops@cosocial.ca` (fixed in the workflow).
@@ -218,5 +234,7 @@ Outgoing emails are sent from `techops@cosocial.ca` (fixed in the workflow).
| `OVH_S3_ACCESS_KEY` | OVH S3 access key for blob storage |
| `OVH_S3_SECRET_KEY` | OVH S3 secret key for blob storage |
| `SMTP_URL` | *(optional)* SMTP URL with credentials (e.g., `smtps://user:pass@smtp.example.com/`) |
| `PDS_CITIES_APP_PASSWORD` | *(with cities)* Labeler account app password with DM access |
| `PDS_CITIES_SIGNING_KEY` | *(with cities)* Label signing key (hex) |
The workflow installs Ansible, writes the SSH key from a secret, generates `inventory.yml` and `vars/main.yml` from vars and secrets, and runs the playbook.