From d4bec94b99e66171b509706908fb6f08fe671a31 Mon Sep 17 00:00:00 2001 From: Phil Date: Fri, 6 Jun 2025 11:50:26 -0600 Subject: [PATCH] refactor: reorganize docker role into logical service groups MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../tasks/{ => communication}/gotosocial.yml | 0 roles/docker/tasks/communication/main.yml | 10 ++ .../tasks/{ => communication}/postiz.yml | 0 .../tasks/{ => development}/codeserver.yml | 0 .../tasks/{ => development}/conduit.yml | 0 .../docker/tasks/{ => development}/gitea.yml | 0 .../docker/tasks/{ => development}/grist.yml | 0 roles/docker/tasks/development/main.yml | 19 ++ .../tasks/{ => infrastructure}/authentik.yml | 0 .../tasks/{ => infrastructure}/caddy.yml | 0 roles/docker/tasks/infrastructure/main.yml | 17 ++ roles/docker/tasks/main.yml | 163 ++++++------------ .../tasks/{ => media}/audiobookshelf.yml | 0 roles/docker/tasks/{ => media}/beaver.yml | 0 roles/docker/tasks/{ => media}/calibre.yml | 0 roles/docker/tasks/{ => media}/ghost-1.yml | 0 roles/docker/tasks/{ => media}/hoarder.yml | 0 roles/docker/tasks/media/main.yml | 35 ++++ roles/docker/tasks/{ => media}/manyfold.yml | 0 roles/docker/tasks/{ => media}/pinchflat.yml | 0 roles/docker/tasks/{ => media}/pinry.yml | 0 .../tasks/{ => monitoring}/appriseapi.yml | 0 .../{ => monitoring}/changedetection.yml | 0 .../docker/tasks/{ => monitoring}/glance.yml | 0 roles/docker/tasks/monitoring/main.yml | 14 ++ .../tasks/{ => productivity}/baikal.yml | 0 .../tasks/{ => productivity}/dawarich.yml | 0 .../tasks/{ => productivity}/heyform.yml | 0 roles/docker/tasks/productivity/main.yml | 39 +++++ .../docker/tasks/{ => productivity}/mmdl.yml | 0 .../tasks/{ => productivity}/paperlessngx.yml | 0 .../tasks/{ => productivity}/pingvin.yml | 0 .../tasks/{ => productivity}/stirlingpdf.yml | 0 .../tasks/{ => productivity}/syncthing.yml | 0 .../tasks/{ => productivity}/tasksmd.yml | 0 35 files changed, 184 insertions(+), 113 deletions(-) rename roles/docker/tasks/{ => communication}/gotosocial.yml (100%) create mode 100644 roles/docker/tasks/communication/main.yml rename roles/docker/tasks/{ => communication}/postiz.yml (100%) rename roles/docker/tasks/{ => development}/codeserver.yml (100%) rename roles/docker/tasks/{ => development}/conduit.yml (100%) rename roles/docker/tasks/{ => development}/gitea.yml (100%) rename roles/docker/tasks/{ => development}/grist.yml (100%) create mode 100644 roles/docker/tasks/development/main.yml rename roles/docker/tasks/{ => infrastructure}/authentik.yml (100%) rename roles/docker/tasks/{ => infrastructure}/caddy.yml (100%) create mode 100644 roles/docker/tasks/infrastructure/main.yml rename roles/docker/tasks/{ => media}/audiobookshelf.yml (100%) rename roles/docker/tasks/{ => media}/beaver.yml (100%) rename roles/docker/tasks/{ => media}/calibre.yml (100%) rename roles/docker/tasks/{ => media}/ghost-1.yml (100%) rename roles/docker/tasks/{ => media}/hoarder.yml (100%) create mode 100644 roles/docker/tasks/media/main.yml rename roles/docker/tasks/{ => media}/manyfold.yml (100%) rename roles/docker/tasks/{ => media}/pinchflat.yml (100%) rename roles/docker/tasks/{ => media}/pinry.yml (100%) rename roles/docker/tasks/{ => monitoring}/appriseapi.yml (100%) rename roles/docker/tasks/{ => monitoring}/changedetection.yml (100%) rename roles/docker/tasks/{ => monitoring}/glance.yml (100%) create mode 100644 roles/docker/tasks/monitoring/main.yml rename roles/docker/tasks/{ => productivity}/baikal.yml (100%) rename roles/docker/tasks/{ => productivity}/dawarich.yml (100%) rename roles/docker/tasks/{ => productivity}/heyform.yml (100%) create mode 100644 roles/docker/tasks/productivity/main.yml rename roles/docker/tasks/{ => productivity}/mmdl.yml (100%) rename roles/docker/tasks/{ => productivity}/paperlessngx.yml (100%) rename roles/docker/tasks/{ => productivity}/pingvin.yml (100%) rename roles/docker/tasks/{ => productivity}/stirlingpdf.yml (100%) rename roles/docker/tasks/{ => productivity}/syncthing.yml (100%) rename roles/docker/tasks/{ => productivity}/tasksmd.yml (100%) diff --git a/roles/docker/tasks/gotosocial.yml b/roles/docker/tasks/communication/gotosocial.yml similarity index 100% rename from roles/docker/tasks/gotosocial.yml rename to roles/docker/tasks/communication/gotosocial.yml diff --git a/roles/docker/tasks/communication/main.yml b/roles/docker/tasks/communication/main.yml new file mode 100644 index 0000000..572aeb0 --- /dev/null +++ b/roles/docker/tasks/communication/main.yml @@ -0,0 +1,10 @@ +--- +# Communication services - Social media, messaging, and external communication + +- name: Install gotosocial + import_tasks: gotosocial.yml + tags: gotosocial + +- name: Install postiz + import_tasks: postiz.yml + tags: postiz \ No newline at end of file diff --git a/roles/docker/tasks/postiz.yml b/roles/docker/tasks/communication/postiz.yml similarity index 100% rename from roles/docker/tasks/postiz.yml rename to roles/docker/tasks/communication/postiz.yml diff --git a/roles/docker/tasks/codeserver.yml b/roles/docker/tasks/development/codeserver.yml similarity index 100% rename from roles/docker/tasks/codeserver.yml rename to roles/docker/tasks/development/codeserver.yml diff --git a/roles/docker/tasks/conduit.yml b/roles/docker/tasks/development/conduit.yml similarity index 100% rename from roles/docker/tasks/conduit.yml rename to roles/docker/tasks/development/conduit.yml diff --git a/roles/docker/tasks/gitea.yml b/roles/docker/tasks/development/gitea.yml similarity index 100% rename from roles/docker/tasks/gitea.yml rename to roles/docker/tasks/development/gitea.yml diff --git a/roles/docker/tasks/grist.yml b/roles/docker/tasks/development/grist.yml similarity index 100% rename from roles/docker/tasks/grist.yml rename to roles/docker/tasks/development/grist.yml diff --git a/roles/docker/tasks/development/main.yml b/roles/docker/tasks/development/main.yml new file mode 100644 index 0000000..a959797 --- /dev/null +++ b/roles/docker/tasks/development/main.yml @@ -0,0 +1,19 @@ +--- +# Development services - Code, collaboration, and development tools + +- name: Install gitea + import_tasks: gitea.yml + tags: gitea + +- name: Install codeserver + import_tasks: codeserver.yml + tags: codeserver + +- name: Install conduit + import_tasks: conduit.yml + tags: conduit + +# Commented services can be uncommented when ready +#- name: Install grist +# import_tasks: grist.yml +# tags: grist \ No newline at end of file diff --git a/roles/docker/tasks/authentik.yml b/roles/docker/tasks/infrastructure/authentik.yml similarity index 100% rename from roles/docker/tasks/authentik.yml rename to roles/docker/tasks/infrastructure/authentik.yml diff --git a/roles/docker/tasks/caddy.yml b/roles/docker/tasks/infrastructure/caddy.yml similarity index 100% rename from roles/docker/tasks/caddy.yml rename to roles/docker/tasks/infrastructure/caddy.yml diff --git a/roles/docker/tasks/infrastructure/main.yml b/roles/docker/tasks/infrastructure/main.yml new file mode 100644 index 0000000..b340b6c --- /dev/null +++ b/roles/docker/tasks/infrastructure/main.yml @@ -0,0 +1,17 @@ +--- +# Infrastructure services - Core platform components + +- name: Install caddy + import_tasks: caddy.yml + tags: caddy + +- name: Install authentik + import_tasks: authentik.yml + tags: authentik + +- name: Deploy dockge stack + community.docker.docker_compose_v2: + project_src: /opt/dockge + files: + - dockge.yml + tags: dockge \ No newline at end of file diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 3efa890..379b87e 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -56,121 +56,58 @@ owner: root mode: 644 -- name: deploy dockge stack - community.docker.docker_compose_v2: - project_src: /opt/dockge - files: - - dockge.yml - tags: dockge +# Deploy services by category for better organization and dependency management +- name: Deploy infrastructure services + import_tasks: infrastructure/main.yml + tags: + - infrastructure + - caddy + - authentik + - dockge -- name: Install caddy - import_tasks: caddy.yml - tags: caddy +- name: Deploy development services + import_tasks: development/main.yml + tags: + - development + - gitea + - codeserver + - conduit -- name: Install gitea - import_tasks: gitea.yml - tags: gitea +- name: Deploy media services + import_tasks: media/main.yml + tags: + - media + - audiobookshelf + - calibre + - ghost-1 + - pinchflat + - pinry + - hoarder + - manyfold -- name: Install hoarder - import_tasks: hoarder.yml - tags: hoarder +- name: Deploy productivity services + import_tasks: productivity/main.yml + tags: + - productivity + - paperlessngx + - baikal + - syncthing + - mmdl + - heyform + - dawarich + - pingvin -- name: Install authentik - import_tasks: authentik.yml - tags: authentik +- name: Deploy monitoring services + import_tasks: monitoring/main.yml + tags: + - monitoring + - glance + - changedetection + - appriseapi -- name: Install gotosocial - import_tasks: gotosocial.yml - tags: gotosocial - -#- name: Install grist -# import_tasks: grist.yml -# tags: grist - -#- name: Install tasksmd -# import_tasks: tasksmd.yml -# tags: tasksmd - -- name: Install glance - import_tasks: glance.yml - tags: glance - -#- name: Install stirlingpdf -# import_tasks: stirlingpdf.yml -# tags: stirlingpdf - -- name: Install pingvin - import_tasks: pingvin.yml - tags: pingvin - -- name: Install postiz - import_tasks: postiz.yml - tags: postiz - -- name: Install pinry - import_tasks: pinry.yml - tags: pinry - -- name: Install audiobookshelf - import_tasks: audiobookshelf.yml - tags: audiobookshelf - -- name: Install calibre - import_tasks: calibre.yml - tags: calibre - -- name: Install paperlessngx - import_tasks: paperlessngx.yml - tags: paperlessngx - -- name: Install heyform - import_tasks: heyform.yml - tags: heyform - -- name: Install codeserver - import_tasks: codeserver.yml - tags: codeserver - -- name: Install baikal - import_tasks: baikal.yml - tags: baikal - -- name: Install syncthing - import_tasks: syncthing.yml - tags: syncthing - -- name: Install ghost-1 - import_tasks: ghost-1.yml - tags: ghost-1 - -- name: Install dawarich - import_tasks: dawarich.yml - tags: dawarich - -#- name: Install beaver -# import_tasks: beaver.yml -# tags: beaver - -- name: Install changedetection - import_tasks: changedetection.yml - tags: changedetection - -- name: Install conduit - import_tasks: conduit.yml - tags: conduit - -- name: Install pinchflat - import_tasks: pinchflat.yml - tags: pinchflat - -- name: Install appriseapi - import_tasks: appriseapi.yml - tags: appriseapi - -- name: Install manyfold - import_tasks: manyfold.yml - tags: manyfold - -- name: Install mmdl - import_tasks: mmdl.yml - tags: mmdl \ No newline at end of file +- name: Deploy communication services + import_tasks: communication/main.yml + tags: + - communication + - gotosocial + - postiz \ No newline at end of file diff --git a/roles/docker/tasks/audiobookshelf.yml b/roles/docker/tasks/media/audiobookshelf.yml similarity index 100% rename from roles/docker/tasks/audiobookshelf.yml rename to roles/docker/tasks/media/audiobookshelf.yml diff --git a/roles/docker/tasks/beaver.yml b/roles/docker/tasks/media/beaver.yml similarity index 100% rename from roles/docker/tasks/beaver.yml rename to roles/docker/tasks/media/beaver.yml diff --git a/roles/docker/tasks/calibre.yml b/roles/docker/tasks/media/calibre.yml similarity index 100% rename from roles/docker/tasks/calibre.yml rename to roles/docker/tasks/media/calibre.yml diff --git a/roles/docker/tasks/ghost-1.yml b/roles/docker/tasks/media/ghost-1.yml similarity index 100% rename from roles/docker/tasks/ghost-1.yml rename to roles/docker/tasks/media/ghost-1.yml diff --git a/roles/docker/tasks/hoarder.yml b/roles/docker/tasks/media/hoarder.yml similarity index 100% rename from roles/docker/tasks/hoarder.yml rename to roles/docker/tasks/media/hoarder.yml diff --git a/roles/docker/tasks/media/main.yml b/roles/docker/tasks/media/main.yml new file mode 100644 index 0000000..c95e3c2 --- /dev/null +++ b/roles/docker/tasks/media/main.yml @@ -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 \ No newline at end of file diff --git a/roles/docker/tasks/manyfold.yml b/roles/docker/tasks/media/manyfold.yml similarity index 100% rename from roles/docker/tasks/manyfold.yml rename to roles/docker/tasks/media/manyfold.yml diff --git a/roles/docker/tasks/pinchflat.yml b/roles/docker/tasks/media/pinchflat.yml similarity index 100% rename from roles/docker/tasks/pinchflat.yml rename to roles/docker/tasks/media/pinchflat.yml diff --git a/roles/docker/tasks/pinry.yml b/roles/docker/tasks/media/pinry.yml similarity index 100% rename from roles/docker/tasks/pinry.yml rename to roles/docker/tasks/media/pinry.yml diff --git a/roles/docker/tasks/appriseapi.yml b/roles/docker/tasks/monitoring/appriseapi.yml similarity index 100% rename from roles/docker/tasks/appriseapi.yml rename to roles/docker/tasks/monitoring/appriseapi.yml diff --git a/roles/docker/tasks/changedetection.yml b/roles/docker/tasks/monitoring/changedetection.yml similarity index 100% rename from roles/docker/tasks/changedetection.yml rename to roles/docker/tasks/monitoring/changedetection.yml diff --git a/roles/docker/tasks/glance.yml b/roles/docker/tasks/monitoring/glance.yml similarity index 100% rename from roles/docker/tasks/glance.yml rename to roles/docker/tasks/monitoring/glance.yml diff --git a/roles/docker/tasks/monitoring/main.yml b/roles/docker/tasks/monitoring/main.yml new file mode 100644 index 0000000..99f2229 --- /dev/null +++ b/roles/docker/tasks/monitoring/main.yml @@ -0,0 +1,14 @@ +--- +# Monitoring services - System monitoring, alerts, and dashboards + +- name: Install glance + import_tasks: glance.yml + tags: glance + +- name: Install changedetection + import_tasks: changedetection.yml + tags: changedetection + +- name: Install appriseapi + import_tasks: appriseapi.yml + tags: appriseapi \ No newline at end of file diff --git a/roles/docker/tasks/baikal.yml b/roles/docker/tasks/productivity/baikal.yml similarity index 100% rename from roles/docker/tasks/baikal.yml rename to roles/docker/tasks/productivity/baikal.yml diff --git a/roles/docker/tasks/dawarich.yml b/roles/docker/tasks/productivity/dawarich.yml similarity index 100% rename from roles/docker/tasks/dawarich.yml rename to roles/docker/tasks/productivity/dawarich.yml diff --git a/roles/docker/tasks/heyform.yml b/roles/docker/tasks/productivity/heyform.yml similarity index 100% rename from roles/docker/tasks/heyform.yml rename to roles/docker/tasks/productivity/heyform.yml diff --git a/roles/docker/tasks/productivity/main.yml b/roles/docker/tasks/productivity/main.yml new file mode 100644 index 0000000..7d0f958 --- /dev/null +++ b/roles/docker/tasks/productivity/main.yml @@ -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 \ No newline at end of file diff --git a/roles/docker/tasks/mmdl.yml b/roles/docker/tasks/productivity/mmdl.yml similarity index 100% rename from roles/docker/tasks/mmdl.yml rename to roles/docker/tasks/productivity/mmdl.yml diff --git a/roles/docker/tasks/paperlessngx.yml b/roles/docker/tasks/productivity/paperlessngx.yml similarity index 100% rename from roles/docker/tasks/paperlessngx.yml rename to roles/docker/tasks/productivity/paperlessngx.yml diff --git a/roles/docker/tasks/pingvin.yml b/roles/docker/tasks/productivity/pingvin.yml similarity index 100% rename from roles/docker/tasks/pingvin.yml rename to roles/docker/tasks/productivity/pingvin.yml diff --git a/roles/docker/tasks/stirlingpdf.yml b/roles/docker/tasks/productivity/stirlingpdf.yml similarity index 100% rename from roles/docker/tasks/stirlingpdf.yml rename to roles/docker/tasks/productivity/stirlingpdf.yml diff --git a/roles/docker/tasks/syncthing.yml b/roles/docker/tasks/productivity/syncthing.yml similarity index 100% rename from roles/docker/tasks/syncthing.yml rename to roles/docker/tasks/productivity/syncthing.yml diff --git a/roles/docker/tasks/tasksmd.yml b/roles/docker/tasks/productivity/tasksmd.yml similarity index 100% rename from roles/docker/tasks/tasksmd.yml rename to roles/docker/tasks/productivity/tasksmd.yml