diff --git a/group_vars/docker/services.yml b/group_vars/docker/services.yml index a0407e9..62cfc1a 100644 --- a/group_vars/docker/services.yml +++ b/group_vars/docker/services.yml @@ -4,7 +4,7 @@ service_categories: infrastructure: ["caddy", "authentik", "dockge"] development: ["gitea", "bytestash"] - media: ["audiobookshelf", "calibre", "hoarder", "manyfold"] + media: ["audiobookshelf", "calibre", "dir2opds", "hoarder", "manyfold"] productivity: ["paperlessngx", "baikal", "syncthing", "heyform", "dawarich", "obsidian-livesync"] communication: ["gotosocial", "listmonk"] monitoring: ["glance", "changedetection", "appriseapi", "gotify", "cronmaster"] diff --git a/roles/docker/tasks/media/dir2opds.yml b/roles/docker/tasks/media/dir2opds.yml new file mode 100644 index 0000000..df235cf --- /dev/null +++ b/roles/docker/tasks/media/dir2opds.yml @@ -0,0 +1,26 @@ +- name: make dir2opds directories + ansible.builtin.file: + path: "{{ item}}" + state: directory + loop: + - /opt/stacks/dir2opds + +- name: make dir2opds book directories + ansible.builtin.file: + path: "{{ item}}" + state: directory + loop: + - /opt/stacks/dir2opds/books + +- name: Template out the compose file + ansible.builtin.template: + src: dir2opds-compose.yml.j2 + dest: /opt/stacks/dir2opds/compose.yml + owner: root + mode: 644 + +- name: deploy dir2opds stack + community.docker.docker_compose_v2: + project_src: /opt/stacks/dir2opds + files: + - compose.yml diff --git a/roles/docker/tasks/media/main.yml b/roles/docker/tasks/media/main.yml index dee3416..9dca7b1 100644 --- a/roles/docker/tasks/media/main.yml +++ b/roles/docker/tasks/media/main.yml @@ -29,4 +29,8 @@ - name: Install manyfold import_tasks: manyfold.yml - tags: manyfold \ No newline at end of file + tags: manyfold + +- name: Install dir2opds + import_tasks: dir2opds.yml + tags: dir2opds \ No newline at end of file diff --git a/roles/docker/templates/dir2opds-compose.yml.j2 b/roles/docker/templates/dir2opds-compose.yml.j2 new file mode 100644 index 0000000..5b9233b --- /dev/null +++ b/roles/docker/templates/dir2opds-compose.yml.j2 @@ -0,0 +1,26 @@ +--- +services: + dir2opds: + image: ghcr.io/dubyte/dir2opds:v1.9.0 + container_name: dir2opds + ports: + - "8080:8080" + volumes: + - ./books:/books + command: + - -dir=/books + - -extract-metadata + - -enable-cache + - -gzip + - -enable-html + restart: unless-stopped + labels: + glance.name: dir2opds + glance.icon: si:book + glance.url: http://docker-01:8080 + glance.description: OPDS book catalog + mag37.dockcheck.update: true +networks: + default: + external: true + name: {{ docker.network_name }}