From 6a1e01575c5de70fff8c31a42b63aca747776f0c Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Wed, 16 Jul 2025 22:33:28 +0200 Subject: [PATCH 01/12] repo: Move ansible setup to root dir --- ansible/.gitignore => .gitignore | 0 ansible/ansible.cfg => ansible.cfg | 0 arr/arr.yml | 172 ------------------ .../instance_system/vars.yaml | 0 .../instance_system/vault.yaml | 0 ansible/inventory => inventory | 0 ansible/playbook.yaml => playbook.yaml | 0 {ansible/roles => roles}/arr/README.md | 0 .../roles => roles}/arr/defaults/main.yml | 0 .../roles => roles}/arr/handlers/main.yml | 0 {ansible/roles => roles}/arr/meta/main.yml | 0 {ansible/roles => roles}/arr/tasks/main.yml | 0 .../roles => roles}/arr/templates/arr.yml | 0 .../arr/templates/docker-compose.yaml.j2 | 0 {ansible/roles => roles}/arr/tests/inventory | 0 {ansible/roles => roles}/arr/tests/test.yml | 0 {ansible/roles => roles}/arr/vars/main.yml | 0 .../roles => roles}/caddy/tasks/main.yaml | 0 .../caddy/templates/docker-compose.yaml.j2 | 0 .../incus-install/tasks/add-repo.yaml | 0 .../incus-install/tasks/bootstrap.yaml | 0 .../incus-install/tasks/main.yaml | 0 {ansible/roles => roles}/paperless/README.md | 0 .../paperless/defaults/main.yml | 0 .../paperless/handlers/main.yml | 0 .../roles => roles}/paperless/meta/main.yml | 0 .../roles => roles}/paperless/tasks/main.yml | 0 .../templates/docker-compose.yaml.j2 | 0 .../roles => roles}/paperless/tests/inventory | 0 .../roles => roles}/paperless/tests/test.yml | 0 .../roles => roles}/paperless/vars/main.yml | 0 .../system/files/incus.servers.tpl | 0 .../system/files/incus.sources.tpl | 0 .../system/files/zabbly-key.asc | 0 .../roles => roles}/system/handlers/main.yaml | 0 .../roles => roles}/system/tasks/main.yaml | 0 monitoring.yaml => stacks/monitoring.yaml | 0 .../paperless}/docker-compose.env | 0 .../docker-compose.simple_example.yml | 0 .../paperless}/docker-compose.yml | 0 .../paperless}/scantopaperless.sh | 0 41 files changed, 172 deletions(-) rename ansible/.gitignore => .gitignore (100%) rename ansible/ansible.cfg => ansible.cfg (100%) delete mode 100644 arr/arr.yml rename {ansible/group_vars => group_vars}/instance_system/vars.yaml (100%) rename {ansible/group_vars => group_vars}/instance_system/vault.yaml (100%) rename ansible/inventory => inventory (100%) rename ansible/playbook.yaml => playbook.yaml (100%) rename {ansible/roles => roles}/arr/README.md (100%) rename {ansible/roles => roles}/arr/defaults/main.yml (100%) rename {ansible/roles => roles}/arr/handlers/main.yml (100%) rename {ansible/roles => roles}/arr/meta/main.yml (100%) rename {ansible/roles => roles}/arr/tasks/main.yml (100%) rename {ansible/roles => roles}/arr/templates/arr.yml (100%) rename {ansible/roles => roles}/arr/templates/docker-compose.yaml.j2 (100%) rename {ansible/roles => roles}/arr/tests/inventory (100%) rename {ansible/roles => roles}/arr/tests/test.yml (100%) rename {ansible/roles => roles}/arr/vars/main.yml (100%) rename {ansible/roles => roles}/caddy/tasks/main.yaml (100%) rename {ansible/roles => roles}/caddy/templates/docker-compose.yaml.j2 (100%) rename {ansible/roles => roles}/incus-install/tasks/add-repo.yaml (100%) rename {ansible/roles => roles}/incus-install/tasks/bootstrap.yaml (100%) rename {ansible/roles => roles}/incus-install/tasks/main.yaml (100%) rename {ansible/roles => roles}/paperless/README.md (100%) rename {ansible/roles => roles}/paperless/defaults/main.yml (100%) rename {ansible/roles => roles}/paperless/handlers/main.yml (100%) rename {ansible/roles => roles}/paperless/meta/main.yml (100%) rename {ansible/roles => roles}/paperless/tasks/main.yml (100%) rename {ansible/roles => roles}/paperless/templates/docker-compose.yaml.j2 (100%) rename {ansible/roles => roles}/paperless/tests/inventory (100%) rename {ansible/roles => roles}/paperless/tests/test.yml (100%) rename {ansible/roles => roles}/paperless/vars/main.yml (100%) rename {ansible/roles => roles}/system/files/incus.servers.tpl (100%) rename {ansible/roles => roles}/system/files/incus.sources.tpl (100%) rename {ansible/roles => roles}/system/files/zabbly-key.asc (100%) rename {ansible/roles => roles}/system/handlers/main.yaml (100%) rename {ansible/roles => roles}/system/tasks/main.yaml (100%) rename monitoring.yaml => stacks/monitoring.yaml (100%) rename {paperless => stacks/paperless}/docker-compose.env (100%) rename {paperless => stacks/paperless}/docker-compose.simple_example.yml (100%) rename {paperless => stacks/paperless}/docker-compose.yml (100%) rename {paperless => stacks/paperless}/scantopaperless.sh (100%) diff --git a/ansible/.gitignore b/.gitignore similarity index 100% rename from ansible/.gitignore rename to .gitignore diff --git a/ansible/ansible.cfg b/ansible.cfg similarity index 100% rename from ansible/ansible.cfg rename to ansible.cfg diff --git a/arr/arr.yml b/arr/arr.yml deleted file mode 100644 index 8d25d1d..0000000 --- a/arr/arr.yml +++ /dev/null @@ -1,172 +0,0 @@ -version: "3" -services: - sonarr: - container_name: sonarr - image: lscr.io/linuxserver/sonarr:latest - ports: - - 8989:8989 - environment: - - PUID=${PUID} - - PGID=${PGID} - - UMASK_SET=022 - - TZ=${TZ} - volumes: - - "./config/sonarr:/config" - - "CHANGE_TO_COMPOSE_DATA_PATH:/data" - restart: unless-stopped - radarr: - container_name: radarr - image: lscr.io/linuxserver/radarr:latest - ports: - - 7878:7878 - environment: - - PUID=${PUID} - - PGID=${PGID} - - UMASK_SET=022 - - TZ=${TZ} - volumes: - - "./config/radarr:/config" - - "CHANGE_TO_COMPOSE_DATA_PATH:/data" - restart: unless-stopped - lidarr: - container_name: lidarr - image: lscr.io/linuxserver/lidarr:latest - ports: - - 8686:8686 - environment: - - PUID=${PUID} - - PGID=${PGID} - - UMASK_SET=022 - - TZ=${TZ} - - DOCKER_MODS=linuxserver/mods:universal-docker - volumes: - - "./config/lidarr:/config" - - "CHANGE_TO_COMPOSE_DATA_PATH:/data" - - "/var/run/docker.sock:/var/run/docker.sock:ro" - restart: unless-stopped - readarr: - container_name: readarr - image: lscr.io/linuxserver/readarr:develop - ports: - - 8787:8787 - environment: - - PUID=${PUID} - - PGID=${PGID} - - UMASK_SET=022 - - TZ=${TZ} - volumes: - - "./config/readarr:/config" - - "CHANGE_TO_COMPOSE_DATA_PATH:/data" - restart: unless-stopped - prowlarr: - container_name: prowlarr - image: lscr.io/linuxserver/prowlarr:develop - environment: - - PUID=${PUID} - - PGID=${PGID} - - UMASK_SET=022 - - TZ=${TZ} - volumes: - - "./config/prowlarr:/config" - ports: - - 9696:9696 - restart: unless-stopped - sabnzbd: - container_name: sabnzbd - image: lscr.io/linuxserver/sabnzbd:latest - environment: - - PUID=${PUID} - - PGID=${PGID} - - TZ=${TZ} - volumes: - - "./config/sabnzbd:/config" - - "CHANGE_TO_COMPOSE_DATA_PATH/usenet:/data/usenet:rw" - ports: - - 8080:8080 - restart: unless-stopped - pia-qbittorrent: - image: j4ym0/pia-qbittorrent - container_name: pia-qbittorrent - cap_add: - - NET_ADMIN - environment: - - UID=${PUID} - - GID=${PGID} - - TZ=${TZ} - - REGION=Netherlands - - USER=${PIA_USER} - - PASSWORD=${PIA_PASS} - volumes: - - "./config/piaqbit:/config" - - "CHANGE_TO_COMPOSE_DATA_PATH/torrent:/downloads:rw" - ports: - - "8888:8888" - restart: unless-stopped - jellyfin: - image: lscr.io/linuxserver/jellyfin:latest - container_name: jellyfin - environment: - - PUID={$PUID} - - PGID={$PGID} - - TZ=${TZ} - #- JELLYFIN_PublishedServerUrl=192.168.0.5 #optional - volumes: - - ".config/jellyfin:/config" - - "CHANGE_TO_COMPOSE_DATA_PATH/media:/data" - ports: - - 8096:8096 - - 7359:7359/udp #optional - network discovery - - 1900:1900/udp #optional - dlna discovery - restart: unless-stopped - audiobookshelf: - container_name: audiobookshelf - image: ghcr.io/advplyr/audiobookshelf:latest - environment: - - PUID=${PUID} - - PGID=${PGID} - - UMASK_SET=022 - - TZ=${TZ} - ports: - - 13378:80 - volumes: - - "CHANGE_TO_COMPOSE_DATA_PATH/media/audio/books:/audiobooks" - - "CHANGE_TO_COMPOSE_DATA_PATH/media/audio/podcasts:/podcasts" - - ".config/audiobookshelf:/config" - - ".metadata/audiobookshelf:/metadata" - restart: unless-stopped - jellyseerr: - image: fallenbagel/jellyseerr:latest - container_name: jellyseerr - environment: - - TZ=${TZ} - ports: - - 5055:5055 - volumes: - - "./config/jellyseerr:/app/config" - restart: unless-stopped - beets: - image: lscr.io/linuxserver/beets:latest - container_name: beets - environment: - - PUID=${PUID} - - PGID=${PGID} - - TZ=${TZ} - volumes: - - "./config/beets:/config" - - "CHANGE_TO_COMPOSE_DATA_PATH/media/audio/music:/music" - - "CHANGE_TO_COMPOSE_DATA_PATH/media/audio/music-unsorted:/downloads" - - "CHANGE_TO_COMPOSE_DATA_PATH:/data" - ports: - - 8337:8337 - restart: unless-stopped - homarr: - image: ghcr.io/ajnart/homarr:latest - container_name: homarr - volumes: - - /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration - - ./config/homarr/configs:/app/data/configs - - ./config/homarr/icons:/app/public/icons - - ./config/homarr/data:/data - ports: - - '80:7575' - restart: unless-stopped diff --git a/ansible/group_vars/instance_system/vars.yaml b/group_vars/instance_system/vars.yaml similarity index 100% rename from ansible/group_vars/instance_system/vars.yaml rename to group_vars/instance_system/vars.yaml diff --git a/ansible/group_vars/instance_system/vault.yaml b/group_vars/instance_system/vault.yaml similarity index 100% rename from ansible/group_vars/instance_system/vault.yaml rename to group_vars/instance_system/vault.yaml diff --git a/ansible/inventory b/inventory similarity index 100% rename from ansible/inventory rename to inventory diff --git a/ansible/playbook.yaml b/playbook.yaml similarity index 100% rename from ansible/playbook.yaml rename to playbook.yaml diff --git a/ansible/roles/arr/README.md b/roles/arr/README.md similarity index 100% rename from ansible/roles/arr/README.md rename to roles/arr/README.md diff --git a/ansible/roles/arr/defaults/main.yml b/roles/arr/defaults/main.yml similarity index 100% rename from ansible/roles/arr/defaults/main.yml rename to roles/arr/defaults/main.yml diff --git a/ansible/roles/arr/handlers/main.yml b/roles/arr/handlers/main.yml similarity index 100% rename from ansible/roles/arr/handlers/main.yml rename to roles/arr/handlers/main.yml diff --git a/ansible/roles/arr/meta/main.yml b/roles/arr/meta/main.yml similarity index 100% rename from ansible/roles/arr/meta/main.yml rename to roles/arr/meta/main.yml diff --git a/ansible/roles/arr/tasks/main.yml b/roles/arr/tasks/main.yml similarity index 100% rename from ansible/roles/arr/tasks/main.yml rename to roles/arr/tasks/main.yml diff --git a/ansible/roles/arr/templates/arr.yml b/roles/arr/templates/arr.yml similarity index 100% rename from ansible/roles/arr/templates/arr.yml rename to roles/arr/templates/arr.yml diff --git a/ansible/roles/arr/templates/docker-compose.yaml.j2 b/roles/arr/templates/docker-compose.yaml.j2 similarity index 100% rename from ansible/roles/arr/templates/docker-compose.yaml.j2 rename to roles/arr/templates/docker-compose.yaml.j2 diff --git a/ansible/roles/arr/tests/inventory b/roles/arr/tests/inventory similarity index 100% rename from ansible/roles/arr/tests/inventory rename to roles/arr/tests/inventory diff --git a/ansible/roles/arr/tests/test.yml b/roles/arr/tests/test.yml similarity index 100% rename from ansible/roles/arr/tests/test.yml rename to roles/arr/tests/test.yml diff --git a/ansible/roles/arr/vars/main.yml b/roles/arr/vars/main.yml similarity index 100% rename from ansible/roles/arr/vars/main.yml rename to roles/arr/vars/main.yml diff --git a/ansible/roles/caddy/tasks/main.yaml b/roles/caddy/tasks/main.yaml similarity index 100% rename from ansible/roles/caddy/tasks/main.yaml rename to roles/caddy/tasks/main.yaml diff --git a/ansible/roles/caddy/templates/docker-compose.yaml.j2 b/roles/caddy/templates/docker-compose.yaml.j2 similarity index 100% rename from ansible/roles/caddy/templates/docker-compose.yaml.j2 rename to roles/caddy/templates/docker-compose.yaml.j2 diff --git a/ansible/roles/incus-install/tasks/add-repo.yaml b/roles/incus-install/tasks/add-repo.yaml similarity index 100% rename from ansible/roles/incus-install/tasks/add-repo.yaml rename to roles/incus-install/tasks/add-repo.yaml diff --git a/ansible/roles/incus-install/tasks/bootstrap.yaml b/roles/incus-install/tasks/bootstrap.yaml similarity index 100% rename from ansible/roles/incus-install/tasks/bootstrap.yaml rename to roles/incus-install/tasks/bootstrap.yaml diff --git a/ansible/roles/incus-install/tasks/main.yaml b/roles/incus-install/tasks/main.yaml similarity index 100% rename from ansible/roles/incus-install/tasks/main.yaml rename to roles/incus-install/tasks/main.yaml diff --git a/ansible/roles/paperless/README.md b/roles/paperless/README.md similarity index 100% rename from ansible/roles/paperless/README.md rename to roles/paperless/README.md diff --git a/ansible/roles/paperless/defaults/main.yml b/roles/paperless/defaults/main.yml similarity index 100% rename from ansible/roles/paperless/defaults/main.yml rename to roles/paperless/defaults/main.yml diff --git a/ansible/roles/paperless/handlers/main.yml b/roles/paperless/handlers/main.yml similarity index 100% rename from ansible/roles/paperless/handlers/main.yml rename to roles/paperless/handlers/main.yml diff --git a/ansible/roles/paperless/meta/main.yml b/roles/paperless/meta/main.yml similarity index 100% rename from ansible/roles/paperless/meta/main.yml rename to roles/paperless/meta/main.yml diff --git a/ansible/roles/paperless/tasks/main.yml b/roles/paperless/tasks/main.yml similarity index 100% rename from ansible/roles/paperless/tasks/main.yml rename to roles/paperless/tasks/main.yml diff --git a/ansible/roles/paperless/templates/docker-compose.yaml.j2 b/roles/paperless/templates/docker-compose.yaml.j2 similarity index 100% rename from ansible/roles/paperless/templates/docker-compose.yaml.j2 rename to roles/paperless/templates/docker-compose.yaml.j2 diff --git a/ansible/roles/paperless/tests/inventory b/roles/paperless/tests/inventory similarity index 100% rename from ansible/roles/paperless/tests/inventory rename to roles/paperless/tests/inventory diff --git a/ansible/roles/paperless/tests/test.yml b/roles/paperless/tests/test.yml similarity index 100% rename from ansible/roles/paperless/tests/test.yml rename to roles/paperless/tests/test.yml diff --git a/ansible/roles/paperless/vars/main.yml b/roles/paperless/vars/main.yml similarity index 100% rename from ansible/roles/paperless/vars/main.yml rename to roles/paperless/vars/main.yml diff --git a/ansible/roles/system/files/incus.servers.tpl b/roles/system/files/incus.servers.tpl similarity index 100% rename from ansible/roles/system/files/incus.servers.tpl rename to roles/system/files/incus.servers.tpl diff --git a/ansible/roles/system/files/incus.sources.tpl b/roles/system/files/incus.sources.tpl similarity index 100% rename from ansible/roles/system/files/incus.sources.tpl rename to roles/system/files/incus.sources.tpl diff --git a/ansible/roles/system/files/zabbly-key.asc b/roles/system/files/zabbly-key.asc similarity index 100% rename from ansible/roles/system/files/zabbly-key.asc rename to roles/system/files/zabbly-key.asc diff --git a/ansible/roles/system/handlers/main.yaml b/roles/system/handlers/main.yaml similarity index 100% rename from ansible/roles/system/handlers/main.yaml rename to roles/system/handlers/main.yaml diff --git a/ansible/roles/system/tasks/main.yaml b/roles/system/tasks/main.yaml similarity index 100% rename from ansible/roles/system/tasks/main.yaml rename to roles/system/tasks/main.yaml diff --git a/monitoring.yaml b/stacks/monitoring.yaml similarity index 100% rename from monitoring.yaml rename to stacks/monitoring.yaml diff --git a/paperless/docker-compose.env b/stacks/paperless/docker-compose.env similarity index 100% rename from paperless/docker-compose.env rename to stacks/paperless/docker-compose.env diff --git a/paperless/docker-compose.simple_example.yml b/stacks/paperless/docker-compose.simple_example.yml similarity index 100% rename from paperless/docker-compose.simple_example.yml rename to stacks/paperless/docker-compose.simple_example.yml diff --git a/paperless/docker-compose.yml b/stacks/paperless/docker-compose.yml similarity index 100% rename from paperless/docker-compose.yml rename to stacks/paperless/docker-compose.yml diff --git a/paperless/scantopaperless.sh b/stacks/paperless/scantopaperless.sh similarity index 100% rename from paperless/scantopaperless.sh rename to stacks/paperless/scantopaperless.sh From 90f004fbdbdf6bc2a60e7f3e708f26c0b2d18fd3 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 18:07:53 +0200 Subject: [PATCH 02/12] roles: Add grocy stack --- playbook.yaml | 5 +++ roles/grocy/README.md | 38 ++++++++++++++++++++ roles/grocy/defaults/main.yml | 8 +++++ roles/grocy/meta/main.yml | 34 ++++++++++++++++++ roles/grocy/tasks/main.yml | 16 +++++++++ roles/grocy/templates/docker-compose.yaml.j2 | 24 +++++++++++++ roles/grocy/tests/inventory | 2 ++ roles/grocy/tests/test.yml | 5 +++ 8 files changed, 132 insertions(+) create mode 100644 roles/grocy/README.md create mode 100644 roles/grocy/defaults/main.yml create mode 100644 roles/grocy/meta/main.yml create mode 100644 roles/grocy/tasks/main.yml create mode 100644 roles/grocy/templates/docker-compose.yaml.j2 create mode 100644 roles/grocy/tests/inventory create mode 100644 roles/grocy/tests/test.yml diff --git a/playbook.yaml b/playbook.yaml index 757f051..a6e9809 100644 --- a/playbook.yaml +++ b/playbook.yaml @@ -47,3 +47,8 @@ ansible.builtin.import_role: name: paperless tags: paperless + + - name: Set up Grocy stack + ansible.builtin.import_role: + name: grocy + tags: grocy diff --git a/roles/grocy/README.md b/roles/grocy/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/roles/grocy/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + + - hosts: servers + roles: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/roles/grocy/defaults/main.yml b/roles/grocy/defaults/main.yml new file mode 100644 index 0000000..c765f90 --- /dev/null +++ b/roles/grocy/defaults/main.yml @@ -0,0 +1,8 @@ +--- + +stack_grocy_env_dir: /opt/stack_grocy + +stack_grocy_puid: 1000 +stack_grocy_pgid: 100 +stack_grocy_tz: America/Chicago +stack_grocy_umask_set: 022 diff --git a/roles/grocy/meta/main.yml b/roles/grocy/meta/main.yml new file mode 100644 index 0000000..ea68190 --- /dev/null +++ b/roles/grocy/meta/main.yml @@ -0,0 +1,34 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/roles/grocy/tasks/main.yml b/roles/grocy/tasks/main.yml new file mode 100644 index 0000000..4bc182e --- /dev/null +++ b/roles/grocy/tasks/main.yml @@ -0,0 +1,16 @@ +--- +- name: Create grocy stack environment directory + ansible.builtin.file: + state: directory + path: "{{ stack_grocy_env_dir }}" + owner: root + group: root + mode: 0700 + +- name: Start the compose stack + community.docker.docker_compose_v2: + project_name: stack_grocy + definition: "{{ lookup('template', 'docker-compose.yaml.j2') | from_yaml }}" + remove_orphans: true + wait: true + wait_timeout: 60 diff --git a/roles/grocy/templates/docker-compose.yaml.j2 b/roles/grocy/templates/docker-compose.yaml.j2 new file mode 100644 index 0000000..32d6b3a --- /dev/null +++ b/roles/grocy/templates/docker-compose.yaml.j2 @@ -0,0 +1,24 @@ +services: + sonarr: + container_name: grocy + image: lscr.io/linuxserver/grocy:latest + networks: + - caddy + environment: + - PUID={{ stack_grocy_puid }} + - PGID={{ stack_grocy_pgid }} + - TZ={{ stack_grocy_tz }} + - UMASK_SET={{ stack_grocy_umask_set }} + volumes: + - "{{ arrstack_env_dir }}/config/grocy:/config" + restart: unless-stopped + labels: + caddy: "http://house.pichi.berlin" + caddy.reverse_proxy: "{{ '{{' }}upstreams 80{{ '}}'}}" + +networks: + caddy: + external: true + +volumes: + caddy_data: {} diff --git a/roles/grocy/tests/inventory b/roles/grocy/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/roles/grocy/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/roles/grocy/tests/test.yml b/roles/grocy/tests/test.yml new file mode 100644 index 0000000..536a352 --- /dev/null +++ b/roles/grocy/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - grocy From 770da26b03013c0d8104f52038ff172ada14fe55 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Wed, 16 Jul 2025 22:59:50 +0200 Subject: [PATCH 03/12] paperless: Improve documentation --- roles/paperless/README.md | 24 ++++++++++++------- roles/paperless/handlers/main.yml | 2 -- .../paperless/scripts}/scantopaperless.sh | 2 +- roles/paperless/vars/main.yml | 2 -- 4 files changed, 17 insertions(+), 13 deletions(-) delete mode 100644 roles/paperless/handlers/main.yml rename {stacks/paperless => roles/paperless/scripts}/scantopaperless.sh (90%) delete mode 100644 roles/paperless/vars/main.yml diff --git a/roles/paperless/README.md b/roles/paperless/README.md index 225dd44..dfa8474 100644 --- a/roles/paperless/README.md +++ b/roles/paperless/README.md @@ -1,38 +1,46 @@ Role Name ========= -A brief description of the role goes here. +Set up a docker-hosted paperless-ngx instance. Requirements ------------ -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. +The target server needs to be running a reasonably recent version of docker, +which contains the `docker compose` (_not_ `docker-compose`) sub-command. Role Variables -------------- -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. +All relevant variables reside in `defaults/main.yml`. + Dependencies ------------ -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. +Relies on the `caddy` role to be executed for caddy to pick up the container and proxy to it. Example Playbook ---------------- -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +The role can easily be set up in the following way to deploy to any server: - hosts: servers roles: - - { role: username.rolename, x: 42 } + - role: paperless + +An example scanning script is included which I wrote for my old printer and allows (relatively) rapid scanning by pushing a button, +and automatically merging and sending the files to the consume folder. + +This will need to be adjusted for wherever you watch for the documents, +but is a simple example of how it could be integrated into a scanning workflow. License ------- -BSD +MIT Author Information ------------------ -An optional section for the role authors to include contact information, or a website (HTML is not allowed). +Copyright (c) 2025 Marty Oehme. All Rights Reserved. diff --git a/roles/paperless/handlers/main.yml b/roles/paperless/handlers/main.yml deleted file mode 100644 index 6d5ba60..0000000 --- a/roles/paperless/handlers/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# handlers file for paperless diff --git a/stacks/paperless/scantopaperless.sh b/roles/paperless/scripts/scantopaperless.sh similarity index 90% rename from stacks/paperless/scantopaperless.sh rename to roles/paperless/scripts/scantopaperless.sh index 5c10c0c..ad43f3e 100755 --- a/stacks/paperless/scantopaperless.sh +++ b/roles/paperless/scripts/scantopaperless.sh @@ -24,5 +24,5 @@ if ! stat -t out*.png >/dev/null 2>&1; then fi magick out*.png out.pdf -mv out.pdf "$HOME/documents/archive/consume/$(date +'%Y-%m-%dT%H-%M')_scan.pdf" +mv out.pdf "$HOME/documents/consume/$(date +'%Y-%m-%dT%H-%M')_scan.pdf" rm out*.png diff --git a/roles/paperless/vars/main.yml b/roles/paperless/vars/main.yml deleted file mode 100644 index 3082f84..0000000 --- a/roles/paperless/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for paperless From 812deeb12de62daac9773971e2071d249bea7043 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 09:20:32 +0200 Subject: [PATCH 04/12] roles: Inherit from global vars with defaults Global options such as 'timezone' or 'puid' can be set on a host and all (relevant) roles will inherit them. Will be used for more variables in the future. --- group_vars/instance_system/vars.yaml | 5 +++-- roles/arr/defaults/main.yml | 14 ++++++++------ roles/grocy/defaults/main.yml | 9 +++++---- roles/paperless/defaults/main.yml | 9 +++++---- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/group_vars/instance_system/vars.yaml b/group_vars/instance_system/vars.yaml index a311640..5d82ab7 100644 --- a/group_vars/instance_system/vars.yaml +++ b/group_vars/instance_system/vars.yaml @@ -1,4 +1,5 @@ -arrstack_tz: Europe/Berlin -stack_paperless_tz: Europe/Berlin +--- + +timezone: Europe/Berlin stack_paperless_ocr_language: deu+eng stack_paperless_ocr_languages: eng deu frk diff --git a/roles/arr/defaults/main.yml b/roles/arr/defaults/main.yml index 0169c81..cdeb3e3 100644 --- a/roles/arr/defaults/main.yml +++ b/roles/arr/defaults/main.yml @@ -1,14 +1,16 @@ --- -arrstack_env_dir: /opt/arrstack +# inherited from global +arrstack_tz: "{{ timezone | default('America/Chicago') }}" +arrstack_puid: "{{ puid | default(1000) }}" +arrstack_pgid: "{{ pgid | default(100) }}" +arrstack_umask_set: "{{ umask_set | default(022) }}" +arrstack_env_dir: /opt/arrstack arrstack_serve_dir: /srv arrstack_serve_dir_create: true -arrstack_puid: 1000 -arrstack_pgid: 100 -arrstack_tz: America/Chicago -arrstack_umask_set: 022 - # arrstack_mb_user: Musicbrainz-user # arrstack_mb_pass: Musicbrainz-password + +# TODO: add commented version of remaining required vars (qbit, vpn) diff --git a/roles/grocy/defaults/main.yml b/roles/grocy/defaults/main.yml index c765f90..ab2ad0b 100644 --- a/roles/grocy/defaults/main.yml +++ b/roles/grocy/defaults/main.yml @@ -1,8 +1,9 @@ --- +# inherited from global +stack_grocy_tz: "{{ timezone | default('America/Chicago') }}" +stack_grocy_puid: "{{ puid | default(1000) }}" +stack_grocy_pgid: "{{ pgid | default(100) }}" +stack_grocy_umask_set: "{{ umask_set | default(022) }}" stack_grocy_env_dir: /opt/stack_grocy -stack_grocy_puid: 1000 -stack_grocy_pgid: 100 -stack_grocy_tz: America/Chicago -stack_grocy_umask_set: 022 diff --git a/roles/paperless/defaults/main.yml b/roles/paperless/defaults/main.yml index 0838575..090333f 100644 --- a/roles/paperless/defaults/main.yml +++ b/roles/paperless/defaults/main.yml @@ -1,13 +1,14 @@ --- -stack_paperless_env_dir: /opt/stack_paperless -stack_paperless_puid: 1000 -stack_paperless_pgid: 100 +# inherited from global +stack_paperless_tz: "{{ timezone | default('America/Chicago') }}" +stack_paperless_puid: "{{ puid | default(1000) }}" +stack_paperless_pgid: "{{ pgid | default(100) }}" +stack_paperless_env_dir: /opt/stack_paperless stack_paperless_serve_dir: /srv stack_paperless_serve_dir_create: true -stack_paperless_tz: America/Chicago stack_paperless_ocr_language: eng # default OCR languages stack_paperless_ocr_languages: eng deu frk # ALL installed languages stack_paperless_ocr_skip_archive_file: with_text From e32f2366c87c276595f7108d83dc57aab0c2e988 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 16:16:02 +0200 Subject: [PATCH 05/12] roles: Make domain global variable Each role has their own subdomains which can be set manually, or can inherit from the global domain with a default prefix. --- group_vars/instance_system/vars.yaml | 2 ++ roles/arr/defaults/main.yml | 13 ++++++++++ roles/arr/templates/docker-compose.yaml.j2 | 26 +++++++++---------- roles/grocy/defaults/main.yml | 1 + roles/grocy/templates/docker-compose.yaml.j2 | 2 +- roles/paperless/defaults/main.yml | 1 + .../templates/docker-compose.yaml.j2 | 2 +- 7 files changed, 32 insertions(+), 15 deletions(-) diff --git a/group_vars/instance_system/vars.yaml b/group_vars/instance_system/vars.yaml index 5d82ab7..b58d9a2 100644 --- a/group_vars/instance_system/vars.yaml +++ b/group_vars/instance_system/vars.yaml @@ -1,5 +1,7 @@ --- timezone: Europe/Berlin +domain: pichi.berlin + stack_paperless_ocr_language: deu+eng stack_paperless_ocr_languages: eng deu frk diff --git a/roles/arr/defaults/main.yml b/roles/arr/defaults/main.yml index cdeb3e3..ff50345 100644 --- a/roles/arr/defaults/main.yml +++ b/roles/arr/defaults/main.yml @@ -1,6 +1,19 @@ --- # inherited from global +arrstack_sonarr_subdomain: "sonarr.{{ domain | default('example.org') }}" +arrstack_radarr_subdomain: "radarr.{{ domain | default('example.org') }}" +arrstack_lidarr_subdomain: "lidarr.{{ domain | default('example.org') }}" +arrstack_readarr_subdomain: "readarr.{{ domain | default('example.org') }}" +arrstack_prowlarr_subdomain: "prowlarr.{{ domain | default('example.org') }}" +arrstack_beets_subdomain: "beets.{{ domain | default('example.org') }}" +arrstack_sabnzbd_subdomain: "usenet.{{ domain | default('example.org') }}" +arrstack_qbit_subdomain: "torrent.{{ domain | default('example.org') }}" +arrstack_jellyseerr_subdomain: "get.{{ domain | default('example.org') }}" +arrstack_jellyfin_subdomain: "media.{{ domain | default('example.org') }}" +arrstack_audiobookshelf_subdomain: "books.{{ domain | default('example.org') }}" +arrstack_gonic_subdomain: "music.{{ domain | default('example.org') }}" +arrstack_homarr_subdomain: "{{ domain | default('example.org') }}" arrstack_tz: "{{ timezone | default('America/Chicago') }}" arrstack_puid: "{{ puid | default(1000) }}" arrstack_pgid: "{{ pgid | default(100) }}" diff --git a/roles/arr/templates/docker-compose.yaml.j2 b/roles/arr/templates/docker-compose.yaml.j2 index b4c91b1..76ab0a9 100644 --- a/roles/arr/templates/docker-compose.yaml.j2 +++ b/roles/arr/templates/docker-compose.yaml.j2 @@ -16,7 +16,7 @@ services: - "{{ arrstack_serve_dir }}/files/torrent:/data/torrent" restart: unless-stopped labels: - caddy: "http://sonarr.pichi.berlin" + caddy: "{{ arrstack_sonarr_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 8989{{ '}}'}}" radarr: @@ -36,7 +36,7 @@ services: - "{{ arrstack_serve_dir }}/files/torrent:/data/torrent" restart: unless-stopped labels: - caddy: "http://radarr.pichi.berlin" + caddy: "{{ arrstack_radarr_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 7878{{ '}}'}}" lidarr: @@ -61,7 +61,7 @@ services: - "{{ arrstack_serve_dir }}/files/torrent:/data/torrent" restart: unless-stopped labels: - caddy: "http://lidarr.pichi.berlin" + caddy: "{{ arrstack_lidarr_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 8686{{ '}}'}}" readarr: @@ -81,7 +81,7 @@ services: - "{{ arrstack_serve_dir }}/files/torrent:/data/torrent" restart: unless-stopped labels: - caddy: "http://readarr.pichi.berlin" + caddy: "{{ arrstack_readarr_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 8787{{ '}}'}}" prowlarr: @@ -98,7 +98,7 @@ services: - "{{ arrstack_env_dir }}/config/prowlarr:/config" restart: unless-stopped labels: - caddy: "http://prowlarr.pichi.berlin" + caddy: "{{ arrstack_prowlarr_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 9696{{ '}}'}}" beets: @@ -119,7 +119,7 @@ services: - "{{ arrstack_serve_dir }}/files/music-unsorted:/downloads" restart: unless-stopped labels: - caddy: "http://prowlarr.pichi.berlin" + caddy: "{{ arrstack_beets_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 8337{{ '}}'}}" sabnzbd: @@ -137,7 +137,7 @@ services: - "{{ arrstack_serve_dir }}/files/usenet:/data/usenet:rw" restart: unless-stopped labels: - caddy: "http://usenet.pichi.berlin" + caddy: "{{ arrstack_sabnzbd_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 8080{{ '}}'}}" vpn: @@ -172,7 +172,7 @@ services: # - 8000:8000 # gluetun http control restart: unless-stopped labels: - caddy: "http://torrent.pichi.berlin" + caddy: "{{ arrstack_qbit_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 8888{{ '}}'}}" qbittorrent: image: linuxserver/qbittorrent @@ -241,7 +241,7 @@ services: - /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration restart: unless-stopped labels: - caddy: "http://pichi.berlin" + caddy: "{{ arrstack_homarr_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 7575{{ '}}'}}" jellyseerr: @@ -258,7 +258,7 @@ services: - "{{ arrstack_env_dir }}/config/jellyseerr:/app/config" restart: unless-stopped labels: - caddy: "http://get.pichi.berlin" + caddy: "{{ arrstack_jellyseerr_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 5055{{ '}}'}}" audiobookshelf: @@ -278,7 +278,7 @@ services: # - "{{ arrstack_serve_dir }}/media/podcasts:/podcasts" # TODO: If integrating podcasts restart: unless-stopped labels: - caddy: "http://books.pichi.berlin" + caddy: "{{ arrstack_audiobookshelf_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 80{{ '}}'}}" jellyfin: @@ -306,7 +306,7 @@ services: - 1900:1900/udp #optional - dlna discovery restart: unless-stopped labels: - caddy: "http://media.pichi.berlin" + caddy: "{{ arrstack_jellyfin_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 8096{{ '}}'}}" gonic: @@ -325,7 +325,7 @@ services: - "/srv/media/podcasts:/podcasts" #- /path/to/cache:/cache # transcode / covers / etc cache dir labels: - caddy: "http://music.pichi.berlin" + caddy: "{{ arrstack_gonic_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 80{{ '}}'}}" diff --git a/roles/grocy/defaults/main.yml b/roles/grocy/defaults/main.yml index ab2ad0b..3173b60 100644 --- a/roles/grocy/defaults/main.yml +++ b/roles/grocy/defaults/main.yml @@ -1,5 +1,6 @@ --- # inherited from global +stack_grocy_subdomain: "house.{{ domain | default('example.org') }}" stack_grocy_tz: "{{ timezone | default('America/Chicago') }}" stack_grocy_puid: "{{ puid | default(1000) }}" stack_grocy_pgid: "{{ pgid | default(100) }}" diff --git a/roles/grocy/templates/docker-compose.yaml.j2 b/roles/grocy/templates/docker-compose.yaml.j2 index 32d6b3a..d291d49 100644 --- a/roles/grocy/templates/docker-compose.yaml.j2 +++ b/roles/grocy/templates/docker-compose.yaml.j2 @@ -13,7 +13,7 @@ services: - "{{ arrstack_env_dir }}/config/grocy:/config" restart: unless-stopped labels: - caddy: "http://house.pichi.berlin" + caddy: "{{ stack_grocy_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 80{{ '}}'}}" networks: diff --git a/roles/paperless/defaults/main.yml b/roles/paperless/defaults/main.yml index 090333f..eb2289f 100644 --- a/roles/paperless/defaults/main.yml +++ b/roles/paperless/defaults/main.yml @@ -1,6 +1,7 @@ --- # inherited from global +stack_paperless_subdomain: "documents.{{ domain | default('example.org') }}" stack_paperless_tz: "{{ timezone | default('America/Chicago') }}" stack_paperless_puid: "{{ puid | default(1000) }}" stack_paperless_pgid: "{{ pgid | default(100) }}" diff --git a/roles/paperless/templates/docker-compose.yaml.j2 b/roles/paperless/templates/docker-compose.yaml.j2 index ed9682e..e2d739f 100644 --- a/roles/paperless/templates/docker-compose.yaml.j2 +++ b/roles/paperless/templates/docker-compose.yaml.j2 @@ -34,7 +34,7 @@ services: - "PAPERLESS_ADMIN_USER={{ stack_paperless_admin_user }}" - "PAPERLESS_ADMIN_PASSWORD={{ stack_paperless_admin_password }}" labels: - caddy: "http://documents.pichi.berlin" + caddy: "{{ stack_paperless_subdomain }}" caddy.reverse_proxy: "{{ '{{' }}upstreams 8000{{ '}}'}}" paperless-postgres: From b147771a8369505b9054c154cb9d20894b401418 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 17:20:39 +0200 Subject: [PATCH 06/12] repo: Change inventory to yaml format --- inventory | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/inventory b/inventory index a32928d..1b0533f 100644 --- a/inventory +++ b/inventory @@ -1,6 +1,12 @@ -[host_system] -bob ansible_ssh_private_key_file=~/.ssh/keys/bob +host_system: + hosts: + bob: + ansible_ssh_private_key_file: ~/.ssh/keys/bob -[instance_system] -#ansibletest ansible_connection=docker -dockerbob ansible_connection=community.general.incus ansible_incus_remote=bob +instance_system: + #ansibletest: + # ansible_connection: docker + hosts: + dockerbob: + ansible_connection: community.general.incus + ansible_incus_remote: bob From 9d36fe5714a6c4eda120e31293edad57b761311d Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 17:20:39 +0200 Subject: [PATCH 07/12] repo: Grab become password from pass store --- inventory | 1 + 1 file changed, 1 insertion(+) diff --git a/inventory b/inventory index 1b0533f..025240e 100644 --- a/inventory +++ b/inventory @@ -2,6 +2,7 @@ host_system: hosts: bob: ansible_ssh_private_key_file: ~/.ssh/keys/bob + ansible_become_pass: "{{ lookup('community.general.passwordstore', 'hosting/ansible/bob/sudo-password') }}" instance_system: #ansibletest: From fbaab26f7f4c87911516b743e415502740a5681d Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 17:36:11 +0200 Subject: [PATCH 08/12] repo: Add container tag to all hosted container tasks --- playbook.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/playbook.yaml b/playbook.yaml index a6e9809..4c0c766 100644 --- a/playbook.yaml +++ b/playbook.yaml @@ -32,6 +32,8 @@ - name: Prepare all docker hosted containers hosts: instance_system + tags: + - containers tasks: - name: Set up Caddy stack ansible.builtin.import_role: From cd43b25553a68be75546b96436e12a71f60e5f1f Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 17:36:11 +0200 Subject: [PATCH 09/12] arr: Fix remaining arrstack_data_dir variable --- roles/arr/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/arr/tasks/main.yml b/roles/arr/tasks/main.yml index 3cc431f..aa68074 100644 --- a/roles/arr/tasks/main.yml +++ b/roles/arr/tasks/main.yml @@ -10,7 +10,7 @@ - name: Create Arr stack data directory ansible.builtin.file: state: directory - path: "{{ arrstack_data_dir }}/{{ item }}" + path: "{{ arrstack_serve_dir }}/{{ item }}" owner: "{{ arrstack_puid }}" group: "{{ arrstack_pgid }}" mode: 0770 From 0ce9d700b2eb7864fc78bdfdaaf02175fee815ee Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 17:44:25 +0200 Subject: [PATCH 10/12] roles: Fix umask to be string type Should not be integer which it will be cast to if given without quotes. --- roles/arr/defaults/main.yml | 2 +- roles/grocy/defaults/main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/arr/defaults/main.yml b/roles/arr/defaults/main.yml index ff50345..56f6f35 100644 --- a/roles/arr/defaults/main.yml +++ b/roles/arr/defaults/main.yml @@ -17,7 +17,7 @@ arrstack_homarr_subdomain: "{{ domain | default('example.org') }}" arrstack_tz: "{{ timezone | default('America/Chicago') }}" arrstack_puid: "{{ puid | default(1000) }}" arrstack_pgid: "{{ pgid | default(100) }}" -arrstack_umask_set: "{{ umask_set | default(022) }}" +arrstack_umask_set: "{{ umask_set | default('022') }}" arrstack_env_dir: /opt/arrstack arrstack_serve_dir: /srv diff --git a/roles/grocy/defaults/main.yml b/roles/grocy/defaults/main.yml index 3173b60..f4229e2 100644 --- a/roles/grocy/defaults/main.yml +++ b/roles/grocy/defaults/main.yml @@ -4,7 +4,7 @@ stack_grocy_subdomain: "house.{{ domain | default('example.org') }}" stack_grocy_tz: "{{ timezone | default('America/Chicago') }}" stack_grocy_puid: "{{ puid | default(1000) }}" stack_grocy_pgid: "{{ pgid | default(100) }}" -stack_grocy_umask_set: "{{ umask_set | default(022) }}" +stack_grocy_umask_set: "{{ umask_set | default('022') }}" stack_grocy_env_dir: /opt/stack_grocy From 2eab9d35d3432439a042ebd106d9c99133d582ec Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 17:48:31 +0200 Subject: [PATCH 11/12] roles: Add inherited protocol for subdomains Can be set globally ('protocol: http://') or per stack. Defaults to empty which caddy treats as https. --- roles/arr/defaults/main.yml | 27 ++++++++++++++------------- roles/grocy/defaults/main.yml | 3 ++- roles/paperless/defaults/main.yml | 3 ++- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/roles/arr/defaults/main.yml b/roles/arr/defaults/main.yml index 56f6f35..e4a00e5 100644 --- a/roles/arr/defaults/main.yml +++ b/roles/arr/defaults/main.yml @@ -1,19 +1,20 @@ --- # inherited from global -arrstack_sonarr_subdomain: "sonarr.{{ domain | default('example.org') }}" -arrstack_radarr_subdomain: "radarr.{{ domain | default('example.org') }}" -arrstack_lidarr_subdomain: "lidarr.{{ domain | default('example.org') }}" -arrstack_readarr_subdomain: "readarr.{{ domain | default('example.org') }}" -arrstack_prowlarr_subdomain: "prowlarr.{{ domain | default('example.org') }}" -arrstack_beets_subdomain: "beets.{{ domain | default('example.org') }}" -arrstack_sabnzbd_subdomain: "usenet.{{ domain | default('example.org') }}" -arrstack_qbit_subdomain: "torrent.{{ domain | default('example.org') }}" -arrstack_jellyseerr_subdomain: "get.{{ domain | default('example.org') }}" -arrstack_jellyfin_subdomain: "media.{{ domain | default('example.org') }}" -arrstack_audiobookshelf_subdomain: "books.{{ domain | default('example.org') }}" -arrstack_gonic_subdomain: "music.{{ domain | default('example.org') }}" -arrstack_homarr_subdomain: "{{ domain | default('example.org') }}" +arrstack_protocol: "{{ protocol | default('')}}" +arrstack_sonarr_subdomain: "{{ arrstack_protocol }}sonarr.{{ domain | default('example.org') }}" +arrstack_radarr_subdomain: "{{ arrstack_protocol }}radarr.{{ domain | default('example.org') }}" +arrstack_lidarr_subdomain: "{{ arrstack_protocol }}lidarr.{{ domain | default('example.org') }}" +arrstack_readarr_subdomain: "{{ arrstack_protocol }}readarr.{{ domain | default('example.org') }}" +arrstack_prowlarr_subdomain: "{{ arrstack_protocol }}prowlarr.{{ domain | default('example.org') }}" +arrstack_beets_subdomain: "{{ arrstack_protocol }}beets.{{ domain | default('example.org') }}" +arrstack_sabnzbd_subdomain: "{{ arrstack_protocol }}usenet.{{ domain | default('example.org') }}" +arrstack_qbit_subdomain: "{{ arrstack_protocol }}torrent.{{ domain | default('example.org') }}" +arrstack_jellyseerr_subdomain: "{{ arrstack_protocol }}get.{{ domain | default('example.org') }}" +arrstack_jellyfin_subdomain: "{{ arrstack_protocol }}media.{{ domain | default('example.org') }}" +arrstack_audiobookshelf_subdomain: "{{ arrstack_protocol }}books.{{ domain | default('example.org') }}" +arrstack_gonic_subdomain: "{{ arrstack_protocol }}music.{{ domain | default('example.org') }}" +arrstack_homarr_subdomain: "{{ arrstack_protocol }}{{ domain | default('example.org') }}" arrstack_tz: "{{ timezone | default('America/Chicago') }}" arrstack_puid: "{{ puid | default(1000) }}" arrstack_pgid: "{{ pgid | default(100) }}" diff --git a/roles/grocy/defaults/main.yml b/roles/grocy/defaults/main.yml index f4229e2..64ecba9 100644 --- a/roles/grocy/defaults/main.yml +++ b/roles/grocy/defaults/main.yml @@ -1,6 +1,7 @@ --- # inherited from global -stack_grocy_subdomain: "house.{{ domain | default('example.org') }}" +stack_grocy_protocol: "{{ protocol | default('')}}" +stack_grocy_subdomain: "{{ stack_grocy_protocol }}house.{{ domain | default('example.org') }}" stack_grocy_tz: "{{ timezone | default('America/Chicago') }}" stack_grocy_puid: "{{ puid | default(1000) }}" stack_grocy_pgid: "{{ pgid | default(100) }}" diff --git a/roles/paperless/defaults/main.yml b/roles/paperless/defaults/main.yml index eb2289f..70860bc 100644 --- a/roles/paperless/defaults/main.yml +++ b/roles/paperless/defaults/main.yml @@ -1,7 +1,8 @@ --- # inherited from global -stack_paperless_subdomain: "documents.{{ domain | default('example.org') }}" +stack_paperless_protocol: "{{ protocol | default('')}}" +stack_paperless_subdomain: "{{ stack_paperless_protocol }}documents.{{ domain | default('example.org') }}" stack_paperless_tz: "{{ timezone | default('America/Chicago') }}" stack_paperless_puid: "{{ puid | default(1000) }}" stack_paperless_pgid: "{{ pgid | default(100) }}" From 4658ff5d7e22733f9502bfca70b1501b9dc03004 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 17 Jul 2025 17:53:20 +0200 Subject: [PATCH 12/12] dockerbob: Set to http protocol --- group_vars/instance_system/vars.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/group_vars/instance_system/vars.yaml b/group_vars/instance_system/vars.yaml index b58d9a2..fe9efcd 100644 --- a/group_vars/instance_system/vars.yaml +++ b/group_vars/instance_system/vars.yaml @@ -2,6 +2,7 @@ timezone: Europe/Berlin domain: pichi.berlin +protocol: http:// stack_paperless_ocr_language: deu+eng stack_paperless_ocr_languages: eng deu frk