mirror of
https://tangled.org/tranquil.farm/tranquil-pds
synced 2026-04-24 18:30:31 +00:00
44 lines
1.5 KiB
Markdown
44 lines
1.5 KiB
Markdown
# Tranquil PDS on kubernetes
|
|
|
|
If you're reaching for kubernetes for this app, you're experienced enough to know how to spin up:
|
|
|
|
- cloudnativepg (or your preferred postgres operator)
|
|
- a PersistentVolume for blob storage
|
|
- the app itself (it's just a container with some env vars)
|
|
|
|
You'll need a wildcard TLS certificate for `*.your-pds-hostname.example.com`. User handles are served as subdomains.
|
|
|
|
The container image expects:
|
|
- A TOML config file mounted at `/etc/tranquil-pds/config.toml` (or passed via `--config`)
|
|
- `DATABASE_URL` - postgres connection string
|
|
- `BLOB_STORAGE_PATH` - path to blob storage (mount a PV here)
|
|
- `PDS_HOSTNAME` - your PDS hostname (without protocol)
|
|
- `JWT_SECRET`, `DPOP_SECRET`, `MASTER_KEY` - generate with `openssl rand -base64 48`
|
|
- `CRAWLERS` - typically `https://bsky.network`
|
|
|
|
and more, check the example.toml for all options. Environment variables can override any TOML value.
|
|
You can also point to a config file via the `TRANQUIL_PDS_CONFIG` env var.
|
|
|
|
Health check: `GET /xrpc/_health`
|
|
|
|
## Custom homepage
|
|
|
|
Mount a ConfigMap with your `homepage.html` into the container's frontend directory and it becomes your landing page. Go nuts with it. Account dashboard is at `/app/` so you won't break anything.
|
|
|
|
```yaml
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: pds-homepage
|
|
data:
|
|
homepage.html: |
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head><title>Welcome to my PDS</title></head>
|
|
<body>
|
|
<h1>Welcome to my little evil secret lab!!!</h1>
|
|
<p><a href="/app/">Sign in</a></p>
|
|
</body>
|
|
</html>
|
|
```
|