From 976e508ee51af459ad853b47e94bc008ef0668f9 Mon Sep 17 00:00:00 2001 From: Nathan Price Date: Tue, 10 Dec 2024 17:29:27 +0000 Subject: [PATCH] improved instructions --- README.md | 76 ++++++++++++++++++++++++++--------------------- assets/image.png | Bin 0 -> 47037 bytes 2 files changed, 42 insertions(+), 34 deletions(-) create mode 100644 assets/image.png diff --git a/README.md b/README.md index e6490b2..01c8523 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,50 @@ # bluesky-pds-docker -A self-contained Docker image for the [Bluesky PDS (Personal Data Server) ](https://github.com/bluesky-social/pds). This image is pinned to v0.4.74. + +A self-contained Docker image for the [Bluesky PDS (Personal Data Server) ](https://github.com/bluesky-social/pds) for use with Traefik. This image is pinned to v0.4.74. It is required to run the instance behind a proxy (like traefik) to generate SSL certificates. This will not work otherwise. The standard pds install includes caddy to handle this. -I can confirm it works behind Cloudflare's DNS Proxy with Full (strict). +I can confirm it works behind Cloudflare's DNS Proxy with Full (strict). ## Deployment +### Reqirements (to) + +#### Manjaro/Arch + +```bash +sudo pacman -Syu install jq +``` + +#### Debian/Ubunut + +```bash +sudo apt install make xxd +``` + +### Setup + +Generate secrets and add them to `.env` file. See [example.env](example.env) as an example. + ```bash # Generate secret environment variables echo PDS_ADMIN_PASSWORD: $(openssl rand --hex 16) echo PDS_JWT_SECRET: $(openssl rand --hex 16) echo PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: $(openssl ecparam --name secp256k1 --genkey --noout --outform DER | tail --bytes=+8 | head --bytes=32 | xxd --plain --cols 32) - -# pull and run the container -docker pull forgejo.gravityfargo.dev/gravityfargo/bluesky-pds -docker-compose up -d - -# Create an account -docker exec -it bluesky-pds bash -pdsadmin account create -pdsadmin account list -pdsadmin request-crawl bsky.network # useful if you re-deploy the same instance multiple times ``` -In your browser: - -- Go to https://bsky-debug.app/handle and enter your new user, "HTTP Verification Method" needs to pass. -- [websocket-tester](https://piehost.com/websocket-tester) "wss://example.com/xrpc/com.atproto.sync.subscribeRepos?cursor=0" needs to display "Connection Established" -- https://boat.kelinci.net/ has a helpful tool to export your data. -- Log in with your new user and go to https://bsky.app/ - - -### Example Docker Compose +### Standalone Full list of additional Environment Variables can be found in the [packages/pds/src/config/env.ts](https://github.com/bluesky-social/atproto/blob/main/packages/pds/src/config/env.ts) ```yaml +# Standalone, you'll need to add a proxy in front of this with SSL. services: bluesky-pds: container_name: bluesky-pds image: forgejo.gravityfargo.dev/gravityfargo/bluesky-pds environment: + # Define variables here or in a .env file PDS_JWT_SECRET: ... PDS_ADMIN_PASSWORD: ... PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: ... @@ -52,30 +55,24 @@ services: - ./bluesky-pds:/pds ``` -### Example Docker Compose with Traefik +### Traefik ```yaml +# Traefik Proxy services: bluesky-pds: container_name: bluesky-pds image: forgejo.gravityfargo.dev/gravityfargo/bluesky-pds:latest - networks: - - proxy env_file: - PDS_ADMIN_PASSWORD: "" - PDS_JWT_SECRET: "" - PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: "" - PDS_HOSTNAME: example.com - PDS_EMAIL_SMTP_URL: "" - PDS_EMAIL_FROM_ADDRESS: "" + - .env volumes: - ./bluesky-pds:/pds labels: traefik.enable: "true" traefik.http.routers.bluesky-pds-insecure.entrypoints: http - traefik.http.routers.bluesky-pds-insecure.rule: HostRegexp(`^.+\.example\.com$`) || Host(`example.social`) + traefik.http.routers.bluesky-pds-insecure.rule: HostRegexp(`^.+\.example\.com$`) traefik.http.routers.bluesky-pds-secure.entrypoints: https - traefik.http.routers.bluesky-pds-secure.rule: HostRegexp(`^.+\.example\.com$`) || Host(`example.social`) + traefik.http.routers.bluesky-pds-secure.rule: HostRegexp(`^.+\.example\.com$`) traefik.http.routers.bluesky-pds-secure.tls: "true" traefik.http.services.bluesky-pds.loadbalancer.server.scheme: http traefik.http.services.bluesky-pds.loadbalancer.server.port: 3000 @@ -88,6 +85,7 @@ services: I think file configs are cleaner than having a billion labels. ```yaml +# middleware.yaml http: middlewares: BlueskyHeaders: @@ -104,8 +102,18 @@ http: stsSeconds: 63072000 ``` -## Development Notes +#### Optional Proxy Network ```bash -pamac install jq +docker network create --subnet=192.168.1.0/24 --ipv6 --attachable proxy +# /etc/docker/daemon.json +# { +# "ipv6": true, +# "fixed-cidr-v6": "2001:db8:1::/64" +# } + ``` + +#### Cloudflare DNS + +![alt text](assets/image.png) diff --git a/assets/image.png b/assets/image.png new file mode 100644 index 0000000000000000000000000000000000000000..6f435c4012aeec7cae8ec48cf7fac1c0e88de056 GIT binary patch literal 47037 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
pJMjMfn>aEe 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