### Start the development environment Source: https://getarcane.app/docs/development/contribute.html Start the development environment with hot reload, install dependencies inside Docker, and create persistent storage for development data. ```bash ./scripts/development/dev.sh start ``` -------------------------------- ### Install beta latest with script Source: https://getarcane.app/docs/reference/cli/install Runs the install script with the --beta flag. --beta always installs the latest build from the next channel; you cannot pin a beta version. ```shell curl -fsSL https://getarcane.app/install-cli.sh | sh -s -- --beta ``` -------------------------------- ### Install stable latest with script Source: https://getarcane.app/docs/reference/cli/install Downloads and runs the official install script for the stable release channel. Installs the binary for your platform to $HOME/.arcane/bin unless ARCANE_INSTALL_DIR is set. ```shell curl -fsSL https://getarcane.app/install-cli.sh | sh ``` -------------------------------- ### GET /api/environments/0/projects Source: https://getarcane.app/docs/reference/api Example of making an authenticated request to list projects. All API endpoints require the X-Api-Key header. ```APIDOC ## GET /api/environments/0/projects ### Description Lists projects for the environment. This endpoint requires authentication via the X-Api-Key header. ### Method GET ### Endpoint /api/environments/0/projects ### Parameters #### Headers - **X-Api-Key** (string) - Required - Your API key for authentication. ### Request Example ``` curl -X GET "https://arcane.example.com/api/environments/0/projects" \ -H "X-Api-Key: your-api-key-here" ``` ### Response #### Success Response (200) - No response schema provided in the source. #### Response Example No response example provided in the source. ``` -------------------------------- ### Run the install script on Linux Source: https://getarcane.app/docs/get-started/installation.html Downloads and runs the Arcane install script, which sets up Docker and Arcane on Linux. ```bash curl -fsSL https://getarcane.app/install.sh | sudo bash ``` -------------------------------- ### Start the agent binary with .env or inline environment variables Source: https://getarcane.app/docs/remote/environments.html Commands to start the agent binary. The first runs it with the .env file; the second passes all configuration inline as environment variables before the executable. ```bash ./arcane-agent ``` ```bash ENVIRONMENT=production PORT=3553 LISTEN=127.0.0.1 AGENT_MODE=true AGENT_TOKEN=arc_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX MANAGER_API_URL=http://10.1.1.4:3552 ./arcane-agent ``` -------------------------------- ### Install zsh completion Source: https://getarcane.app/docs/reference/cli/commands Install shell completion for zsh. ```bash arcane-cli completion zsh ``` -------------------------------- ### Install stable pinned version with script Source: https://getarcane.app/docs/reference/cli/install Runs the install script with a pinned stable version (2.5.0). Stable installs come from GitHub Releases. ```shell curl -fsSL https://getarcane.app/install-cli.sh | sh -s -- 2.5.0 ``` -------------------------------- ### Registry URL example Source: https://getarcane.app/docs/docker/template-registries Example registry URL for a repository named my-docker-templates. Download URLs must point directly to files, not repository pages. ```text https://raw.githubusercontent.com/username/my-docker-templates/main/registry.json ``` -------------------------------- ### registry.json example Source: https://getarcane.app/docs/docker/template-registries Example registry.json file. Include $schema for editor validation. All fields except $schema are required. ```json { "$schema": "https://github.com/getarcaneapp/arcane-templates/schema.json", "name": "My Company Templates", "description": "Docker templates for internal applications", "version": "1.0.0", "author": "Your Team", "url": "https://github.com/yourcompany/docker-templates", "templates": [ { "id": "internal-app", "name": "Internal Application", "description": "Company application stack with database", "version": "1.0.0", "author": "DevOps Team", "compose_url": "https://raw.githubusercontent.com/yourcompany/docker-templates/main/internal-app/docker-compose.yml", "env_url": "https://raw.githubusercontent.com/yourcompany/docker-templates/main/internal-app/.env.example", "documentation_url": "https://github.com/yourcompany/docker-templates/tree/main/internal-app", "tags": ["internal", "webapp", "postgres"] } ] } ``` -------------------------------- ### Git Sync repository connection example Source: https://getarcane.app/docs/docker/git-sync Example of a Git repository connection configuration shown in the Git Sync documentation. The example is presented as a JSON-like structure that includes the repository URL, name, authentication type, and host key verification mode. Use this when setting up a repository connection under Customization → Git Repositories. ```json { "repositoryUrl": "https://github.com/example/repo.git", "name": "My Repository", "authenticationType": "HTTP (Username/Token)", "hostKeyVerification": "Accept New" } ``` -------------------------------- ### Install Vite+ Source: https://getarcane.app/docs/development/contribute.html Install Vite+ for the Node toolchain, formatting, linting, and pre-commit hooks when working outside Docker. ```bash curl -fsSL https://vite.plus | bash ``` -------------------------------- ### Initialize arcane-cli config Source: https://getarcane.app/docs/reference/cli/config Creates a starter config file for arcane-cli. Run this once after installing the CLI before setting server URL or credentials. ```bash arcane-cli config init ``` -------------------------------- ### Check unprivileged port start value Source: https://getarcane.app/docs/get-started/podman Verifies the sysctl setting. Should print `net.ipv4.ip_unprivileged_port_start = 80`. ```bash sysctl net.ipv4.ip_unprivileged_port_start ``` -------------------------------- ### Generate secret Source: https://getarcane.app/docs/reference/cli/commands Generate secrets and certificates for a new install. ```bash arcane-cli generate secret ``` -------------------------------- ### List and get activities Source: https://getarcane.app/docs/reference/cli/commands List server activities and retrieve details for a specific activity by its ID. ```bash arcane-cli activities list ``` ```bash arcane-cli activities get ``` -------------------------------- ### Watch Arcane logs during database migration Source: https://getarcane.app/docs/get-started/migrate-v2 Use this command to follow the logs while the database migration runs after starting Arcane. ```bash docker compose logs -f arcane ``` -------------------------------- ### Enable rootless Podman socket with systemctl and loginctl Source: https://getarcane.app/docs/get-started/podman Enables the rootless Podman socket for the current user and enables lingering so user services start at boot without an interactive login. The socket is exposed at /run/user//podman/podman.sock, written as %t/podman/podman.sock in a user systemd unit. ```bash systemctl --user enable --now podman.socket loginctl enable-linger "$USER" ``` -------------------------------- ### curl GET request with X-Api-Key header Source: https://getarcane.app/docs/reference/api Authenticates against the Arcane API by sending the API key in the X-Api-Key header. Replace arcane.example.com with your instance URL and your-api-key-here with your generated key. ```bash curl -X GET "https://arcane.example.com/api/environments/0/projects" \ -H "X-Api-Key: your-api-key-here" ``` -------------------------------- ### Inspect and trigger the updater Source: https://getarcane.app/docs/reference/cli/commands Inspect the automatic updater: check status, trigger a run, and view history. History shows one row per resource with resource, type, status, whether the update was applied, and when it started. Use --limit (-n) to change how many entries you get back; the default is 50. ```bash arcane-cli updater status ``` ```bash arcane-cli updater run ``` ```bash arcane-cli updater history ``` -------------------------------- ### Clone and enter the repository Source: https://getarcane.app/docs/development/contribute.html Clone the repository using HTTPS, SSH, or GitHub CLI, then enter the project directory. ```bash git clone https://github.com/getarcaneapp/arcane.git ``` ```bash git clone git@github.com:getarcaneapp/arcane.git ``` ```bash gh repo clone getarcaneapp/arcane ``` ```bash cd arcane ``` -------------------------------- ### Start Arcane with Docker Compose Source: https://getarcane.app/docs/get-started/installation.html Starts the Arcane services in detached mode using Docker Compose. ```bash docker compose up -d ``` -------------------------------- ### List GitOps syncs with arcane-cli gitops list Source: https://getarcane.app/docs/reference/cli/commands Lists GitOps syncs configured in the environment. ```bash arcane-cli gitops list ``` -------------------------------- ### Start Arcane with docker compose up -d Source: https://getarcane.app/docs/get-started/migrate-v2 Starts Arcane in detached mode after changing the image to ghcr.io/getarcaneapp/manager:v2 in the Compose file. ```bash docker compose up -d ``` -------------------------------- ### List containers as JSON with jq Source: https://getarcane.app/docs/reference/cli/commands Every command accepts --output json (or --json) for scripting, making it easy to pair with jq. ```bash arcane-cli containers list --json | jq -r ".[].name" ``` -------------------------------- ### Get container details Source: https://getarcane.app/docs/reference/cli/commands Fetches details for a specific container by name. ```bash arcane-cli containers get my-container ``` -------------------------------- ### List containers Source: https://getarcane.app/docs/reference/cli/commands Lists all containers. ```bash arcane-cli containers list ``` -------------------------------- ### Verify rootless operation with podman info, systemctl, and podman inspect Source: https://getarcane.app/docs/get-started/podman Verifies that Podman is running rootless, that the user-level systemd units for the Podman socket, the Arcane service, and the auto-update timer are active, and that the Arcane container reports a healthy status. The first command must print `true`, every unit must be `active`, and the container must report `healthy`. ```bash podman info --format '{{.Host.Security.Rootless}}' systemctl --user is-active podman.socket arcane.service podman-auto-update.timer podman inspect arcane --format '{{.State.Health.Status}}' ``` -------------------------------- ### Add Arcane CLI to PATH Source: https://getarcane.app/docs/reference/cli/install If the install directory is not on your PATH, the script prints these lines to add to your shell profile. ```shell export ARCANE_INSTALL_DIR="$HOME/.arcane/bin" export PATH="$ARCANE_INSTALL_DIR:$PATH" ``` -------------------------------- ### Template registry directory layout Source: https://getarcane.app/docs/docker/template-registries Directory layout for a template registry. Each template gets its own directory next to registry.json. ```text docker-templates/ ├── registry.json ├── wordpress/ │ ├── docker-compose.yml │ ├── .env.example │ └── README.md └── nextcloud/ ├── docker-compose.yml ├── .env.example └── README.md ``` -------------------------------- ### Build a Docker image with buildables Source: https://getarcane.app/docs/development/buildables Create backend/Dockerfile.buildables that copies the built binary over the official image, then build the image from the backend directory. For an agent image, use ghcr.io/getarcaneapp/agent:latest and copy to /app/arcane-agent. ```dockerfile FROM ghcr.io/getarcaneapp/manager:latest COPY arcane /app/arcane ``` ```shell docker build -f backend/Dockerfile.buildables -t arcane:buildables backend ``` -------------------------------- ### Show volume sizes with arcane-cli volumes sizes Source: https://getarcane.app/docs/reference/cli/commands Shows the sizes of volumes in the environment. ```bash arcane-cli volumes sizes ``` -------------------------------- ### Switch self-update channel to next Source: https://getarcane.app/docs/reference/cli/commands Switch between the stable and next release channels. ```bash arcane-cli self-update channel next ``` -------------------------------- ### View vulnerability summary and list with arcane-cli images vulnerabilities Source: https://getarcane.app/docs/reference/cli/commands Get an overview of vulnerability scan results or the full findings list. ```bash arcane-cli images vulnerabilities summary ``` ```bash arcane-cli images vulnerabilities list ``` -------------------------------- ### GET /api/environments/{id}/uploads/{kind}/{uploadId} Source: https://getarcane.app/docs/reference/api Reports which chunks have been received for a given upload session. This is useful for resuming an interrupted upload. ```APIDOC ## GET /api/environments/{id}/uploads/{kind}/{uploadId} ### Description Reports which chunks have been received for a given upload session. This is useful for resuming an interrupted upload. ### Method GET ### Endpoint /api/environments/{id}/uploads/{kind}/{uploadId} ### Parameters #### Path Parameters - **id** (string) - Required - The environment ID. - **kind** (string) - Required - The type of upload: `image`, `volume-backup`, or `build-workspace`. - **uploadId** (string) - Required - The upload session ID. ### Response #### Success Response (200) - **receivedChunks** (array of integers) - The indices of chunks that have been received. #### Response Example { "receivedChunks": [0, 1, 2] } ```