Compare commits

..

6 Commits

Author SHA1 Message Date
uumas
f989c204d1 service: fix conditional 2025-10-06 16:13:35 +03:00
uumas
69eca0189e authentik: update image 2025-10-06 16:12:53 +03:00
uumas
33791031e2 prometheus: Update config option name 2025-09-14 03:11:23 +03:00
uumas
e0047b73f4 jitsi: Use firewalld 2025-09-14 03:11:11 +03:00
uumas
8fdb8eaf80 authentik: Support for additional mounts 2025-05-26 00:00:27 +03:00
uumas
bc2220e1ed service: fix published ports 2025-05-25 23:59:57 +03:00
9 changed files with 64 additions and 20 deletions

View File

@@ -3,3 +3,5 @@ authentik_tag: latest
authentik_env: {} authentik_env: {}
docker_networks: docker_networks:
- name: authentik - name: authentik
authentik_additional_mounts: []

View File

@@ -15,6 +15,42 @@ argument_specs:
type: dict type: dict
required: false required: false
default: {} default: {}
authentik_additional_mounts:
description: "List of bind mounts or volumes to be mounted inside the container. Each element is a dict with path and exactly one of name, src or template"
type: list
required: false
default: []
elements: dict
options:
path:
description: "The path inside the container to mount at"
type: str
required: true
readonly:
description: "If true, volume will be mounted as read only inside the container. Only applies for named and src mounts."
type: bool
required: false
default: false
mode:
description: "Permissions for the created/templated directory. Defaults to '0644' for files, '0755' for directories. Doesn't apply for named volumes."
type: str
required: false
name:
description: "If docker_volume_type is named, the name of the named volume to be mounted at path. If docker_volume_type is bind, the name of the folder to create under /opt/<service>[/suffix]/mounts/ and mount at path."
type: str
required: false
src:
description: "Host path to bind mount inside the container."
type: str
required: false
template:
description: "Name of template without .j2 extension. Will be templated at /opt/<service>[/suffix]/mounts/<template> and mounted read only inside the container."
type: str
required: false
copypath:
description: "Name of file or directory to copy. Will be deployed from files/<copypath> to /opt/<service>[/suffix]/mounts/<copypath> and mounted read only inside the container."
type: str
required: false
# All options after this will be passed directly to the container role # All options after this will be passed directly to the container role
docker_service_suffix: docker_service_suffix:

View File

@@ -4,7 +4,7 @@
name: service name: service
vars: vars:
docker_service: authentik docker_service: authentik
docker_image: "beryju/authentik:{{ authentik_tag }}" docker_image: "ghcr.io/goauthentik/server:{{ authentik_tag }}"
docker_command: docker_command:
- server - server
docker_image_http_port: 9000 docker_image_http_port: 9000
@@ -12,13 +12,7 @@
docker_additional_services: docker_additional_services:
- redis - redis
docker_env: "{{ authentik_common_env | combine(authentik_env) }}" docker_env: "{{ authentik_common_env | combine(authentik_env) }}"
docker_mounts: docker_mounts: "{{ _authentik_mounts }}"
- path: /media
name: "media"
- path: /templates
name: "templates"
- path: /certs
name: "certs"
- name: Authentik worker container - name: Authentik worker container
ansible.builtin.include_role: ansible.builtin.include_role:
@@ -26,15 +20,9 @@
vars: vars:
docker_namespace: authentik docker_namespace: authentik
docker_service: worker docker_service: worker
docker_image: "beryju/authentik:{{ authentik_tag }}" docker_image: "ghcr.io/goauthentik/server:{{ authentik_tag }}"
docker_command: docker_command:
- worker - worker
reverse_proxy_type: none reverse_proxy_type: none
docker_env: "{{ authentik_common_env | combine(authentik_env) }}" docker_env: "{{ authentik_common_env | combine(authentik_env) }}"
docker_mounts: docker_mounts: "{{ _authentik_mounts }}"
- path: /media
name: "media"
- path: /templates
name: "templates"
- path: /certs
name: "certs"

View File

@@ -1,4 +1,12 @@
--- ---
_authentik_default_mounts:
- path: /media
name: "media"
- path: /templates
name: "templates"
- path: /certs
name: "certs"
_authentik_mounts: "{{ _authentik_default_mounts + authentik_additional_mounts }}"
authentik_common_env: authentik_common_env:
AUTHENTIK_REDIS__HOST: authentik-redis AUTHENTIK_REDIS__HOST: authentik-redis

View File

@@ -4,7 +4,7 @@
name: service name: service
vars: vars:
docker_service: authentik-ldap docker_service: authentik-ldap
docker_image: beryju/authentik-ldap:{{ authentik_ldap_tag }} docker_image: ghcr.io/goauthentik/ldap:{{ authentik_ldap_tag }}
reverse_proxy_type: none reverse_proxy_type: none
docker_env: docker_env:
AUTHENTIK_HOST: "{{ authentik_ldap_authentik_address }}" AUTHENTIK_HOST: "{{ authentik_ldap_authentik_address }}"

View File

@@ -133,3 +133,13 @@
- name: meet.jitsi - name: meet.jitsi
aliases: aliases:
- jvb.meet.jitsi - jvb.meet.jitsi
- name: Open ports for jitsi
ansible.posix.firewalld:
port: "{{ item }}"
state: enabled
permanent: true
immediate: true
loop:
- 4443/tcp
- 10000/udp

View File

@@ -9,7 +9,7 @@
docker_command: docker_command:
- "--config.file=/etc/prometheus/prometheus.yml" - "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus" - "--storage.tsdb.path=/prometheus"
- "--storage.tsdb.retention={{ prometheus_storage_retention }}" - "--storage.tsdb.retention.time={{ prometheus_storage_retention }}"
- "--web.console.libraries=/usr/share/prometheus/console_libraries" - "--web.console.libraries=/usr/share/prometheus/console_libraries"
- "--web.console.templates=/usr/share/prometheus/consoles" - "--web.console.templates=/usr/share/prometheus/consoles"
docker_mounts: docker_mounts:

View File

@@ -68,4 +68,4 @@
image_user: "{{ container_image.Config.User }}" image_user: "{{ container_image.Config.User }}"
when: when:
- not ansible_check_mode - not ansible_check_mode
- container_image.Config.User | int - container_image.Config.User | int != 0

View File

@@ -101,7 +101,7 @@
image: "{{ container_image.Id if (not ansible_check_mode) or (container_image | length > 0) else docker_image }}" image: "{{ container_image.Id if (not ansible_check_mode) or (container_image | length > 0) else docker_image }}"
user: "{{ docker_user if docker_host_user else omit }}" user: "{{ docker_user if docker_host_user else omit }}"
mounts: "{{ docker_mount_definition }}" mounts: "{{ docker_mount_definition }}"
published_ports: "{{ container_published_ports + _docker_published_ports }}" published_ports: "{{ container_published_ports + docker_published_ports }}"
labels: "{{ traefik_labels | default(omit) }}" labels: "{{ traefik_labels | default(omit) }}"
env: "{{ docker_env | combine(docker_additional_env) | combine({'TZ': timezone}) }}" env: "{{ docker_env | combine(docker_additional_env) | combine({'TZ': timezone}) }}"
entrypoint: "{{ docker_entrypoint | default(omit) }}" entrypoint: "{{ docker_entrypoint | default(omit) }}"