`cp .env.example .env && cargo run` — der im README dokumentierte Ablauf — schlug bisher mit `missing env: PDS_HOST` fehl: nichts im Prozess hat die Datei je gelesen. Beide Bins rufen jetzt als erstes `dotenvy::dotenv()` auf; echte Umgebungsvariablen gewinnen weiterhin. Dazu .env.example am Code verifiziert: * PDS_JWT_SECRET war weder Hex noch ein gültiger P-256-Skalar. jwt_issuer.rs macht hex::decode + p256::SecretKey::from_bytes; ein ungültiger Wert lässt den Server starten, aber jeder Pfad über server_p256_public_multibase antwortet 500 — also nicht nur create/refreshSession, sondern auch jeder Record-Write (repo.rs, feed.rs, blob.rs, profile.rs). * JETSTREAM_COLLECTIONS fehlten app.twi.post (das eigene 160-Zeichen-Lexicon) und app.bsky.actor.profile, obwohl der Indexer beide verarbeitet. * APP_ENV entfernt — wird nirgends gelesen. * PDS_INTERNAL_URL, APPVIEW_INTERNAL_URL, APPVIEW_HANDLE_SYNC_INTERVAL_SECS und die MAARCADETWEET_*-Overrides des Clients ergänzt. * S3_BUCKET_APPVIEW als das markiert, was es ist: Pflichtvariable ohne Leser. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013HC9HLrUU1LNwkzp8nkDLX
59 lines
1.5 KiB
TOML
59 lines
1.5 KiB
TOML
[package]
|
|
name = "pds-server"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
description = "maarcadetweet PDS server (bin)"
|
|
|
|
[lints.rust]
|
|
unsafe_code = "forbid"
|
|
|
|
[[bin]]
|
|
name = "pds-server"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
tokio = { workspace = true }
|
|
dotenvy = { workspace = true }
|
|
axum = { workspace = true }
|
|
tower = { workspace = true }
|
|
tower-http = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
sqlx = { workspace = true }
|
|
chrono = { workspace = true }
|
|
at-shared = { workspace = true }
|
|
at-crypto = { workspace = true }
|
|
at-identity = { workspace = true }
|
|
at-lexicon = { workspace = true }
|
|
at-repo = { workspace = true }
|
|
at-mst = { workspace = true }
|
|
at-blob = { workspace = true }
|
|
argon2 = { workspace = true }
|
|
ciborium = { workspace = true }
|
|
hex = { workspace = true }
|
|
rand = { workspace = true }
|
|
uuid = { workspace = true }
|
|
bytes = { workspace = true }
|
|
cid = { workspace = true }
|
|
k256 = { workspace = true }
|
|
p256 = { workspace = true }
|
|
unsigned-varint = "0.8"
|
|
url = { workspace = true }
|
|
reqwest = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
tokio = { workspace = true }
|
|
reqwest = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
uuid = { workspace = true }
|
|
cid = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
hex = { workspace = true }
|
|
sqlx = { workspace = true }
|
|
at-crypto = { workspace = true }
|