Remove the unused Glance dashboard

Drop the Glance stack, its home. route and DNS record, the glance.*
labels on every container, and the Glance restart in the Warhammer
feed cron script. Update docs to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Phil
2026-10-31 08:34:14 -06:00
co-authored by Claude Opus 5.5
parent 1601d47d4c
commit 5255049c10
41 changed files with 6 additions and 415 deletions
+1 -3
View File
@@ -69,7 +69,7 @@ The docker role is now organized into logical service groups under `roles/docker
- **communication/**: Social media - **communication/**: Social media
- GoToSocial (Fediverse) - GoToSocial (Fediverse)
- **monitoring/**: System monitoring and alerts - **monitoring/**: System monitoring and alerts
- Changedetection, Glance dashboard, AppriseAPI, Gotify, Cronmaster - Changedetection, AppriseAPI, Gotify, Cronmaster
### Variable Management ### Variable Management
**Critical**: This infrastructure uses a centralized variable hierarchy in `group_vars/all/`: **Critical**: This infrastructure uses a centralized variable hierarchy in `group_vars/all/`:
@@ -138,7 +138,6 @@ Common domains requiring hairpinning fixes:
- karakeep (formerly called hoarder) is deployed with both 'hoarder' and 'karakeep' tags for backward compatibility - karakeep (formerly called hoarder) is deployed with both 'hoarder' and 'karakeep' tags for backward compatibility
- whenever i ask you what containers need updates, run dockcheck and return a list of containers needing updates - whenever i ask you what containers need updates, run dockcheck and return a list of containers needing updates
- when i ask for the status container updates i want you to run dockcheck on the docker host https://github.com/mag37/dockcheck?ref=selfh.st - when i ask for the status container updates i want you to run dockcheck on the docker host https://github.com/mag37/dockcheck?ref=selfh.st
- this is your reference for glance configuration https://github.com/glanceapp/glance/blob/main/docs/configuration.md#configuring-glance
## Variable Management Implementation Notes ## Variable Management Implementation Notes
**Major Infrastructure Update**: Variable management system was implemented to replace all hardcoded values with centralized variables. **Major Infrastructure Update**: Variable management system was implemented to replace all hardcoded values with centralized variables.
@@ -157,7 +156,6 @@ Common domains requiring hairpinning fixes:
All templates now follow this pattern: All templates now follow this pattern:
```yaml ```yaml
# Use variables, not hardcoded values # Use variables, not hardcoded values
glance.url: "https://{{ subdomains.service }}/"
networks: networks:
default: default:
external: true external: true
+1 -2
View File
@@ -40,7 +40,6 @@ The Docker role deploys and manages 21 self-hosted services organized into logic
### Monitoring ### Monitoring
- **Changedetection** (Website change monitoring) - **Changedetection** (Website change monitoring)
- **Glance** (Dashboard)
- **AppriseAPI** (Notification service) - **AppriseAPI** (Notification service)
- **Gotify** (Push notifications) - **Gotify** (Push notifications)
- **Cronmaster** (Scheduled container tasks) - **Cronmaster** (Scheduled container tasks)
@@ -90,7 +89,7 @@ The most comprehensive role, deploying 21 containerized services organized into
- **Media**: Audiobookshelf, Calibre, Karakeep, Manyfold - **Media**: Audiobookshelf, Calibre, Karakeep, Manyfold
- **Productivity**: Paperless-NGX, Baikal, Syncthing, HeyForm, Dawarich, Obsidian LiveSync - **Productivity**: Paperless-NGX, Baikal, Syncthing, HeyForm, Dawarich, Obsidian LiveSync
- **Communication**: GoToSocial - **Communication**: GoToSocial
- **Monitoring**: Glance dashboard, Changedetection, AppriseAPI, Gotify, Cronmaster - **Monitoring**: Changedetection, AppriseAPI, Gotify, Cronmaster
- **Template-Driven**: All services use Jinja2 templates for consistent configuration - **Template-Driven**: All services use Jinja2 templates for consistent configuration
- **Category-Based Deployment**: Deploy services by category using Ansible tags - **Category-Based Deployment**: Deploy services by category using Ansible tags
+2 -2
View File
@@ -15,8 +15,6 @@
domains: domains:
- name: thesatelliteoflove.com - name: thesatelliteoflove.com
dns_records: dns_records:
- name: "home"
ip: "{{ network.netcup_ip }}"
- name: "git" - name: "git"
ip: "{{ network.netcup_ip }}" ip: "{{ network.netcup_ip }}"
- name: "social" - name: "social"
@@ -72,6 +70,8 @@
removed_records: removed_records:
- name: thesatelliteoflove.com - name: thesatelliteoflove.com
dns_records: dns_records:
- name: "home"
ip: "{{ network.netcup_ip }}"
- name: "pin" - name: "pin"
ip: "{{ network.netcup_ip }}" ip: "{{ network.netcup_ip }}"
- name: "code" - name: "code"
-1
View File
@@ -19,7 +19,6 @@ subdomains:
syncthing: "syncthing.{{ primary_domain }}" syncthing: "syncthing.{{ primary_domain }}"
loclog: "loclog.{{ primary_domain }}" # Dawarich loclog: "loclog.{{ primary_domain }}" # Dawarich
social: "social.{{ primary_domain }}" # GoToSocial social: "social.{{ primary_domain }}" # GoToSocial
home: "home.{{ primary_domain }}" # Glance
watcher: "watcher.{{ primary_domain }}" # Changedetection watcher: "watcher.{{ primary_domain }}" # Changedetection
appriseapi: "appriseapi.{{ primary_domain }}" appriseapi: "appriseapi.{{ primary_domain }}"
dockge: "dockge.{{ primary_domain }}" dockge: "dockge.{{ primary_domain }}"
+1 -1
View File
@@ -7,7 +7,7 @@ service_categories:
media: ["audiobookshelf", "calibre", "kavita", "dir2opds", "hoarder", "kosync", "manyfold"] media: ["audiobookshelf", "calibre", "kavita", "dir2opds", "hoarder", "kosync", "manyfold"]
productivity: ["paperlessngx", "baikal", "syncthing", "heyform", "dawarich", "obsidian-livesync", "gokapi"] productivity: ["paperlessngx", "baikal", "syncthing", "heyform", "dawarich", "obsidian-livesync", "gokapi"]
communication: ["gotosocial", "listmonk"] communication: ["gotosocial", "listmonk"]
monitoring: ["glance", "changedetection", "appriseapi", "gotify", "cronmaster"] monitoring: ["changedetection", "appriseapi", "gotify", "cronmaster"]
# Common service configuration # Common service configuration
services: services:
-2
View File
@@ -12,7 +12,6 @@ Manages scheduled tasks and automated maintenance jobs for the infrastructure.
1. Creates a temporary directory `/tmp/warhammer_feed` 1. Creates a temporary directory `/tmp/warhammer_feed`
2. Runs a custom Docker container (`git.thesatelliteoflove.com/phil/rss-warhammer`) to generate RSS feed 2. Runs a custom Docker container (`git.thesatelliteoflove.com/phil/rss-warhammer`) to generate RSS feed
3. Copies the generated `warhammer_rss_feed.xml` to `/opt/stacks/caddy/site/tsol/feeds/` 3. Copies the generated `warhammer_rss_feed.xml` to `/opt/stacks/caddy/site/tsol/feeds/`
4. Restarts the Glance dashboard stack to reflect the updated feed
## Files Managed ## Files Managed
- `/usr/local/bin/update_warhammer_feed.sh` - RSS feed update script - `/usr/local/bin/update_warhammer_feed.sh` - RSS feed update script
@@ -23,7 +22,6 @@ Manages scheduled tasks and automated maintenance jobs for the infrastructure.
- Depends on the following Docker stacks being deployed: - Depends on the following Docker stacks being deployed:
- Custom RSS generator container at `git.thesatelliteoflove.com/phil/rss-warhammer` - Custom RSS generator container at `git.thesatelliteoflove.com/phil/rss-warhammer`
- Caddy web server stack at `/opt/stacks/caddy/` - Caddy web server stack at `/opt/stacks/caddy/`
- Glance dashboard stack at `/opt/stacks/glance/`
## Usage ## Usage
This role is automatically applied as part of the main site.yml playbook with the `cron` tag. This role is automatically applied as part of the main site.yml playbook with the `cron` tag.
@@ -10,6 +10,3 @@ docker run --rm -v "$TMP_DIR":/app/output git.thesatelliteoflove.com/phil/rss-wa
# Copy the generated file to the desired location # Copy the generated file to the desired location
cp "$TMP_DIR/warhammer_rss_feed.xml" /opt/stacks/caddy/site/tsol/feeds cp "$TMP_DIR/warhammer_rss_feed.xml" /opt/stacks/caddy/site/tsol/feeds
# Restart the Docker stack
docker compose -f /opt/stacks/glance/compose.yml restart
-7
View File
@@ -54,7 +54,6 @@ Deploys and manages a comprehensive self-hosted infrastructure with 24 container
- **Postiz** - Social media management - **Postiz** - Social media management
### Monitoring (`monitoring/`) ### Monitoring (`monitoring/`)
- **Glance** - Customizable dashboard with monitoring
- **Change Detection** - Website monitoring - **Change Detection** - Website monitoring
- **Apprise API** - Unified notifications - **Apprise API** - Unified notifications
- **Gotify** - Self-hosted push notification service - **Gotify** - Self-hosted push notification service
@@ -190,12 +189,6 @@ Services expect to be accessible via subdomains of configured domains:
## Monitoring & Management ## Monitoring & Management
### Glance Dashboard Integration
All services include Glance labels for dashboard monitoring:
- Service health status
- Container resource usage
- Parent-child relationships for multi-container services
### Operational Features ### Operational Features
- Automatic container restart policies - Automatic container restart policies
- Health checks for database services - Health checks for database services
-7
View File
@@ -1,11 +1,4 @@
# roles/docker/handlers/main.yml # roles/docker/handlers/main.yml
- name: restart glance
community.docker.docker_compose_v2:
project_src: /opt/stacks/glance
files:
- compose.yml
state: restarted
- name: restart caddy - name: restart caddy
community.docker.docker_compose_v2: community.docker.docker_compose_v2:
project_src: /opt/stacks/caddy project_src: /opt/stacks/caddy
-29
View File
@@ -1,29 +0,0 @@
- name: make glance directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
loop:
- /opt/stacks/glance
- /opt/stacks/glance/config
- name: Template out the compose file
ansible.builtin.template:
src: glance-compose.yml.j2
dest: /opt/stacks/glance/compose.yml
owner: root
mode: '0644'
- name: Template out the config file
ansible.builtin.template:
src: glance.yml.j2
dest: /opt/stacks/glance/config/glance.yml
owner: root
mode: '0640'
group: docker
notify: restart glance
- name: deploy glances stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/glance
files:
- compose.yml
-4
View File
@@ -1,10 +1,6 @@
--- ---
# Monitoring services - System monitoring, alerts, and dashboards # Monitoring services - System monitoring, alerts, and dashboards
- name: Install glance
import_tasks: glance.yml
tags: glance
- name: Install changedetection - name: Install changedetection
import_tasks: changedetection.yml import_tasks: changedetection.yml
tags: changedetection tags: changedetection
-4
View File
@@ -62,10 +62,6 @@ models.thesatelliteoflove.com {
} }
home.thesatelliteoflove.com {
reverse_proxy authentik-server-1:9000
}
gotify.thesatelliteoflove.com { gotify.thesatelliteoflove.com {
reverse_proxy gotify:80 reverse_proxy gotify:80
} }
@@ -15,11 +15,6 @@ services:
extra_hosts: extra_hosts:
- "{{ subdomains.gotify }}:{{ docker.hairpin_ip }}" - "{{ subdomains.gotify }}:{{ docker.hairpin_ip }}"
labels: labels:
glance.name: Apprise
glance.icon: si:imessage
glance.url: https://{{ subdomains.appriseapi }}/
glance.description: Apprise api server
glance.id: apprise
mag37.dockcheck.update: true mag37.dockcheck.update: true
volumes: volumes:
config: config:
@@ -13,10 +13,6 @@ services:
extra_hosts: extra_hosts:
- '{{ subdomains.auth }}:{{ docker.hairpin_ip }}' - '{{ subdomains.auth }}:{{ docker.hairpin_ip }}'
labels: labels:
glance.name: Audiobookshelf
glance.icon: si:audiobookshelf
glance.url: https://{{ subdomains.audio }}/
glance.description: Audio book server
mag37.dockcheck.update: true mag37.dockcheck.update: true
volumes: volumes:
audiobooks: audiobooks:
@@ -18,9 +18,6 @@ services:
POSTGRES_DB: ${PG_DB:-authentik} POSTGRES_DB: ${PG_DB:-authentik}
env_file: env_file:
- .env - .env
labels:
glance.parent: authentik
glance.name: DB
trout: trout:
image: docker.io/library/redis:alpine image: docker.io/library/redis:alpine
command: --save 60 1 --loglevel warning command: --save 60 1 --loglevel warning
@@ -33,9 +30,6 @@ services:
timeout: 3s timeout: 3s
volumes: volumes:
- trout:/data - trout:/data
labels:
glance.parent: authentik
glance.name: Redis
server: server:
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.2} image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.2}
restart: unless-stopped restart: unless-stopped
@@ -54,12 +48,6 @@ services:
depends_on: depends_on:
- postgresql - postgresql
- trout - trout
labels:
glance.name: Authentik
glance.icon: si:authentik
glance.url: https://{{ subdomains.auth }}/
glance.description: Authentication server
glance.id: authentik
worker: worker:
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.2} image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.2}
restart: unless-stopped restart: unless-stopped
@@ -87,9 +75,6 @@ services:
depends_on: depends_on:
- postgresql - postgresql
- trout - trout
labels:
glance.parent: authentik
glance.name: Worker
volumes: volumes:
database: database:
@@ -6,10 +6,6 @@ services:
- config:/var/www/baikal/config - config:/var/www/baikal/config
- data:/var/www/baikal/Specific - data:/var/www/baikal/Specific
labels: labels:
glance.name: Baikal
glance.icon: si:protoncalendar
glance.url: https://{{ subdomains.cal }}/
glance.description: CalDav server
mag37.dockcheck.update: true mag37.dockcheck.update: true
volumes: volumes:
config: config:
@@ -21,11 +21,6 @@ services:
extra_hosts: extra_hosts:
- "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}" - "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}"
labels: labels:
glance.name: ByteStash
glance.icon: si:code
glance.url: https://{{ subdomains.bytestash }}/
glance.description: Code snippet manager
glance.id: bytestash
mag37.dockcheck.update: true mag37.dockcheck.update: true
volumes: volumes:
bytestash_data: bytestash_data:
@@ -12,10 +12,6 @@ services:
- caddy_data:/data - caddy_data:/data
- caddy_config:/config - caddy_config:/config
labels: labels:
glance.name: Caddy
glance.icon: si:caddy
glance.url: https://{{ primary_domain }}/
glance.description: Reverse proxy
mag37.dockcheck.update: true mag37.dockcheck.update: true
networks: networks:
default: default:
@@ -14,10 +14,6 @@ services:
- books:/books - books:/books
restart: unless-stopped restart: unless-stopped
labels: labels:
glance.name: Calibre
glance.icon: si:calibreweb
glance.url: https://{{ subdomains.books }}/
glance.description: Book server
mag37.dockcheck.update: true mag37.dockcheck.update: true
volumes: volumes:
config: config:
@@ -5,11 +5,6 @@ services:
container_name: changedetection container_name: changedetection
hostname: changedetection hostname: changedetection
labels: labels:
glance.name: Changedetection
glance.icon: si:watchtower
glance.url: https://{{ subdomains.watcher }}/
glance.description: Changedetection
glance.id: changedetection
mag37.dockcheck.update: true mag37.dockcheck.update: true
volumes: volumes:
- changedetection-data:/datastore - changedetection-data:/datastore
@@ -95,8 +90,6 @@ services:
sockpuppetbrowser: sockpuppetbrowser:
hostname: sockpuppetbrowser hostname: sockpuppetbrowser
labels: labels:
glance.parent: changedetection
glance.name: Browser
mag37.dockcheck.update: true mag37.dockcheck.update: true
image: dgtlmoon/sockpuppetbrowser:latest image: dgtlmoon/sockpuppetbrowser:latest
cap_add: cap_add:
@@ -19,12 +19,6 @@ services:
- /opt/stacks/cronmaster/data:/app/data - /opt/stacks/cronmaster/data:/app/data
- /opt/stacks/cronmaster/snippets:/app/snippets - /opt/stacks/cronmaster/snippets:/app/snippets
labels: labels:
glance.url: "http://{{ network.docker_host_ip }}:40123/"
glance.title: CronMaster
glance.description: Cron job management interface
glance.group: Infrastructure
glance.parent: infrastructure
glance.name: CronMaster
mag37.dockcheck.update: true mag37.dockcheck.update: true
networks: networks:
default: default:
@@ -2,9 +2,6 @@ services:
dawarich_redis: dawarich_redis:
image: redis:7.4-alpine image: redis:7.4-alpine
container_name: dawarich_redis container_name: dawarich_redis
labels:
glance.parent: dawarich
glance.name: Redis
volumes: volumes:
- dawarich_redis_data:/data - dawarich_redis_data:/data
restart: always restart: always
@@ -17,9 +14,6 @@ services:
dawarich_db: dawarich_db:
image: postgis/postgis:17-3.5-alpine image: postgis/postgis:17-3.5-alpine
shm_size: 1G shm_size: 1G
labels:
glance.parent: dawarich
glance.name: DB
container_name: dawarich_db container_name: dawarich_db
volumes: volumes:
- dawarich_db_data:/var/lib/postgresql/data - dawarich_db_data:/var/lib/postgresql/data
@@ -38,12 +32,6 @@ services:
dawarich_app: dawarich_app:
image: freikin/dawarich:latest image: freikin/dawarich:latest
container_name: dawarich_app container_name: dawarich_app
labels:
glance.name: Dawarich
glance.icon: si:openstreetmap
glance.url: https://{{ subdomains.loclog }}/
glance.description: Dawarich
glance.id: dawarich
volumes: volumes:
- dawarich_public:/var/app/public - dawarich_public:/var/app/public
- dawarich_watched:/var/app/tmp/imports/watched - dawarich_watched:/var/app/tmp/imports/watched
@@ -100,9 +88,6 @@ services:
dawarich_sidekiq: dawarich_sidekiq:
image: freikin/dawarich:latest image: freikin/dawarich:latest
container_name: dawarich_sidekiq container_name: dawarich_sidekiq
labels:
glance.parent: dawarich
glance.name: Sidekiq
volumes: volumes:
- dawarich_public:/var/app/public - dawarich_public:/var/app/public
- dawarich_watched:/var/app/tmp/imports/watched - dawarich_watched:/var/app/tmp/imports/watched
@@ -16,10 +16,6 @@ services:
- -url=https://{{ subdomains.dir2opds }} - -url=https://{{ subdomains.dir2opds }}
restart: unless-stopped restart: unless-stopped
labels: labels:
glance.name: dir2opds
glance.icon: si:book
glance.url: https://{{ subdomains.dir2opds }}/
glance.description: OPDS book catalog
mag37.dockcheck.update: true mag37.dockcheck.update: true
networks: networks:
default: default:
@@ -2,11 +2,6 @@ services:
dockge: dockge:
image: louislam/dockge:1 image: louislam/dockge:1
restart: unless-stopped restart: unless-stopped
labels:
glance.name: Dockge
glance.icon: si:docker
glance.url: http://{{ network.tailscale_hostname }}:5001
glance.description: Docker management
ports: ports:
# Host Port : Container Port # Host Port : Container Port
- 5001:5001 - 5001:5001
@@ -15,11 +15,6 @@ services:
- GITEA__mailer__PASSWD={{ vault_smtp.password }} - GITEA__mailer__PASSWD={{ vault_smtp.password }}
restart: unless-stopped restart: unless-stopped
labels: labels:
glance.name: Gitea
glance.icon: si:gitea
glance.url: https://{{ subdomains.git }}/
glance.description: Code repo
glance.id: gitea
mag37.dockcheck.update: true mag37.dockcheck.update: true
volumes: volumes:
- gitea:/data - gitea:/data
@@ -50,8 +45,6 @@ services:
- '{{ subdomains.auth }}:{{ docker.hairpin_ip }}' - '{{ subdomains.auth }}:{{ docker.hairpin_ip }}'
- '{{ subdomains.git }}:{{ docker.hairpin_ip }}' - '{{ subdomains.git }}:{{ docker.hairpin_ip }}'
labels: labels:
glance.parent: gitea
glance.name: Worker
mag37.dockcheck.update: true mag37.dockcheck.update: true
volumes: volumes:
- ./runner-config.yaml:/config.yaml - ./runner-config.yaml:/config.yaml
@@ -1,23 +0,0 @@
services:
glance:
image: glanceapp/glance:latest
volumes:
- ./config:/app/config
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
extra_hosts:
- '{{ primary_domain }}:{{ docker.hairpin_ip }}'
- '{{ subdomains.watcher }}:{{ docker.hairpin_ip }}'
labels:
glance.name: Glance
glance.icon: si:homepage
glance.url: https://{{ subdomains.home }}/
glance.description: Homepage app
glance.id: glance
mag37.dockcheck.update: true
networks:
default:
external: true
name: {{ docker.network_name }}
-149
View File
@@ -1,149 +0,0 @@
pages:
- name: Home
head-widgets:
- type: markets
hide-header: true
markets:
- symbol: SPY
name: S&P 500
- symbol: VTSAX
name: Vanguard Total Stock Market
- symbol: BAI
name: Blackrock AI
- symbol: NLR
name: VanEck Uranium+Nuclear Energy
- symbol: BITO
name: Bitcoin ETF
columns:
- size: full
widgets:
- type: search
search-engine: kagi
new-tab: true
- size: small
widgets:
- type: weather
location: Nederland, Colorado, United States
units: imperial
- type: custom-api
title: Air Quality
cache: 10m
url: https://api.waqi.info/feed/geo:39.9676367;-105.4037992/?token={{ vault_glance.air_quality_key }}
template: |
{% raw %}{{ $aqi := printf "%03s" (.JSON.String "data.aqi") }}
{{ $aqiraw := .JSON.String "data.aqi" }}
{{ $updated := .JSON.String "data.time.iso" }}
{{ $humidity := .JSON.String "data.iaqi.h.v" }}
{{ $ozone := .JSON.String "data.iaqi.o3.v" }}
{{ $pm25 := .JSON.String "data.iaqi.pm25.v" }}
{{ $pressure := .JSON.String "data.iaqi.p.v" }}
<div class="flex justify-between">
<div class="size-h5">
{{ if le $aqi "050" }}
<div class="color-positive">Good air quality</div>
{{ else if le $aqi "100" }}
<div class="color-primary">Moderate air quality</div>
{{ else }}
<div class="color-negative">Bad air quality</div>
{{ end }}
</div>
</div>
<div class="color-highlight size-h2">AQI: {{ $aqiraw }}</div>
<div style="border-bottom: 1px solid; margin-block: 10px;"></div>
<div class="margin-block-2">
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 10px;">
<div>
<div class="size-h3 color-highlight">{{ $humidity }}%</div>
<div class="size-h6">HUMIDITY</div>
</div>
<div>
<div class="size-h3 color-highlight">{{ $ozone }} μg/m³</div>
<div class="size-h6">OZONE</div>
</div>
<div>
<div class="size-h3 color-highlight">{{ $pm25 }} μg/m³</div>
<div class="size-h6">PM2.5</div>
</div>
<div>
<div class="size-h3 color-highlight">{{ $pressure }} hPa</div>
<div class="size-h6">PRESSURE</div>
</div>
</div>
<div class="size-h6" style="margin-top: 10px;">Last Updated at {{ slice $updated 11 16 }}</div>
</div>{% endraw %}
- name: Mini Painting
columns:
- size: small
widgets:
- type: twitch-channels
channels:
- warhammer
- marcofrisoninjm
- miniac
- next_level_painting
- monument_hobbies
- visit_the_chronicler
- size: full
widgets:
- type: rss
limit: 10
collapse-after: 3
cache: 3h
feeds:
- url: https://thesatelliteoflove.com/feeds/warhammer_rss_feed.xml
title: Warhammer Community
- url: https://yenneferofexeter.wordpress.com/feed/
title: Yennefer of Exeter
- name: Self Hosting
columns:
- size: small
widgets:
- type: releases
show-source-icon: true
repositories:
- advplyr/audiobookshelf
- go-gitea/gitea
- louislam/dockge
- glanceapp/glance
- hoarder-app/hoarder
- goauthentik/authentik
- superseriousbusiness/gotosocial
- caddyserver/caddy
- sabre-io/Baikal
- janeczku/calibre-web
- heyform/heyform
- paperless-ngx/paperless-ngx
- linuxserver/docker-calibre-web
- dgtlmoon/changedetection.io
- Freika/dawarich
- manyfold3d/manyfold
- caronc/apprise-api
- syncthing/syncthing
- size: full
widgets:
- type: rss
limit: 10
collapse-after: 3
cache: 3h
feeds:
- url: https://selfh.st/rss/
- url: https://www.jeffgeerling.com/blog.xml
- url: https://samwho.dev/rss.xml
- url: https://awesomekling.github.io/feed.xml
- url: https://ishadeed.com/feed.xml
title: Ahmad Shadeed
@@ -9,11 +9,6 @@ services:
- gokapi_data:/app/data - gokapi_data:/app/data
- gokapi_config:/app/config - gokapi_config:/app/config
labels: labels:
glance.name: Gokapi
glance.icon: si:files
glance.url: https://{{ subdomains.gokapi }}/
glance.description: Lightweight file sharing
glance.id: gokapi
mag37.dockcheck.update: true mag37.dockcheck.update: true
volumes: volumes:
gokapi_data: gokapi_data:
@@ -9,10 +9,6 @@ services:
- GOTIFY_DEFAULTUSER_PASS={{ vault_gotify.admin_password }} - GOTIFY_DEFAULTUSER_PASS={{ vault_gotify.admin_password }}
- TZ=America/Denver - TZ=America/Denver
labels: labels:
glance.name: Gotify
glance.icon: si:gotify
glance.url: "https://{{ subdomains.gotify }}/"
glance.description: Push notification server
mag37.dockcheck.update: true mag37.dockcheck.update: true
extra_hosts: extra_hosts:
- "{{ subdomains.auth }}:{{ docker.hairpin_ip }}" - "{{ subdomains.auth }}:{{ docker.hairpin_ip }}"
@@ -29,10 +25,6 @@ services:
depends_on: depends_on:
- gotify - gotify
labels: labels:
glance.name: iGotify Assistant
glance.icon: si:apple
glance.url: "https://{{ subdomains.gotify_assistant }}/"
glance.description: iOS notification assistant
mag37.dockcheck.update: true mag37.dockcheck.update: true
extra_hosts: extra_hosts:
- "{{ subdomains.auth }}:{{ docker.hairpin_ip }}" - "{{ subdomains.auth }}:{{ docker.hairpin_ip }}"
@@ -32,18 +32,11 @@ services:
restart: "always" restart: "always"
labels: labels:
docker-volume-backup.stop-during-backup: true docker-volume-backup.stop-during-backup: true
glance.name: GoToSocial
glance.icon: si:mastodon
glance.url: https://{{ subdomains.social }}/
glance.description: Fediverse server
glance.id: gotosocial
backup: backup:
image: offen/docker-volume-backup:v2 image: offen/docker-volume-backup:v2
restart: always restart: always
labels: labels:
glance.parent: gotosocial
glance.name: Backup
mag37.dockcheck.update: true mag37.dockcheck.update: true
environment: environment:
BACKUP_FILENAME: gts-backup-%Y-%m-%dT%H-%M-%S.tar.gz BACKUP_FILENAME: gts-backup-%Y-%m-%dT%H-%M-%S.tar.gz
@@ -8,12 +8,6 @@ services:
depends_on: depends_on:
- mongo - mongo
- keydb - keydb
labels:
glance.name: Heyform
glance.icon: si:googleforms
glance.url: https://{{ subdomains.heyform }}/
glance.description: Forms server
glance.id: heyform
environment: environment:
- APP_HOMEPAGE_URL=http://{{ subdomains.heyform }} - APP_HOMEPAGE_URL=http://{{ subdomains.heyform }}
- SESSION_KEY={{ vault_heyform.session_key }} - SESSION_KEY={{ vault_heyform.session_key }}
@@ -31,9 +25,6 @@ services:
mongo: mongo:
image: percona/percona-server-mongodb:4.4 image: percona/percona-server-mongodb:4.4
restart: always restart: always
labels:
glance.parent: heyform
glance.name: MongoDB
volumes: volumes:
# Persist MongoDB data # Persist MongoDB data
- database:/data/db - database:/data/db
@@ -42,9 +33,6 @@ services:
image: eqalpha/keydb:latest image: eqalpha/keydb:latest
restart: always restart: always
command: keydb-server --appendonly yes command: keydb-server --appendonly yes
labels:
glance.parent: heyform
glance.name: KeyDB
volumes: volumes:
# Persist KeyDB data # Persist KeyDB data
- keydb:/data - keydb:/data
@@ -15,18 +15,11 @@ services:
DATA_DIR: /data DATA_DIR: /data
BROWSER_WEB_URL: http://chrome:9222 BROWSER_WEB_URL: http://chrome:9222
labels: labels:
glance.name: Karakeep
glance.icon: si:wikibooks
glance.url: https://{{ subdomains.bookmarks }}/
glance.description: Bookmark manager
glance.id: karakeep
mag37.dockcheck.update: true mag37.dockcheck.update: true
chrome: chrome:
image: gcr.io/zenika-hub/alpine-chrome:123 image: gcr.io/zenika-hub/alpine-chrome:123
restart: unless-stopped restart: unless-stopped
labels: labels:
glance.name: Chrome
glance.parent: karakeep
mag37.dockcheck.update: true mag37.dockcheck.update: true
command: command:
- --no-sandbox - --no-sandbox
@@ -39,8 +32,6 @@ services:
image: getmeili/meilisearch:v1.13.3 image: getmeili/meilisearch:v1.13.3
restart: unless-stopped restart: unless-stopped
labels: labels:
glance.name: Meilisearch
glance.parent: karakeep
mag37.dockcheck.update: true mag37.dockcheck.update: true
env_file: env_file:
- .env - .env
@@ -14,10 +14,6 @@ services:
- "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}" - "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}"
restart: unless-stopped restart: unless-stopped
labels: labels:
glance.name: Kavita
glance.icon: si:book
glance.url: https://{{ subdomains.kavita }}/
glance.description: Book server
mag37.dockcheck.update: true mag37.dockcheck.update: true
networks: networks:
default: default:
@@ -11,10 +11,6 @@ services:
- ./data/redis:/var/lib/redis - ./data/redis:/var/lib/redis
restart: unless-stopped restart: unless-stopped
labels: labels:
glance.name: KOReader Sync
glance.icon: si:book
glance.url: https://{{ subdomains.kosync }}/
glance.description: KOReader reading progress sync
mag37.dockcheck.update: true mag37.dockcheck.update: true
networks: networks:
default: default:
@@ -23,11 +23,6 @@ services:
LISTMONK_ADMIN_PASSWORD: {{ vault_listmonk.admin_password }} LISTMONK_ADMIN_PASSWORD: {{ vault_listmonk.admin_password }}
volumes: volumes:
- uploads:/listmonk/uploads - uploads:/listmonk/uploads
labels:
glance.name: Listmonk
glance.url: https://{{ subdomains.listmonk }}/
glance.description: Mailing list manager
glance.id: listmonk
db: db:
image: postgres:17-alpine image: postgres:17-alpine
@@ -44,9 +39,6 @@ services:
retries: 6 retries: 6
volumes: volumes:
- listmonk-data:/var/lib/postgresql/data - listmonk-data:/var/lib/postgresql/data
labels:
glance.parent: listmonk
glance.name: DB
volumes: volumes:
uploads: uploads:
@@ -26,10 +26,6 @@ services:
extra_hosts: extra_hosts:
- "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}" - "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}"
labels: labels:
glance.name: Manyfold
glance.icon: si:open3d
glance.url: https://{{ subdomains.models }}/
glance.description: STL Storage
mag37.dockcheck.update: true mag37.dockcheck.update: true
restart: unless-stopped restart: unless-stopped
# Optional, but recommended for better security # Optional, but recommended for better security
@@ -4,11 +4,6 @@ services:
container_name: obsidian-livesync container_name: obsidian-livesync
restart: unless-stopped restart: unless-stopped
labels: labels:
glance.name: Obsidian LiveSync
glance.icon: si:obsidian
glance.url: http://{{ network.docker_host_ip }}:5984
glance.description: Obsidian note synchronization
glance.id: obsidian-livesync
mag37.dockcheck.update: true mag37.dockcheck.update: true
environment: environment:
- SERVER_DOMAIN={{ network.docker_host_ip }} - SERVER_DOMAIN={{ network.docker_host_ip }}
@@ -2,9 +2,6 @@ services:
broker: broker:
image: docker.io/library/redis:7 image: docker.io/library/redis:7
restart: unless-stopped restart: unless-stopped
labels:
glance.parent: paperlessngx
glance.name: Redis
volumes: volumes:
- redisdata:/data - redisdata:/data
@@ -14,11 +11,6 @@ services:
labels: labels:
# Stop during backup so the SQLite database in the data volume is consistent # Stop during backup so the SQLite database in the data volume is consistent
docker-volume-backup.stop-during-backup: true docker-volume-backup.stop-during-backup: true
glance.name: Paperless NGX
glance.icon: si:paperlessngx
glance.url: https://{{ subdomains.paper }}/
glance.description: Document server
glance.id: paperlessngx
depends_on: depends_on:
- broker - broker
- gotenberg - gotenberg
@@ -40,9 +32,6 @@ services:
gotenberg: gotenberg:
image: docker.io/gotenberg/gotenberg:8.7 image: docker.io/gotenberg/gotenberg:8.7
labels:
glance.parent: paperlessngx
glance.name: Gotenburg
restart: unless-stopped restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not # The gotenberg chromium route is used to convert .eml files. We do not
@@ -54,17 +43,12 @@ services:
tika: tika:
image: docker.io/apache/tika:latest image: docker.io/apache/tika:latest
labels:
glance.parent: paperlessngx
glance.name: Tika
restart: unless-stopped restart: unless-stopped
backup: backup:
image: offen/docker-volume-backup:v2 image: offen/docker-volume-backup:v2
restart: always restart: always
labels: labels:
glance.parent: paperlessngx
glance.name: Backup
mag37.dockcheck.update: true mag37.dockcheck.update: true
environment: environment:
BACKUP_FILENAME: pngx-backup-%Y-%m-%dT%H-%M-%S.tar.gz BACKUP_FILENAME: pngx-backup-%Y-%m-%dT%H-%M-%S.tar.gz
@@ -13,11 +13,6 @@ services:
retries: 2 retries: 2
start_period: 10s start_period: 10s
labels: labels:
glance.name: Pocket ID
glance.icon: si:passkey
glance.url: https://{{ subdomains.pocketid }}/
glance.description: Passkey OIDC provider
glance.id: pocketid
mag37.dockcheck.update: true mag37.dockcheck.update: true
networks: networks:
@@ -4,11 +4,6 @@ services:
container_name: syncthing container_name: syncthing
hostname: my-syncthing hostname: my-syncthing
labels: labels:
glance.name: Syncthing
glance.icon: si:syncthing
glance.url: https://{{ network.tailscale_hostname }}:8384
glance.description: Syncthing core
glance.id: Syncthing
mag37.dockcheck.update: true mag37.dockcheck.update: true
environment: environment:
- PUID=1000 - PUID=1000
+1 -1
View File
@@ -13,7 +13,7 @@
├── media/ (audiobookshelf, calibre, ghost, pinchflat, pinry, hoarder, manyfold) ├── media/ (audiobookshelf, calibre, ghost, pinchflat, pinry, hoarder, manyfold)
├── productivity/ (paperless, baikal, syncthing, mmdl, heyform, dawarich, palmr, obsidian-livesync) ├── productivity/ (paperless, baikal, syncthing, mmdl, heyform, dawarich, palmr, obsidian-livesync)
├── communication/ (gotosocial, postiz) ├── communication/ (gotosocial, postiz)
└── monitoring/ (glance, changedetection, appriseapi, gotify) └── monitoring/ (changedetection, appriseapi, gotify)
``` ```
- **COMPLETED**: All services organized into logical categories with category-level tags - **COMPLETED**: All services organized into logical categories with category-level tags