implemented compose by url, parse, local yaml.

This commit is contained in:
boris committed 2026-07-10 13:32:40 +01:00
1 parent 53695f4fff
commit 784fff8faf
218 files changed
+2271 -640

No files matched your search

+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/alloy/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/alloy/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/alloy/templates/compose.override.yaml.j2"
docker_app_name: "{{ alloy_name }}"
docker_app_dir: "{{ alloy_dir }}"
docker_app_image: "{{ alloy_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `alloy` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+23
View File
@@ -0,0 +1,23 @@
services:
grafana-alloy:
image: grafana/alloy:latest
container_name: grafana-alloy
ports:
- '12345:12345'
volumes:
# mount config file
- './grafana/alloy/config.alloy:/etc/alloy/config.alloy'
# give access to running docker containers for discovery.docker
- /var/run/docker.sock:/var/run/docker.sock
# give access to docker's log files directory (optional)
- /var/lib/docker/containers:/var/lib/docker/containers:ro
environment:
# pass environment variables for config.alloy
GRAFANA_LOKI_URL: ${GRAFANA_LOKI_URL}
GRAFANA_LOKI_USERNAME: ${GRAFANA_LOKI_USERNAME}
# GRAFANA_CLOUD_API_KEY: ${GRAFANA_CLOUD_API_KEY}
command:
- run
- --server.http.listen-addr=0.0.0.0:12345
- --storage.path=/var/lib/alloy/data
- /etc/alloy/config.alloy
+1
View File
@@ -0,0 +1 @@
-6
View File
@@ -1,6 +0,0 @@
---
- name: restart arr
community.docker.docker_compose_v2:
project_src: "{{ arr_dir }}"
state: restarted
+19 -40
View File
@@ -23,43 +23,22 @@
loop: "{{ arr_services | dict2items }}"
tags: [arr, config]
- name: Render Arr environment
ansible.builtin.template:
src: env.j2
dest: "{{ arr_dir }}/.env"
owner: root
group: root
mode: "0644"
tags: [arr, config]
- name: Ensure Arr proxy network exists
community.docker.docker_network:
name: "{{ arr_traefik_network }}"
state: present
when: arr_routing_mode == "traefik"
tags: [arr, docker]
- name: Render Arr Compose file
ansible.builtin.template:
src: compose.yaml.j2
dest: "{{ arr_dir }}/compose.yaml"
owner: root
group: root
mode: "0644"
notify: restart arr
tags: [arr, compose]
- name: Allow Arr ports
community.general.ufw:
rule: allow
port: "{{ item }}"
proto: tcp
loop: "{{ arr_tcp_ports }}"
when: arr_routing_mode == "host"
tags: [arr, firewall]
- name: Start Arr stack
community.docker.docker_compose_v2:
project_src: "{{ arr_dir }}"
state: present
tags: [arr, compose]
- name: Deploy Arr Compose project
ansible.builtin.include_role:
name: compose_project
vars:
compose_project_dir: "{{ arr_dir }}"
compose_project_directories:
- "{{ arr_dir }}"
- "{{ arr_config_root }}"
- "{{ arr_media_root }}"
- "{{ arr_downloads_root }}"
compose_project_env_template_src: "{{ playbook_dir }}/../roles/arr/templates/env.j2"
compose_project_env_mode: "0644"
compose_project_compose_template_src: "{{ playbook_dir }}/../roles/arr/templates/compose.yaml.j2"
compose_project_override_template_src: "{{ playbook_dir }}/../roles/arr/templates/compose.override.yaml.j2"
compose_project_create_proxy_network: "{{ arr_routing_mode == 'traefik' }}"
compose_project_proxy_network: "{{ arr_traefik_network }}"
compose_project_firewall_ports: "{{ arr_tcp_ports }}"
compose_project_firewall_enabled: "{{ arr_routing_mode in ['host', 'traefik_file'] }}"
tags: [arr]
@@ -0,0 +1,5 @@
services:
{% for name, service in arr_services.items() %}
{{ name }}: {}
{% endfor %}
+2 -2
View File
@@ -4,9 +4,9 @@ services:
image: {{ service.image }}
restart: unless-stopped
env_file: .env
{% if arr_routing_mode == "host" %}
{% if arr_routing_mode in ["host", "traefik_file"] %}
ports:
- "{{ service.port }}:{{ service.port }}"
- "{{ nbops_traefik_file_bind_address if arr_routing_mode == 'traefik_file' else '0.0.0.0' }}:{{ service.port }}:{{ service.port }}"
{% endif %}
{% if arr_routing_mode == "traefik" %}
# internal service port: {{ service.port }}; not published on the Docker host
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `arr` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -0,0 +1 @@
-6
View File
@@ -1,6 +0,0 @@
---
- name: restart authentik
community.docker.docker_compose_v2:
project_src: "{{ authentik_dir }}"
state: restarted
+15 -41
View File
@@ -8,44 +8,18 @@
mode: "0755"
tags: [authentik]
- name: Render authentik environment
ansible.builtin.template:
src: env.j2
dest: "{{ authentik_dir }}/.env"
owner: root
group: root
mode: "0600"
no_log: true
tags: [authentik, config]
- name: Ensure authentik proxy network exists
community.docker.docker_network:
name: "{{ authentik_traefik_network }}"
state: present
when: authentik_routing_mode == "traefik"
tags: [authentik, docker]
- name: Render authentik Compose file
ansible.builtin.template:
src: compose.yaml.j2
dest: "{{ authentik_dir }}/compose.yaml"
owner: root
group: root
mode: "0644"
notify: restart authentik
tags: [authentik, compose]
- name: Allow authentik ports
community.general.ufw:
rule: allow
port: "{{ item }}"
proto: tcp
loop: "{{ authentik_tcp_ports }}"
when: authentik_routing_mode == "host"
tags: [authentik, firewall]
- name: Start authentik
community.docker.docker_compose_v2:
project_src: "{{ authentik_dir }}"
state: present
tags: [authentik, compose]
- name: Deploy authentik Compose project
ansible.builtin.include_role:
name: compose_project
vars:
compose_project_dir: "{{ authentik_dir }}"
compose_project_directories:
- "{{ authentik_dir }}"
compose_project_env_template_src: "{{ playbook_dir }}/../roles/authentik/templates/env.j2"
compose_project_compose_template_src: "{{ playbook_dir }}/../roles/authentik/templates/compose.yaml.j2"
compose_project_override_template_src: "{{ playbook_dir }}/../roles/authentik/templates/compose.override.yaml.j2"
compose_project_create_proxy_network: "{{ authentik_routing_mode == 'traefik' }}"
compose_project_proxy_network: "{{ authentik_traefik_network }}"
compose_project_firewall_ports: "{{ authentik_tcp_ports }}"
compose_project_firewall_enabled: "{{ authentik_routing_mode in ['host', 'traefik_file'] }}"
tags: [authentik]
@@ -0,0 +1,6 @@
services:
postgresql: {}
redis: {}
server: {}
worker: {}
+3 -3
View File
@@ -16,10 +16,10 @@ services:
restart: unless-stopped
command: server
env_file: .env
{% if authentik_routing_mode == "host" %}
{% if authentik_routing_mode in ["host", "traefik_file"] %}
ports:
- "{{ authentik_http_port }}:9000"
- "{{ authentik_https_port }}:9443"
- "{{ nbops_traefik_file_bind_address if authentik_routing_mode == 'traefik_file' else '0.0.0.0' }}:{{ authentik_http_port }}:9000"
- "{{ nbops_traefik_file_bind_address if authentik_routing_mode == 'traefik_file' else '0.0.0.0' }}:{{ authentik_https_port }}:9443"
{% endif %}
{% if authentik_routing_mode == "traefik" %}
# internal HTTP service port: 9000; not published on the Docker host
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `authentik` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/authentik_ldap/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/authentik_ldap/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/authentik_ldap/templates/compose.override.yaml.j2"
docker_app_name: "{{ authentik_ldap_name }}"
docker_app_dir: "{{ authentik_ldap_dir }}"
docker_app_image: "{{ authentik_ldap_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `authentik_ldap` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/authentik_proxy/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/authentik_proxy/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/authentik_proxy/templates/compose.override.yaml.j2"
docker_app_name: "{{ authentik_proxy_name }}"
docker_app_dir: "{{ authentik_proxy_dir }}"
docker_app_image: "{{ authentik_proxy_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `authentik_proxy` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/authentik_rac/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/authentik_rac/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/authentik_rac/templates/compose.override.yaml.j2"
docker_app_name: "{{ authentik_rac_name }}"
docker_app_dir: "{{ authentik_rac_dir }}"
docker_app_image: "{{ authentik_rac_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `authentik_rac` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/cleanuparr/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/cleanuparr/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/cleanuparr/templates/compose.override.yaml.j2"
docker_app_name: "{{ cleanuparr_name }}"
docker_app_dir: "{{ cleanuparr_dir }}"
docker_app_image: "{{ cleanuparr_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `cleanuparr` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/code_server/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/code_server/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/code_server/templates/compose.override.yaml.j2"
docker_app_name: "{{ code_server_name }}"
docker_app_dir: "{{ code_server_dir }}"
docker_app_image: "{{ code_server_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `code_server` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+11
View File
@@ -0,0 +1,11 @@
# compose_project
Normalizes Docker Compose project deployment for all Compose-backed roles.
This role renders `.env`, `compose.yaml`, and optional `compose.override.yaml`,
creates required directories and proxy networks, opens declared UFW ports, and
starts the Compose project.
Application roles should provide their own templates and call this role instead
of duplicating Compose lifecycle tasks.
+20
View File
@@ -0,0 +1,20 @@
---
compose_project_dir: ""
compose_project_directories:
- "{{ compose_project_dir }}"
compose_project_env_template_src: ""
compose_project_compose_template_src: ""
compose_project_override_template_src: ""
compose_project_env_dest: "{{ compose_project_dir }}/.env"
compose_project_compose_dest: "{{ compose_project_dir }}/compose.yaml"
compose_project_override_dest: "{{ compose_project_dir }}/compose.override.yaml"
compose_project_env_mode: "0600"
compose_project_compose_mode: "0644"
compose_project_override_mode: "0644"
compose_project_proxy_network: ""
compose_project_create_proxy_network: false
compose_project_firewall_ports: []
compose_project_firewall_enabled: false
compose_project_state: present
compose_project_pull: missing
+1
View File
@@ -0,0 +1 @@
+6
View File
@@ -0,0 +1,6 @@
---
- name: restart compose project
community.docker.docker_compose_v2:
project_src: "{{ compose_project_dir }}"
state: restarted
+75
View File
@@ -0,0 +1,75 @@
---
- name: Validate Compose project directory is configured
ansible.builtin.assert:
that:
- compose_project_dir | length > 0
- compose_project_compose_template_src | length > 0
fail_msg: "compose_project_dir and compose_project_compose_template_src are required."
tags: [compose_project]
- name: Create Compose project directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: root
group: root
mode: "0755"
loop: "{{ compose_project_directories }}"
tags: [compose_project, directories]
- name: Ensure Compose project proxy network exists
community.docker.docker_network:
name: "{{ compose_project_proxy_network }}"
state: present
when:
- compose_project_create_proxy_network | bool
- compose_project_proxy_network | length > 0
tags: [compose_project, docker]
- name: Render Compose project environment file
ansible.builtin.template:
src: "{{ compose_project_env_template_src }}"
dest: "{{ compose_project_env_dest }}"
owner: root
group: root
mode: "{{ compose_project_env_mode }}"
when: compose_project_env_template_src | length > 0
no_log: true
tags: [compose_project, config]
- name: Render Compose project file
ansible.builtin.template:
src: "{{ compose_project_compose_template_src }}"
dest: "{{ compose_project_compose_dest }}"
owner: root
group: root
mode: "{{ compose_project_compose_mode }}"
notify: restart compose project
tags: [compose_project, compose]
- name: Render Compose project override file
ansible.builtin.template:
src: "{{ compose_project_override_template_src }}"
dest: "{{ compose_project_override_dest }}"
owner: root
group: root
mode: "{{ compose_project_override_mode }}"
when: compose_project_override_template_src | length > 0
notify: restart compose project
tags: [compose_project, compose]
- name: Allow Compose project firewall ports
community.general.ufw:
rule: allow
port: "{{ item.port | default(item.host | default(item.container | default(item))) }}"
proto: "{{ item.proto | default(item.protocol | default('tcp')) }}"
loop: "{{ compose_project_firewall_ports }}"
when: compose_project_firewall_enabled | bool
tags: [compose_project, firewall]
- name: Start Compose project
community.docker.docker_compose_v2:
project_src: "{{ compose_project_dir }}"
state: "{{ compose_project_state }}"
pull: "{{ compose_project_pull }}"
tags: [compose_project, compose]
+1
View File
@@ -0,0 +1 @@
+4 -2
View File
@@ -1,10 +1,12 @@
# docker_app
Shared implementation role for single-container Docker Compose applications.
Shared adapter role for single-container Docker Compose applications.
Application roles set `docker_app_*` variables and include this role.
`docker_app` validates single-container app inputs and delegates the common
Compose lifecycle to `compose_project`.
It supports direct host-port publishing with UFW rules or Traefik routing via
labels and a shared Docker network.
Tags: `docker_app`, `docker`, `config`, `compose`, `firewall`.
+2
View File
@@ -26,7 +26,9 @@ docker_app_traefik_entrypoint: "{{ nbops_traefik_entrypoint }}"
docker_app_traefik_tls: "{{ nbops_traefik_tls }}"
docker_app_traefik_middlewares: []
docker_app_traefik_rule: "Host(`{{ docker_app_domain }}`)"
docker_app_traefik_file_bind_address: "{{ nbops_traefik_file_bind_address }}"
docker_app_labels: {}
docker_app_ufw_ports: "{{ docker_app_ports }}"
docker_app_env_template_src: env.j2
docker_app_compose_template_src: compose.yaml.j2
docker_app_compose_override_template_src: ""
+1
View File
@@ -0,0 +1 @@
-6
View File
@@ -1,6 +0,0 @@
---
- name: restart docker app
community.docker.docker_compose_v2:
project_src: "{{ docker_app_dir }}"
state: restarted
+14 -54
View File
@@ -5,58 +5,18 @@
- docker_app_image | length > 0
fail_msg: "docker_app_image must be configured for {{ docker_app_name }}."
tags: [docker_app]
- name: Create Docker app directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: root
group: root
mode: "0755"
loop: "{{ docker_app_directories }}"
- name: Deploy Docker app Compose project
ansible.builtin.include_role:
name: compose_project
vars:
compose_project_dir: "{{ docker_app_dir }}"
compose_project_directories: "{{ docker_app_directories }}"
compose_project_env_template_src: "{{ docker_app_env_template_src }}"
compose_project_compose_template_src: "{{ docker_app_compose_template_src }}"
compose_project_override_template_src: "{{ docker_app_compose_override_template_src }}"
compose_project_create_proxy_network: "{{ docker_app_routing_mode == 'traefik' and docker_app_network_mode | length == 0 }}"
compose_project_proxy_network: "{{ docker_app_traefik_network }}"
compose_project_firewall_ports: "{{ docker_app_ufw_ports }}"
compose_project_firewall_enabled: "{{ docker_app_routing_mode in ['host', 'traefik_file'] }}"
compose_project_pull: "{{ docker_app_pull }}"
tags: [docker_app]
- name: Ensure proxy network exists
community.docker.docker_network:
name: "{{ docker_app_traefik_network }}"
state: present
when:
- docker_app_routing_mode == "traefik"
- docker_app_network_mode | length == 0
tags: [docker_app, docker]
- name: Render Docker app environment
ansible.builtin.template:
src: "{{ docker_app_env_template_src }}"
dest: "{{ docker_app_dir }}/.env"
owner: root
group: root
mode: "0600"
no_log: true
tags: [docker_app, config]
- name: Render Docker app Compose file
ansible.builtin.template:
src: "{{ docker_app_compose_template_src }}"
dest: "{{ docker_app_dir }}/compose.yaml"
owner: root
group: root
mode: "0644"
notify: restart docker app
tags: [docker_app, compose]
- name: Allow Docker app host ports
community.general.ufw:
rule: allow
port: "{{ item.host | default(item.container) }}"
proto: "{{ item.protocol | default('tcp') }}"
loop: "{{ docker_app_ufw_ports }}"
when: docker_app_routing_mode == "host"
tags: [docker_app, firewall]
- name: Start Docker app
community.docker.docker_compose_v2:
project_src: "{{ docker_app_dir }}"
state: present
pull: "{{ docker_app_pull }}"
tags: [docker_app, compose]
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/filebrowser_quantum/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/filebrowser_quantum/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/filebrowser_quantum/templates/compose.override.yaml.j2"
docker_app_name: "{{ filebrowser_quantum_name }}"
docker_app_dir: "{{ filebrowser_quantum_dir }}"
docker_app_image: "{{ filebrowser_quantum_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `filebrowser_quantum` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/fiveetools/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/fiveetools/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/fiveetools/templates/compose.override.yaml.j2"
docker_app_name: "{{ fiveetools_name }}"
docker_app_dir: "{{ fiveetools_dir }}"
docker_app_image: "{{ fiveetools_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `fiveetools` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
@@ -0,0 +1,13 @@
services:
5etools:
container_name: 5etools
image: jafner/5etools-docker
volumes:
- ./5etools-docker/htdocs:/usr/local/apache2/htdocs
ports:
- 5370:80/tcp
environment:
- IMG=TRUE # Set to TRUE to pull images from https://github.com/5etools-mirror-2/5etools-img (as a Git submodule)
# - OFFLINE_MODE=TRUE # Optional. Expects "TRUE" or "FALSE". Disables checking for new updates.
- DL_LINK=https://github.com/5etools-mirror-3/5etools-src.git
- IMG_LINK=https://github.com/5etools-mirror-3/5etools-img.git
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/flaresolverr/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/flaresolverr/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/flaresolverr/templates/compose.override.yaml.j2"
docker_app_name: "{{ flaresolverr_name }}"
docker_app_dir: "{{ flaresolverr_dir }}"
docker_app_image: "{{ flaresolverr_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `flaresolverr` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -0,0 +1 @@
-6
View File
@@ -1,6 +0,0 @@
---
- name: restart gitea
community.docker.docker_compose_v2:
project_src: "{{ gitea_dir }}"
state: restarted
+15 -41
View File
@@ -8,41 +8,21 @@
mode: "0755"
tags: [gitea]
- name: Render Gitea environment
ansible.builtin.template:
src: env.j2
dest: "{{ gitea_dir }}/.env"
owner: root
group: root
mode: "0600"
no_log: true
tags: [gitea, config]
- name: Ensure Gitea proxy network exists
community.docker.docker_network:
name: "{{ gitea_traefik_network }}"
state: present
when: gitea_routing_mode == "traefik"
tags: [gitea, docker]
- name: Render Gitea Compose file
ansible.builtin.template:
src: compose.yaml.j2
dest: "{{ gitea_dir }}/compose.yaml"
owner: root
group: root
mode: "0644"
notify: restart gitea
tags: [gitea, compose]
- name: Allow Gitea ports
community.general.ufw:
rule: allow
port: "{{ item }}"
proto: tcp
loop: "{{ gitea_tcp_ports }}"
when: gitea_routing_mode == "host"
tags: [gitea, firewall]
- name: Deploy Gitea Compose project
ansible.builtin.include_role:
name: compose_project
vars:
compose_project_dir: "{{ gitea_dir }}"
compose_project_directories:
- "{{ gitea_dir }}"
compose_project_env_template_src: "{{ playbook_dir }}/../roles/gitea/templates/env.j2"
compose_project_compose_template_src: "{{ playbook_dir }}/../roles/gitea/templates/compose.yaml.j2"
compose_project_override_template_src: "{{ playbook_dir }}/../roles/gitea/templates/compose.override.yaml.j2"
compose_project_create_proxy_network: "{{ gitea_routing_mode == 'traefik' }}"
compose_project_proxy_network: "{{ gitea_traefik_network }}"
compose_project_firewall_ports: "{{ gitea_tcp_ports }}"
compose_project_firewall_enabled: "{{ gitea_routing_mode in ['host', 'traefik_file'] }}"
tags: [gitea]
- name: Allow Gitea SSH port when published behind Traefik
community.general.ufw:
@@ -53,9 +33,3 @@
- gitea_routing_mode == "traefik"
- gitea_publish_ssh | bool
tags: [gitea, firewall]
- name: Start Gitea
community.docker.docker_compose_v2:
project_src: "{{ gitea_dir }}"
state: present
tags: [gitea, compose]
@@ -0,0 +1,3 @@
services:
gitea: {}
+3 -3
View File
@@ -3,10 +3,10 @@ services:
image: {{ gitea_image }}
restart: unless-stopped
env_file: .env
{% if gitea_routing_mode == "host" or gitea_publish_ssh | bool %}
{% if gitea_routing_mode in ["host", "traefik_file"] or gitea_publish_ssh | bool %}
ports:
{% if gitea_routing_mode == "host" %}
- "{{ gitea_http_port }}:3000"
{% if gitea_routing_mode in ["host", "traefik_file"] %}
- "{{ nbops_traefik_file_bind_address if gitea_routing_mode == 'traefik_file' else '0.0.0.0' }}:{{ gitea_http_port }}:3000"
{% endif %}
{% if gitea_publish_ssh | bool %}
- "{{ gitea_ssh_port }}:22"
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `gitea` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/gitea_act_runner/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/gitea_act_runner/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/gitea_act_runner/templates/compose.override.yaml.j2"
docker_app_name: "{{ gitea_act_runner_name }}"
docker_app_dir: "{{ gitea_act_runner_dir }}"
docker_app_image: "{{ gitea_act_runner_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `gitea_act_runner` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/grafana/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/grafana/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/grafana/templates/compose.override.yaml.j2"
docker_app_name: "{{ grafana_name }}"
docker_app_dir: "{{ grafana_dir }}"
docker_app_image: "{{ grafana_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `grafana` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/grafana_renderer/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/grafana_renderer/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/grafana_renderer/templates/compose.override.yaml.j2"
docker_app_name: "{{ grafana_renderer_name }}"
docker_app_dir: "{{ grafana_renderer_dir }}"
docker_app_image: "{{ grafana_renderer_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `grafana_renderer` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
@@ -0,0 +1,5 @@
services:
renderer:
container_name: grafana-renderer
image: grafana/grafana-image-renderer:latest
restart: unless-stopped
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/homarr/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/homarr/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/homarr/templates/compose.override.yaml.j2"
docker_app_name: "{{ homarr_name }}"
docker_app_dir: "{{ homarr_dir }}"
docker_app_image: "{{ homarr_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `homarr` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -0,0 +1 @@
-6
View File
@@ -1,6 +0,0 @@
---
- name: restart immich
community.docker.docker_compose_v2:
project_src: "{{ immich_dir }}"
state: restarted
+16 -41
View File
@@ -11,44 +11,19 @@
- "{{ immich_upload_location }}"
tags: [immich]
- name: Render Immich environment
ansible.builtin.template:
src: env.j2
dest: "{{ immich_dir }}/.env"
owner: root
group: root
mode: "0600"
no_log: true
tags: [immich, config]
- name: Ensure Immich proxy network exists
community.docker.docker_network:
name: "{{ immich_traefik_network }}"
state: present
when: immich_routing_mode == "traefik"
tags: [immich, docker]
- name: Render Immich Compose file
ansible.builtin.template:
src: compose.yaml.j2
dest: "{{ immich_dir }}/compose.yaml"
owner: root
group: root
mode: "0644"
notify: restart immich
tags: [immich, compose]
- name: Allow Immich ports
community.general.ufw:
rule: allow
port: "{{ item }}"
proto: tcp
loop: "{{ immich_tcp_ports }}"
when: immich_routing_mode == "host"
tags: [immich, firewall]
- name: Start Immich
community.docker.docker_compose_v2:
project_src: "{{ immich_dir }}"
state: present
tags: [immich, compose]
- name: Deploy Immich Compose project
ansible.builtin.include_role:
name: compose_project
vars:
compose_project_dir: "{{ immich_dir }}"
compose_project_directories:
- "{{ immich_dir }}"
- "{{ immich_upload_location }}"
compose_project_env_template_src: "{{ playbook_dir }}/../roles/immich/templates/env.j2"
compose_project_compose_template_src: "{{ playbook_dir }}/../roles/immich/templates/compose.yaml.j2"
compose_project_override_template_src: "{{ playbook_dir }}/../roles/immich/templates/compose.override.yaml.j2"
compose_project_create_proxy_network: "{{ immich_routing_mode == 'traefik' }}"
compose_project_proxy_network: "{{ immich_traefik_network }}"
compose_project_firewall_ports: "{{ immich_tcp_ports }}"
compose_project_firewall_enabled: "{{ immich_routing_mode in ['host', 'traefik_file'] }}"
tags: [immich]
@@ -0,0 +1,6 @@
services:
immich-server: {}
immich-machine-learning: {}
redis: {}
database: {}
+2 -2
View File
@@ -3,9 +3,9 @@ services:
image: {{ immich_server_image }}
restart: unless-stopped
env_file: .env
{% if immich_routing_mode == "host" %}
{% if immich_routing_mode in ["host", "traefik_file"] %}
ports:
- "{{ immich_http_port }}:2283"
- "{{ nbops_traefik_file_bind_address if immich_routing_mode == 'traefik_file' else '0.0.0.0' }}:{{ immich_http_port }}:2283"
{% endif %}
{% if immich_routing_mode == "traefik" %}
# internal HTTP service port: 2283; not published on the Docker host
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `immich` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/ipv6nat/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/ipv6nat/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/ipv6nat/templates/compose.override.yaml.j2"
docker_app_name: "{{ ipv6nat_name }}"
docker_app_dir: "{{ ipv6nat_dir }}"
docker_app_image: "{{ ipv6nat_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `ipv6nat` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
+1
View File
@@ -5,6 +5,7 @@
vars:
docker_app_env_template_src: "{{ playbook_dir }}/../roles/jellyfin/templates/env.j2"
docker_app_compose_template_src: "{{ playbook_dir }}/../roles/jellyfin/templates/compose.yaml.j2"
docker_app_compose_override_template_src: "{{ playbook_dir }}/../roles/jellyfin/templates/compose.override.yaml.j2"
docker_app_name: "{{ jellyfin_name }}"
docker_app_dir: "{{ jellyfin_dir }}"
docker_app_image: "{{ jellyfin_image }}"
@@ -0,0 +1,3 @@
services:
{{ docker_app_name }}: {}
+2 -2
View File
@@ -17,10 +17,10 @@ services:
{% if docker_app_env | length > 0 %}
env_file: .env
{% endif %}
{% if docker_app_routing_mode == "host" and docker_app_ports | length > 0 %}
{% if docker_app_routing_mode in ["host", "traefik_file"] and docker_app_ports | length > 0 %}
ports:
{% for port in docker_app_ports %}
- "{{ port.bind | default('0.0.0.0') }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
- "{{ port.bind | default((docker_app_traefik_file_bind_address if docker_app_routing_mode == 'traefik_file' else '0.0.0.0')) }}:{{ port.host | default(port.container) }}:{{ port.container }}{% if port.protocol | default('tcp') != 'tcp' %}/{{ port.protocol }}{% endif %}"
{% endfor %}
{% endif %}
{% if docker_app_routing_mode == "traefik" and docker_app_service_port %}
+7
View File
@@ -0,0 +1,7 @@
# Upstream Snapshot
This directory stores copied upstream reference files for the `jellyfin` role.
See `docs/upstream-sources.yml` for repository URLs, refs, README paths, Compose paths, and verification status.
Snapshot files are reference material only. Deployments are generated from this role's `templates/` directory.
Loaded 100 of 218 files, more files were not shown because too many files have changed in this diff. Show more