App Submission: Arcane (#4017)

Co-authored-by: al-lac <lackner.alex@gmail.com>
This commit is contained in:
Denny Subke 2025-11-28 14:32:44 +01:00 committed by GitHub
parent 2c74fde1de
commit 9536d8fd32
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 140 additions and 0 deletions

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

View File

@ -0,0 +1 @@

43
arcane/docker-compose.yml Normal file
View File

@ -0,0 +1,43 @@
version: "3.7"
services:
app_proxy:
environment:
APP_HOST: arcane_arcane_1
APP_PORT: 3552
docker:
image: docker:27.2.0-dind@sha256:f9f72ad901a78f27be922b2d320bbc263174f12919c1b37e6a01f828fa904565
privileged: true
network_mode: host
stop_grace_period: 1m
restart: on-failure
environment:
DOCKER_ENSURE_BRIDGE: "dind0:10.32.0.1/16"
entrypoint: /entrypoint.sh
command: >
dockerd
--bridge dind0
--data-root /data/data
--exec-root /data/exec
--host unix:///data/docker.sock
--pidfile /data/docker.pid
volumes:
- ${APP_DATA_DIR}/entrypoint.sh:/entrypoint.sh
- ${APP_DATA_DIR}/data/docker:/data
arcane:
image: ghcr.io/getarcaneapp/arcane:v1.9.0@sha256:0077d89944dea0be1bafa06a005bf6744b7551bcc3d07773928dd7457a8bad43
depends_on:
- docker
restart: on-failure
environment:
APP_URL: http://${DEVICE_DOMAIN_NAME}:3552
PUID: 1000
PGID: 1000
ENCRYPTION_KEY: ${APP_PASSWORD}
JWT_SECRET: ${APP_PASSWORD}
volumes:
- ${APP_DATA_DIR}/data/app_data:/app/data
- ${APP_DATA_DIR}/data/projects:/app/data/projects
- ${APP_DATA_DIR}/data/docker:/var/run

38
arcane/entrypoint.sh Executable file
View File

@ -0,0 +1,38 @@
#!/bin/sh
pidfile="/var/run/docker.pid"
if [[ -f "${pidfile}" ]]
then
rm -f "${pidfile}"
fi
for command in iptables iptables-restore iptables-restore-translate iptables-save iptables-translate
do
ln -sf /sbin/xtables-nft-multi /sbin/$command
done
ensure_bridge_exists() {
local name="${1}"
local ip_range="${2}"
if ip link show "${name}" &>/dev/null
then
echo "Bridge '${name}' already exists. Skipping creation."
ip addr show "${name}"
return
fi
echo "Bridge '${name}' does not exist. Creating..."
ip link add "${name}" type bridge
ip addr add "${ip_range}" dev "${name}"
ip link set "${name}" up
echo "Bridge '${name}' is now up with IP range '${ip_range}'."
ip addr show "${name}"
}
if [[ "${DOCKER_ENSURE_BRIDGE}" != "" ]]
then
bridge="${DOCKER_ENSURE_BRIDGE%%:*}"
ip_range="${DOCKER_ENSURE_BRIDGE#*:}"
ensure_bridge_exists "${bridge}" "${ip_range}"
fi
exec dockerd-entrypoint.sh $@

56
arcane/umbrel-app.yml Normal file
View File

@ -0,0 +1,56 @@
manifestVersion: 1
id: arcane
category: developer
name: Arcane
version: "1.9.0"
tagline: An easy and modern Docker management platform
description: >-
⚠️ Make sure to only use named Docker volumes for your containers and projects. Data in bind-mounted volumes will be lost when the Arcane app is restarted or updated.
⚠️ Watch out for port conflicts between your custom Docker containers and your umbrelOS apps.
Arcane is a powerful and modern container management platform designed to simplify the way developers interact with Docker environments. It provides a seamless and visually appealing interface that brings all aspects of container management together in one place. Users can create, start, stop, and inspect containers, explore networks, manage images, and handle volumes with precision and control.
Beyond basic management, Arcane enhances productivity by offering integrated tools that developers typically rely on during their daily workflows. Its built-in terminal allows direct interaction with running containers, while the embedded code editor enables quick configuration or script adjustments without switching to external applications. Real-time system insights and detailed logging give users a clear view of their infrastructures performance and resource usage.
The platform is designed to bridge the gap between simplicity and advanced control. It combines a clean, modern design with powerful backend capabilities, making it equally suitable for developers experimenting locally and professionals managing larger setups. With Arcane, managing containers feels more like using a well-crafted development environment than an administrative dashboard, allowing users to focus on building and running applications instead of dealing with complex Docker commands.
🧩 Arcane on Umbrel is designed for advanced users who want complete control over their containers. Follow these recommendations to ensure a reliable and stable experience.
1. Persistent data: Always use named Docker volumes for your containers and projects. Any data stored in bind mounts will be lost when the Arcane app is updated or restarted.
2. Port usage: Be mindful of port conflicts between your containers, Umbrel system services, and other installed or future apps. Assign unique port numbers to prevent conflicts.
3. Restart behavior: Configure your containers with the restart policy set to unless stopped or always. This ensures they automatically restart after Arcane restarts or updates.
4. Web access: You can access any container that exposes a web interface at `umbrel.local:PORT_NUMBER`. For example, if your app runs on port 5050, open `http://umbrel.local:5050` in your browser.
website: https://getarcane.app/
dependencies: []
repo: https://github.com/getarcaneapp/arcane
support: https://github.com/getarcaneapp/arcane/issues
port: 3552
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
- 4.jpg
- 5.jpg
path: ""
defaultUsername: "arcane"
defaultPassword: "arcane-admin"
releaseNotes: ""
permissions:
- GPU
developer: Arcane
submitter: dennysubke
submission: https://github.com/getumbrel/umbrel-apps/pull/4017