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:
19
roles/docker/tasks/media/audiobookshelf.yml
Normal file
19
roles/docker/tasks/media/audiobookshelf.yml
Normal file
@ -0,0 +1,19 @@
|
||||
- name: make audiobookshelf directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item}}"
|
||||
state: directory
|
||||
loop:
|
||||
- /opt/stacks/audiobookshelf
|
||||
|
||||
- name: Template out the compose file
|
||||
ansible.builtin.template:
|
||||
src: audiobookshelf-compose.yml.j2
|
||||
dest: /opt/stacks/audiobookshelf/compose.yml
|
||||
owner: root
|
||||
mode: 644
|
||||
|
||||
- name: deploy audiobookshelf stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/audiobookshelf
|
||||
files:
|
||||
- compose.yml
|
19
roles/docker/tasks/media/beaver.yml
Normal file
19
roles/docker/tasks/media/beaver.yml
Normal file
@ -0,0 +1,19 @@
|
||||
- name: make beaver directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item}}"
|
||||
state: directory
|
||||
loop:
|
||||
- /opt/stacks/beaver
|
||||
|
||||
- name: Template out the compose file
|
||||
ansible.builtin.template:
|
||||
src: beaver-compose.yml.j2
|
||||
dest: /opt/stacks/beaver/compose.yml
|
||||
owner: root
|
||||
mode: 644
|
||||
|
||||
- name: deploy beaver stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/beaver
|
||||
files:
|
||||
- compose.yml
|
19
roles/docker/tasks/media/calibre.yml
Normal file
19
roles/docker/tasks/media/calibre.yml
Normal file
@ -0,0 +1,19 @@
|
||||
- name: make calibre directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item}}"
|
||||
state: directory
|
||||
loop:
|
||||
- /opt/stacks/calibre
|
||||
|
||||
- name: Template out the compose file
|
||||
ansible.builtin.template:
|
||||
src: calibre-compose.yml.j2
|
||||
dest: /opt/stacks/calibre/compose.yml
|
||||
owner: root
|
||||
mode: 644
|
||||
|
||||
- name: deploy calibre stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/calibre
|
||||
files:
|
||||
- compose.yml
|
19
roles/docker/tasks/media/ghost-1.yml
Normal file
19
roles/docker/tasks/media/ghost-1.yml
Normal file
@ -0,0 +1,19 @@
|
||||
- name: make ghost-1 directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item}}"
|
||||
state: directory
|
||||
loop:
|
||||
- /opt/stacks/ghost-1
|
||||
|
||||
- name: Template out the compose file
|
||||
ansible.builtin.template:
|
||||
src: ghost-1-compose.yml.j2
|
||||
dest: /opt/stacks/ghost-1/compose.yml
|
||||
owner: root
|
||||
mode: 644
|
||||
|
||||
- name: deploy ghost-1 stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/ghost-1
|
||||
files:
|
||||
- compose.yml
|
27
roles/docker/tasks/media/hoarder.yml
Normal file
27
roles/docker/tasks/media/hoarder.yml
Normal file
@ -0,0 +1,27 @@
|
||||
- name: make hoarder directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item}}"
|
||||
state: directory
|
||||
loop:
|
||||
- /opt/stacks/hoarder
|
||||
|
||||
- name: copy hoarder compose file
|
||||
ansible.builtin.copy:
|
||||
src: hoarder-compose.yml
|
||||
dest: /opt/stacks/hoarder/compose.yml
|
||||
owner: root
|
||||
mode: 644
|
||||
|
||||
- name: Template out the .env file
|
||||
ansible.builtin.template:
|
||||
src: hoarder-env.j2
|
||||
dest: /opt/stacks/hoarder/.env
|
||||
owner: root
|
||||
mode: 644
|
||||
|
||||
- name: deploy hoarder stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/hoarder
|
||||
files:
|
||||
- compose.yml
|
||||
|
35
roles/docker/tasks/media/main.yml
Normal file
35
roles/docker/tasks/media/main.yml
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
# Media services - Content creation, management, and consumption
|
||||
|
||||
- name: Install audiobookshelf
|
||||
import_tasks: audiobookshelf.yml
|
||||
tags: audiobookshelf
|
||||
|
||||
- name: Install calibre
|
||||
import_tasks: calibre.yml
|
||||
tags: calibre
|
||||
|
||||
- name: Install ghost-1
|
||||
import_tasks: ghost-1.yml
|
||||
tags: ghost-1
|
||||
|
||||
- name: Install pinchflat
|
||||
import_tasks: pinchflat.yml
|
||||
tags: pinchflat
|
||||
|
||||
- name: Install pinry
|
||||
import_tasks: pinry.yml
|
||||
tags: pinry
|
||||
|
||||
- name: Install hoarder
|
||||
import_tasks: hoarder.yml
|
||||
tags: hoarder
|
||||
|
||||
- name: Install manyfold
|
||||
import_tasks: manyfold.yml
|
||||
tags: manyfold
|
||||
|
||||
# Commented services can be uncommented when ready
|
||||
#- name: Install beaver
|
||||
# import_tasks: beaver.yml
|
||||
# tags: beaver
|
29
roles/docker/tasks/media/manyfold.yml
Normal file
29
roles/docker/tasks/media/manyfold.yml
Normal file
@ -0,0 +1,29 @@
|
||||
- name: make manyfold directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item}}"
|
||||
state: directory
|
||||
loop:
|
||||
- /opt/stacks/manyfold
|
||||
|
||||
- name: make manyfold data directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item}}"
|
||||
state: directory
|
||||
owner: 1000
|
||||
group: 1000
|
||||
loop:
|
||||
- /opt/stacks/manyfold/config
|
||||
- /opt/stacks/manyfold/models
|
||||
|
||||
- name: Template out the compose file
|
||||
ansible.builtin.template:
|
||||
src: manyfold-compose.yml.j2
|
||||
dest: /opt/stacks/manyfold/compose.yml
|
||||
owner: root
|
||||
mode: 644
|
||||
|
||||
- name: deploy manyfold stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/manyfold
|
||||
files:
|
||||
- compose.yml
|
19
roles/docker/tasks/media/pinchflat.yml
Normal file
19
roles/docker/tasks/media/pinchflat.yml
Normal file
@ -0,0 +1,19 @@
|
||||
- name: make pinchflat directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item}}"
|
||||
state: directory
|
||||
loop:
|
||||
- /opt/stacks/pinchflat
|
||||
|
||||
- name: Template out the compose file
|
||||
ansible.builtin.template:
|
||||
src: pinchflat-compose.yml.j2
|
||||
dest: /opt/stacks/pinchflat/compose.yml
|
||||
owner: root
|
||||
mode: 644
|
||||
|
||||
- name: deploy pinchflat stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/pinchflat
|
||||
files:
|
||||
- compose.yml
|
19
roles/docker/tasks/media/pinry.yml
Normal file
19
roles/docker/tasks/media/pinry.yml
Normal file
@ -0,0 +1,19 @@
|
||||
- name: make pinry directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item}}"
|
||||
state: directory
|
||||
loop:
|
||||
- /opt/stacks/pinry
|
||||
|
||||
- name: Template out the compose file
|
||||
ansible.builtin.template:
|
||||
src: pinry-compose.yml.j2
|
||||
dest: /opt/stacks/pinry/compose.yml
|
||||
owner: root
|
||||
mode: 644
|
||||
|
||||
- name: deploy pinry stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/pinry
|
||||
files:
|
||||
- compose.yml
|
Reference in New Issue
Block a user