feat: add Caddy service configuration and enable for hoarder service
Some checks failed
Nix Format Check / check-format (push) Failing after 40s
Some checks failed
Nix Format Check / check-format (push) Failing after 40s
This commit is contained in:
parent
645d3234d7
commit
d8aeda7fe0
@ -22,6 +22,7 @@
|
|||||||
- name: Include services tasks
|
- name: Include services tasks
|
||||||
ansible.builtin.include_tasks: services/services.yml
|
ansible.builtin.include_tasks: services/services.yml
|
||||||
vars:
|
vars:
|
||||||
|
caddy_enabled: true
|
||||||
hoarder_enabled: true
|
hoarder_enabled: true
|
||||||
golink_enabled: true
|
golink_enabled: true
|
||||||
immich_enabled: false
|
immich_enabled: false
|
||||||
|
4
config/ansible/tasks/servers/services/caddy/Caddyfile.j2
Normal file
4
config/ansible/tasks/servers/services/caddy/Caddyfile.j2
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
hoarder.mvl.sh {
|
||||||
|
reverse_proxy hoarder:{{ hoarder_port }}
|
||||||
|
tls {{ caddy_email }}
|
||||||
|
}
|
40
config/ansible/tasks/servers/services/caddy/caddy.yml
Normal file
40
config/ansible/tasks/servers/services/caddy/caddy.yml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
- name: Deploy Caddy service
|
||||||
|
block:
|
||||||
|
- name: Set Caddy directories
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
caddy_service_dir: "{{ ansible_env.HOME }}/services/caddy"
|
||||||
|
caddy_data_dir: "/mnt/services/caddy"
|
||||||
|
caddy_email: "{{ lookup('community.general.onepassword', 'qwvcr4cuumhqh3mschv57xdqka', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='email') }}"
|
||||||
|
hoarder_port: 3500
|
||||||
|
|
||||||
|
- name: Create Caddy directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ caddy_service_dir }}"
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Create Caddy network
|
||||||
|
ansible.builtin.command: docker network create caddy_default
|
||||||
|
register: create_caddy_network
|
||||||
|
failed_when:
|
||||||
|
- create_caddy_network.rc != 0
|
||||||
|
- "'already exists' not in create_caddy_network.stderr"
|
||||||
|
changed_when: create_caddy_network.rc == 0
|
||||||
|
|
||||||
|
- name: Deploy Caddy docker-compose.yml
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: docker-compose.yml.j2
|
||||||
|
dest: "{{ caddy_service_dir }}/docker-compose.yml"
|
||||||
|
mode: "0644"
|
||||||
|
register: caddy_compose
|
||||||
|
|
||||||
|
- name: Deploy Caddy Caddyfile
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: Caddyfile.j2
|
||||||
|
dest: "{{ caddy_service_dir }}/Caddyfile"
|
||||||
|
mode: "0644"
|
||||||
|
register: caddy_file
|
||||||
|
|
||||||
|
- name: Start Caddy service
|
||||||
|
ansible.builtin.command: docker compose -f "{{ caddy_service_dir }}/docker-compose.yml" up -d
|
||||||
|
when: caddy_compose.changed or caddy_file.changed
|
@ -0,0 +1,16 @@
|
|||||||
|
services:
|
||||||
|
caddy:
|
||||||
|
image: caddy:2.9.1-alpine
|
||||||
|
container_name: caddy
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
volumes:
|
||||||
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
||||||
|
- {{caddy_data_dir}}/data:/data
|
||||||
|
- {{caddy_data_dir}}/config:/config
|
||||||
|
environment:
|
||||||
|
- TZ=Europe/Amsterdam
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=100
|
@ -8,6 +8,9 @@ services:
|
|||||||
- 3500:3000
|
- 3500:3000
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
|
networks:
|
||||||
|
- hoarder
|
||||||
|
- caddy_network
|
||||||
|
|
||||||
chrome:
|
chrome:
|
||||||
image: zenika/alpine-chrome:124
|
image: zenika/alpine-chrome:124
|
||||||
@ -19,6 +22,8 @@ services:
|
|||||||
- --remote-debugging-address=0.0.0.0
|
- --remote-debugging-address=0.0.0.0
|
||||||
- --remote-debugging-port=9222
|
- --remote-debugging-port=9222
|
||||||
- --hide-scrollbars
|
- --hide-scrollbars
|
||||||
|
networks:
|
||||||
|
- hoarder
|
||||||
|
|
||||||
meilisearch:
|
meilisearch:
|
||||||
image: getmeili/meilisearch:v1.11.1
|
image: getmeili/meilisearch:v1.11.1
|
||||||
@ -27,4 +32,11 @@ services:
|
|||||||
- .env
|
- .env
|
||||||
volumes:
|
volumes:
|
||||||
- {{ hoarder_data_dir }}/meilisearch:/meili_data
|
- {{ hoarder_data_dir }}/meilisearch:/meili_data
|
||||||
|
networks:
|
||||||
|
- hoarder
|
||||||
|
|
||||||
|
networks:
|
||||||
|
hoarder:
|
||||||
|
caddy_network:
|
||||||
|
external: true
|
||||||
|
name: caddy_default
|
||||||
|
@ -7,6 +7,10 @@ NEXTAUTH_URL=http://localhost:3000
|
|||||||
|
|
||||||
DATA_DIR=/data
|
DATA_DIR=/data
|
||||||
|
|
||||||
|
TZ=Europe/Amsterdam
|
||||||
|
PUID=1000
|
||||||
|
PGID=100
|
||||||
|
|
||||||
NEXTAUTH_SECRET="{{ lookup('community.general.onepassword', 'osnzlfidxonvetmomdgn7vxu5a', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='NEXTAUTH_SECRET') }}"
|
NEXTAUTH_SECRET="{{ lookup('community.general.onepassword', 'osnzlfidxonvetmomdgn7vxu5a', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='NEXTAUTH_SECRET') }}"
|
||||||
MEILI_MASTER_KEY="{{ lookup('community.general.onepassword', 'osnzlfidxonvetmomdgn7vxu5a', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='MEILI_MASTER_KEY') }}"
|
MEILI_MASTER_KEY="{{ lookup('community.general.onepassword', 'osnzlfidxonvetmomdgn7vxu5a', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='MEILI_MASTER_KEY') }}"
|
||||||
OPENAI_API_KEY="{{ lookup('community.general.onepassword', 'osnzlfidxonvetmomdgn7vxu5a', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='OPENAI_API_KEY') }}"
|
OPENAI_API_KEY="{{ lookup('community.general.onepassword', 'osnzlfidxonvetmomdgn7vxu5a', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='OPENAI_API_KEY') }}"
|
||||||
|
@ -13,11 +13,15 @@ services:
|
|||||||
- redis
|
- redis
|
||||||
- database
|
- database
|
||||||
environment:
|
environment:
|
||||||
|
- TZ=Europe/Amsterdam
|
||||||
- PUID=1000
|
- PUID=1000
|
||||||
- PGID=1000
|
- PGID=100
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
disable: false
|
disable: false
|
||||||
|
networks:
|
||||||
|
- immich
|
||||||
|
- caddy_network
|
||||||
|
|
||||||
machine-learning:
|
machine-learning:
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
@ -28,6 +32,8 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
disable: false
|
disable: false
|
||||||
|
networks:
|
||||||
|
- immich
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
container_name: immich_redis
|
container_name: immich_redis
|
||||||
@ -35,6 +41,8 @@ services:
|
|||||||
healthcheck:
|
healthcheck:
|
||||||
test: redis-cli ping || exit 1
|
test: redis-cli ping || exit 1
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- immich
|
||||||
|
|
||||||
database:
|
database:
|
||||||
container_name: immich_postgres
|
container_name: immich_postgres
|
||||||
@ -71,6 +79,14 @@ services:
|
|||||||
'wal_compression=on',
|
'wal_compression=on',
|
||||||
]
|
]
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- immich
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
model-cache:
|
model-cache:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
immich:
|
||||||
|
caddy_network:
|
||||||
|
external: true
|
||||||
|
name: caddy_default
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
- name: Deploy docker services
|
- name: Deploy docker services
|
||||||
block:
|
block:
|
||||||
|
- name: Include caddy tasks
|
||||||
|
ansible.builtin.include_tasks: caddy/caddy.yml
|
||||||
|
when: caddy_enabled|bool
|
||||||
- name: Include golink tasks
|
- name: Include golink tasks
|
||||||
ansible.builtin.include_tasks: golink/golink.yml
|
ansible.builtin.include_tasks: golink/golink.yml
|
||||||
when: golink_enabled|bool
|
when: golink_enabled|bool
|
||||||
|
Loading…
x
Reference in New Issue
Block a user