Skip to content

Document new migration changes #410

@cabaucom376

Description

@cabaucom376

Restructure https://getarcane.app/docs/setup/migrate-v1 into a "Breaking Changes" page that keeps the existing content and introduces a new breaking change for (insert pr release here) for getarcaneapp/arcane#2628.

A manual update will be required due to the db migration being moved to its own one-shot container for better downgrade support. Users must manually update their arcane compose files to something like:

services:
  arcane-migrator:
    image: ghcr.io/getarcaneapp/arcane:latest
    restart: "no"
    # To downgrade:
    # 1. Stop Arcane and back up the arcane-data volume.
    # 2. Set ARCANE_VERSION to the target version, for example v1.18.0.
    # 3. Comment out the `up` command and uncomment the `down` command.
    # 4. Run: docker compose run --rm arcane-migrator
    command:
      - migrate
      - up
    # command:
    #   - migrate
    #   - down
    #   - ${ARCANE_VERSION:?}
    volumes:
      - arcane-data:/app/data

  arcane:
    image: ghcr.io/getarcaneapp/arcane:${ARCANE_VERSION:-latest}
    container_name: arcane
    depends_on:
      arcane-migrator:
        condition: service_completed_successfully
    ports:
      - "3552:3552"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - arcane-data:/app/data
      - /host/path/to/projects:/app/data/projects
      - /host/path/to/builds:/builds
    environment:
      - ENCRYPTION_KEY=xxxxxxxxxxxxxxxxxxxxxx
      - JWT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxx
      # Optional: run Arcane as a specific host UID/GID instead of the default runtime user.
      # When using the mounted Docker socket, Arcane will map the socket group automatically.
      # - PUID=1000
      # - PGID=1000
      # Timezone for cron job scheduling (e.g., America/New_York, Europe/London, UTC)
      # See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
      - TZ=UTC
    # Use host cgroup namespace for better container self-detection
    # This allows Arcane to detect its own container ID more reliably
    cgroup: host
    healthcheck:
      test:
        [
          "CMD-SHELL",
          "curl -fsS http://localhost:3552/api/health >/dev/null || exit 1",
        ]
      interval: 10s
      timeout: 3s
      retries: 5
      start_period: 15s
    restart: unless-stopped

volumes:
  arcane-data:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions