···
echo "Certificates generated in ./certs/"
···
# Run Caddy with the specified Caddyfile
${pkgs.caddy}/bin/caddy run --config "$CADDYFILE"
132
+
# Script to start bluesky-pds
133
+
pds = pkgs.writeShellScriptBin "pds" ''
136
+
# Default port for bluesky-pds
137
+
PORT=''${BLUESKY_PDS_PORT:-3000}
139
+
# Create data directories
140
+
mkdir -p ./data/pds/blocks
141
+
mkdir -p ./data/pds/db
143
+
echo "Starting Bluesky PDS on port $PORT..."
144
+
echo "Data directory: ./data/pds"
146
+
# Configure for local disk storage
147
+
export PDS_DATA_DIRECTORY="./data/pds"
148
+
export PDS_BLOBSTORE_DISK_LOCATION="./data/pds/blocks"
149
+
export PDS_DB_SQLITE_LOCATION="./data/pds/db/pds.sqlite"
150
+
export PDS_PORT="$PORT"
152
+
# Generate or use existing PLC rotation key
153
+
if [ ! -f "./data/pds/plc-rotation-key.txt" ]; then
154
+
echo "Generating PLC rotation key..."
155
+
openssl rand -hex 32 > ./data/pds/plc-rotation-key.txt
157
+
export PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX="$(cat ./data/pds/plc-rotation-key.txt)"
159
+
# Generate or use existing JWT secret
160
+
if [ ! -f "./data/pds/jwt-secret.txt" ]; then
161
+
echo "Generating JWT secret..."
162
+
openssl rand -hex 32 > ./data/pds/jwt-secret.txt
164
+
export PDS_JWT_SECRET="$(cat ./data/pds/jwt-secret.txt)"
166
+
# Set admin password
167
+
export PDS_ADMIN_PASSWORD="admin"
169
+
# Set hostname and URL scheme (using example.org domain)
170
+
export PDS_HOSTNAME="pds.example.org:8443"
171
+
export PDS_SERVICE_URL="https://pds.example.org:8443"
173
+
# Enable development mode
174
+
export PDS_DEV_MODE="true"
176
+
${pkgs.bluesky-pds}/bin/pds
···
140
-
echo "Caddy development environment"
191
+
echo "Caddy development environment with Bluesky PDS"
echo "Available commands:"
echo " nix run .#generate-certs - Generate test certificates"
echo " nix run .#caddy-proxy - Start Caddy with full config"
144
-
echo " nix run .#caddy-oneliner - Start Caddy with minimal config"
195
+
echo " nix run .#pds - Start Bluesky PDS server"
198
+
echo " Bluesky PDS: https://pds.example.org:8443 (proxied from port 3000)"
199
+
echo " DID PLC: https://plc.example.org:8444 (proxied from port 2582)"
201
+
echo "Environment variables:"
202
+
echo " BLUESKY_PDS_PORT=3000 - Port for Bluesky PDS (default: 3000)"
205
+
echo " 1. Add these lines to your /etc/hosts file:"
206
+
echo " 127.0.0.1 pds.example.org"
207
+
echo " 127.0.0.1 plc.example.org"
208
+
echo " 2. Run 'nix run .#generate-certs' to create certificates"
209
+
echo " 3. Run 'nix run .#did-plc-server' in one terminal (if needed)"
210
+
echo " 4. Run 'nix run .#pds' in another terminal"
211
+
echo " 5. Run 'nix run .#caddy-proxy' in another terminal"
212
+
echo " 6. Access services at:"
213
+
echo " - Bluesky PDS: https://pds.example.org:8443"
214
+
echo " - DID PLC: https://plc.example.org:8444"