svc_domain: local
svc_env: "{{ lookup('env', 'ENVIRONMENT') | default('production') }}"
svc_user_name: 'butler'
svc_group_name: 'butlers'
svc_user_uid: undefined
svc_group_gid: undefined
svc_tz: Etc/UTC
svc_manage_directories: true
svc_directory:
path: '/opt/svc'
# Default permissions
owner: "{{ svc_user_name }}"
group: "{{ svc_group_name }}"
mode: 740
svc_subdirectories:
cfg:
path: "{{ svc_directory.path }}/cfg"
log:
path: "{{ svc_directory.path }}/log"
data:
path: "{{ svc_directory.path }}/data"
Define ACL definitions. See https://docs.ansible.com/ansible/latest/collections/ansible/posix/acl_module.html.
path and entity are required. etype defaults to 'user', 'permissions' default to 'r', 'state' defaults to 'present'
svc_acl_entries: []
# - path: /opt/svc
# entity: "myuser"
# permissions: "r"
# recursive: true
# - path: /opt/svc
# entity: "myuser"
# permissions: "rwx"
# default: true
# - path: /opt/some_dir/myfile.ext
# entity: "{{ svc_group_name }}"
# etype: "group"
# state: "absent"
# - path: /opt/some_dir/myfile.ext
# entity: "myuser"
svc_manage_packages: true
svc_packages_shared:
- acl
svc_packages: "{{ svc_packages_shared }}"
svc_packages_pip:
- 'docker'
svc_restart_policy: 'always'
svc_force_pull: false
svc_log_driver: local
Default logging options - see https://docs.docker.com/config/containers/logging/configure/
svc_log_options:
max-size: 20m
max-file: '5'
compress: 'true'
svc_manage_docker_networks: true
svc_use_traefik: true
svc_traefik_directories:
cfg:
path: "{{ svc_subdirectories.cfg.path }}/traefik"
log:
path: "{{ svc_subdirectories.log.path }}/traefik"
svc_traefik_log_level: 'INFO'
svc_traefik_enable_dashboard: true
svc_traefik_debug: false
svc_traefik_insecure: false
svc_traefik_exposed_by_default: false
Whether to automatically retrieve TLS certificates. Requires 'svc_traefik_dns_challenge_provider' and 'svc_traefik_acme_settings'.
svc_traefik_automatic_https: true
Challenge provider to use for automatic TLS certificate acquisition. See https://doc.traefik.io/traefik/https/acme/providers
svc_traefik_dns_challenge_provider: 'cloudflare'
svc_traefik_letsencrypt_staging: false
svc_traefik_acme_settings:
CF_DNS_API_TOKEN: "{{ lookup('env', 'CF_DNS_API_TOKEN') | default('undefined') }}"
svc_traefik_container_hostname: traefik
svc_traefik_version: latest
svc_traefik_container_image: "traefik:{{ svc_traefik_version }}"
svc_traefik_container_memory: 1g
svc_traefik_container_ports:
http: 80
https: 443
svc_traefik_middleware_rate_limit_average: 50
svc_traefik_middleware_rate_limit_burst: 100
svc_traefik_extra_hosts: []
# - name: example
# shortname: ex
# middlewares: []
# protocol: https
# ip_addr: 10.10.10.10
# port: 8080
svc_traefik_extra_middlewares: {}
# example-mwr:
# headers:
# customRequestHeaders:
# Authorization: ''
# X-Forwarded-Proto: 'https'
svc_traefik_extra_entrypoints: []
# - name: dns
# port: 53
# - name: dnsUdp
# port: 53/udp
First entry in the list will be used as the default, if any
svc_traefik_extra_certificates: []
# - crt: /etc/traefik/tls/domain.tld.crt
# key: /etc/traefik/tls/domain.tld.key
svc_socketproxy_container_hostname: "socket-proxy"
svc_socketproxy_version: "0.1.1"
svc_socketproxy_container_image: "ghcr.io/tecnativa/docker-socket-proxy:{{ svc_socketproxy_version }}"
svc_socketproxy_container_memory: 1g
svc_socketproxy_restart_policy: "unless-stopped"
Settings for the docker socket proxy. See https://github.com/Tecnativa/docker-socket-proxygrant-or-revoke-access-to-certain-api-sections
socket_proxy_settings:
LOG_LEVEL: "info"
EVENTS: "1"
PING: "1"
VERSION: "1"
CONTAINERS: "1"
IMAGES: "0"
NETWORKS: "0"
VOLUMES: "0"
POST: "0"
SERVICES: "0"
INFO: "0"
TASKS: "0"
AUTH: "0"
SECRETS: "0"
BUILD: "0"
COMMIT: "0"
CONFIGS: "0"
DISTRIBUTION: "0"
EXEC: "0"
GRPC: "0"
NODES: "0"
PLUGINS: "0"
SESSION: "0"
SWARM: "0"
SYSTEM: "0"