move transmission and slskd credentials into the database
both sidecars read their upstream from a new service_connections table instead of process.env: one row per (user, service), the secret encrypted at rest, upserted through a /_config route the app drives. transmission gains a Connection section, soulseek gains one too, and both take over the whole app while nothing is stored. TRANSMISSION_URL/USER/PASS/RPC_PATH and SLSKD_URL/API_KEY can come out of .env. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+6
-11
@@ -19,22 +19,17 @@ BROWSER_RELAY_PORT=18792
|
||||
# and never sees them. An unset upstream URL is not fatal — the sidecar logs a warning at boot and
|
||||
# answers 503 until it is set, so you can run Officer with any subset of these configured.
|
||||
|
||||
# Transmission (officer-transmission). TRANSMISSION_USER/PASS are only needed if the daemon has RPC
|
||||
# auth turned on; leave them empty otherwise, since Transmission rejects an empty Basic header.
|
||||
# TRANSMISSION_RPC_PATH defaults to /transmission/rpc and only needs setting behind a reverse proxy
|
||||
# that mounts the RPC endpoint somewhere else.
|
||||
TRANSMISSION_URL=http://127.0.0.1:9091
|
||||
TRANSMISSION_USER=
|
||||
TRANSMISSION_PASS=
|
||||
# TRANSMISSION_RPC_PATH=/transmission/rpc
|
||||
# Transmission (officer-transmission) is configured from the app, not from here — Transmission →
|
||||
# Connection. The daemon URL, the optional RPC auth and the RPC path live in `service_connections`,
|
||||
# with the password encrypted, so nothing outside the sidecar can read it.
|
||||
|
||||
# InvoiceShelf (officer-invoiceshelf) is configured from the app, not from here — Invoices → Connection.
|
||||
# Instances, their Sanctum tokens and the company each one is pinned to live encrypted in
|
||||
# `invoiceshelf_accounts`, so nothing outside the sidecar can read a token.
|
||||
|
||||
# slskd (officer-slskd). The key is injected as X-API-Key on every forwarded request.
|
||||
SLSKD_URL=http://127.0.0.1:5030
|
||||
SLSKD_API_KEY="<slskd api key>"
|
||||
# slskd (officer-slskd) is configured from the app, not from here — Soulseek → Connection. The
|
||||
# daemon URL and its API key live encrypted in `service_connections`; the sidecar injects the key as
|
||||
# X-API-Key on every forwarded request.
|
||||
|
||||
# Vaultwarden (officer-vault). VAULT_STORE_KEY encrypts stored secrets at rest — any strong secret
|
||||
# of 16+ chars works, and CHANGING IT MAKES EXISTING STORED SECRETS UNREADABLE.
|
||||
|
||||
Reference in New Issue
Block a user