This commit is contained in:
Mike McFetridge
2026-07-23 19:38:14 -04:00
parent 72272e4006
commit 84e1ead50c
283 changed files with 0 additions and 206 deletions
+2
View File
@@ -0,0 +1,2 @@
# Arcane agent token generated by Arcane when creating a remote environment.
ARCANE_AGENT_TOKEN='<< agent_token >>'
@@ -0,0 +1,46 @@
---
services:
<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane-agent' >>:
image: ghcr.io/getarcaneapp/agent:v2.1.0
restart: << restart_policy >>
<%- if container_name is string and container_name and (container_name | lower) not in ['true', 'false'] %>
container_name: << container_name >>
<%- endif %>
environment:
<%- if connection_mode == 'direct' %>
AGENT_MODE: "true"
<%- elif connection_mode == 'edge' %>
EDGE_AGENT: "true"
<%- endif %>
EDGE_TRANSPORT: "<< edge_transport >>"
AGENT_TOKEN: "${ARCANE_AGENT_TOKEN}"
MANAGER_API_URL: "<< manager_api_url >>"
TZ: "<< container_timezone >>"
volumes:
- << docker_socket_path >>:/var/run/docker.sock
<%- if volume_mode == 'mount' and volume_mount_path %>
- << volume_mount_path >>:/app/data
<%- else %>
- << service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane-agent' >>-data:/app/data
<%- endif %>
<%- if project_mount_path %>
- << project_mount_path >>:/app/data/projects
<%- endif %>
<%- if connection_mode == 'direct' %>
ports:
- "<< ports_agent >>:3553"
<%- endif %>
<%- if volume_mode == 'local' or (volume_mode == 'mount' and not volume_mount_path) %>
volumes:
<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane-agent' >>-data:
driver: local
<%- elif volume_mode == 'nfs' %>
volumes:
<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane-agent' >>-data:
driver: local
driver_opts:
type: nfs
o: addr=<< volume_nfs_server >>,nfsvers=4,<< volume_nfs_options >>
device: ":<< volume_nfs_path >>"
<%- endif %>
+247
View File
@@ -0,0 +1,247 @@
{
"slug": "arcane-agent",
"kind": "compose",
"metadata": {
"name": "Arcane Agent",
"description": "Remote Docker host agent for Arcane manager environments, supporting direct inbound and edge outbound connection modes.",
"tags": [
"docker",
"management",
"agent"
],
"icon": {
"provider": "selfhst",
"id": "arcane",
"color": "violet"
},
"draft": false,
"version": {
"name": "v2.1.0",
"source_dep_name": "ghcr.io/getarcaneapp/agent",
"source_dep_version": "v2.1.0"
}
},
"variables": [
{
"title": "General",
"name": "general",
"items": [
{
"name": "service_name",
"type": "str",
"title": "Service Name",
"required": false,
"description": "Name of the Docker Compose service. Leave empty to omit/fall back to Arcane defaults.",
"config": {
"placeholder": "arcane-agent"
}
},
{
"name": "container_name",
"type": "str",
"title": "Container Name",
"required": false,
"description": "Name to use for the container. Leave empty to omit/fall back to Arcane defaults.",
"config": {
"placeholder": "arcane-agent"
}
},
{
"name": "container_timezone",
"type": "str",
"title": "Container Timezone",
"required": false,
"config": {
"placeholder": "Europe/Berlin"
}
},
{
"name": "restart_policy",
"type": "enum",
"title": "Restart Policy",
"required": true,
"default": "unless-stopped",
"config": {
"options": [
"unless-stopped",
"always",
"on-failure",
"no"
]
}
},
{
"name": "docker_socket_path",
"type": "str",
"title": "Docker Socket Path",
"required": true,
"default": "/var/run/docker.sock",
"config": {
"placeholder": "/var/run/docker.sock"
}
}
]
},
{
"title": "Advanced",
"name": "advanced",
"items": [
{
"name": "project_mount_path",
"type": "str",
"title": "Project Mount Path",
"required": false,
"description": "Optional host path mounted to /app/data/projects for agent-visible project/Compose stack storage. Leave empty to skip this mount.",
"config": {
"placeholder": "/path/to/projects"
}
}
]
},
{
"title": "Agent Connection",
"name": "connection",
"items": [
{
"name": "connection_mode",
"type": "enum",
"title": "Connection Mode",
"required": false,
"default": "direct",
"description": "Direct exposes TCP 3553 for the manager to connect inbound. Edge connects outbound from the agent to the manager.",
"config": {
"options": [
"direct",
"edge"
]
}
},
{
"name": "edge_transport",
"type": "enum",
"title": "Transport Mode",
"required": false,
"default": "poll",
"description": "Arcane agent transport. Official generated snippets default to poll; auto keeps a live tunnel when possible.",
"config": {
"options": [
"poll",
"auto"
]
}
},
{
"name": "manager_api_url",
"type": "str",
"title": "Manager API URL",
"required": true,
"default": "http://arcane:3552",
"description": "Arcane manager API URL reachable from the agent.",
"config": {
"placeholder": "https://arcane.example.com"
}
},
{
"name": "agent_token",
"type": "secret",
"title": "Agent Token",
"required": true,
"description": "Agent token generated by Arcane when creating the remote environment."
}
]
},
{
"title": "Storage",
"name": "storage",
"items": [
{
"name": "volume_mode",
"type": "enum",
"title": "Volume Mode",
"required": false,
"default": "local",
"config": {
"options": [
"local",
"mount",
"nfs"
]
}
},
{
"name": "volume_mount_path",
"type": "str",
"title": "Data Mount Path",
"required": false,
"default": "",
"description": "Host path for agent data when using mount mode.",
"needs": [
"volume_mode=mount"
],
"config": {
"placeholder": "/opt/arcane-agent/data"
}
},
{
"name": "volume_nfs_server",
"type": "str",
"title": "NFS Server",
"required": false,
"default": "",
"needs": [
"volume_mode=nfs"
],
"config": {
"placeholder": "nas.home.arpa"
}
},
{
"name": "volume_nfs_path",
"type": "str",
"title": "NFS Path",
"required": false,
"default": "",
"description": "NFS export path for Arcane agent data.",
"needs": [
"volume_mode=nfs"
],
"config": {
"placeholder": "/export/app"
}
},
{
"name": "volume_nfs_options",
"type": "str",
"title": "NFS Options",
"required": false,
"default": "rw",
"needs": [
"volume_mode=nfs"
],
"config": {
"placeholder": "rw"
}
}
]
},
{
"title": "Ports",
"name": "ports",
"items": [
{
"name": "ports_agent",
"type": "int",
"title": "Agent Port",
"required": false,
"default": 3553,
"needs": [
"connection_mode=direct"
],
"config": {
"placeholder": "3553"
}
}
]
}
]
}