Repository navigation
Arcane, ConvertX, Formbricks, Hemmelig, Karakeep: require your own secrets - #367
Merged
Merged
Conversation
…crets These stacks shipped public sample values for their secrets, in compose.yaml or in .env. A stack started with them unless the user replaced each one by hand. Leave the secrets empty in .env and make Compose stop with an error when one is missing, as Homarr and Docmost already do. Document the values and the upgrade steps in each README.
jackspiering
force-pushed
the
require-own-secrets
branch
from
October 8, 2026 15:28
c37ddc0 to
8d17034
Compare
crypt0rr
approved these changes
Oct 8, 2026
This was referenced Oct 8, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Five stacks shipped public sample values for their secrets. A stack started with them unless the user replaced each one by hand, so an installation could run with a signing or encryption key that anyone can read in this repository.
This pull request leaves the secrets empty in
.envand makes Compose stop with an error when one is missing. Homarr, Docmost, and Speedtest Tracker already work this way.ENCRYPTION_KEY,JWT_SECRETcompose.yamlJWT_SECRETcompose.yamlBETTER_AUTH_SECRETcompose.yamlNEXTAUTH_SECRET,ENCRYPTION_KEY,CRON_SECRET.envNEXTAUTH_SECRET,MEILI_MASTER_KEY.envcompose.yaml: read each secret as${VAR:?Set VAR in .env}. Karakeep passes its settings throughenv_file, so its two secrets are also listed underenvironmentto get the same check..env: an empty entry for each secret, with the command that generates a value.README.md(service): the "Before you start" section names the secrets and the command, and a new "Upgrading" section explains what to do with an existing installation.Related Issues
Verification
With the empty
.envfrom this branch,docker compose config --quietstops in each of the five directories, for example:Each stack then ran from a scratch copy with generated values. A stand-in container replaced Tailscale, because the change does not concern the network.
openssl rand -base64 32/answers200openssl rand -hex 32/redirects to the setup pageopenssl rand -hex 32/answers200openssl rand -base64 36/signinanswers200openssl rand -hex 32/healthanswers200No container restarted in any of the runs. Karakeep and Formbricks also had their address set (
NEXTAUTH_URL,TS_URL), which they need to start.rumdl check --config .markdownlint.ymlon the five READMEs: passed.git diff --check: passed.Not tested: an upgrade of an installation with existing data. The "Upgrading" sections state what follows from a changed signing or encryption key and do not describe a tested migration.
Checklist
Additional Context
.env, also for users who had replaced the sample value incompose.yaml. Formbricks and Karakeep are unaffected when the user's.envalready has values. The READMEs explain this under "Upgrading".docker compose config --quietfails for these five directories until the secrets are set, as it already does for Docmost, Homarr, Homebox, NetBox, Seafile, SearXNG, and Speedtest Tracker. A validator such as the one in Add service contract enforcement workflow #330 has to allow for that.BETTER_AUTH_URLin Hemmelig, and the fixed database password in Formbricks.