refactor: reorganize docker role into logical service groups

Break down the monolithic main.yml (176 lines) into organized service categories:

- infrastructure/ (caddy, authentik, dockge) - Core platform components
- development/ (gitea, codeserver, conduit) - Development tools
- media/ (audiobookshelf, calibre, ghost, pinchflat, etc.) - Content services
- productivity/ (paperless, baikal, syncthing, mmdl, etc.) - Personal organization
- monitoring/ (glance, changedetection, appriseapi) - System monitoring
- communication/ (gotosocial, postiz) - Social/messaging services

Benefits:
- Improved maintainability with logical grouping
- Better dependency management between service categories
- Enhanced tag-based deployment (can deploy by category)
- Cleaner organization for 25+ services

All individual service tags remain functional for backwards compatibility.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-06-06 11:50:26 -06:00
parent 8ca2122cb3
commit d4bec94b99
35 changed files with 184 additions and 113 deletions

View File

@ -0,0 +1,19 @@
- name: make baikal directories
ansible.builtin.file:
path: "{{ item}}"
state: directory
loop:
- /opt/stacks/baikal
- name: Template out the compose file
ansible.builtin.template:
src: baikal-compose.yml.j2
dest: /opt/stacks/baikal/compose.yml
owner: root
mode: 644
- name: deploy baikal stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/baikal
files:
- compose.yml

View File

@ -0,0 +1,19 @@
- name: make dawarich directories
ansible.builtin.file:
path: "{{ item}}"
state: directory
loop:
- /opt/stacks/dawarich
- name: Template out the compose file
ansible.builtin.template:
src: dawarich-compose.yml.j2
dest: /opt/stacks/dawarich/compose.yml
owner: root
mode: 644
- name: deploy dawarich stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/dawarich
files:
- compose.yml

View File

@ -0,0 +1,19 @@
- name: make heyform directories
ansible.builtin.file:
path: "{{ item}}"
state: directory
loop:
- /opt/stacks/heyform
- name: Template out the compose file
ansible.builtin.template:
src: heyform-compose.yml.j2
dest: /opt/stacks/heyform/compose.yml
owner: root
mode: 644
- name: deploy heyform stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/heyform
files:
- compose.yml

View File

@ -0,0 +1,39 @@
---
# Productivity services - Task management, document handling, and personal organization
- name: Install paperlessngx
import_tasks: paperlessngx.yml
tags: paperlessngx
- name: Install baikal
import_tasks: baikal.yml
tags: baikal
- name: Install syncthing
import_tasks: syncthing.yml
tags: syncthing
- name: Install mmdl
import_tasks: mmdl.yml
tags: mmdl
- name: Install heyform
import_tasks: heyform.yml
tags: heyform
- name: Install dawarich
import_tasks: dawarich.yml
tags: dawarich
- name: Install pingvin
import_tasks: pingvin.yml
tags: pingvin
# Commented services can be uncommented when ready
#- name: Install tasksmd
# import_tasks: tasksmd.yml
# tags: tasksmd
#- name: Install stirlingpdf
# import_tasks: stirlingpdf.yml
# tags: stirlingpdf

View File

@ -0,0 +1,25 @@
---
- name: Create mmdl directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
loop:
- /opt/stacks/mmdl
- /opt/stacks/mmdl/data
- /opt/stacks/mmdl/mysql
- name: Template mmdl environment file
ansible.builtin.template:
src: mmdl-env.j2
dest: /opt/stacks/mmdl/.env.local
- name: Template mmdl compose file
ansible.builtin.template:
src: mmdl-compose.yml.j2
dest: /opt/stacks/mmdl/compose.yml
- name: Deploy mmdl stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/mmdl
files:
- compose.yml

View File

@ -0,0 +1,26 @@
- name: make paperlessngx directories
ansible.builtin.file:
path: "{{ item}}"
state: directory
loop:
- /opt/stacks/paperlessngx
- name: Template out the compose file
ansible.builtin.template:
src: paperlessngx-compose.yml.j2
dest: /opt/stacks/paperlessngx/compose.yml
owner: root
mode: 644
- name: Template out the .env file
ansible.builtin.template:
src: paperlessngx.env.j2
dest: /opt/stacks/paperlessngx/docker-compose.env
owner: root
mode: 644
- name: deploy paperlessngx stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/paperlessngx
files:
- compose.yml

View File

@ -0,0 +1,19 @@
- name: make pingvin directories
ansible.builtin.file:
path: "{{ item}}"
state: directory
loop:
- /opt/stacks/pingvin
- name: Template out the compose file
ansible.builtin.template:
src: pingvin-compose.yml.j2
dest: /opt/stacks/pingvin/compose.yml
owner: root
mode: 644
- name: deploy pingvin stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/pingvin
files:
- compose.yml

View File

@ -0,0 +1,19 @@
- name: make StirlingPDF directories
ansible.builtin.file:
path: "{{ item}}"
state: directory
loop:
- /opt/stacks/stirlingpdf
- name: Template out the compose file
ansible.builtin.template:
src: striling-compose.yml.j2
dest: /opt/stacks/stirling/compose.yml
owner: root
mode: 644
- name: deploy stirling stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/stirling
files:
- compose.yml

View File

@ -0,0 +1,19 @@
- name: make syncthing directories
ansible.builtin.file:
path: "{{ item}}"
state: directory
loop:
- /opt/stacks/syncthing
- name: Template out the compose file
ansible.builtin.template:
src: syncthing-compose.yml.j2
dest: /opt/stacks/syncthing/compose.yml
owner: root
mode: 644
- name: deploy syncthing stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/syncthing
files:
- compose.yml

View File

@ -0,0 +1,19 @@
- name: make tasksmd directories
ansible.builtin.file:
path: "{{ item}}"
state: directory
loop:
- /opt/stacks/tasksmd
- name: copy tasksmd compose file
ansible.builtin.copy:
src: tasksmd-compose.yml
dest: /opt/stacks/tasksmd/compose.yml
owner: root
mode: 644
- name: deploy tasksmd stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/tasksmd
files:
- compose.yml