Something went wrong. Try again.
Personal atproto services deployment handbook
Something went wrong. Try again.
Secrets #
This repository is designed to be public. Do not commit real secret values.
Secret Inventory #
| Secret | Generated by | Stored where | Rotation note |
|---|---|---|---|
| PDS admin password | PDS installer | password manager and /pds/pds.env |
rotate with PDS tooling if supported |
| PLC rotation/recovery keys | PDS installer / PLC tooling | password manager and /pds |
critical account recovery material |
| R2 live blob access key | Cloudflare R2 | ignored VM env file and password manager | rotate by adding new key, updating PDS, then revoking old key |
| R2 live blob secret key | Cloudflare R2 | ignored VM env file and password manager | never print in logs |
| R2 backup access key | Cloudflare R2 | /etc/pds-backup.env and password manager |
prefer separate key from live blob storage |
| R2 backup secret key | Cloudflare R2 | /etc/pds-backup.env and password manager |
never print in logs |
| Cloudflare Origin CA private key | Cloudflare Origin CA | VM file under /pds/certs or equivalent and password manager |
replace before certificate expiration |
| Cloudflare API token | Cloudflare | password manager only unless automation needs it | use least privilege |
| SSH private key | local machine | ~/.ssh/gcp |
never copy into this repo |
| account password / app passwords | user-created | password manager | rotate if exposed |
Files That Must Stay Ignored #
/pds/pds.env/etc/pds-backup.env- real
.envfiles *.key*.pem- backup archives
- SQLite databases
- generated config under
generated/orrendered/
Redaction Rules #
Before sharing logs or command output, remove:
- access keys and secret keys
- bearer tokens
- passwords
- private keys
- DIDs only if you want operational privacy
- email addresses if not intended to be public
Rotation Order #
Rotate one class of secret at a time:
- create the replacement secret
- install it in the ignored production env or config file
- restart only the affected service
- run health checks
- revoke the old secret
- run one backup if the secret lives in
/pds