+32
-8
README.md
+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