Projects
Create, deploy, and edit Docker Compose projects in Arcane.
A project is a folder with a Compose file and related files, such as .env and config files, that Arcane deploys and manages as one unit. Use one wherever you’d run docker compose up. To manage individual containers, including ones started outside Arcane, use Containers.
Where projects live
Section titled “Where projects live”Each project is a folder in the Projects Directory: /app/data/projects by default, or the absolute path set with ARCANE_PROJECTS_DIRECTORY or under Settings → Storage & Limits. Arcane scans it, including nested folders, for Compose files, so projects created outside Arcane show up too. Same-named folders are told apart by full path.
Mounting the folder at the same path on host and container is simplest. Installation explains the mount and path translation when they differ.
Browse projects
Section titled “Browse projects”Open Projects in the sidebar. The list shows name, status (running, partially running, stopped), service count, and directory.
The Labels filter takes a key such as com.example.team or an exact match such as com.example.team=media. A project matches when any existing service container has that label. This is separate from colored tags.
Create a project
Section titled “Create a project”- Click Create Project, enter a name, and pick the environment from the name field.
- Paste or write the Compose YAML.
- Optional: add variables in the Environment Configuration (.env) editor, saved to
.envnext to the Compose file. Leave it empty and no.envis created. - Click Create Project, or press
Ctrl/Cmd+S. Arcane saves the project and tries to start it.
The folder is named after the project. If a same-named folder exists with no Compose file and no other project using it, Arcane uses it and keeps its files; an existing .env is kept if the .env editor is empty, and different content is rejected. Otherwise Arcane adds a number, such as myapp-1.
Control a project
Section titled “Control a project”- Up: start all services.
- Down: stop and remove all containers.
- Restart: stop and start without recreating containers.
- Redeploy: pull the latest images and restart.
- Destroy: remove the project and its resources. You choose whether to keep or delete volumes and project files.
Set deploy options
Section titled “Set deploy options”Open the Deploy dropdown to set:
- Pull policy: pull if not present, always pull latest, or never pull. Defaults to the environment’s Default Deploy Pull Policy (Settings → Docker).
- Force recreate containers: recreate every container even if unchanged.
- Recreate changed volumes (data loss): let Compose recreate a volume whose configuration no longer matches the Compose file.
Arcane remembers pull policy and force recreate. Recreate changed volumes resets after each deploy, and applies to the whole batch for bulk Up.
Deploys pull service image: references, lifecycle hook images such as pre_start, and type: image volume sources, including for services with build:. Hook images follow the service’s pull policy; type: image volume sources are pulled only if missing.
Set the deploy wait timeout
Section titled “Set the deploy wait timeout”Deploys wait for depends_on conditions such as service_healthy and service_completed_successfully. If slow startup causes timeouts, raise Deploy Wait Timeout (Settings → Timeouts): default 600 seconds, range 30–14400. Dependencies using service_healthy must define a healthcheck.
Watch deploy output live
Section titled “Watch deploy output live”Deploy, Redeploy, and Pull are split buttons. Choose Watch output from the dropdown to run the action in an attached terminal window streaming Docker output. Deploy and Redeploy keep streaming container logs after startup, like an attached docker compose up. Otherwise, actions run in the background under Activity & Events.
Manage project files
Section titled “Manage project files”Turn on Workspace to browse project files in a tree and edit them in tabs, also on Create Project before the first deploy:
- New File / New Folder: create anywhere, including nested paths.
- Upload File: add any file, including binary, up to 10 MiB by default.
- Edit: open UTF-8 text files in tabs. Binary files can’t be edited.
- Rename, Move, and Delete: reorganize. Non-empty folders delete recursively.
Right-click a file or folder for these actions, or empty space to create or upload. Right-click in the editor for cut, copy, paste, and editor commands.
Changes are staged until you Save or press Ctrl/Cmd+S. Middle-click a tab to close it. Build and dependency folders (.git, node_modules, vendor, dist, build, and similar) are hidden. For Git Pull projects, sync-managed files are read-only.
File size, depth, and entry limits are set under Workspace limits.
Sync from Git
Section titled “Sync from Git”Pull deploys from Git: you edit in the repository, and Arcane pulls the files and can redeploy. Push backs up to Git: you edit in Arcane, and it commits the files without deploying or restarting. A project has one sync; to change direction, disconnect and create a new one. See Git Sync.
Build images from a project
Section titled “Build images from a project”If a service has a build: directive, the project page shows Build and Build & Deploy. See Image Builds for providers, history, and the build API.
Tag projects
Section titled “Tag projects”Add colored tags when creating a project, or from its table row or detail header. Click +, then Search or create a tag… to pick or create one with a color. Click a selected tag to remove it. Tags beyond three collapse under +N. Filter the Tags column by any selected tag, or search by name.
You can also declare tags in the Compose file’s x-arcane block:
x-arcane: tags: - name: database color: purpleCompose-defined tags apply on deploy and sync and show a lock icon; change them only in the Compose file.
- Tag names are trimmed and lowercased, up to 64 characters, with no commas.
- A tag name’s color is shared everywhere it’s used; attaching an existing name keeps its stored color.
- Each project holds up to 50 UI tags and 50 Compose tags.
- The tag catalog is per environment.
- Editing tags requires the
projects:updatepermission. Discovered (unmanaged) projects can’t be tagged.
Rename a project with managed volumes
Section titled “Rename a project with managed volumes”Renaming a stopped project copies its Compose-managed volumes to new names, updates the project, then removes the old volumes. Volumes with an explicit name: or external: true are left alone. The rename is blocked if the project is running, a target volume name exists, a source volume is attached to a container, or Docker reports insufficient space for the copy.
Nested folders and symlinks
Section titled “Nested folders and symlinks”For symlinked layouts (for example GNU Stow), turn on Follow Project Symlinks under Settings → Storage & Limits so Arcane follows child-directory symlinks.
A folder Arcane can’t read appears empty; others stay accessible.
Relative paths outside the projects mount (such as ../../data:/app/data) resolve against the host projects directory, as with docker compose up. include: entries may also point outside the project, such as a shared fragment (include: [../shared.yaml]).
Reference
Section titled “Reference”Supported Compose filenames
Section titled “Supported Compose filenames”Arcane recognizes compose.yaml / compose.yml, docker-compose.yaml / docker-compose.yml, podman-compose.yaml / podman-compose.yml, and a single unambiguous custom .yaml / .yml file in the project folder.
How Arcane picks a Compose file
Section titled “How Arcane picks a Compose file”When a folder has more than one YAML file, Arcane chooses in this order:
- A standard name from above.
- A custom file whose name matches the folder name (for example
radarr.yamlinRadarr-3/). - A single custom file with
composein its name. - Any single visible
.yaml/.ymlfile.
If two or more custom files are equally plausible, Arcane reports the directory as ambiguous instead of guessing.
Compose environment variables
Section titled “Compose environment variables”Arcane honors these Docker Compose pre-defined environment variables in the project’s .env:
| Variable | Effect |
|---|---|
COMPOSE_FILE |
Deploy a specific Compose file, or several merged in order. Separate entries with : (or the value of COMPOSE_PATH_SEPARATOR). The first entry is the base file. |
COMPOSE_PROFILES |
Comma-separated list of profiles to activate. |
COMPOSE_PROJECT_NAME |
Override the project name Compose uses. |
COMPOSE_ENV_FILES |
Additional env files to load, in order. |
COMPOSE_REMOVE_ORPHANS / COMPOSE_IGNORE_ORPHANS |
Control how containers left over from removed services are handled. |
COMPOSE_PARALLEL_LIMIT |
Cap how many operations Compose runs at once. |
Paths in COMPOSE_FILE and COMPOSE_ENV_FILES resolve relative to the project folder; entries outside it are rejected. With several files, the detail view lists them in a Multiple compose files card. The base file opens in the Compose editor; edit the others in Workspace.
Workspace limits
Section titled “Workspace limits”Set these on the Arcane container:
| Variable | Default | Sets |
|---|---|---|
ARCANE_PROJECT_WORKSPACE_MAX_FILE_SIZE_MB |
10 |
Maximum size of a single workspace file, in MiB |
ARCANE_PROJECT_WORKSPACE_MAX_DEPTH |
20 |
Maximum folder depth |
ARCANE_PROJECT_WORKSPACE_MAX_ENTRIES |
2000 |
Maximum number of files and folders |