Choose your modules
Click to add or remove. Required dependencies are pulled in for you and shown in amber — qBittorrent will always bring Gluetun with it.
Storage
Where things live on your server. The layout choice below matters more than it looks — it decides whether finished downloads are moved instantly or copied, using twice the disk.
id on your server. On Docker Desktop, leave at 1000.America/New_York. Detected from your browser.Connection
Credentials
Secrets
Generated in your browser with crypto.getRandomValues — the same source of randomness your browser uses for HTTPS. They never leave this page, and stay masked on screen until you choose to reveal one.
Review
A last check before the files are written.
Your files
Copy each one, or download them. Put them all in the same folder and run docker compose up -d — or paste the Compose and environment files into an Arcane project.
Where do these files go?
Downloading them is half the job. Here is where they actually go — start with the first if you would rather not open a terminal.
Paste it straight into Arcane
The easiest route, and the one to use if the command line makes you uneasy
Arcane can create the whole project for you from the browser. You never touch a folder, a text editor or a terminal — you copy from this page and paste into Arcane.
- In Arcane, open Projects and choose New Project.
- Name it —
mediais fine. - Come back here, open the docker-compose.yml tab above and press Copy. Paste it into Arcane's Compose editor.
- Open the .env tab, press Copy, and paste that into the project's environment field. This is where your secrets go, so Arcane holds them rather than a file you have to manage.
- Press Deploy.
Arcane pulls the images and starts everything. The first run takes a few minutes. After that you start, stop, update and read logs from the same page.
./Caddyfile from the project folder, so that file has to exist on disk beside it. Pasting only the Compose and environment text leaves nothing to mount and Caddy will not start. Use the project folder or Git Sync route below instead, or add the Caddyfile to the project directory afterwards.Arcane, via a project folder
If you prefer files on disk
Arcane shows any folder in its projects directory as a project. Make a folder, put the files in it, and it appears in the UI ready to deploy.
cd /opt/stacks # your Arcane projects dir mkdir media # put docker-compose.yml and .env inside
Refresh Arcane's Projects page and it is there. Press deploy.
/opt/stacks, mount them into Arcane as /opt/stacks:/opt/stacks — the same path on both sides. Compose files use relative paths and break if the two differ.Arcane, via Git Sync
Best if you want history and rollbacks
Arcane has GitOps built in. Keep your Compose file in a repository, point Arcane at it, and pushing a change redeploys the stack.
# in a new, PRIVATE repository
git init
git add docker-compose.yml .env.example .gitignore README.md
git commit -m "Initial stack"
git push
Then in Arcane: Projects → Git Sync, give it the repository URL, a branch, and the path to the compose file inside the repo.
.gitignore already excludes .env, and Git Sync only pulls the compose file itself, not sibling files. So set your real values in Arcane instead: Customization → Variables for values shared across projects, or the project's own .env in Arcane. Commit .env.example so you have a record of which variables exist.Arcane, via its API
One command, if you tick the deploy script above
The generator can include deploy-to-arcane.sh, which creates the project in Arcane and starts it.
bash deploy-to-arcane.sh
It asks for your Arcane URL and API key. The key is typed in with the input hidden, and is never written to a file or an environment variable.
Create the key in Arcane under Settings → API Keys. The script finds your environment, uploads the Compose and env content, and deploys.
environments:read projects:create projects:deploy
Run
bash deploy-to-arcane.sh --permissions to list what your instance actually offers, and the script names the missing one if a call is refused.Straight from a terminal
No Arcane needed
Put every file in one folder and bring it up.
mkdir -p ~/media-server && cd ~/media-server
# put the generated files here
docker compose up -d
docker compose logs -f
Keep .env beside docker-compose.yml — Compose reads it automatically from the same directory.