START HERE

Set up your own EnderChest.

EnderChest runs on your computer. This website is only the download and guide; it does not host your files or your invited users.

Before you begin

  • A Windows 10/11 or current Linux computer that can stay powered on.
  • Docker Desktop on Windows, or Docker Engine and the Compose plugin on Linux. Start Docker first.
  • An internet connection for the first Docker image download and app build.
  • A new or empty folder for uploaded file bytes, plus room for database and Garage metadata.

Download the Windows ZIP or Linux tar.gz and extract the whole archive. The setup launcher needs the files beside it; it will not work by itself.

Windows

  1. Install Docker Desktop, open it, and wait until the Docker engine says it is running. Docker Desktop may require WSL 2 or virtualization.
  2. Extract the ZIP. Open the extracted EnderChest-0.1.0 folder.
  3. Double-click Setup-EnderChest.cmd. The setup page asks for the first admin account and a new or empty folder for your files.
  4. Keep the setup window open while Docker builds. When it reports ready, open http://localhost:3000 on the host and sign in.

Windows may ask whether to run a downloaded script. Inspect the files first; the source is on GitHub.

Ubuntu, Mint & other Linux hosts

  1. Install Docker Engine and the Compose plugin. Start Docker. Check that docker info and docker compose version work for your user. You may need to sign out and back in after changing Docker group membership.
  2. Extract the archive, enter its folder, and run setup:
tar -xzf EnderChest-0.1.0.tar.gz
cd EnderChest-0.1.0
bash setup.sh

On a desktop, setup opens a local page. On a headless server, it uses an interactive terminal. Use bash setup.sh --cli to force terminal setup. When ready, open http://localhost:3000 on the host.

By SSH, use bash setup.sh --web with a local SSH port forward for port 4400. The wizard is bound to localhost, not publicly exposed.

Let invited people reach you

Local setup does not make your computer reachable from outside. Once it works locally, run Publish-EnderChest.cmd on Windows or bash publish.sh on Linux. Choose one method:

  • Tailscale Funnel: install Tailscale on the host and sign in to the host's own account. Funnel gives it a public *.ts.net HTTPS address. Invitees need only a browser. Funnel has bandwidth limits.
  • Own HTTPS provider: use a public HTTPS address that routes all app requests to http://127.0.0.1:3000 on the host and supports file streaming.
  • Own domain: use separate app and file hostnames, a reachable public IP, forwarded ports 80 and 443, and the included Caddy HTTPS setup. Do not expose PostgreSQL, Garage, or port 3000.

Before sharing an invite, test the public address from a phone on mobile data. Sign in, upload and download a file, and check again after a restart. Your host and connection service must stay on. Details are in the bundle's docs/public-access.md.

Backups & updates

Back up both PostgreSQL and Garage object data. The bundle's README has backup and isolated recovery-drill commands. Keep a copy on another disk or machine, not only on the host.

Before updating, make and verify a backup. Extract the newer complete bundle to a new folder, follow its release notes, and keep your Docker volumes and chosen storage folder. Never use docker compose down --volumes on an installation with data.

When setup stops

Docker is not running
Open Docker Desktop on Windows, or start the Docker service on Linux. Run docker info before retrying.
Compose plugin is missing
Install Docker Compose v2 and check docker compose version. The old docker-compose executable is not enough.
Port 3000 or 4400 is busy
Close the program using the port, then run setup again. Port 4400 is only for the local setup page.
Storage folder is not empty
Choose a new or empty folder. Setup does not overwrite another folder's contents.
Tailscale is not ready
Install and sign in to Tailscale on the host. Confirm tailscale status works. Funnel may ask you to enable it in your tailnet.

Still stuck? Report an issue with the exact error, but never post passwords or .env files.