--- services: << service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>: image: ghcr.io/getarcaneapp/manager: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: APP_URL: "<< app_url >>" <%- if puid %> PUID: "<< puid >>" <%- endif %> <%- if pgid %> PGID: "<< pgid >>" <%- endif %> ENCRYPTION_KEY: "${ARCANE_ENCRYPTION_KEY}" JWT_SECRET: "${ARCANE_JWT_SECRET}" TZ: "<< container_timezone >>" <%- if analytics_enabled %> ANALYTICS_DISABLED: "false" <%- endif %> <%- if oidc_enabled %> OIDC_ENABLED: "true" OIDC_CLIENT_ID: "<< oidc_client_id >>" OIDC_CLIENT_SECRET: "${ARCANE_OIDC_CLIENT_SECRET}" OIDC_ISSUER_URL: "<< oidc_issuer_url >>" <%- if oidc_provider_name %> OIDC_PROVIDER_NAME: "<< oidc_provider_name >>" <%- endif %> <%- if oidc_scopes %> OIDC_SCOPES: "<< oidc_scopes >>" <%- endif %> <%- if oidc_groups_claim %> OIDC_GROUPS_CLAIM: "<< oidc_groups_claim >>" <%- endif %> <%- if oidc_role_mappings %> OIDC_ROLE_MAPPINGS: '<< oidc_role_mappings >>' <%- endif %> <%- endif %> 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' >>-data:/app/data <%- endif %> <%- if project_mount_path %> - << project_mount_path >>:/app/data/projects <%- endif %> <%- if builds_mount_path %> - << builds_mount_path >>:/builds <%- endif %> <%- if backups_mount_path %> - << backups_mount_path >>:/backups <%- endif %> <%- if traefik_enabled %> networks: - << traefik_network >> <%- endif %> <%- if not traefik_enabled %> ports: - "<< ports_http >>:3552" <%- endif %> <%- if traefik_enabled %> labels: - traefik.enable=true - traefik.docker.network=<< traefik_network >> - traefik.http.services.<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-web.loadBalancer.server.port=3552 - traefik.http.routers.<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-http.service=<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-web - traefik.http.routers.<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-http.rule=Host(`<< traefik_host >>.<< traefik_domain >>`) - traefik.http.routers.<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-http.entrypoints=<< traefik_entrypoint >> <%- if traefik_tls_enabled %> - traefik.http.routers.<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-https.service=<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-web - traefik.http.routers.<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-https.rule=Host(`<< traefik_host >>.<< traefik_domain >>`) - traefik.http.routers.<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-https.entrypoints=<< traefik_tls_entrypoint >> - traefik.http.routers.<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-https.tls=true - traefik.http.routers.<< service_name if service_name is string and service_name and (service_name | lower) not in ['true', 'false'] else 'arcane' >>-https.tls.certresolver=<< traefik_tls_certresolver >> <%- endif %> <%- 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' >>-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' >>-data: driver: local driver_opts: type: nfs o: addr=<< volume_nfs_server >>,nfsvers=4,<< volume_nfs_options >> device: ":<< volume_nfs_path >>" <%- endif %> <%- if traefik_enabled %> networks: << traefik_network >>: external: true <%- endif %>