Mirror from bluesky-social/pds

Merge pull request #1 from bluesky-social/readme-env-updates

Better env docs

authored by Daniel Holmgren and committed by GitHub 3ec773b7 27a648db

Changed files
+32 -8
+32 -8
README.md
··· 12 12 13 13 ### What is AT Protocol? 14 14 15 - The Authenticated Transfer Protocol, aka ATP, is a protocol for large-scale distributed social applications. 15 + The Authenticated Transfer Protocol, aka atproto, is a protocol for large-scale distributed social applications. 16 16 17 17 Please visit the [AT Protocol docs](https://atproto.com/guides/overview) for additional information. 18 18 ··· 148 148 curl https://raw.githubusercontent.com/bluesky-social/pds/main/postgres-compose.yaml >compose.yaml 149 149 ``` 150 150 151 + 152 + #### Generate keys 153 + 154 + Your PDS will need two secp256k1 private keys provided as hex strings. You can securely generate these keys using `openssl` with the following command: 155 + ```bash 156 + openssl ecparam -name secp256k1 -genkey -noout -outform DER | tail -c +8 | head -c 32 | xxd -p -c 32 157 + ``` 158 + 159 + This will output a 64-char hex string. Please generate two keys in preperation for the next step. 160 + 151 161 #### Edit your compose.yaml file 152 162 153 - You will need to customize various settings configured through the PDS environment variables. 163 + You will need to customize various settings configured through the PDS environment variables. See the below table to find the variables you'll need to set. 154 164 155 - | Environment Variable | Value | 156 - | --------------------- | --------------------------------------------- | 157 - | PDS_DOMAIN | example.com | 158 - | PDS_DATABASE_URL | postgresql://user:password@host:port/database | 159 - | PDS_ADMIN_EMAIL | you@example.com | 160 - | ... | ... | 165 + | Environment Variable | Value | Should update? | Notes | 166 + | ----------------------------------------- | --------------------------------------------- | -------------- |------ | 167 + | PDS_HOSTNAME | example.com | ✅ | Public domain you intend to deploy your service at | 168 + | PDS_DB_POSTGRES_URL | postgresql://user:password@host:port/database | ✅ | Or use `PDS_DB_SQLITE_LOCATION` depending on which database you intend to use | 169 + | PDS_JWT_SECRET | jwt-secret | ✅ | Use a secure high-entropy string | 170 + | PDS_ADMIN_PASSWORD | admin-pass | ✅ | Use a secure high-entropy string | 171 + | PDS_REPO_SIGNING_KEY_K256_PRIVATE_KEY_HEX | 3ee68... | ✅ | See above Generate Keys section - once set, do not change | 172 + | PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX | e049f... | ✅ | See above Generate Keys section - once set, do not change | 173 + | LOG_ENABLED | true | ❔ | Outputs structured logs to stdout | 174 + | PDS_BLOBSTORE_DISK_LOCATION | blobs | ❌ | Only update if you update the mounted volume for your docker image as well | 175 + | PDS_DID_PLC_URL | plc.bsky-sandbox.dev | ❌ | Do not adjust if you intend to federate with the Bluesky federation sandbox | 176 + | PDS_BSKY_APP_VIEW_ENDPOINT | api.bsky-sandbox.dev | ❌ | Do not adjust if you intend to federate with the Bluesky federation sandbox | 177 + | PDS_BSKY_APP_VIEW_DID | did:web:api.bsky-sandbox.dev | ❌ | Do not adjust if you intend to federate with the Bluesky federation sandbox | 178 + | PDS_CRAWLERS | bgs.bsky-sandbox.dev | ❌ | Do not adjust if you intend to federate with the Bluesky federation sandbox | 179 + | ... | ... | | | 180 + 181 + There are additional environment variables that can be tweaked depending on how you're running your service. For instance, storing blobs in AWS S3, keys in AWS KMS, or setting up an email service. 182 + 183 + Feel free to explore those [Here](https://github.com/bluesky-social/atproto/blob/simplify-pds/packages/pds/src/config/env.ts). However, we will not be providing support for more advanced configurations. 184 + 161 185 162 186 #### Run docker compose 163 187