101 lines
5.0 KiB
YAML
101 lines
5.0 KiB
YAML
---
|
|
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 %>
|