Initial configuration
This commit is contained in:
commit
399e7cefd6
23
.env.sample
Normal file
23
.env.sample
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Host
|
||||||
|
PDS_HOSTNAME=
|
||||||
|
|
||||||
|
# Bluesky
|
||||||
|
PDS_DID_PLC_URL="https://plc.directory"
|
||||||
|
PDS_BSKY_APP_VIEW_URL="https://api.bsky.app"
|
||||||
|
PDS_BSKY_APP_VIEW_DID="did:web:api.bsky.app"
|
||||||
|
PDS_REPORT_SERVICE_URL="https://mod.bsky.app"
|
||||||
|
PDS_REPORT_SERVICE_DID="did:plc:ar7c4by46qjdydhdevvrndac"
|
||||||
|
PDS_CRAWLERS="https://bsky.network"
|
||||||
|
|
||||||
|
# Secrets
|
||||||
|
# Generate this value by using: `openssl ecparam --name secp256k1 --genkey --noout --outform DER | tail --bytes=+8 | head --bytes=32 | xxd --plain --cols 32`
|
||||||
|
PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=
|
||||||
|
# Generate this value by using: `openssl rand --hex 16`
|
||||||
|
PDS_JWT_SECRET=
|
||||||
|
|
||||||
|
# Admin
|
||||||
|
PDS_ADMIN_EMAIL=
|
||||||
|
PDS_ADMIN_PASSWORD=
|
||||||
|
|
||||||
|
# General configuration
|
||||||
|
LOG_ENABLED=true
|
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# IDEA
|
||||||
|
.idea/
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
# App
|
||||||
|
/.env
|
||||||
|
/pds/
|
80
README.md
Normal file
80
README.md
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
# Bluesky PDS
|
||||||
|
|
||||||
|
Easy bluesky PDS configuration with docker and nginx as reverse proxy.
|
||||||
|
|
||||||
|
## PDS configuration
|
||||||
|
|
||||||
|
Create `pds` directory.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ mkdir pds
|
||||||
|
```
|
||||||
|
|
||||||
|
Copy `.env.sample` to `.env` and fill in the configuration.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ cp .env.sample .env
|
||||||
|
$ nano .env
|
||||||
|
```
|
||||||
|
|
||||||
|
## Nginx
|
||||||
|
|
||||||
|
`/etc/nginx/sites-enabled/pds.conf`
|
||||||
|
```nginx configuration
|
||||||
|
server
|
||||||
|
{
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name {{SERVER_NAME}};
|
||||||
|
|
||||||
|
# Let's Encrypt
|
||||||
|
location /.well-known/acme-challenge/ { root /usr/share/nginx/html; allow all; }
|
||||||
|
|
||||||
|
# HTTPS redirection.
|
||||||
|
location / { return 301 https://$host$request_uri; }
|
||||||
|
}
|
||||||
|
|
||||||
|
server
|
||||||
|
{
|
||||||
|
listen 443 ssl http2;
|
||||||
|
listen [::]:443 ssl http2;
|
||||||
|
server_name {{SERVER_NAME}};
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/{{SERVER_NAME}}/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/{{SERVER_NAME}}/privkey.pem;
|
||||||
|
ssl_trusted_certificate /etc/letsencrypt/live/{{SERVER_NAME}}/chain.pem;
|
||||||
|
|
||||||
|
# Generic SSL configuration.
|
||||||
|
include ssl.conf;
|
||||||
|
|
||||||
|
location /
|
||||||
|
{
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_pass http://localhost:8051;
|
||||||
|
|
||||||
|
client_max_body_size 30m;
|
||||||
|
}
|
||||||
|
|
||||||
|
access_log none;
|
||||||
|
error_log /var/log/nginx/{{SERVER_NAME}}.error.log;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`/etc/nginx/ssl.conf`
|
||||||
|
```nginx configuration
|
||||||
|
ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
|
ssl_ecdh_curve sect571r1:secp521r1:brainpoolP512r1:secp384r1:prime256v1;
|
||||||
|
ssl_ciphers EECDH+AESGCM:EECDH+CHACHA20:EECDH+AES:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256;
|
||||||
|
ssl_dhparam dhparam.pem;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
|
||||||
|
ssl_stapling on;
|
||||||
|
ssl_stapling_verify on;
|
||||||
|
|
||||||
|
ssl_session_cache shared:SSL:10m;
|
||||||
|
ssl_session_timeout 5m;
|
||||||
|
ssl_session_tickets on;
|
||||||
|
```
|
18
docker-compose.yml
Normal file
18
docker-compose.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
pds:
|
||||||
|
container_name: bluesky-pds
|
||||||
|
image: ghcr.io/bluesky-social/pds:0.4
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8051:3000"
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: ./pds
|
||||||
|
target: /pds
|
||||||
|
environment:
|
||||||
|
PDS_DATA_DIRECTORY: "/pds"
|
||||||
|
PDS_BLOBSTORE_DISK_LOCATION: "/pds/blocks"
|
||||||
|
env_file:
|
||||||
|
- .env
|
Loading…
Reference in New Issue
Block a user