Compare commits
2 Commits
fb6651f1dc
...
f71ded1a01
| Author | SHA1 | Date | |
|---|---|---|---|
| f71ded1a01 | |||
| a2ae9e5ff6 |
4
dns.yml
4
dns.yml
@@ -53,6 +53,10 @@
|
|||||||
ip: "152.53.36.98"
|
ip: "152.53.36.98"
|
||||||
- name: pdg
|
- name: pdg
|
||||||
ip: "152.53.36.98"
|
ip: "152.53.36.98"
|
||||||
|
- name: kanboard
|
||||||
|
ip: "152.53.36.98"
|
||||||
|
- name: grocy
|
||||||
|
ip: "152.53.36.98"
|
||||||
- name: nerder.land
|
- name: nerder.land
|
||||||
dns_records:
|
dns_records:
|
||||||
- name: "forms"
|
- name: "forms"
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ subdomains:
|
|||||||
bytestash: "snippets.{{ primary_domain }}" # ByteStash code snippets
|
bytestash: "snippets.{{ primary_domain }}" # ByteStash code snippets
|
||||||
gotify: "gotify.{{ primary_domain }}" # Gotify notifications
|
gotify: "gotify.{{ primary_domain }}" # Gotify notifications
|
||||||
gotify_assistant: "gotify-assistant.{{ primary_domain }}" # iGotify iOS assistant
|
gotify_assistant: "gotify-assistant.{{ primary_domain }}" # iGotify iOS assistant
|
||||||
|
kanboard: "kanboard.{{ primary_domain }}" # Kanboard project management
|
||||||
|
grocy: "grocy.{{ primary_domain }}" # Grocy kitchen ERP
|
||||||
|
|
||||||
# Email domains for notifications
|
# Email domains for notifications
|
||||||
email_domains:
|
email_domains:
|
||||||
|
|||||||
@@ -40,6 +40,30 @@ tasks.thesatelliteoflove.com {
|
|||||||
reverse_proxy mmdl:3000
|
reverse_proxy mmdl:3000
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kanboard.thesatelliteoflove.com {
|
||||||
|
reverse_proxy kanboard:80
|
||||||
|
}
|
||||||
|
|
||||||
|
grocy.thesatelliteoflove.com {
|
||||||
|
# API endpoints bypass forward auth for mobile apps
|
||||||
|
handle /api/* {
|
||||||
|
reverse_proxy grocy:80
|
||||||
|
}
|
||||||
|
|
||||||
|
# Web interface requires Authentik authentication
|
||||||
|
forward_auth authentik-server-1:9000 {
|
||||||
|
uri /outpost.goauthentik.io/auth/caddy
|
||||||
|
copy_headers {
|
||||||
|
X-authentik-username
|
||||||
|
X-authentik-groups
|
||||||
|
X-authentik-email
|
||||||
|
X-authentik-name
|
||||||
|
X-authentik-uid
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reverse_proxy grocy:80
|
||||||
|
}
|
||||||
|
|
||||||
phlog.thesatelliteoflove.com {
|
phlog.thesatelliteoflove.com {
|
||||||
reverse_proxy ghost-1-ghost-1:2368
|
reverse_proxy ghost-1-ghost-1:2368
|
||||||
}
|
}
|
||||||
|
|||||||
18
roles/docker/tasks/productivity/grocy.yml
Normal file
18
roles/docker/tasks/productivity/grocy.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
- name: Create grocy directories
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
loop:
|
||||||
|
- /opt/stacks/grocy
|
||||||
|
|
||||||
|
- name: Template grocy compose file
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: grocy-compose.yml.j2
|
||||||
|
dest: /opt/stacks/grocy/compose.yml
|
||||||
|
|
||||||
|
- name: Deploy grocy stack
|
||||||
|
community.docker.docker_compose_v2:
|
||||||
|
project_src: /opt/stacks/grocy
|
||||||
|
files:
|
||||||
|
- compose.yml
|
||||||
18
roles/docker/tasks/productivity/kanboard.yml
Normal file
18
roles/docker/tasks/productivity/kanboard.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
- name: Create kanboard directories
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
loop:
|
||||||
|
- /opt/stacks/kanboard
|
||||||
|
|
||||||
|
- name: Template kanboard compose file
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: kanboard-compose.yml.j2
|
||||||
|
dest: /opt/stacks/kanboard/compose.yml
|
||||||
|
|
||||||
|
- name: Deploy kanboard stack
|
||||||
|
community.docker.docker_compose_v2:
|
||||||
|
project_src: /opt/stacks/kanboard
|
||||||
|
files:
|
||||||
|
- compose.yml
|
||||||
@@ -31,4 +31,12 @@
|
|||||||
|
|
||||||
- name: Install obsidian-livesync
|
- name: Install obsidian-livesync
|
||||||
import_tasks: obsidian-livesync.yml
|
import_tasks: obsidian-livesync.yml
|
||||||
tags: obsidian-livesync
|
tags: obsidian-livesync
|
||||||
|
|
||||||
|
- name: Install kanboard
|
||||||
|
import_tasks: kanboard.yml
|
||||||
|
tags: kanboard
|
||||||
|
|
||||||
|
- name: Install grocy
|
||||||
|
import_tasks: grocy.yml
|
||||||
|
tags: grocy
|
||||||
30
roles/docker/templates/grocy-compose.yml.j2
Normal file
30
roles/docker/templates/grocy-compose.yml.j2
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
services:
|
||||||
|
grocy:
|
||||||
|
image: lscr.io/linuxserver/grocy:latest
|
||||||
|
container_name: grocy
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=America/Denver
|
||||||
|
volumes:
|
||||||
|
- ./config:/config
|
||||||
|
extra_hosts:
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
|
- "{{ subdomains.auth }}:{{ docker.hairpin_ip }}"
|
||||||
|
labels:
|
||||||
|
glance.name: Grocy
|
||||||
|
glance.icon: si:grocyapp
|
||||||
|
glance.url: https://{{ subdomains.grocy }}/
|
||||||
|
glance.description: Kitchen ERP and inventory management
|
||||||
|
glance.id: grocy
|
||||||
|
mag37.dockcheck.update: true
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
grocy_config:
|
||||||
|
driver: local
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
external: true
|
||||||
|
name: {{ docker.network_name }}
|
||||||
32
roles/docker/templates/kanboard-compose.yml.j2
Normal file
32
roles/docker/templates/kanboard-compose.yml.j2
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
services:
|
||||||
|
kanboard:
|
||||||
|
image: kanboard/kanboard:latest
|
||||||
|
container_name: kanboard
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- PLUGIN_INSTALLER=true
|
||||||
|
- DB_DRIVER=sqlite
|
||||||
|
volumes:
|
||||||
|
- kanboard_data:/var/www/app/data
|
||||||
|
- kanboard_plugins:/var/www/app/plugins
|
||||||
|
extra_hosts:
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
|
- "{{ subdomains.auth }}:{{ docker.hairpin_ip }}"
|
||||||
|
labels:
|
||||||
|
glance.name: Kanboard
|
||||||
|
glance.icon: si:kanboard
|
||||||
|
glance.url: https://{{ subdomains.kanboard }}/
|
||||||
|
glance.description: Project management and Kanban boards
|
||||||
|
glance.id: kanboard
|
||||||
|
mag37.dockcheck.update: true
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
kanboard_data:
|
||||||
|
driver: local
|
||||||
|
kanboard_plugins:
|
||||||
|
driver: local
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
external: true
|
||||||
|
name: {{ docker.network_name }}
|
||||||
Reference in New Issue
Block a user