From cb6a42e97d2b4cc47ec1ae1fac7c8a4f5eb0dd19 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Tue, 4 Feb 2025 16:43:34 +0100 Subject: [PATCH] Implemented pre-defined subnets for docker due to network clashes --- group_vars/all/03_domains.yml | 2 + group_vars/all/07_applications.yml | 2 +- group_vars/all/09_ports.yml | 2 +- group_vars/all/10_networks.yml | 71 +++++++++++++++++-- playbook.servers.yml | 6 ++ .../templates/docker-compose.yml.j2 | 5 -- templates/docker/compose/networks.yml.j2 | 7 ++ 7 files changed, 84 insertions(+), 11 deletions(-) diff --git a/group_vars/all/03_domains.yml b/group_vars/all/03_domains.yml index d5eaeb88..a47ba7c8 100644 --- a/group_vars/all/03_domains.yml +++ b/group_vars/all/03_domains.yml @@ -33,6 +33,7 @@ defaults_domains: pixelfed: "picture.{{primary_domain}}" portfolio: "{{primary_domain}}" roulette-wheel: "roulette.{{primary_domain}}" + snipe_it: "inventory.{{primary_domain}}" taiga: "kanban.{{primary_domain}}" yourls: "s.{{primary_domain}}" wordpress: ["wordpress.{{primary_domain}}","blog.{{primary_domain}}"] @@ -53,5 +54,6 @@ defaults_redirect_domain_mappings: - { source: "pictures.{{primary_domain}}", target: "{{domains.pixelfed}}" } - { source: "pixelfed.{{primary_domain}}", target: "{{domains.pixelfed}}" } - { source: "short.{{primary_domain}}", target: "{{domains.yourls}}" } +- { source: "snipe-it.{{primary_domain}}", target: "{{domains.snipe_it}}" } - { source: "taiga.{{primary_domain}}", target: "{{domains.taiga}}" } - { source: "videos.{{primary_domain}}", target: "{{domains.peertube}}" } diff --git a/group_vars/all/07_applications.yml b/group_vars/all/07_applications.yml index 92f18015..f2bd56e5 100644 --- a/group_vars/all/07_applications.yml +++ b/group_vars/all/07_applications.yml @@ -173,7 +173,7 @@ defaults_applications: database.version: "latest" # Snipe-IT - snipe-it: + snipe_it: version: "latest" ## Taiga diff --git a/group_vars/all/09_ports.yml b/group_vars/all/09_ports.yml index aa38e612..c699ac27 100644 --- a/group_vars/all/09_ports.yml +++ b/group_vars/all/09_ports.yml @@ -44,7 +44,7 @@ ports: keycloak: 8032 ldap: 8033 phpmyadmin: 8034 - snipe-it: 8035 + snipe_it: 8035 bigbluebutton: 48087 # This port is predefined by bbb. @todo Try to change this to a 8XXX port # Ports which are exposed to the World Wide Web public: diff --git a/group_vars/all/10_networks.yml b/group_vars/all/10_networks.yml index 893537a3..443199ce 100644 --- a/group_vars/all/10_networks.yml +++ b/group_vars/all/10_networks.yml @@ -1,10 +1,73 @@ defaults_networks: internet: - ip4: "127.0.0.1" # Change this in inventory to the ip address of your server - ip6: "::01" # Change this in inventory to the ip address of your server + ip4: "127.0.0.1" # Change this in inventory to the ip4 address of your server + ip6: "::01" # Change this in inventory to the ip6 address of your server local: + # The default docker subnetworking does lead to overlapping and to huge networks. + # Due to this reason networks with 16 ips are created. + # This should be sufficient for the most cases + akaunting: + subnet: 192.168.101.0/28 + attendize: + subnet: 192.168.101.16/28 + baserow: + subnet: 192.168.101.32/28 + bigbluebutton: + subnet: 192.168.101.48/28 + bluesky: + subnet: 192.168.101.64/28 + friendica: + subnet: 192.168.101.80/28 + funkwhale: + subnet: 192.168.101.96/28 + gitea: + subnet: 192.168.101.112/28 + gitlab: + subnet: 192.168.101.128/28 + joomla: + subnet: 192.168.101.144/28 + keycloak: + subnet: 192.168.101.160/28 + ldap: + subnet: 192.168.101.176/28 + listmonk: + subnet: 192.168.101.192/28 + mariadb: + subnet: 192.168.101.208/28 + matomo: + subnet: 192.168.101.224/28 + mastodon: + subnet: 192.168.101.240/28 + matrix: + subnet: 192.168.102.0/28 mailu: - dns: 192.168.203.254 # Address of the Mailu DNS server - subnet: 192.168.203.0/24 # Mailu Subnet + # Use one of the last container ips for dns resolving so that it isn't used + dns: 192.168.102.29 + subnet: 192.168.102.16/28 + moodle: + subnet: 192.168.102.32/28 + mybb: + subnet: 192.168.102.48/28 + nextcloud: + subnet: 192.168.102.64/28 + oauth2_proxy: + subnet: 192.168.102.80/28 + peertube: + subnet: 192.168.102.96/28 + phpmyadmin: + subnet: 192.168.102.112/28 + pixelfed: + subnet: 192.168.102.128/28 + postgres: + subnet: 192.168.102.144/28 + snipe_it: + subnet: 192.168.102.160/28 + taiga: + subnet: 192.168.102.176/28 + yourls: + subnet: 192.168.102.192/28 + discourse: + subnet: 192.168.102.208/28 + \ No newline at end of file diff --git a/playbook.servers.yml b/playbook.servers.yml index 38afc45d..02993d32 100644 --- a/playbook.servers.yml +++ b/playbook.servers.yml @@ -222,6 +222,12 @@ roles: - role: docker-phpmyadmin +- name: setup SNIPE-IT + hosts: snipe_it + become: true + roles: + - role: docker-snipe_it + # Native Webserver Roles - name: setup nginx-static-repositorys hosts: nginx-static-repositorys diff --git a/roles/docker-mailu/templates/docker-compose.yml.j2 b/roles/docker-mailu/templates/docker-compose.yml.j2 index fd83f751..d487cbfb 100644 --- a/roles/docker-mailu/templates/docker-compose.yml.j2 +++ b/roles/docker-mailu/templates/docker-compose.yml.j2 @@ -200,11 +200,6 @@ services: redis: {% include 'templates/docker/compose/networks.yml.j2' %} - driver: bridge - ipam: - driver: default - config: - - subnet: {{networks.local.mailu.subnet}} radicale: driver: bridge webmail: diff --git a/templates/docker/compose/networks.yml.j2 b/templates/docker/compose/networks.yml.j2 index d3ba3d7a..13bb4abf 100644 --- a/templates/docker/compose/networks.yml.j2 +++ b/templates/docker/compose/networks.yml.j2 @@ -8,4 +8,11 @@ networks: central_ldap: {% endif %} default: +{% if application_id in networks.local and networks.local[application_id].subnet is defined %} + driver: bridge + ipam: + driver: default + config: + - subnet: {{networks.local[application_id].subnet}} +{% endif %} {{ "\n" }} \ No newline at end of file