chore: add Arcane and Dockhand TrueNAS compose files

This commit is contained in:
2026-07-09 14:40:53 +00:00
parent 61883814d2
commit 9c9dd3f85e
4 changed files with 125 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
# ============================================
# Arcane — TrueNAS Compose Draft
# ============================================
# Target: TrueNAS regular Docker / Portainer Compose deployment.
# Source pattern:
# - TrueNAS Docker data root: /mnt/HomeStorage02/Docker/<ContainerName>/...
# - Container user convention: PUID=568 / PGID=568 where supported.
#
# Deploy after review:
# docker compose --env-file arcane-truenas.env -f arcane-truenas-compose.yml up -d
#
# Validate:
# docker compose --env-file arcane-truenas.env.example -f arcane-truenas-compose.yml config
#
# Notes:
# - Arcane needs access to /var/run/docker.sock to manage the local Docker host.
# - Keep ENCRYPTION_KEY and JWT_SECRET runtime-only; generate them on TrueNAS.
# - Keep the Docker socket exposure LAN/VPN-only; do not expose this UI publicly.
# - ARCANE_PROJECTS_DIRECTORY is bind-mounted at the same host/container path so
# Arcane-created Compose projects resolve correctly on the Docker host.
# ============================================
services:
arcane:
image: ${ARCANE_IMAGE:-ghcr.io/getarcaneapp/manager}:${ARCANE_TAG:-latest}
container_name: arcane
restart: unless-stopped
init: true
ports:
- "${ARCANE_HTTP_PORT:-3552}:3552"
environment:
ENCRYPTION_KEY: ${ENCRYPTION_KEY:?set ENCRYPTION_KEY in arcane-truenas.env}
JWT_SECRET: ${JWT_SECRET:?set JWT_SECRET in arcane-truenas.env}
PROJECTS_DIRECTORY: ${ARCANE_PROJECTS_DIRECTORY:-/mnt/HomeStorage02/Docker/Arcane/projects}
TZ: ${TZ:-America/Chicago}
PUID: ${PUID:-568}
PGID: ${PGID:-568}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${TRUENAS_DOCKER_ROOT:-/mnt/HomeStorage02/Docker}/Arcane/data:/app/data
- ${ARCANE_PROJECTS_DIRECTORY:-/mnt/HomeStorage02/Docker/Arcane/projects}:${ARCANE_PROJECTS_DIRECTORY:-/mnt/HomeStorage02/Docker/Arcane/projects}
- ${TRUENAS_DOCKER_ROOT:-/mnt/HomeStorage02/Docker}/Arcane/builds:/builds
cgroup: host
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "./arcane", "health", "--timeout", "2s"]
interval: 10s
timeout: 3s
retries: 5
start_period: 15s

View File

@@ -0,0 +1,24 @@
# Arcane TrueNAS environment example for Wheelz's HomeLab.
# Copy to arcane-truenas.env on TrueNAS/Portainer and fill runtime-only values there.
# Do not commit real secrets.
ARCANE_IMAGE=ghcr.io/getarcaneapp/manager
ARCANE_TAG=latest
ARCANE_HTTP_PORT=3552
TZ=America/Chicago
# Wheelz TrueNAS Docker directory pattern.
TRUENAS_DOCKER_ROOT=/mnt/HomeStorage02/Docker
PUID=568
PGID=568
# Arcane secrets. Generate on the deployment host and do not commit real values.
# Example commands:
# openssl rand -hex 32
# openssl rand -hex 32
ENCRYPTION_KEY=replace_me_with_a_random_32_byte_hex_value
JWT_SECRET=replace_me_with_a_random_32_byte_hex_value
# Arcane Compose project storage. This path is mounted into the container at the
# same path so Docker can resolve project files from the host side.
ARCANE_PROJECTS_DIRECTORY=/mnt/HomeStorage02/Docker/Arcane/projects

View File

@@ -0,0 +1,37 @@
# ============================================
# Dockhand — TrueNAS Compose Draft
# ============================================
# Target: TrueNAS regular Docker / Portainer Compose deployment.
# Source pattern:
# - TrueNAS Docker data root: /mnt/HomeStorage02/Docker/<ContainerName>/...
# - Container user convention: PUID=568 / PGID=568 where supported.
#
# Deploy after review:
# docker compose --env-file dockhand-truenas.env -f dockhand-truenas-compose.yml up -d
#
# Validate:
# docker compose --env-file dockhand-truenas.env.example -f dockhand-truenas-compose.yml config
#
# Notes:
# - Dockhand needs access to /var/run/docker.sock to manage the local Docker host.
# - Keep the Docker socket exposure LAN/VPN-only; do not expose this UI publicly.
# - Persistent app data is stored under /app/data.
# ============================================
services:
dockhand:
image: ${DOCKHAND_IMAGE:-fnsys/dockhand}:${DOCKHAND_TAG:-latest}
container_name: dockhand
restart: unless-stopped
init: true
ports:
- "${DOCKHAND_HTTP_PORT:-3000}:3000"
environment:
TZ: ${TZ:-America/Chicago}
PUID: ${PUID:-568}
PGID: ${PGID:-568}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${TRUENAS_DOCKER_ROOT:-/mnt/HomeStorage02/Docker}/Dockhand/data:/app/data
security_opt:
- no-new-privileges:true

View File

@@ -0,0 +1,13 @@
# Dockhand TrueNAS environment example for Wheelz's HomeLab.
# Copy to dockhand-truenas.env on TrueNAS/Portainer and adjust runtime values there.
# Do not commit real secrets.
DOCKHAND_IMAGE=fnsys/dockhand
DOCKHAND_TAG=latest
DOCKHAND_HTTP_PORT=3000
TZ=America/Chicago
# Wheelz TrueNAS Docker directory pattern.
TRUENAS_DOCKER_ROOT=/mnt/HomeStorage02/Docker
PUID=568
PGID=568