From 764e109fc93f38fd13be10c2fc852950d9a94583 Mon Sep 17 00:00:00 2001 From: Kim Brian Ramberg Date: Wed, 14 Jan 2026 21:51:19 +0100 Subject: [PATCH] . --- dozzle/portainer_stack.yml | 25 +++++++++++ freshRSS/portainer_stack.yml | 31 +++++++++++++ homepage/config/services.yaml | 53 +++++++++------------- homepage/config/settings.yaml | 58 +++++++++++++++++++++++-- nginx-proxy-manager/compose.yml | 17 +++++++- nginx-proxy-manager/portainer_stack.yml | 26 +++++++++++ notes.md | 18 ++++++++ portainer/compose.yml | 22 ++++++++++ uptime_kuma/portainer_stack.yml | 28 ++++++++++++ 9 files changed, 242 insertions(+), 36 deletions(-) create mode 100644 dozzle/portainer_stack.yml create mode 100644 freshRSS/portainer_stack.yml create mode 100644 nginx-proxy-manager/portainer_stack.yml create mode 100644 uptime_kuma/portainer_stack.yml diff --git a/dozzle/portainer_stack.yml b/dozzle/portainer_stack.yml new file mode 100644 index 0000000..33ccb18 --- /dev/null +++ b/dozzle/portainer_stack.yml @@ -0,0 +1,25 @@ + +# Service Name: Dozzle +# Description : Docker log viewer +# Homepage : https://dozzle.dev/ + +services: + dozzle: + image: amir20/dozzle:latest + environment: + - DOZZLE_MODE=swarm + - DOZZLE_HOSTNAME=dozzle.home.ramberg.net + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + ports: + - 8280:8080 + deploy: + mode: global + labels: + - homepage.group=Infrastructure + - homepage.name=Dozzle + - homepage.icon=dozzle.png + - homepage.href=https://dozzle.home.ramberg.net/ + - homepage.instance.public.href=https://dozzle.home.ramberg.net/ + - homepage.description=Docker Log Viewer + restart: unless-stopped diff --git a/freshRSS/portainer_stack.yml b/freshRSS/portainer_stack.yml new file mode 100644 index 0000000..cc58ee3 --- /dev/null +++ b/freshRSS/portainer_stack.yml @@ -0,0 +1,31 @@ + +# Service Name: FreshRSS +# Description : A free, self-hostable feed aggregator. +# Homepage : https://www.freshrss.org/ + +services: + freshrss: + image: lscr.io/linuxserver/freshrss:latest + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Oslo + volumes: + - /home/rcadmin/docker/freshRSS/config:/config + ports: + - 8083:80 + restart: unless-stopped + + deploy: + labels: + - homepage.group=Information + - homepage.name=FreshRSS + - homepage.icon=freshrss.png + - homepage.href=https://freshrss.home.ramberg.net/ + - homepage.description=FreshRSS + # Widget settings + - homepage.widget.type=freshrss + - homepage.widget.url=http://192.168.50.201:8083 + - homepage.widget.username=kim + - homepage.widget.password=homekbr1998 + diff --git a/homepage/config/services.yaml b/homepage/config/services.yaml index 2fa0cb4..bcf2091 100644 --- a/homepage/config/services.yaml +++ b/homepage/config/services.yaml @@ -13,8 +13,19 @@ username: "api@pve!homepage" password: "43fac2a0-ab06-42f7-b462-64559156bcfc" node: pve-01 + #fields: ["vms", "lxc", "resources.cpu", "resources.mem"] + fields: ["vms", "resources.cpu", "resources.mem"] + + - Portainer: + icon: portainer.svg + href: "https://portainer.home.ramberg.net/" + widget: + type: portainer + url: "https://portainer.home.ramberg.net/" + env: 4 + kubernetes: false # optional, defaults to false + key: "ptr_DM/to5MNS2q/DZ1IGFXJ5FmEwWbyHfir+ugicM6drB4=" -- Network Services: - TrueNas Scale: icon: truenas.png href: https://truenas.home.ramberg.net/ @@ -31,35 +42,13 @@ nasType: scale # defaults to scale, must be set to 'core' if using enablePools with TrueNAS Core fields: ["load", "uptime", "alerts"] - - Uptime Kuma Status Page: - icon: uptime-kuma.png - href: https://uptime.home.ramberg.net/status/statuspageslug - widgets: - - type: uptimekuma - url: http://192.168.50.201:3001 - title: UptimeKuma - slug: statuspageslug - Allowed fields: ["up", "down", "uptime", "incident"] - - - Nginx Proxy Manager: - icon: nginx-proxy-manager.png - href: https://proxy.home.ramberg.net/ - widgets: - - type: npm - url: https://proxy.home.ramberg.net/ - username: "homepage" - password: "homepagenpm" - fields: ["enabled", "disabled", "total"] - - - Portainer: - icon: portainer.svg - href: "https://portainer.home.ramberg.net/" - widget: - type: portainer - url: "https://portainer.home.ramberg.net/" - env: 4 - kubernetes: false # optional, defaults to false - key: "ptr_DM/to5MNS2q/DZ1IGFXJ5FmEwWbyHfir+ugicM6drB4=" - - +# - Nginx Proxy Manager: +# icon: nginx-proxy-manager.png +# href: https://proxy.home.ramberg.net/ +# widgets: +# - type: npm +# url: https://proxy.home.ramberg.net/ +# username: "homepage@ramberg.net" +# password: "homepass123" +# fields: ["enabled", "disabled", "total"] diff --git a/homepage/config/settings.yaml b/homepage/config/settings.yaml index 2e828c0..1d1fae6 100644 --- a/homepage/config/settings.yaml +++ b/homepage/config/settings.yaml @@ -2,6 +2,58 @@ # For configuration options and examples, please see: # https://gethomepage.dev/configs/settings/ -providers: - openweathermap: openweathermapapikey - weatherapi: weatherapiapikey +#providers: +# openweathermap: openweathermapapikey +# weatherapi: weatherapiapikey + +title: Kim Brian Ramberg's Homepage +headerStyle: clean +background: + image: https://wallpapercave.com/wp/wp4565843.jpg + blur: md + saturate: 50 + brightness: 50 + opacity: 70 +theme: dark +color: slate +useEqualHeights: true +quicklaunch: + searchDescriptions: true + hideInternetSearch: true + showSearchSuggestions: true + hideVisitURL: true +hideVersion: false +layout: + Quick: + header: false + style: column + Access: + header: false + style: column + Calendar: + header: false + style: column + Infrastructure: + header: true + style: row + columns: 6 + Network and IoT: + header: true + style: row + columns: 4 + Media: + header: true + style: row + columns: 4 + Monitoring: + header: true + style: row + columns: 4 + Tor Stack: + header: true + style: row + columns: 4 + Access and Services: + header: true + style: row + columns: 4 diff --git a/nginx-proxy-manager/compose.yml b/nginx-proxy-manager/compose.yml index 0fe6acc..09fd910 100644 --- a/nginx-proxy-manager/compose.yml +++ b/nginx-proxy-manager/compose.yml @@ -1,6 +1,6 @@ #name: Nginx Proxy Manager services: - app: + npm: image: 'docker.io/jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: @@ -10,3 +10,18 @@ services: volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt + + deploy: + labels: + - homepage.group=Infrastructure + - homepage.name=Nginx Proxy Manager + - homepage.icon=nginx-proxy-manager.png + #- homepage.description=Nginx Proxy Manager + - homepage.href=https://proxy.home.ramberg.net/ + # Widget Configuration +# - homepage.widget.type=npm +# - homepage.widget.url=https://proxy.home.ramberg.net +# - homepage.widget.username=kim@ramberg.net +# - homepage.widget.password=homekbr1998 +# - homepage.widget.fields=["enabled", "disabled", "total"] + diff --git a/nginx-proxy-manager/portainer_stack.yml b/nginx-proxy-manager/portainer_stack.yml new file mode 100644 index 0000000..7b9bff9 --- /dev/null +++ b/nginx-proxy-manager/portainer_stack.yml @@ -0,0 +1,26 @@ +services: + app: + image: 'docker.io/jc21/nginx-proxy-manager:latest' + restart: unless-stopped + ports: + - '80:80' + - '81:81' + - '443:443' + volumes: + - /home/rcadmin/docker/nginx-proxy-manager/data:/data + - /home/rcadmin/docker/nginx-proxy-manager/letsencrypt:/etc/letsencrypt + + deploy: + labels: + - homepage.group=Infrastructure + - homepage.name=Nginx Proxy Manager + - homepage.icon=nginx-proxy-manager.png + #- homepage.description=Nginx Proxy Manager + - homepage.href=https://proxy.home.ramberg.net/ + # Widget Configuration + - homepage.widget.type=npm + - homepage.widget.url=https://proxy.home.ramberg.net + - homepage.widget.username=kim@ramberg.net + - homepage.widget.password=homekbr1998 + - homepage.widget.fields=["enabled", "disabled", "total"] + diff --git a/notes.md b/notes.md index 0b7de20..45f08e4 100644 --- a/notes.md +++ b/notes.md @@ -2,3 +2,21 @@ # Service Name: # Description : # Homepage : + + + + + deploy: + labels: + - homepage.group=Information + - homepage.name=FreshRSS + - homepage.icon=freshrss.png + - homepage.href=https://freshrss.home.ramberg.net/ + - homepage.description=FreshRSS + # Widget settings + - homepage.widget.type=freshrss + - homepage.widget.url=http://192.168.50.201:8083 + - homepage.widget.username=kim + - homepage.widget.password=homekbr1998 + + diff --git a/portainer/compose.yml b/portainer/compose.yml index 654904f..776ee3c 100644 --- a/portainer/compose.yml +++ b/portainer/compose.yml @@ -19,6 +19,28 @@ services: placement: constraints: - node.role == manager +# labels: +# - homepage.group=Infrastructure +# - homepage.name=Portainer +# - homepage.icon=portainer.png +# - homepage.href=https://portainer.home.ramberg.net/ +# # Widget settings +# - homepage.widget.type=portainer +# - homepage.widget.url=https://portainer.home.ramberg.net +# - homepage.widget.env=4 +# - homepage.widget.kubernetes=false # optional, defaults to false +# - homepage.widget.key="ptr_DM/to5MNS2q/DZ1IGFXJ5FmEwWbyHfir+ugicM6drB4=" + +# - Portainer: +# icon: portainer.svg +# href: "https://portainer.home.ramberg.net/" +# widget: +# type: portainer +# url: "https://portainer.home.ramberg.net/" +# env: 4 + # kubernetes: false # optional, defaults to false + # key: "ptr_DM/to5MNS2q/DZ1IGFXJ5FmEwWbyHfir+ugicM6drB4=" + #volumes: # portainer_data: diff --git a/uptime_kuma/portainer_stack.yml b/uptime_kuma/portainer_stack.yml new file mode 100644 index 0000000..6d1b904 --- /dev/null +++ b/uptime_kuma/portainer_stack.yml @@ -0,0 +1,28 @@ +# Name: Uptime Kuma +# https://github.com/louislam/uptime-kuma +version: '3.9' +services: + uptime-kuma: + image: 'louislam/uptime-kuma:2' + container_name: uptime-kuma + volumes: + - '/home/rcadmin/docker/uptime_kuma/data:/app/data' + - /var/run/docker.sock:/var/run/docker.sock + ports: + - '127.0.0.1:3001:3001' + restart: always + deploy: + placement: + constraints: + - node.role == manager + labels: + - homepage.group=Infrastructure + - homepage.name=Uptime Kuma + - homepage.icon=uptime-kuma.png + #- homepage.description=Gitea server + - homepage.href=https://uptime.home.ramberg.net/ + - homepage.widget.type=uptimekuma + - homepage.widget.url=http://192.168.50.201:3001 + - homepage.widget.title=Uptime Kuma + - homepage.widget.slug=statuspageslug + - homepage.widget.fields=["up", "down", "uptime", "incident"]