Skip to content

Copyparty: require your own password - #369

Open
jackspiering wants to merge 2 commits into
mainfrom
copyparty-require-password
Open

jackspiering wants to merge 2 commits into
mainfrom
copyparty-require-password

Conversation

@jackspiering

@jackspiering jackspiering commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Copyparty shipped the account admin with the password changeme and read-write access to the shared host folder. It was the last working default credential in any compose or .env file after #367 and #368.

  • compose.yaml now reads the password as ${COPYPARTY_PASSWORD:?Set COPYPARTY_PASSWORD in .env}.
  • .env has a # Required: comment and an empty COPYPARTY_PASSWORD=.
  • The README updates "Before you start" and "First run", and adds an "Upgrading" section for users who changed the password in compose.yaml or kept changeme. The section tells them to run docker compose up -d --force-recreate, because Compose writes the configuration file only when it creates the container.
  • The README also says that ./config/copyparty.conf holds the password as plain text and that every user of the Docker host can read it.

Related Issues

  • None.

Verification

  • docker compose config --quiet passes with a dummy value and stops with required variable COPYPARTY_PASSWORD is missing a value without one. The rendered account line is admin:<password>.
  • Upstream's [accounts] parser splits on the first colon, so the format is valid. The README asks for letters and digits only, which openssl rand -hex 32 satisfies.
  • rumdl check --config .markdownlint.yml . (0.2.78) and git diff --check are clean.
  • Run on the Tailnet with a test auth key: through Tailscale Serve, a request without a password or with a wrong one returns 403, the right password returns 200, and an upload returns 201.
  • Upgrade from main on a scratch stack: after docker compose restart and after a plain docker compose up -d, changeme still works and the new password is rejected. After docker compose up -d --force-recreate, only the new password works.
  • Tried and not adopted: writing the file as user 1000 with mode 0400 through uid, gid and mode. It works on Compose 2.23.1, 2.38.2 and 5.6.0, but Compose 5.6.0 warns on every command that these keys are not supported outside Swarm mode.

Checklist

  • I have performed a self-review of my code and followed the templates structure.
  • I have added verification that the stack works as expected.
  • I have updated necessary documentation (e.g. frontpage README.md ).
  • I have selected the correct label(s) for this PR.

Additional Context

From an external review of the repository (section 3.1). The placeholder host path in the Copyparty stack is a separate item and is not changed here.

@jackspiering
jackspiering requested a review from crypt0rr October 10, 2026 13:06
Compose writes the configuration file only when it creates the container. After the upgrade, a restart or a plain docker compose up -d kept the old file, so changeme stayed valid although .env held a new password. The README now gives docker compose up -d --force-recreate for the upgrade and for later password changes, and says that the file holds the password in plain text.
@jackspiering jackspiering added the enhancement New feature, change or request label Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature, change or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant