diff --git a/roles/docker/files/Caddyfile b/roles/docker/files/Caddyfile index 0bcf38d..d94e408 100644 --- a/roles/docker/files/Caddyfile +++ b/roles/docker/files/Caddyfile @@ -10,3 +10,7 @@ thesatelliteoflove.com { root * /srv file_server } + +bookmarks.thesatelliteoflove.com { + reverse_proxy hoarder-web-1:3000 +} \ No newline at end of file diff --git a/roles/docker/files/hoarder-compose.yml b/roles/docker/files/hoarder-compose.yml new file mode 100644 index 0000000..b266da8 --- /dev/null +++ b/roles/docker/files/hoarder-compose.yml @@ -0,0 +1,64 @@ +version: "3.8" +services: + web: + image: ghcr.io/hoarder-app/hoarder-web:${HOARDER_VERSION:-release} + restart: unless-stopped + volumes: + - data:/data + ports: + - 3000:3000 + env_file: + - .env + environment: + REDIS_HOST: redis + MEILI_ADDR: http://meilisearch:7700 + DATA_DIR: /data + redis: + image: redis:7.2-alpine + restart: unless-stopped + volumes: + - redis:/data + chrome: + image: gcr.io/zenika-hub/alpine-chrome:123 + restart: unless-stopped + command: + - --no-sandbox + - --disable-gpu + - --disable-dev-shm-usage + - --remote-debugging-address=0.0.0.0 + - --remote-debugging-port=9222 + - --hide-scrollbars + meilisearch: + image: getmeili/meilisearch:v1.6 + restart: unless-stopped + env_file: + - .env + environment: + MEILI_NO_ANALYTICS: "true" + volumes: + - meilisearch:/meili_data + workers: + image: ghcr.io/hoarder-app/hoarder-workers:${HOARDER_VERSION:-release} + restart: unless-stopped + volumes: + - data:/data + env_file: + - .env + environment: + REDIS_HOST: redis + MEILI_ADDR: http://meilisearch:7700 + BROWSER_WEB_URL: http://chrome:9222 + DATA_DIR: /data + depends_on: + web: + condition: service_started + +volumes: + redis: + meilisearch: + data: + +networks: + default: + external: true + name: lava \ No newline at end of file diff --git a/roles/docker/tasks/hoarder.yml b/roles/docker/tasks/hoarder.yml new file mode 100644 index 0000000..8ed528a --- /dev/null +++ b/roles/docker/tasks/hoarder.yml @@ -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 + diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 7634d78..c11e51a 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -63,3 +63,6 @@ - name: Install gitea import_tasks: gitea.yml + +- name: Install hoarder + import_tasks: hoarder.yml diff --git a/roles/docker/templates/hoarder-env.j2 b/roles/docker/templates/hoarder-env.j2 new file mode 100644 index 0000000..3d4992f --- /dev/null +++ b/roles/docker/templates/hoarder-env.j2 @@ -0,0 +1,5 @@ +HOARDER_VERSION=release +NEXTAUTH_SECRET={{ hoarder_nextauth_secret }} +MEILI_MASTER_KEY={{ hoarder_meili_master_key }} +NEXTAUTH_URL=https://bookmarks.thesatelliteoflove.com +OPENAI_API_KEY={{ openai_api_key }} \ No newline at end of file