Something went wrong. Try again.
a pds written in elixir tempest.desertthunder.dev
elixir phoenix atproto pds
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667# Tempest production env template.# Copy values into Railway variables, a local .env file, or another secret manager.
PHX_SERVER=truePOOL_SIZE=5
SECRET_KEY_BASE=replace-with-mix-phx-gen-secretTEMPEST_ADMIN_TOKEN_HASH=replace-with-scripts-ar-py-output
TEMPEST_HOSTNAME=tempest.example.comTEMPEST_PUBLIC_URL=https://tempest.example.comTEMPEST_DATA_DIR=/var/lib/tempestTEMPEST_HOSTED_DID_METHOD=plc
TEMPEST_BLOB_MAX_BYTES=10000000TEMPEST_CRAWLERS=https://bsky.network,https://vsky.networkTEMPEST_APPVIEW_URL=https://api.bsky.app
# Railway supplies PORT. Set PORT only for local compose or a host that requires it.# PORT=4000## Do not source this file in a shell after replacing TEMPEST_ADMIN_TOKEN_HASH.# Argon2 hashes contain "$" characters. Use Railway variables or docker env_file.
# Recommended staging/production profile: Cloudflare R2 for blobs and backups.TEMPEST_BLOB_STORE=s3TEMPEST_BLOB_S3_ENDPOINT=https://<ACCOUNT_ID>.r2.cloudflarestorage.comTEMPEST_BLOB_S3_BUCKET=tempest-blobsTEMPEST_BLOB_S3_REGION=autoTEMPEST_BLOB_S3_ACCESS_KEY_ID=replace-with-r2-access-keyTEMPEST_BLOB_S3_SECRET_ACCESS_KEY=replace-with-r2-secret-key
TEMPEST_BACKUP_STORE=s3TEMPEST_BACKUP_S3_ENDPOINT=https://<ACCOUNT_ID>.r2.cloudflarestorage.comTEMPEST_BACKUP_S3_BUCKET=tempest-backupsTEMPEST_BACKUP_S3_REGION=autoTEMPEST_BACKUP_S3_ACCESS_KEY_ID=replace-with-r2-access-keyTEMPEST_BACKUP_S3_SECRET_ACCESS_KEY=replace-with-r2-secret-key
# Local-only storage profile. Use this instead of the R2 block above for local# compose or private testing.# TEMPEST_BLOB_STORE=local# TEMPEST_BACKUP_STORE=local
# Optional PLC rotation/recovery private key material. Set both in production and# back them up outside the deploy platform. Generate each value with:# mix run -e 'gen = fn gen -> key = :crypto.strong_rand_bytes(32); try do :crypto.generate_key(:ecdh, :secp256k1, key); "u" <> Base.url_encode64(key, padding: false) rescue _ -> gen.(gen) end end; IO.puts(gen.(gen))'# TEMPEST_PLC_ROTATION_KEY=# TEMPEST_PLC_RECOVERY_KEY=
# Optional SMTP. Leave disabled for first staging unless mail delivery is tested.TEMPEST_SMTP_ENABLED=false# TEMPEST_SMTP_HOST=smtp.example.com# TEMPEST_SMTP_PORT=587# TEMPEST_SMTP_USERNAME=# TEMPEST_SMTP_PASSWORD=# TEMPEST_SMTP_SSL=false# TEMPEST_SMTP_TLS=if_available# TEMPEST_SMTP_AUTH=if_available# TEMPEST_SMTP_FROM_NAME=Tempest# TEMPEST_SMTP_FROM_ADDRESS=no-reply@tempest.example.com
# Optional advanced runtime knobs.# DNS_CLUSTER_QUERY=# RELEASE_COOKIE=replace-with-openssl-rand-base64-48# ELIXIR_ERL_OPTIONS=-kernel inet_dist_listen_min 9100 inet_dist_listen_max 9100 +sbwt none +sbwtdcpu none +sbwtdio none