Arcane Documentation

repository·main·Indexed 27 days ago

https://github.com/getarcaneapp/arcane

Arcane is a modern Docker management platform featuring a dashboard and a Go-based CLI for managing Docker environments. The CLI provides tools for authentication via OIDC or API keys, environment configuration, health checks, OpenAPI specification exports, and container upgrades. It includes utilities for generating secure deployment keys (ENCRYPTION_KEY and JWT_SECRET) and managing pagination limits for resources like containers and images.

Tokens
29.9K
Snippets
26
Records
365
Agent score
92%

What's inside Arcane

  1. Install the Arcane CLI

    main

    The Arcane CLI is a Go module. You can install the latest version using go install.

    To install the latest version:

    go install github.com/getarcaneapp/arcane/cli/v2@latest

    To pin a specific release, use the module tag:

    go install github.com/getarcaneapp/arcane/cli/v2@cli/vX.Y.Z
    go install github.com/getarcaneapp/arcane/cli/v2@latest
  2. Configure the Arcane CLI

    main

    The CLI stores its configuration in ~/.config/arcanecli.yml.

    Use the following commands to manage your configuration:

    • arcane config init: Creates a starter configuration file containing all supported keys.
    • arcane config backup: Moves your current configuration to ~/.config/arcanecli.yml.bak.
    • arcane config set server-url <url>: Sets the Arcane server URL.
    • arcane config set api-key <key>: Sets your API key for authentication.
    arcane config init
  3. Disclose AI usage in contributions

    main
    When contributing to Arcane using AI assistance, you must disclose the specific tool used (e.g., Claude Code, Cursor, GitHub Copilot, ChatGPT) and the extent to which the work was AI-assisted. Failure to disclose AI usage may result in Pull Request closure.
  4. Test AI-assisted contributions in the development environment

    main

    Before submitting any AI-assisted contribution, follow these testing steps to ensure the changes are functional and follow project standards:

    1. Start the development environment using ./scripts/development/dev.sh start.
    2. Access the frontend at http://localhost:3000 and verify it works.
    3. Verify the backend at http://localhost:3552 responds correctly.
    4. Test your specific changes manually.
    5. Ensure no linting errors exist.
    6. Verify hot reload works for both frontend and backend.

    Alternatively, if you use just, you can use the following commands:

    • just dev docker
    • just lint frontend
    • just test backend
    ./scripts/development/dev.sh start
  5. Configure AI tools with Arcane coding standards

    main
    To ensure AI-generated code follows Arcane's architecture patterns (such as Svelte 5 syntax, service patterns, and error handling), you should provide the AI with technical guidance. Refer to AGENTS.md for the specific architecture patterns, anti-patterns to avoid, and project-specific conventions required to match project standards.
  6. Verify AI-assisted contributions via manual testing

    main
    All AI-generated code must be fully verified with human testing before submission. You must run the development environment and manually verify that both the frontend and backend work correctly. Do not submit code for platforms or environments that you cannot manually test.
  7. Authenticate with the Arcane CLI

    main

    You can authenticate using one of two methods:

    Option A: Device Code

    Requires OIDC to be enabled on your external provider. This method uses an interactive flow.

    arcane auth login

    Option B: API Key

    Set your API key directly in the configuration.

    arcane config set api-key arc_xxxxxxxxxxxxx
    arcane auth login
  8. Manage GitOps syncs with the `gitops` CLI

    main
    The gitops command (aliases: gitops-syncs, gs) is used to manage GitOps synchronization configurations. It allows you to list, create, retrieve, update, delete, and trigger syncs, as well as inspect sync status and browse repository files.
  9. Manage roles with `arcane admin roles`

    main
    The arcane admin roles command tree is used to manage Role-Based Access Control (RBAC). You can manage custom roles (create, update, delete) and handle user role assignments. Note that four built-in roles (Admin, Editor, Deployer, and Viewer) are immutable and cannot be modified or deleted.
  10. Manage users via the Arcane CLI

    main

    The users command (aliases: user, usr) is the parent command for all user management operations.

    Note on Role Assignments: Role assignments are not managed via the users command. The legacy --role flag has been removed. To assign roles, use the arcane admin roles assign <userId> command separately.

  11. Manage Docker images with `arcane images`

    main

    The arcane images command group (aliases: arcane image, arcane i) provides tools for managing Docker images on Arcane servers. You can list, inspect, pull, remove, prune, and upload images.

    # List all images
    arcane images list
    
    # Pull an image
    arcane images pull nginx:latest
    
    # Get image details
    arcane images get sha256:abc123...
    
    # Remove unused images
    arcane images prune