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:
@@ -69,7 +69,7 @@ The docker role is now organized into logical service groups under `roles/docker
|
||||
- **communication/**: Social media
|
||||
- GoToSocial (Fediverse)
|
||||
- **monitoring/**: System monitoring and alerts
|
||||
- Changedetection, Glance dashboard, AppriseAPI, Gotify, Cronmaster
|
||||
- Changedetection, AppriseAPI, Gotify, Cronmaster
|
||||
|
||||
### Variable Management
|
||||
**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
|
||||
- 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
|
||||
- this is your reference for glance configuration https://github.com/glanceapp/glance/blob/main/docs/configuration.md#configuring-glance
|
||||
|
||||
## Variable Management Implementation Notes
|
||||
**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:
|
||||
```yaml
|
||||
# Use variables, not hardcoded values
|
||||
glance.url: "https://{{ subdomains.service }}/"
|
||||
networks:
|
||||
default:
|
||||
external: true
|
||||
|
||||
@@ -40,7 +40,6 @@ The Docker role deploys and manages 21 self-hosted services organized into logic
|
||||
|
||||
### Monitoring
|
||||
- **Changedetection** (Website change monitoring)
|
||||
- **Glance** (Dashboard)
|
||||
- **AppriseAPI** (Notification service)
|
||||
- **Gotify** (Push notifications)
|
||||
- **Cronmaster** (Scheduled container tasks)
|
||||
@@ -90,7 +89,7 @@ The most comprehensive role, deploying 21 containerized services organized into
|
||||
- **Media**: Audiobookshelf, Calibre, Karakeep, Manyfold
|
||||
- **Productivity**: Paperless-NGX, Baikal, Syncthing, HeyForm, Dawarich, Obsidian LiveSync
|
||||
- **Communication**: GoToSocial
|
||||
- **Monitoring**: Glance dashboard, Changedetection, AppriseAPI, Gotify, Cronmaster
|
||||
- **Monitoring**: Changedetection, AppriseAPI, Gotify, Cronmaster
|
||||
- **Template-Driven**: All services use Jinja2 templates for consistent configuration
|
||||
- **Category-Based Deployment**: Deploy services by category using Ansible tags
|
||||
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
domains:
|
||||
- name: thesatelliteoflove.com
|
||||
dns_records:
|
||||
- name: "home"
|
||||
ip: "{{ network.netcup_ip }}"
|
||||
- name: "git"
|
||||
ip: "{{ network.netcup_ip }}"
|
||||
- name: "social"
|
||||
@@ -72,6 +70,8 @@
|
||||
removed_records:
|
||||
- name: thesatelliteoflove.com
|
||||
dns_records:
|
||||
- name: "home"
|
||||
ip: "{{ network.netcup_ip }}"
|
||||
- name: "pin"
|
||||
ip: "{{ network.netcup_ip }}"
|
||||
- name: "code"
|
||||
|
||||
@@ -19,7 +19,6 @@ subdomains:
|
||||
syncthing: "syncthing.{{ primary_domain }}"
|
||||
loclog: "loclog.{{ primary_domain }}" # Dawarich
|
||||
social: "social.{{ primary_domain }}" # GoToSocial
|
||||
home: "home.{{ primary_domain }}" # Glance
|
||||
watcher: "watcher.{{ primary_domain }}" # Changedetection
|
||||
appriseapi: "appriseapi.{{ primary_domain }}"
|
||||
dockge: "dockge.{{ primary_domain }}"
|
||||
|
||||
@@ -7,7 +7,7 @@ service_categories:
|
||||
media: ["audiobookshelf", "calibre", "kavita", "dir2opds", "hoarder", "kosync", "manyfold"]
|
||||
productivity: ["paperlessngx", "baikal", "syncthing", "heyform", "dawarich", "obsidian-livesync", "gokapi"]
|
||||
communication: ["gotosocial", "listmonk"]
|
||||
monitoring: ["glance", "changedetection", "appriseapi", "gotify", "cronmaster"]
|
||||
monitoring: ["changedetection", "appriseapi", "gotify", "cronmaster"]
|
||||
|
||||
# Common service configuration
|
||||
services:
|
||||
|
||||
@@ -12,7 +12,6 @@ Manages scheduled tasks and automated maintenance jobs for the infrastructure.
|
||||
1. Creates a temporary directory `/tmp/warhammer_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/`
|
||||
4. Restarts the Glance dashboard stack to reflect the updated feed
|
||||
|
||||
## Files Managed
|
||||
- `/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:
|
||||
- Custom RSS generator container at `git.thesatelliteoflove.com/phil/rss-warhammer`
|
||||
- Caddy web server stack at `/opt/stacks/caddy/`
|
||||
- Glance dashboard stack at `/opt/stacks/glance/`
|
||||
|
||||
## Usage
|
||||
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
|
||||
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
|
||||
|
||||
@@ -54,7 +54,6 @@ Deploys and manages a comprehensive self-hosted infrastructure with 24 container
|
||||
- **Postiz** - Social media management
|
||||
|
||||
### Monitoring (`monitoring/`)
|
||||
- **Glance** - Customizable dashboard with monitoring
|
||||
- **Change Detection** - Website monitoring
|
||||
- **Apprise API** - Unified notifications
|
||||
- **Gotify** - Self-hosted push notification service
|
||||
@@ -190,12 +189,6 @@ Services expect to be accessible via subdomains of configured domains:
|
||||
|
||||
## 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
|
||||
- Automatic container restart policies
|
||||
- Health checks for database services
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
# 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
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/caddy
|
||||
|
||||
@@ -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
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
# Monitoring services - System monitoring, alerts, and dashboards
|
||||
|
||||
- name: Install glance
|
||||
import_tasks: glance.yml
|
||||
tags: glance
|
||||
|
||||
- name: Install changedetection
|
||||
import_tasks: changedetection.yml
|
||||
tags: changedetection
|
||||
|
||||
@@ -62,10 +62,6 @@ models.thesatelliteoflove.com {
|
||||
}
|
||||
|
||||
|
||||
home.thesatelliteoflove.com {
|
||||
reverse_proxy authentik-server-1:9000
|
||||
}
|
||||
|
||||
gotify.thesatelliteoflove.com {
|
||||
reverse_proxy gotify:80
|
||||
}
|
||||
|
||||
@@ -15,11 +15,6 @@ services:
|
||||
extra_hosts:
|
||||
- "{{ subdomains.gotify }}:{{ docker.hairpin_ip }}"
|
||||
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
|
||||
volumes:
|
||||
config:
|
||||
|
||||
@@ -13,10 +13,6 @@ services:
|
||||
extra_hosts:
|
||||
- '{{ subdomains.auth }}:{{ docker.hairpin_ip }}'
|
||||
labels:
|
||||
glance.name: Audiobookshelf
|
||||
glance.icon: si:audiobookshelf
|
||||
glance.url: https://{{ subdomains.audio }}/
|
||||
glance.description: Audio book server
|
||||
mag37.dockcheck.update: true
|
||||
volumes:
|
||||
audiobooks:
|
||||
|
||||
@@ -18,9 +18,6 @@ services:
|
||||
POSTGRES_DB: ${PG_DB:-authentik}
|
||||
env_file:
|
||||
- .env
|
||||
labels:
|
||||
glance.parent: authentik
|
||||
glance.name: DB
|
||||
trout:
|
||||
image: docker.io/library/redis:alpine
|
||||
command: --save 60 1 --loglevel warning
|
||||
@@ -33,9 +30,6 @@ services:
|
||||
timeout: 3s
|
||||
volumes:
|
||||
- trout:/data
|
||||
labels:
|
||||
glance.parent: authentik
|
||||
glance.name: Redis
|
||||
server:
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.2}
|
||||
restart: unless-stopped
|
||||
@@ -54,12 +48,6 @@ services:
|
||||
depends_on:
|
||||
- postgresql
|
||||
- trout
|
||||
labels:
|
||||
glance.name: Authentik
|
||||
glance.icon: si:authentik
|
||||
glance.url: https://{{ subdomains.auth }}/
|
||||
glance.description: Authentication server
|
||||
glance.id: authentik
|
||||
worker:
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.2.2}
|
||||
restart: unless-stopped
|
||||
@@ -87,9 +75,6 @@ services:
|
||||
depends_on:
|
||||
- postgresql
|
||||
- trout
|
||||
labels:
|
||||
glance.parent: authentik
|
||||
glance.name: Worker
|
||||
|
||||
volumes:
|
||||
database:
|
||||
|
||||
@@ -6,10 +6,6 @@ services:
|
||||
- config:/var/www/baikal/config
|
||||
- data:/var/www/baikal/Specific
|
||||
labels:
|
||||
glance.name: Baikal
|
||||
glance.icon: si:protoncalendar
|
||||
glance.url: https://{{ subdomains.cal }}/
|
||||
glance.description: CalDav server
|
||||
mag37.dockcheck.update: true
|
||||
volumes:
|
||||
config:
|
||||
|
||||
@@ -21,11 +21,6 @@ services:
|
||||
extra_hosts:
|
||||
- "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}"
|
||||
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
|
||||
volumes:
|
||||
bytestash_data:
|
||||
|
||||
@@ -12,10 +12,6 @@ services:
|
||||
- caddy_data:/data
|
||||
- caddy_config:/config
|
||||
labels:
|
||||
glance.name: Caddy
|
||||
glance.icon: si:caddy
|
||||
glance.url: https://{{ primary_domain }}/
|
||||
glance.description: Reverse proxy
|
||||
mag37.dockcheck.update: true
|
||||
networks:
|
||||
default:
|
||||
|
||||
@@ -14,10 +14,6 @@ services:
|
||||
- books:/books
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: Calibre
|
||||
glance.icon: si:calibreweb
|
||||
glance.url: https://{{ subdomains.books }}/
|
||||
glance.description: Book server
|
||||
mag37.dockcheck.update: true
|
||||
volumes:
|
||||
config:
|
||||
|
||||
@@ -5,11 +5,6 @@ services:
|
||||
container_name: changedetection
|
||||
hostname: changedetection
|
||||
labels:
|
||||
glance.name: Changedetection
|
||||
glance.icon: si:watchtower
|
||||
glance.url: https://{{ subdomains.watcher }}/
|
||||
glance.description: Changedetection
|
||||
glance.id: changedetection
|
||||
mag37.dockcheck.update: true
|
||||
volumes:
|
||||
- changedetection-data:/datastore
|
||||
@@ -95,8 +90,6 @@ services:
|
||||
sockpuppetbrowser:
|
||||
hostname: sockpuppetbrowser
|
||||
labels:
|
||||
glance.parent: changedetection
|
||||
glance.name: Browser
|
||||
mag37.dockcheck.update: true
|
||||
image: dgtlmoon/sockpuppetbrowser:latest
|
||||
cap_add:
|
||||
|
||||
@@ -19,12 +19,6 @@ services:
|
||||
- /opt/stacks/cronmaster/data:/app/data
|
||||
- /opt/stacks/cronmaster/snippets:/app/snippets
|
||||
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
|
||||
networks:
|
||||
default:
|
||||
|
||||
@@ -2,9 +2,6 @@ services:
|
||||
dawarich_redis:
|
||||
image: redis:7.4-alpine
|
||||
container_name: dawarich_redis
|
||||
labels:
|
||||
glance.parent: dawarich
|
||||
glance.name: Redis
|
||||
volumes:
|
||||
- dawarich_redis_data:/data
|
||||
restart: always
|
||||
@@ -17,9 +14,6 @@ services:
|
||||
dawarich_db:
|
||||
image: postgis/postgis:17-3.5-alpine
|
||||
shm_size: 1G
|
||||
labels:
|
||||
glance.parent: dawarich
|
||||
glance.name: DB
|
||||
container_name: dawarich_db
|
||||
volumes:
|
||||
- dawarich_db_data:/var/lib/postgresql/data
|
||||
@@ -38,12 +32,6 @@ services:
|
||||
dawarich_app:
|
||||
image: freikin/dawarich:latest
|
||||
container_name: dawarich_app
|
||||
labels:
|
||||
glance.name: Dawarich
|
||||
glance.icon: si:openstreetmap
|
||||
glance.url: https://{{ subdomains.loclog }}/
|
||||
glance.description: Dawarich
|
||||
glance.id: dawarich
|
||||
volumes:
|
||||
- dawarich_public:/var/app/public
|
||||
- dawarich_watched:/var/app/tmp/imports/watched
|
||||
@@ -100,9 +88,6 @@ services:
|
||||
dawarich_sidekiq:
|
||||
image: freikin/dawarich:latest
|
||||
container_name: dawarich_sidekiq
|
||||
labels:
|
||||
glance.parent: dawarich
|
||||
glance.name: Sidekiq
|
||||
volumes:
|
||||
- dawarich_public:/var/app/public
|
||||
- dawarich_watched:/var/app/tmp/imports/watched
|
||||
|
||||
@@ -16,10 +16,6 @@ services:
|
||||
- -url=https://{{ subdomains.dir2opds }}
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: dir2opds
|
||||
glance.icon: si:book
|
||||
glance.url: https://{{ subdomains.dir2opds }}/
|
||||
glance.description: OPDS book catalog
|
||||
mag37.dockcheck.update: true
|
||||
networks:
|
||||
default:
|
||||
|
||||
@@ -2,11 +2,6 @@ services:
|
||||
dockge:
|
||||
image: louislam/dockge:1
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: Dockge
|
||||
glance.icon: si:docker
|
||||
glance.url: http://{{ network.tailscale_hostname }}:5001
|
||||
glance.description: Docker management
|
||||
ports:
|
||||
# Host Port : Container Port
|
||||
- 5001:5001
|
||||
|
||||
@@ -15,11 +15,6 @@ services:
|
||||
- GITEA__mailer__PASSWD={{ vault_smtp.password }}
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: Gitea
|
||||
glance.icon: si:gitea
|
||||
glance.url: https://{{ subdomains.git }}/
|
||||
glance.description: Code repo
|
||||
glance.id: gitea
|
||||
mag37.dockcheck.update: true
|
||||
volumes:
|
||||
- gitea:/data
|
||||
@@ -50,8 +45,6 @@ services:
|
||||
- '{{ subdomains.auth }}:{{ docker.hairpin_ip }}'
|
||||
- '{{ subdomains.git }}:{{ docker.hairpin_ip }}'
|
||||
labels:
|
||||
glance.parent: gitea
|
||||
glance.name: Worker
|
||||
mag37.dockcheck.update: true
|
||||
volumes:
|
||||
- ./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 }}
|
||||
@@ -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_config:/app/config
|
||||
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
|
||||
volumes:
|
||||
gokapi_data:
|
||||
|
||||
@@ -9,10 +9,6 @@ services:
|
||||
- GOTIFY_DEFAULTUSER_PASS={{ vault_gotify.admin_password }}
|
||||
- TZ=America/Denver
|
||||
labels:
|
||||
glance.name: Gotify
|
||||
glance.icon: si:gotify
|
||||
glance.url: "https://{{ subdomains.gotify }}/"
|
||||
glance.description: Push notification server
|
||||
mag37.dockcheck.update: true
|
||||
extra_hosts:
|
||||
- "{{ subdomains.auth }}:{{ docker.hairpin_ip }}"
|
||||
@@ -29,10 +25,6 @@ services:
|
||||
depends_on:
|
||||
- gotify
|
||||
labels:
|
||||
glance.name: iGotify Assistant
|
||||
glance.icon: si:apple
|
||||
glance.url: "https://{{ subdomains.gotify_assistant }}/"
|
||||
glance.description: iOS notification assistant
|
||||
mag37.dockcheck.update: true
|
||||
extra_hosts:
|
||||
- "{{ subdomains.auth }}:{{ docker.hairpin_ip }}"
|
||||
|
||||
@@ -32,18 +32,11 @@ services:
|
||||
restart: "always"
|
||||
labels:
|
||||
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:
|
||||
image: offen/docker-volume-backup:v2
|
||||
restart: always
|
||||
labels:
|
||||
glance.parent: gotosocial
|
||||
glance.name: Backup
|
||||
mag37.dockcheck.update: true
|
||||
environment:
|
||||
BACKUP_FILENAME: gts-backup-%Y-%m-%dT%H-%M-%S.tar.gz
|
||||
|
||||
@@ -8,12 +8,6 @@ services:
|
||||
depends_on:
|
||||
- mongo
|
||||
- keydb
|
||||
labels:
|
||||
glance.name: Heyform
|
||||
glance.icon: si:googleforms
|
||||
glance.url: https://{{ subdomains.heyform }}/
|
||||
glance.description: Forms server
|
||||
glance.id: heyform
|
||||
environment:
|
||||
- APP_HOMEPAGE_URL=http://{{ subdomains.heyform }}
|
||||
- SESSION_KEY={{ vault_heyform.session_key }}
|
||||
@@ -31,9 +25,6 @@ services:
|
||||
mongo:
|
||||
image: percona/percona-server-mongodb:4.4
|
||||
restart: always
|
||||
labels:
|
||||
glance.parent: heyform
|
||||
glance.name: MongoDB
|
||||
volumes:
|
||||
# Persist MongoDB data
|
||||
- database:/data/db
|
||||
@@ -42,9 +33,6 @@ services:
|
||||
image: eqalpha/keydb:latest
|
||||
restart: always
|
||||
command: keydb-server --appendonly yes
|
||||
labels:
|
||||
glance.parent: heyform
|
||||
glance.name: KeyDB
|
||||
volumes:
|
||||
# Persist KeyDB data
|
||||
- keydb:/data
|
||||
|
||||
@@ -15,18 +15,11 @@ services:
|
||||
DATA_DIR: /data
|
||||
BROWSER_WEB_URL: http://chrome:9222
|
||||
labels:
|
||||
glance.name: Karakeep
|
||||
glance.icon: si:wikibooks
|
||||
glance.url: https://{{ subdomains.bookmarks }}/
|
||||
glance.description: Bookmark manager
|
||||
glance.id: karakeep
|
||||
mag37.dockcheck.update: true
|
||||
chrome:
|
||||
image: gcr.io/zenika-hub/alpine-chrome:123
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: Chrome
|
||||
glance.parent: karakeep
|
||||
mag37.dockcheck.update: true
|
||||
command:
|
||||
- --no-sandbox
|
||||
@@ -39,8 +32,6 @@ services:
|
||||
image: getmeili/meilisearch:v1.13.3
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: Meilisearch
|
||||
glance.parent: karakeep
|
||||
mag37.dockcheck.update: true
|
||||
env_file:
|
||||
- .env
|
||||
|
||||
@@ -14,10 +14,6 @@ services:
|
||||
- "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}"
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: Kavita
|
||||
glance.icon: si:book
|
||||
glance.url: https://{{ subdomains.kavita }}/
|
||||
glance.description: Book server
|
||||
mag37.dockcheck.update: true
|
||||
networks:
|
||||
default:
|
||||
|
||||
@@ -11,10 +11,6 @@ services:
|
||||
- ./data/redis:/var/lib/redis
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.name: KOReader Sync
|
||||
glance.icon: si:book
|
||||
glance.url: https://{{ subdomains.kosync }}/
|
||||
glance.description: KOReader reading progress sync
|
||||
mag37.dockcheck.update: true
|
||||
networks:
|
||||
default:
|
||||
|
||||
@@ -23,11 +23,6 @@ services:
|
||||
LISTMONK_ADMIN_PASSWORD: {{ vault_listmonk.admin_password }}
|
||||
volumes:
|
||||
- uploads:/listmonk/uploads
|
||||
labels:
|
||||
glance.name: Listmonk
|
||||
glance.url: https://{{ subdomains.listmonk }}/
|
||||
glance.description: Mailing list manager
|
||||
glance.id: listmonk
|
||||
|
||||
db:
|
||||
image: postgres:17-alpine
|
||||
@@ -44,9 +39,6 @@ services:
|
||||
retries: 6
|
||||
volumes:
|
||||
- listmonk-data:/var/lib/postgresql/data
|
||||
labels:
|
||||
glance.parent: listmonk
|
||||
glance.name: DB
|
||||
|
||||
volumes:
|
||||
uploads:
|
||||
|
||||
@@ -26,10 +26,6 @@ services:
|
||||
extra_hosts:
|
||||
- "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}"
|
||||
labels:
|
||||
glance.name: Manyfold
|
||||
glance.icon: si:open3d
|
||||
glance.url: https://{{ subdomains.models }}/
|
||||
glance.description: STL Storage
|
||||
mag37.dockcheck.update: true
|
||||
restart: unless-stopped
|
||||
# Optional, but recommended for better security
|
||||
|
||||
@@ -4,11 +4,6 @@ services:
|
||||
container_name: obsidian-livesync
|
||||
restart: unless-stopped
|
||||
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
|
||||
environment:
|
||||
- SERVER_DOMAIN={{ network.docker_host_ip }}
|
||||
|
||||
@@ -2,9 +2,6 @@ services:
|
||||
broker:
|
||||
image: docker.io/library/redis:7
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
glance.parent: paperlessngx
|
||||
glance.name: Redis
|
||||
volumes:
|
||||
- redisdata:/data
|
||||
|
||||
@@ -14,11 +11,6 @@ services:
|
||||
labels:
|
||||
# Stop during backup so the SQLite database in the data volume is consistent
|
||||
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:
|
||||
- broker
|
||||
- gotenberg
|
||||
@@ -40,9 +32,6 @@ services:
|
||||
|
||||
gotenberg:
|
||||
image: docker.io/gotenberg/gotenberg:8.7
|
||||
labels:
|
||||
glance.parent: paperlessngx
|
||||
glance.name: Gotenburg
|
||||
restart: unless-stopped
|
||||
|
||||
# The gotenberg chromium route is used to convert .eml files. We do not
|
||||
@@ -54,17 +43,12 @@ services:
|
||||
|
||||
tika:
|
||||
image: docker.io/apache/tika:latest
|
||||
labels:
|
||||
glance.parent: paperlessngx
|
||||
glance.name: Tika
|
||||
restart: unless-stopped
|
||||
|
||||
backup:
|
||||
image: offen/docker-volume-backup:v2
|
||||
restart: always
|
||||
labels:
|
||||
glance.parent: paperlessngx
|
||||
glance.name: Backup
|
||||
mag37.dockcheck.update: true
|
||||
environment:
|
||||
BACKUP_FILENAME: pngx-backup-%Y-%m-%dT%H-%M-%S.tar.gz
|
||||
|
||||
@@ -13,11 +13,6 @@ services:
|
||||
retries: 2
|
||||
start_period: 10s
|
||||
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
|
||||
|
||||
networks:
|
||||
|
||||
@@ -4,11 +4,6 @@ services:
|
||||
container_name: syncthing
|
||||
hostname: my-syncthing
|
||||
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
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
├── media/ (audiobookshelf, calibre, ghost, pinchflat, pinry, hoarder, manyfold)
|
||||
├── productivity/ (paperless, baikal, syncthing, mmdl, heyform, dawarich, palmr, obsidian-livesync)
|
||||
├── communication/ (gotosocial, postiz)
|
||||
└── monitoring/ (glance, changedetection, appriseapi, gotify)
|
||||
└── monitoring/ (changedetection, appriseapi, gotify)
|
||||
```
|
||||
- **COMPLETED**: All services organized into logical categories with category-level tags
|
||||
|
||||
|
||||
Reference in New Issue
Block a user