migrate
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# Store environmental variables here. All variables are optional.
|
||||
# Lines beginning in '#' are ignored.
|
||||
|
||||
# Can be either development, production or test
|
||||
# NODE_ENV=production
|
||||
|
||||
# The port to expose the running application on
|
||||
# PORT=4000
|
||||
|
||||
# If you've proved SSL certs, then can set HTTPS port
|
||||
# SSL_PORT=4001
|
||||
|
||||
# The host that Dashy is running on, domain or IP
|
||||
# HOST=localhost
|
||||
|
||||
# The default base path for serving up static assets
|
||||
# BASE_URL=./
|
||||
|
||||
# Optionally, specify the path of SSL private + public keys
|
||||
# SSL_PRIV_KEY_PATH=/etc/ssl/certs/dashy-priv.key
|
||||
# SSL_PUB_KEY_PATH=/etc/ssl/certs/dashy-pub.pem
|
||||
|
||||
# If SSL enabled, choose whether or not to redirect http to https
|
||||
# Defaults to true
|
||||
# REDIRECT_HTTPS=true
|
||||
|
||||
# The path to the user data directory
|
||||
# USER_DATA_DIR=user-data
|
||||
|
||||
# Enable HTTP basic auth to protect your *.yml config files
|
||||
# ENABLE_HTTP_AUTH=true
|
||||
|
||||
# Enable basic HTTP auth to protect your *.yml config files
|
||||
# BASIC_AUTH_USERNAME
|
||||
# BASIC_AUTH_PASSWORD
|
||||
|
||||
# If you'd like frontend to automatically authenticate when basic auth enabled, set credentials here too
|
||||
# VUE_APP_BASIC_AUTH_USERNAME
|
||||
# VUE_APP_BASIC_AUTH_PASSWORD
|
||||
|
||||
# Override where the path to the configuration file is, can be a remote URL
|
||||
# VUE_APP_CONFIG_PATH=/conf.yml
|
||||
|
||||
# Usually the same as BASE_URL, but accessible in frontend
|
||||
# VUE_APP_DOMAIN=https://dashy.to
|
||||
|
||||
# Override the page title for the frontend app
|
||||
# VUE_APP_TITLE=''
|
||||
|
||||
# Set the default view to load on startup (can be `minimal`, `workspace` or `home`)
|
||||
# VUE_APP_STARTING_VIEW=home
|
||||
|
||||
# Set the Vue app routing mode (can be 'hash', 'history' or 'abstract')
|
||||
# VUE_APP_ROUTING_MODE=history
|
||||
|
||||
# Should enable SRI for build script and link resources
|
||||
# INTEGRITY=true
|
||||
|
||||
# Computed automatically on build. Indicates if running in container
|
||||
# IS_DOCKER=true
|
||||
|
||||
# Again, set automatically using package.json during build time
|
||||
# VUE_APP_VERSION=2.0.0
|
||||
|
||||
# Directory for conf.yml backups
|
||||
# BACKUP_DIR=./user-data/config-backups
|
||||
|
||||
# Setup any other user defined vars by prepending VUE_APP_ to the var name
|
||||
# VUE_APP_pihole_ip=http://your.pihole.ip
|
||||
# VUE_APP_pihole_key=your_pihole_secret_key
|
||||
@@ -0,0 +1,297 @@
|
||||
# Need to be stored in the dashy/config directory
|
||||
pageInfo:
|
||||
title: Hello, Miker
|
||||
description: My Homepage of Services
|
||||
logo: https://i.ibb.co/71WyyzM/little-bot-3.png
|
||||
appConfig:
|
||||
statusCheck: false
|
||||
theme: glass-2
|
||||
fontAwesomeKey: c94dc2b452
|
||||
customCss: '.clock p.time { font-size: 3rem !important; }'
|
||||
layout: vertical
|
||||
iconSize: small
|
||||
language: en
|
||||
sections:
|
||||
- name: My Public IP Address
|
||||
widgets:
|
||||
- type: public-ip
|
||||
id: 0_1764_publicip
|
||||
- name: Holidays
|
||||
widgets:
|
||||
- type: public-holidays
|
||||
options:
|
||||
country: US
|
||||
holidayType: all
|
||||
monthsToShow: 4
|
||||
lang: en
|
||||
id: 0_829_publicholidays
|
||||
|
||||
- name: Date and Time
|
||||
widgets:
|
||||
- type: clock
|
||||
options:
|
||||
timeZone: America/New_york
|
||||
format: en-GB
|
||||
hideDate: false
|
||||
customCityName: Bealeton, Va.
|
||||
use12Hour: true
|
||||
hideSeconds: true
|
||||
id: 0_396_clock
|
||||
- name: RackNerd Server
|
||||
items:
|
||||
- title: Proxy Service
|
||||
description: Nginx Proxy Manager
|
||||
icon: icons/nginx-proxy-manager.png
|
||||
url: https://proxy.mikeandrebel.com
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
- title: Search Engine
|
||||
description: MIker's Search Engine
|
||||
icon: icons/searxng.png
|
||||
url: https://search.mikeandrebel.com/
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
- title: Portainer
|
||||
description: Portainer
|
||||
icon: icons/portainer.png
|
||||
url: https://port.mikeandrebel.com/#!/home
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
- title: Rack Nerd Control Panel
|
||||
description: Rack Nerd Control Panel
|
||||
icon: icons/cloudflare.png
|
||||
url: https://nerdvm.racknerd.com/login.php
|
||||
target: newtab
|
||||
- title: Rack Nerd
|
||||
description: Rack Nerd
|
||||
icon: icons/cloudflare.png
|
||||
url: https://my.racknerd.com/index.php?rp=/login
|
||||
target: newtab
|
||||
- title: Mealie
|
||||
description: Mealie
|
||||
icon: icons/mealie.png
|
||||
url: https://meal.mikeandrebel.com/
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
displayData:
|
||||
sortBy: default
|
||||
rows: 1
|
||||
cols: 1
|
||||
collapsed: true
|
||||
hideForGuests: false
|
||||
|
||||
|
||||
- name: Home Server 1
|
||||
items:
|
||||
- title: JellyFin
|
||||
description: Jellyfin Movies
|
||||
icon: icons/jellyfin.png
|
||||
url: http://192.168.1.151:8096
|
||||
target: newtab
|
||||
- title: Local Proxy Server
|
||||
description: Nginx Proxy Manager
|
||||
icon: icons/nginx-proxy-manager.png
|
||||
url: http://192.168.1.151:81/
|
||||
target: newtab
|
||||
- title: Portainer
|
||||
description: Portainer
|
||||
icon: icons/portainer.png
|
||||
url: http://192.168.1.151:9000/
|
||||
target: newtab
|
||||
- title: Router
|
||||
description: Orbi System
|
||||
icon: icons/router.png
|
||||
url: http://192.168.1.1/
|
||||
target: newtab
|
||||
- title: Router
|
||||
description: Arris System
|
||||
icon: icons/arris.png
|
||||
url: http://192.168.0.1/
|
||||
target: newtab
|
||||
displayData:
|
||||
sortBy: default
|
||||
rows: 1
|
||||
cols: 1
|
||||
collapsed: true
|
||||
hideForGuests: false
|
||||
|
||||
- name: Home Server 2 internal
|
||||
items:
|
||||
- title: Proxmox
|
||||
icon: icons/proxmox.png
|
||||
url: https://192.168.0.171:8006
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
|
||||
- title: Portatiner
|
||||
icon: icons/portainer.png
|
||||
url: https://192.168.0.181:7443
|
||||
target: newtab
|
||||
|
||||
- title: NPM
|
||||
icon: icons/nginx-proxy-manager.png
|
||||
url: http://192.168.0.235:81
|
||||
target: newtab
|
||||
|
||||
- title: PiHole
|
||||
icon: icons/pi-hole.png
|
||||
url: http://192.168.0.185/admin/
|
||||
target: newtab
|
||||
|
||||
- title: VSCode
|
||||
icon: icons/vscode.png
|
||||
url: http://192.168.0.187:8680
|
||||
target: newtab
|
||||
|
||||
- title: Authelia
|
||||
icon: icons/authelia.png
|
||||
url: http://192.168.0.181:9091
|
||||
target: newtab
|
||||
|
||||
- title: Dashy
|
||||
icon: icons/dashy.png
|
||||
url: http://192.168.0.181:4000
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
|
||||
displayData:
|
||||
sortBy: default
|
||||
rows: 1
|
||||
cols: 1
|
||||
collapsed: true
|
||||
hideForGuests: false
|
||||
|
||||
- name: Home Server External
|
||||
items:
|
||||
|
||||
- title: Proxmox
|
||||
icon: icons/proxmox.png
|
||||
url: https://pve1.mikemcfetridge.com
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
|
||||
- title: Potainer
|
||||
icon: icons/portainer.png
|
||||
url: https://port.mikemcfetridge.com
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
|
||||
- title: NPM
|
||||
icon: icons/nginx-proxy-manager.png
|
||||
url: https://proxy.mikemcfetridge.com
|
||||
target: newtab
|
||||
|
||||
- title: PiHole
|
||||
icon: icons/pi-hole.png
|
||||
url: https://pihole.mikemcfetridge.com
|
||||
target: newtab
|
||||
|
||||
- title: VSCode
|
||||
icon: icons/vscode.png
|
||||
url: https://vscode.mikemcfetridge.com
|
||||
target: newtab
|
||||
|
||||
- title: Authelia
|
||||
icon: icons/authelia.png
|
||||
url: https://auth.mikemcfetridge.com
|
||||
target: newtab
|
||||
|
||||
- title: Dashy
|
||||
icon: icons/dashy.png
|
||||
url: https://dashy.mikemcfetridge.com
|
||||
target: newtab
|
||||
|
||||
displayData:
|
||||
sortBy: default
|
||||
rows: 1
|
||||
cols: 1
|
||||
collapsed: true
|
||||
hideForGuests: false
|
||||
|
||||
- name: Oracle Server
|
||||
items:
|
||||
- title: Hestia Control Panel
|
||||
description: Hestia Control Panel
|
||||
icon: icons/hestia.png
|
||||
url: https://hcp.mcfetridge.us:8083
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
- title: Next Cloud
|
||||
description: Next Cloud
|
||||
icon: icons/nextcloud.png
|
||||
url: https://next.mcfetridge.us
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
- title: Web Mail
|
||||
description: Web Email
|
||||
icon: si-reddit
|
||||
url: https://webmail.mcfetridge.us
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
- title: Family Website
|
||||
description: Wordpress Website
|
||||
icon: icons/wordpress.png
|
||||
url: https://mcfetridge.us/
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
- title: WordPress Admin
|
||||
description: WordPress Admin
|
||||
icon: icons/wordpress.png
|
||||
url: https://mcfetridge.us/wp-admin
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
- title: Webstats
|
||||
description: Hestia Webstats
|
||||
icon: icons/hestia.png
|
||||
url: https://mcfetridge.us/vstats/
|
||||
target: newtab
|
||||
statusCheck: true
|
||||
displayData:
|
||||
sortBy: default
|
||||
rows: 1
|
||||
cols: 1
|
||||
collapsed: true
|
||||
hideForGuests: false
|
||||
- name: Oracle Test Server
|
||||
items:
|
||||
- title: Poratiner
|
||||
description: Poratiner
|
||||
icon: icons/portainer.png
|
||||
url: http://
|
||||
target: newtab
|
||||
displayData:
|
||||
sortBy: default
|
||||
rows: 1
|
||||
cols: 1
|
||||
collapsed: true
|
||||
hideForGuests: false
|
||||
- name: Bookmarks
|
||||
items:
|
||||
- title: Name Cheap
|
||||
description: Name Cheap
|
||||
icon: icons/namecheap.png
|
||||
url: https://www.namecheap.com/
|
||||
target: newtab
|
||||
- title: Oracle Cloud
|
||||
description: Oracle Cloud
|
||||
icon: icons/oracle-cloud.png
|
||||
url: https://cloud.oracle.com/compute/instances?region=us-ashburn-1
|
||||
target: newtab
|
||||
- title: Send Blue
|
||||
description: Send Blue STMP
|
||||
icon: icons/sendinblue.png
|
||||
url: https://app.brevo.com/
|
||||
target: newtab
|
||||
- title: Github
|
||||
description: Git Hub
|
||||
icon: icons/github.png
|
||||
url: https://github.com/mmcfetridge1969
|
||||
target: newtab
|
||||
- title: DuckDNS
|
||||
description: Duck DNS
|
||||
icon: icons/duckdns.png
|
||||
url: https://www.duckdns.org
|
||||
displayData:
|
||||
collapsed: true
|
||||
hideForGuests: false
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
# Welcome to Dashy! To get started, run `docker compose up -d`
|
||||
# You can configure your container here, by modifying this file
|
||||
# If you need to download the Icons from GIT. Go to the root directory of Dashy >
|
||||
# sudo git clone https://github.com/walkxcode/dashboard-icons.git
|
||||
# This will create a dashboard-icons directory with all the png and svg files.
|
||||
|
||||
services:
|
||||
dashy:
|
||||
container_name: dashy
|
||||
|
||||
# Pull latest image
|
||||
image: 'lissy93/dashy'
|
||||
|
||||
# To build from source, replace 'image: lissy93/dashy' with 'build: .'
|
||||
# build: .
|
||||
|
||||
# You can also use an image with a different tag, or pull from a different r>
|
||||
# image: ghcr.io/lissy93/dashy or image: lissy93/dashy:3.0.0
|
||||
|
||||
# Mapping data to the volume created for this service
|
||||
volumes:
|
||||
- /home/miker/docker/dashy/data/config/conf.yml:/app/user-data/conf.yml
|
||||
- /home/miker/docker/dashy/png:/app/user-data/icons
|
||||
# Set port that web service will be served on. Keep container port as 8080
|
||||
# ports:
|
||||
# - 4000:8080
|
||||
|
||||
# Set any environmental variables
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
# Specify your user ID and group ID. You can find this by running `id -u` an>
|
||||
- UID=1000 # Update to match your UID
|
||||
- GID=1000 # Update to match your GID.
|
||||
|
||||
# Sets the service to restart always unless it is stopped manually.
|
||||
restart: unless-stopped
|
||||
|
||||
# Configure healthchecks
|
||||
healthcheck:
|
||||
test: ['CMD', 'node', '/app/services/healthcheck']
|
||||
interval: 1m30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
# Service will be place in the proxy network for NPM security
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
services:
|
||||
# Dashy - Application Dashboard
|
||||
dashy:
|
||||
container_name: dashy
|
||||
image: lissy93/dashy
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
restart: unless-stopped
|
||||
profiles: ["apps", "all"]
|
||||
networks:
|
||||
- default
|
||||
ports:
|
||||
- $DASHY_PORT:8080
|
||||
healthcheck:
|
||||
test: ['CMD', 'node', '/app/services/healthcheck']
|
||||
interval: 1m30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
volumes:
|
||||
- $DOCKERDIR/appdata/dashy/conf.yml:/app/public/conf.yml
|
||||
- $DOCKERDIR/appdata/dashy/item-icons:/app/public/item-icons
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- UID=$PUID
|
||||
- GID=$PGID
|
||||
# DOCKER-LABELS-PLACEHOLDER
|
||||
@@ -0,0 +1 @@
|
||||
ADGUARD_PASSWORD=P@ssw0rd
|
||||
@@ -0,0 +1,439 @@
|
||||
# icon: si:immich # si for Simple icons https://simpleicons.org/
|
||||
# icon: sh:immich # sh for selfh.st icons https://selfh.st/icons/
|
||||
# icon: di:immich # di for Dashboard icons https://github.com/homarr-labs/dashboard-icons
|
||||
# icon: mdi:camera # mdi for Material Design icons https://pictogrammers.com/library/mdi/
|
||||
|
||||
|
||||
|
||||
pages:
|
||||
- name: Home
|
||||
hide-desktop-navigation: false
|
||||
center-vertically: true
|
||||
columns:
|
||||
- size: small
|
||||
widgets:
|
||||
- type: calendar
|
||||
|
||||
- type: rss
|
||||
limit: 10
|
||||
collapse-after: 3
|
||||
cache: 3h
|
||||
feeds:
|
||||
- url: https://omgubuntu.co.uk/feed
|
||||
title: OmgUbuntu
|
||||
limit: 4
|
||||
- url: https://9to5linux.com/feed/atom
|
||||
title: 9to5Linux
|
||||
limit: 4
|
||||
|
||||
- type: twitch-channels
|
||||
channels:
|
||||
- technotim
|
||||
- piratesoftware
|
||||
|
||||
- size: full
|
||||
widgets:
|
||||
- type: group
|
||||
widgets:
|
||||
- type: hacker-news
|
||||
- type: lobsters
|
||||
|
||||
- type: search
|
||||
autofocus: true
|
||||
search-engine: google
|
||||
new-tab: true
|
||||
bangs:
|
||||
- title: YouTube
|
||||
shortcut: "!yt"
|
||||
url: https://www.youtube.com/results?search_query={QUERY}
|
||||
- title: Github
|
||||
shortcut: "!gh"
|
||||
url: https://github.com/search?q={QUERY}&type=repositories
|
||||
|
||||
- type: group
|
||||
widgets:
|
||||
- type: reddit
|
||||
subreddit: technology
|
||||
show-thumbnails: true
|
||||
- type: reddit
|
||||
subreddit: selfhosted
|
||||
show-thumbnails: true
|
||||
|
||||
- type: videos
|
||||
channels:
|
||||
- UCVls1GmFKf6WlTraIb_IaJg # Distro Tube
|
||||
- UCjSEJkpGbcZhvo0lr-44X_w # Tech Hut
|
||||
- UCZNhwA1B5YqiY1nLzmM0ZRg # Christian Lempa
|
||||
- UCVy16RS5eEDh8anP8j94G2A # DB TEch
|
||||
- UCwFpzG5MK5Shg_ncAhrgr9g # Awesome Open Source
|
||||
- UCxQKHvKbmSzGMvUrVtJYnUA # Learn Linux TV
|
||||
|
||||
- size: small
|
||||
widgets:
|
||||
- type: weather
|
||||
location: Bealeton, Virginia, United States
|
||||
units: imperial
|
||||
hour-format: 12h # alternatively "24h"
|
||||
|
||||
- type: custom-api
|
||||
title: Random Fact
|
||||
cache: 6h
|
||||
url: https://uselessfacts.jsph.pl/api/v2/facts/random
|
||||
template: |
|
||||
<p class="size-h4 color-paragraph">{{ .JSON.String "text" }}</p>
|
||||
|
||||
- type: custom-api
|
||||
title: Immich stats
|
||||
cache: 1d
|
||||
url: http://192.168.2.13:2283/api/server/statistics
|
||||
headers:
|
||||
x-api-key: fYDkorU0ik0xOOvfwGiuYtcHWZmggaNYfvHARDTdWo
|
||||
Accept: application/json
|
||||
template: |
|
||||
<div class="flex justify-between text-center">
|
||||
<div>
|
||||
<div class="color-highlight size-h3">{{ .JSON.Int "photos" | formatNumber }}</div>
|
||||
<div class="size-h6">PHOTOS</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="color-highlight size-h3">{{ .JSON.Int "videos" | formatNumber }}</div>
|
||||
<div class="size-h6">VIDEOS</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="color-highlight size-h3">{{ div (.JSON.Int "usage" | toFloat) 1073741824 | toInt | formatNumber }}GB</div>
|
||||
<div class="size-h6">USAGE</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
- type: releases
|
||||
show-source-icon: true
|
||||
repositories:
|
||||
- go-gitea/gitea
|
||||
- jellyfin/jellyfin
|
||||
- glanceapp/glance
|
||||
- dockerhub:gotify/server
|
||||
|
||||
- type: repository
|
||||
repository: mmcfetridge1969/ansible
|
||||
pull-requests-limit: 5
|
||||
issues-limit: 3
|
||||
commits-limit: 3
|
||||
|
||||
- type: repository
|
||||
repository: ChristianLempa/boilerplates
|
||||
pull-requests-limit: 5
|
||||
issues-limit: 3
|
||||
commits-limit: 3
|
||||
|
||||
- name: Monitoring
|
||||
# Optionally, if you only have a single page you can hide the desktop navigation for a cleaner look
|
||||
# hide-desktop-navigation: true
|
||||
columns:
|
||||
- size: small
|
||||
widgets:
|
||||
- type: calendar
|
||||
|
||||
- size: full
|
||||
widgets:
|
||||
- type: monitor
|
||||
cache: 1m
|
||||
title: Services
|
||||
sites:
|
||||
- title: Proxmox1
|
||||
url: https://192.168.2.1:8006
|
||||
check-url: https://192.168.2.1:8006
|
||||
allow-insecure: true
|
||||
icon: di:proxmox
|
||||
- title: Proxmox2
|
||||
url: https://192.168.2.2:8006
|
||||
check-url: https://192.168.2.2:8006
|
||||
allow-insecure: true
|
||||
icon: di:proxmox
|
||||
|
||||
- title: Jellyfin
|
||||
url: https://jellyfin.mikemcfetridge.com
|
||||
check-url: http://192.168.2.16:8096
|
||||
icon: di:jellyfin
|
||||
|
||||
- title: Immich
|
||||
url: https://immich.mikemcfetridge.com
|
||||
check-url: http://192.168.2.13:2283/
|
||||
icon: di:immich
|
||||
|
||||
- title: Vaultwarden
|
||||
url: https://vault.mikemcfetridge.com/
|
||||
check-url: https://192.168.2.19:8000/
|
||||
allow-insecure: true
|
||||
icon: di:vaultwarden-light
|
||||
|
||||
- title: NGINX Proxy Manager
|
||||
url: https://proxy.mikemcfetridge.com/
|
||||
check-url: http://192.168.2.22:81/
|
||||
icon: di:nginx-proxy-manager
|
||||
|
||||
- title: Wireguard
|
||||
url: https://wg2.mikemcfetridge.com/
|
||||
check-url: http://192.168.2.10:10086
|
||||
icon: di:wireguard
|
||||
|
||||
- title: Gitea
|
||||
url: https://gitea.mikemcfetridge.com/
|
||||
check-url: http://192.168.2.24:3000/
|
||||
icon: di:gitea
|
||||
|
||||
- title: IT-Tools
|
||||
url: https://ittools.mikemcfetridge.com/
|
||||
check-url: http://192.168.2.7:8089/
|
||||
icon: di:it-tools
|
||||
|
||||
- title: Mealie
|
||||
url: https://mealie.mikemcfetridge.com/
|
||||
check-url: http://192.168.2.7:9925/
|
||||
icon: di:mealie
|
||||
|
||||
- title: Wallabag
|
||||
url: https://wall.mikemcfetridge.com
|
||||
check-url: http://192.168.2.13:8667/
|
||||
icon: di:wallabag
|
||||
|
||||
- title: Pi-Hole
|
||||
url: http://192.168.2.8/admin
|
||||
check-url: http://192.168.2.8/admin
|
||||
icon: di:pi-hole
|
||||
|
||||
- title: Immich
|
||||
url: https://immich.mikemcfetridge.com
|
||||
check-url: http://192.168.2.13:2283/
|
||||
icon: di:immich
|
||||
|
||||
- title: Searxng
|
||||
url: https://search.mikemcfetridge.com
|
||||
check-url: http://192.168.2.23:8888/
|
||||
icon: di:searxng
|
||||
|
||||
- title: Authentik
|
||||
url: https://authentik.mikemcfetridge.com
|
||||
check-url: https://192.168.2.7:9443
|
||||
allow-insecure: true
|
||||
icon: di:authentik
|
||||
- title: Portainer-1
|
||||
url: https://port.mikemcfetridge.com
|
||||
check-url: https://192.168.2.7:9445
|
||||
allow-insecure: true
|
||||
icon: di:portainer
|
||||
|
||||
- title: Portainer-2
|
||||
url: https://192.168.2.13:9445
|
||||
check-url: https://192.168.2.13:9445
|
||||
allow-insecure: true
|
||||
icon: di:portainer
|
||||
|
||||
- title: Tianji
|
||||
url: https://tianji.mikemcfetridge.com/login
|
||||
check-url: http://192.168.2.7:12345
|
||||
allow-insecure: true
|
||||
icon: di:tianji
|
||||
|
||||
- title: Technitium DNS
|
||||
url: http://192.168.2.9:5380/
|
||||
check-url: http://192.168.2.9:5380/
|
||||
allow-insecure: true
|
||||
icon: sh:technitium
|
||||
|
||||
- type: monitor
|
||||
cache: 1m
|
||||
title: Servarr
|
||||
sites:
|
||||
|
||||
- title: Jellyseerr
|
||||
url: http://192.168.2.16:5055
|
||||
check-url: http://192.168.2.16:5055
|
||||
icon: di:jellyseerr
|
||||
|
||||
- title: Homarr
|
||||
url: https://dashboard.mikemcfetridge.com/
|
||||
check-url: http://192.168.2.7:7575/
|
||||
icon: di:homarr
|
||||
|
||||
- title: Radarr
|
||||
url: http://192.168.2.16:7878
|
||||
check-url: http://192.168.2.16:7878
|
||||
icon: di:radarr
|
||||
|
||||
- title: Sonarr
|
||||
url: http://192.168.2.16:8989
|
||||
check-url: http://192.168.2.16:8989
|
||||
icon: di:sonarr
|
||||
|
||||
- title: Lidarr
|
||||
url: http://192.168.2.16:8686
|
||||
check-url: http://192.168.2.16:8686
|
||||
icon: di:lidarr
|
||||
|
||||
- title: Bazarr
|
||||
url: http://192.168.2.16:6767
|
||||
check-url: http://192.168.2.16:6767
|
||||
icon: di:bazarr
|
||||
|
||||
- title: Prowlarr
|
||||
url: http://192.168.2.16:9696
|
||||
check-url: http://192.168.2.16:9696
|
||||
icon: di:prowlarr
|
||||
|
||||
- title: qBittorrent
|
||||
url: http://192.168.2.16:8118
|
||||
check-url: http://192.168.2.16:8118
|
||||
icon: di:qbittorrent
|
||||
|
||||
- title: Audio Book Shelf
|
||||
url: https://audio.mikemcfetridge.com
|
||||
check-url: http://192.168.2.16:13378
|
||||
icon: di:audiobookshelf
|
||||
|
||||
- size: small
|
||||
widgets:
|
||||
- type: rss
|
||||
limit: 10
|
||||
collapse-after: 3
|
||||
cache: 3h
|
||||
feeds:
|
||||
- url: https://omgubuntu.co.uk/feed
|
||||
title: OmgUbuntu
|
||||
limit: 4
|
||||
- url: https://9to5linux.com/feed/atom
|
||||
title: 9to5Linux
|
||||
limit: 4
|
||||
|
||||
|
||||
|
||||
- name: Widget testing
|
||||
# Optionally, if you only have a single page you can hide the desktop navigation for a cleaner look
|
||||
# hide-desktop-navigation: true
|
||||
columns:
|
||||
- size: small
|
||||
widgets:
|
||||
- type: calendar
|
||||
|
||||
- size: full
|
||||
widgets:
|
||||
|
||||
- type: custom-api
|
||||
title: Netbird Devices
|
||||
title-url: https://app.netbird.io/peers
|
||||
url: https://api.netbird.io/api/peers
|
||||
headers:
|
||||
Accept: application/json
|
||||
Authorization: Token ${nbp_bz2jNZN9MnkMErrBi8jFjrNsweZuY108oYSo}
|
||||
cache: 10m
|
||||
template: |
|
||||
{{ $enableOnlineIndicator := false }}
|
||||
|
||||
<style>
|
||||
.device-info-container {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
height: 1.5em;
|
||||
}
|
||||
|
||||
.device-info {
|
||||
display: flex;
|
||||
transition: transform 0.2s ease, opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.device-ip {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transform: translateY(-100%);
|
||||
opacity: 0;
|
||||
transition: transform 0.2s ease, opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.device-info-container:hover .device-info {
|
||||
transform: translateY(100%);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.device-info-container:hover .device-ip {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.offline-indicator,
|
||||
.online-indicator {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
margin-left: 4px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.online-indicator {
|
||||
background-color: var(--color-positive);
|
||||
}
|
||||
|
||||
.offline-indicator {
|
||||
background-color: var(--color-negative);
|
||||
}
|
||||
|
||||
.device-name-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.indicators-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<ul class="list list-gap-10 collapsible-container" data-collapse-after="4">
|
||||
{{ range .JSON.Array "" }}
|
||||
<li>
|
||||
<div class="flex items-center gap-10">
|
||||
<div class="device-name-container grow">
|
||||
<span class="size-h4 block text-truncate color-primary">
|
||||
{{ .String "hostname" }}
|
||||
</span>
|
||||
<div class="indicators-container">
|
||||
{{ if .Bool "connected" }}
|
||||
{{ if $enableOnlineIndicator }}
|
||||
<span class="online-indicator" data-popover-type="text" data-popover-text="Online"></span>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ $lastSeen := .String "last_seen" | parseTime "rfc3339" }}
|
||||
<span class="offline-indicator" data-popover-type="text" data-popover-text="Offline - Last seen {{ $lastSeen.Format "Jan 2 3:04pm" }}"></span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="device-info-container">
|
||||
<ul class="list-horizontal-text device-info">
|
||||
<li>{{ .String "os" }}</li>
|
||||
<li>{{ .String "city_name" }}, {{ .String "country_code"}}</li>
|
||||
</ul>
|
||||
<div class="device-ip">
|
||||
{{ .String "ip" }}
|
||||
{{ .String "dns_label"}}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
|
||||
- size: small
|
||||
widgets:
|
||||
- type: rss
|
||||
limit: 10
|
||||
collapse-after: 3
|
||||
cache: 3h
|
||||
feeds:
|
||||
- url: https://omgubuntu.co.uk/feed
|
||||
title: OmgUbuntu
|
||||
limit: 4
|
||||
- url: https://9to5linux.com/feed/atom
|
||||
title: 9to5Linux
|
||||
limit: 4
|
||||
@@ -0,0 +1,17 @@
|
||||
services:
|
||||
glance:
|
||||
image: glanceapp/glance # Uses the official Glance Docker image.
|
||||
container_name: glance # Assigns a custom container name for easy management.
|
||||
volumes:
|
||||
- /home/miker/dockerapps/glance/config:/app/config # Mounts the glance.yml configuration file.
|
||||
- /etc/timezone:/etc/timezone:ro # Ensures container timezone sync.
|
||||
- /etc/localtime:/etc/localtime:ro # Ensures container localtime sync.
|
||||
ports:
|
||||
- 8280:8080 # Exposes Glance on port 8280.
|
||||
restart: unless-stopped # Restarts container unless manually stopped.
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8280"]
|
||||
interval: 10s
|
||||
retries: 3
|
||||
timeout: 10s
|
||||
start_period: 30s
|
||||
@@ -0,0 +1,4 @@
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
# TZ for container timezone
|
||||
TZ=America/New_York
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
services:
|
||||
heimdall:
|
||||
image: lscr.io/linuxserver/heimdall:2.6.1
|
||||
container_name: heimdall
|
||||
environment:
|
||||
PUID: ${PUID} # Reference PUID from .env
|
||||
PGID: ${PGID} # Reference PGID from .env
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- ./heimdall/config:/config
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8443:443
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8080"]
|
||||
interval: 10s
|
||||
retries: 3
|
||||
timeout: 10s
|
||||
start_period: 30s
|
||||
@@ -0,0 +1,20 @@
|
||||
services:
|
||||
# Heimdall - Application Dashboard
|
||||
heimdall:
|
||||
image: lscr.io/linuxserver/heimdall:latest
|
||||
container_name: heimdall
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
restart: unless-stopped
|
||||
profiles: ["apps", "all"]
|
||||
networks:
|
||||
- default
|
||||
ports:
|
||||
- "$HEIMDALL_PORT:80"
|
||||
volumes:
|
||||
- $DOCKERDIR/appdata/heimdall:/config
|
||||
environment:
|
||||
PUID: $PUID
|
||||
PGID: $PGID
|
||||
TZ: $TZ
|
||||
# DOCKER-LABELS-PLACEHOLDER
|
||||
@@ -0,0 +1,4 @@
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
# TZ for container timezone
|
||||
TZ=America/New_York
|
||||
@@ -0,0 +1,3 @@
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,516 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz@9..40&family=Fira+Code&family=Poppins&family=Source+Code+Pro&family=Work+Sans&display=swap');
|
||||
|
||||
.theme-gray {
|
||||
font-family: 'DM Sans', sans-serif;
|
||||
|
||||
/* DRACULA COLORS */
|
||||
--dracula-background: #282a36;
|
||||
--dracula-background-dark: #15161d;
|
||||
--dracula-foreground: #44475a;
|
||||
--dracula-text: #f8f8f2;
|
||||
--dracula-slate: #6272a4;
|
||||
--dracula-cyan: #8be9fd;
|
||||
--dracula-green: #50fa7ae8;
|
||||
--dracula-orange: #ffb86c;
|
||||
--dracula-pink: #ff79c6;
|
||||
--dracula-purple: #bd93f9;
|
||||
--dracula-red: #ff5555;
|
||||
--dracula-yellow: #f1fa8c;
|
||||
|
||||
/* Theme preset colors */
|
||||
--color-50: 249 250 251;
|
||||
--color-100: 243 244 246;
|
||||
--color-200: 248 248 242; /* Text Color - use Dracula text color */
|
||||
--color-300: 209 213 219;
|
||||
--color-400: 156 163 175;
|
||||
--color-500: 107 114 128;
|
||||
--color-600: 75 85 99;
|
||||
--color-700: 55 65 81;
|
||||
--color-800: 40 42 54; /* Background color - use Dracula theme color */
|
||||
--color-900: 21 22 29; /* Dracula specific */
|
||||
--color-logo-start: 156 163 175;
|
||||
--color-logo-stop: 55 65 81;
|
||||
|
||||
--standard-bg: #44475a8e;
|
||||
|
||||
/* INFO WIDGET COLORS */
|
||||
--info-widgets: var(--dracula-purple);
|
||||
--resource-bar-bg: var(--standard-bg);
|
||||
--resource-bar-fg: var(--dracula-green);
|
||||
|
||||
--widget-border: var(--dracula-foreground);
|
||||
|
||||
/* SERVICES COLORS */
|
||||
--service-group: var(--dracula-purple);
|
||||
|
||||
--service-name: var(--dracula-text);
|
||||
--service-description: var(--dracula-purple);
|
||||
|
||||
--service-block-bg: #232530;
|
||||
--service-block-text: var(--dracula-pink);
|
||||
|
||||
/* BOOKMARKS COLORS */
|
||||
--bookmark-group: var(--dracula-purple);
|
||||
|
||||
--bookmark-icon-bg: #44475a60;
|
||||
--bookmark-icon: var(--dracula-purple);
|
||||
--bookmark-name: var(--dracula-text);
|
||||
|
||||
/* ALL CARD COLORS */
|
||||
--card-color: #44475a46;
|
||||
--card-color-hover: #44475a91;
|
||||
|
||||
/* FOOTER COLORS */
|
||||
--footer-items: var(--dracula-pink);
|
||||
|
||||
/* FOOTER COLORS */
|
||||
--scrollbar-fg: var(--dracula-purple);
|
||||
--scrollbar-bg: var(--standard-bg);
|
||||
|
||||
/*Class color values */
|
||||
.service-tags .dark\:bg-theme-900\/50 {
|
||||
background-color: rgb(var(--color-900) / 0.3) !important;
|
||||
}
|
||||
|
||||
/*******************************
|
||||
* INFORMATION WIDGETS STYLES *
|
||||
*******************************/
|
||||
#information-widgets {
|
||||
border-color: var(--widget-border);
|
||||
}
|
||||
|
||||
#information-widgets * {
|
||||
color: var(--info-widgets);
|
||||
}
|
||||
|
||||
.resource-usage {
|
||||
background-color: var(--resource-bar-bg);
|
||||
}
|
||||
|
||||
.resource-usage > div {
|
||||
background-color: var(--resource-bar-fg);
|
||||
}
|
||||
|
||||
/*******************************
|
||||
* SERVICES STYLES *
|
||||
*******************************/
|
||||
.service-group-icon > div {
|
||||
background: var(--service-group) !important; /* group label ICON color */
|
||||
}
|
||||
|
||||
.service-group-name {
|
||||
color: var(--service-group); /* group label NAME color */
|
||||
}
|
||||
|
||||
.services-group > button > svg {
|
||||
color: var(--service-group); /* group label EXPAND/COLLAPSE ICON color */
|
||||
}
|
||||
|
||||
.service-card {
|
||||
background-color: var(--card-color);
|
||||
}
|
||||
|
||||
.service-card:hover {
|
||||
background-color: var(--card-color-hover);
|
||||
}
|
||||
|
||||
.service-name.text-sm {
|
||||
font-size: 0.95rem;
|
||||
color: var(--service-name);
|
||||
}
|
||||
|
||||
.service-description.text-xs {
|
||||
font-size: 0.75rem;
|
||||
color: var(--service-description);
|
||||
}
|
||||
|
||||
.service img {
|
||||
border-radius: 25%;
|
||||
}
|
||||
|
||||
.service-block {
|
||||
background: var(--service-block-bg);
|
||||
}
|
||||
|
||||
.service-block .uppercase {
|
||||
color: var(--service-block-text);
|
||||
}
|
||||
|
||||
.service-block .font-thin {
|
||||
color: var(--dracula-text);
|
||||
}
|
||||
|
||||
/*******************************
|
||||
* BOOKMARK STYLES *
|
||||
*******************************/
|
||||
|
||||
.bookmark-group-name {
|
||||
color: var(--bookmark-group);
|
||||
}
|
||||
|
||||
.bookmark-icon {
|
||||
background-color: var(--bookmark-icon-bg) !important;
|
||||
}
|
||||
|
||||
.bookmark-icon > div > div {
|
||||
background: var(
|
||||
--bookmark-icon
|
||||
) !important; /* If using si or md icons, make default purple */
|
||||
}
|
||||
|
||||
.bookmark-name.text-xs {
|
||||
font-size: 0.85rem;
|
||||
color: var(--bookmark-name);
|
||||
}
|
||||
|
||||
li.bookmark > a {
|
||||
background-color: var(--card-color);
|
||||
}
|
||||
|
||||
li.bookmark > a:hover {
|
||||
background-color: var(--card-color-hover);
|
||||
}
|
||||
|
||||
/*******************************
|
||||
* CALENDAR STYLES *
|
||||
*******************************/
|
||||
|
||||
#dracula-calendar .flex.justify-between.flex-wrap span {
|
||||
color: var(--dracula-purple);
|
||||
}
|
||||
|
||||
/*******************************
|
||||
* FOOTER STYLES *
|
||||
*******************************/
|
||||
|
||||
#footer svg {
|
||||
color: var(--footer-items);
|
||||
}
|
||||
|
||||
/*******************************
|
||||
* SCROLLBAR STYLES *
|
||||
*******************************/
|
||||
|
||||
* {
|
||||
--scrollbar-thumb: var(--scrollbar-fg);
|
||||
--scrollbar-track: var(--scrollbar-bg);
|
||||
}
|
||||
|
||||
/*******************************
|
||||
* GLANCES STYLES *
|
||||
*******************************/
|
||||
|
||||
li[id^='glances-'] .recharts-surface > g:nth-of-type(1) path:nth-child(1) {
|
||||
fill: var(--dracula-green);
|
||||
fill-opacity: 0.15;
|
||||
}
|
||||
|
||||
li[id^='glances-'] .recharts-surface g:nth-of-type(1) path:nth-child(2) {
|
||||
stroke: var(--dracula-green);
|
||||
stroke-opacity: 0.5;
|
||||
}
|
||||
|
||||
li[id^='glances-'] .recharts-surface g:nth-of-type(2) path:nth-child(1) {
|
||||
fill: var(--dracula-purple);
|
||||
fill-opacity: 0.15;
|
||||
}
|
||||
|
||||
li[id^='glances-'] .recharts-surface g:nth-of-type(2) path:nth-child(2) {
|
||||
stroke: var(--dracula-purple);
|
||||
stroke-opacity: 0.5;
|
||||
}
|
||||
|
||||
li[id^='glances-'] .bottom-3.left-3 {
|
||||
color: var(--dracula-pink);
|
||||
}
|
||||
|
||||
li[id^='glances-'] .bottom-3.right-3 .opacity-75 {
|
||||
color: var(--dracula-cyan);
|
||||
opacity: 1;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
li[id^='glances-'] .top-3.right-3 .opacity-50 {
|
||||
color: var(--dracula-cyan);
|
||||
opacity: 1;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
li[id^='glances-'] .opacity-50 {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
li[id^='glances-'] .flex.items-center.text-xs .text-right {
|
||||
color: var(--dracula-cyan);
|
||||
}
|
||||
|
||||
li[id^='glances-'] .flex.items-center .opacity-25.w-14.text-right {
|
||||
color: var(--dracula-purple);
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
li[id^='glances-']
|
||||
.bottom-4.right-3.left-3.z-20
|
||||
.w-3.h-3.mr-1\.5.opacity-50
|
||||
> div {
|
||||
background: var(--dracula-green) !important;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
li[id^='glances-'] .bottom-4.right-3.left-3.z-20 .opacity-75.grow {
|
||||
color: var(--dracula-pink) !important;
|
||||
opacity: 0.75;
|
||||
}
|
||||
|
||||
/*******************************
|
||||
* HOMEPAGE PRESETS *
|
||||
*******************************/
|
||||
.bg-amber-500 {
|
||||
background-color: var(--dracula-orange);
|
||||
}
|
||||
|
||||
.bg-black {
|
||||
background-color: rgb(0 0 0);
|
||||
}
|
||||
|
||||
.bg-blue-500 {
|
||||
background-color: var(--dracula-cyan);
|
||||
}
|
||||
|
||||
.bg-cyan-500 {
|
||||
background-color: var(--dracula-cyan);
|
||||
}
|
||||
|
||||
.bg-emerald-500 {
|
||||
background-color: var(--dracula-green);
|
||||
}
|
||||
|
||||
.bg-fuchsia-500 {
|
||||
background-color: var(--dracula-pink);
|
||||
}
|
||||
|
||||
.bg-gray-500 {
|
||||
background-color: var(--dracula-foreground);
|
||||
}
|
||||
|
||||
.bg-green-500 {
|
||||
background-color: var(--dracula-green);
|
||||
}
|
||||
|
||||
.bg-indigo-500 {
|
||||
background-color: var(--dracula-purple);
|
||||
}
|
||||
|
||||
.bg-lime-500 {
|
||||
background-color: var(--dracula-green);
|
||||
}
|
||||
|
||||
.bg-neutral-500 {
|
||||
background-color: rgb(115 115 115);
|
||||
}
|
||||
|
||||
.bg-orange-400 {
|
||||
background-color: var(--dracula-orange);
|
||||
}
|
||||
|
||||
.bg-orange-500 {
|
||||
background-color: var(--dracula-orange);
|
||||
}
|
||||
|
||||
.bg-pink-500 {
|
||||
background-color: var(--dracula-pink);
|
||||
}
|
||||
|
||||
.bg-purple-500 {
|
||||
background-color: var(--dracula-purple);
|
||||
}
|
||||
|
||||
.bg-red-500 {
|
||||
background-color: var(--dracula-red);
|
||||
}
|
||||
|
||||
.bg-rose-100 {
|
||||
background-color: rgb(255, 205, 205);
|
||||
}
|
||||
|
||||
.bg-rose-500 {
|
||||
background-color: var(--dracula-red);
|
||||
}
|
||||
|
||||
.bg-rose-900\/80 {
|
||||
background-color: var(--dracula-red);
|
||||
}
|
||||
|
||||
.bg-sky-500 {
|
||||
background-color: var(--dracula-cyan);
|
||||
}
|
||||
|
||||
.bg-slate-500 {
|
||||
background-color: var(--dracula-slate);
|
||||
}
|
||||
|
||||
.bg-stone-500 {
|
||||
background-color: rgb(120 113 108);
|
||||
}
|
||||
|
||||
.bg-teal-500 {
|
||||
background-color: rgb(20 184 166);
|
||||
}
|
||||
|
||||
.bg-violet-500 {
|
||||
background-color: var(--dracula-purple);
|
||||
}
|
||||
|
||||
.bg-white {
|
||||
background-color: var(--dracula-text);
|
||||
}
|
||||
|
||||
.bg-white\/50 {
|
||||
background-color: hsla(0, 0%, 100%, 0.5);
|
||||
}
|
||||
|
||||
.bg-yellow-500 {
|
||||
background-color: var(--dracula-yellow);
|
||||
}
|
||||
|
||||
.bg-zinc-500 {
|
||||
background-color: rgb(113 113 122);
|
||||
}
|
||||
|
||||
.text-amber-800 {
|
||||
color: var(--dracula-orange);
|
||||
}
|
||||
|
||||
.text-black {
|
||||
color: rgb(0 0 0);
|
||||
}
|
||||
|
||||
.text-black\/20 {
|
||||
color: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.text-blue-500\/80 {
|
||||
color: rgba(139, 233, 253, 0.8);
|
||||
}
|
||||
|
||||
.text-emerald-300 {
|
||||
color: var(--dracula-green);
|
||||
}
|
||||
|
||||
.text-emerald-500\/80 {
|
||||
color: rgba(80, 250, 123, 0.8);
|
||||
}
|
||||
|
||||
.text-gray-500 {
|
||||
color: rgb(107 114 128);
|
||||
}
|
||||
|
||||
.text-green-500 {
|
||||
color: var(--dracula-green);
|
||||
}
|
||||
|
||||
.text-orange-400\/50 {
|
||||
color: rgba(255, 184, 108, 0.5);
|
||||
}
|
||||
|
||||
.text-red-400 {
|
||||
color: var(--dracula-red);
|
||||
}
|
||||
|
||||
.text-red-500 {
|
||||
color: var(--dracula-red);
|
||||
}
|
||||
|
||||
.text-red-500\/40 {
|
||||
color: rgba(255, 85, 85, 0.4);
|
||||
}
|
||||
|
||||
.text-rose-300 {
|
||||
color: var(--dracula-red);
|
||||
}
|
||||
|
||||
.text-rose-500 {
|
||||
color: var(--dracula-red);
|
||||
}
|
||||
|
||||
.text-rose-500\/80 {
|
||||
color: rgba(255, 85, 85, 0.8);
|
||||
}
|
||||
|
||||
.text-rose-900 {
|
||||
color: var(--dracula-red);
|
||||
}
|
||||
|
||||
.text-white {
|
||||
color: var(--dracula-text);
|
||||
}
|
||||
}
|
||||
/* ********************************************************************************************* */
|
||||
/* CARD COLOURING - DONE VIA "ID:" TAGS IN SERVICES.YAML */
|
||||
.service-card::before {
|
||||
content: "";
|
||||
opacity: 0.40;
|
||||
position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; z-index: 0;
|
||||
}
|
||||
/* DARK */
|
||||
#red .dark\:hover\:bg-white\/10:is(.dark *).service-card::before { background-color: #812020; }
|
||||
#yellow .dark\:hover\:bg-white\/10:is(.dark *).service-card::before { background-color: #818120; }
|
||||
#green .dark\:hover\:bg-white\/10:is(.dark *).service-card::before { background-color: #208120; }
|
||||
#cyan .dark\:hover\:bg-white\/10:is(.dark *).service-card::before { background-color: #208181; }
|
||||
#blue .dark\:hover\:bg-white\/10:is(.dark *).service-card::before { background-color: #202081; }
|
||||
#purple .dark\:hover\:bg-white\/10:is(.dark *).service-card::before { background-color: #812081; }
|
||||
#black .dark\:hover\:bg-white\/10:is(.dark *).service-card::before { background-color: #000000; }
|
||||
#white .dark\:hover\:bg-white\/10:is(.dark *).service-card::before { background-color: #ffffff; }
|
||||
/* LIGHT */
|
||||
#red .hover\:bg-theme-300\/20.service-card::before { background-color: #ff0000; }
|
||||
#yellow .hover\:bg-theme-300\/20.service-card::before { background-color: #ffff00; }
|
||||
#green .hover\:bg-theme-300\/20.service-card::before { background-color: #00ff00; }
|
||||
#cyan .hover\:bg-theme-300\/20.service-card::before { background-color: #00ffff; }
|
||||
#blue .hover\:bg-theme-300\/20.service-card::before { background-color: #0000ff; }
|
||||
#purple .hover\:bg-theme-300\/20.service-card::before { background-color: #ff00ff; }
|
||||
#black .hover\:bg-theme-300\/20.service-card::before { background-color: #ffffff; }
|
||||
#white .hover\:bg-theme-300\/20.service-card::before { background-color: #000000; }
|
||||
#orange .hover\:bg-theme-300\/20.service-card::before { background-color: #ffa500; }
|
||||
#pink .hover\:bg-theme-300\/20.service-card::before { background-color: #ffc0cb; }
|
||||
#teal .hover\:bg-theme-300\/20.service-card::before { background-color: #008080; }
|
||||
#magenta .hover\:bg-theme-300\/20.service-card::before { background-color: #ff00ff; }
|
||||
#lime .hover\:bg-theme-300\/20.service-card::before { background-color: #00ff00; }
|
||||
#navy .hover\:bg-theme-300\/20.service-card::before { background-color: #000080; }
|
||||
#maroon .hover\:bg-theme-300\/20.service-card::before { background-color: #800000; }
|
||||
#olive .hover\:bg-theme-300\/20.service-card::before { background-color: #808000; }
|
||||
#silver .hover\:bg-theme-300\/20.service-card::before { background-color: #c0c0c0; }
|
||||
#gray .hover\:bg-theme-300\/20.service-card::before { background-color: #808080; }
|
||||
#gold .hover\:bg-theme-300\/20.service-card::before { background-color: #ffd700; }
|
||||
#coral .hover\:bg-theme-300\/20.service-card::before { background-color: #ff7f50; }
|
||||
#salmon .hover\:bg-theme-300\/20.service-card::before { background-color: #fa8072; }
|
||||
#indigo .hover\:bg-theme-300\/20.service-card::before { background-color: #4b0082; }
|
||||
#violet .hover\:bg-theme-300\/20.service-card::before { background-color: #ee82ee; }
|
||||
#turquoise .hover\:bg-theme-300\/20.service-card::before { background-color: #40e0d0; }
|
||||
#plum .hover\:bg-theme-300\/20.service-card::before { background-color: #dda0dd; }
|
||||
#orchid .hover\:bg-theme-300\/20.service-card::before { background-color: #da70d6; }
|
||||
#tan .hover\:bg-theme-300\/20.service-card::before { background-color: #d2b48c; }
|
||||
#beige .hover\:bg-theme-300\/20.service-card::before { background-color: #f5f5dc; }
|
||||
#mint .hover\:bg-theme-300\/20.service-card::before { background-color: #98ff98; }
|
||||
#lavender .hover\:bg-theme-300\/20.service-card::before { background-color: #e6e6fa; }
|
||||
#chocolate .hover\:bg-theme-300\/20.service-card::before { background-color: #d2691e; }
|
||||
#crimson .hover\:bg-theme-300\/20.service-card::before { background-color: #dc143c; }
|
||||
#khaki .hover\:bg-theme-300\/20.service-card::before { background-color: #f0e68c; }
|
||||
#aqua .hover\:bg-theme-300\/20.service-card::before { background-color: #00ffff; }
|
||||
#azure .hover\:bg-theme-300\/20.service-card::before { background-color: #f0ffff; }
|
||||
#bisque .hover\:bg-theme-300\/20.service-card::before { background-color: #ffe4c4; }
|
||||
#bronze .hover\:bg-theme-300\/20.service-card::before { background-color: #cd7f32; }
|
||||
#charcoal .hover\:bg-theme-300\/20.service-card::before { background-color: #36454f; }
|
||||
#emerald .hover\:bg-theme-300\/20.service-card::before { background-color: #50c878; }
|
||||
#ivory .hover\:bg-theme-300\/20.service-card::before { background-color: #fffff0; }
|
||||
#jade .hover\:bg-theme-300\/20.service-card::before { background-color: #00a86b; }
|
||||
#peach .hover\:bg-theme-300\/20.service-card::before { background-color: #ffe5b4; }
|
||||
#rose .hover\:bg-theme-300\/20.service-card::before { background-color: #ff007f; }
|
||||
#ruby .hover\:bg-theme-300\/20.service-card::before { background-color: #e0115f; }
|
||||
#sapphire .hover\:bg-theme-300\/20.service-card::before { background-color: #0f52ba; }
|
||||
#sepia .hover\:bg-theme-300\/20.service-card::before { background-color: #704214; }
|
||||
#steel .hover\:bg-theme-300\/20.service-card::before { background-color: #4682b4; }
|
||||
#amber .hover\:bg-theme-300\/20.service-card::before { background-color: #ffbf00; }
|
||||
#cerulean .hover\:bg-theme-300\/20.service-card::before { background-color: #007ba7; }
|
||||
#periwinkle .hover\:bg-theme-300\/20.service-card::before { background-color: #ccccff; }
|
||||
#scarlet .hover\:bg-theme-300\/20.service-card::before { background-color: #ff2400; }
|
||||
#slate .hover\:bg-theme-300\/20.service-card::before { background-color: #708090; }
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/docker/
|
||||
|
||||
# my-docker:
|
||||
# host: 127.0.0.1
|
||||
# port: 2375
|
||||
|
||||
# my-docker:
|
||||
# socket: /var/run/docker.sock
|
||||
@@ -0,0 +1,2 @@
|
||||
---
|
||||
# sample kubernetes config
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
# pve:
|
||||
# url: https://proxmox.host.or.ip:8006
|
||||
# token: username@pam!Token ID
|
||||
# secret: secret
|
||||
@@ -0,0 +1,341 @@
|
||||
---
|
||||
######################################### HOME TAB SERVICES ######################################################################
|
||||
- Infrastructure:
|
||||
- Proxmox 1:
|
||||
id: blue
|
||||
tab: Home
|
||||
href: https://192.168.2.1:8006
|
||||
icon: proxmox.png
|
||||
description: Virtual Server 1
|
||||
widget:
|
||||
type: proxmox
|
||||
url: https://192.168.2.1:8006
|
||||
username: api@pam!homepage
|
||||
password: faca2bd5-e6df-4192-85ce-928fccde4623
|
||||
node: pve
|
||||
fields: ["vms", "lxc", "resources.cpu", "resources.mem"]
|
||||
|
||||
- Proxmox 2:
|
||||
id: yellow
|
||||
tab: Home
|
||||
href: https://192.168.2.2:8006
|
||||
icon: proxmox.png
|
||||
description: Virtual Server 2
|
||||
widget:
|
||||
type: proxmox
|
||||
url: https://192.168.2.2:8006
|
||||
username: api@pam!homepage
|
||||
password: 1b2fa246-a994-4f93-ab4d-1c91a4aea614
|
||||
node: pve
|
||||
fields: ["vms", "lxc", "resources.cpu", "resources.mem"]
|
||||
|
||||
- Authentik:
|
||||
id: red
|
||||
tab: Home
|
||||
href: https://auth.mikemcfetridge.com
|
||||
icon: authentik.png
|
||||
description: Authentik SSO
|
||||
widget:
|
||||
type: authentik
|
||||
url: https://192.168.2.3:9543
|
||||
key: NW5ldUK8qDRY91ny67dE6ckWCMXThF9nwj6EZw7pKbS5FzXx5wouAo4sC19n
|
||||
version: 2
|
||||
|
||||
- Dockhand:
|
||||
id: cyan
|
||||
tab: Home
|
||||
href: http://192.168.2.3:3200
|
||||
icon: dockhand.png
|
||||
description: Dockhand
|
||||
widget:
|
||||
type: dockhand
|
||||
url: http://192.168.2.3:3200
|
||||
username: mmcfetridge
|
||||
password: "!Sucyetat123"
|
||||
|
||||
- Applications:
|
||||
- OwnCloud:
|
||||
id: purple
|
||||
tab: Home
|
||||
icon: owncloud.png
|
||||
href: https://owncloud.mcfetridge.us
|
||||
description: File Sync & Share
|
||||
|
||||
- Immich:
|
||||
id: white
|
||||
tab: Home
|
||||
href: https://immich.mikemcfetridge.com
|
||||
icon: immich.png
|
||||
description: Photos Server
|
||||
widget:
|
||||
type: immich
|
||||
url: http://192.168.2.3:2283
|
||||
key: "MLbcal27A67J6FZV1PIb3AdMsRf8xZC1uruOLB7js"
|
||||
fields: ["users", "photos", "storage"]
|
||||
version: 2
|
||||
|
||||
- Trilium:
|
||||
id: gold
|
||||
tab: Home
|
||||
href: http://192.168.2.3:8180
|
||||
icon: trilium.png
|
||||
description: Trilium Server
|
||||
widget:
|
||||
type: trilium
|
||||
url: http://192.168.2.3:8180
|
||||
key: "Z0qLO33tMHgy_c0nq/pZAJMR/8Em5xrwOEJ6EfiyNEWkMurMSnRdVdtM="
|
||||
|
||||
- Forgejo:
|
||||
id: green
|
||||
tab: Home
|
||||
href: https://forgejo.mikemcfetridge.com
|
||||
icon: forgejo.png
|
||||
description: Forgejo Git & CICD
|
||||
|
||||
- MySpeed:
|
||||
id: lime
|
||||
tab: Home
|
||||
icon: myspeed.png
|
||||
href: http://192.168.2.3:5216
|
||||
widget:
|
||||
type: myspeed
|
||||
url: http://192.168.2.3:5216
|
||||
password: "!Sucyetat123" # only required if password is set
|
||||
|
||||
- mealie:
|
||||
id: cobalt
|
||||
tab: Home
|
||||
icon: mealie.png
|
||||
href: http://192.168.2.7:9000/
|
||||
widget:
|
||||
type: mealie
|
||||
url: http://192.168.2.7:9000
|
||||
key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb25nX3Rva2VuIjp0cnVlLCJpZCI6IjVlYzIwNTk2LTEyY2QtNDFkMS05MTc5LWUzOWFkYjk3OWE2MyIsIm5hbWUiOiJob21lcGFnZSIsImludGVncmF0aW9uX2lkIjoiZ2VuZXJpYyIsImV4cCI6MTkzNjU0MzE3N30.C1PWK51JOpmzHwR9zmlvVShWC7sasKv0aO6PS47LQqo
|
||||
version: 2 # only required if version > 1, defaults to 1
|
||||
############################################## MEDIA TAB Services ###########################################################
|
||||
- Media downloader:
|
||||
- Calendar:
|
||||
id: gray
|
||||
tab: Media
|
||||
name: Calendar
|
||||
widget:
|
||||
type: calendar
|
||||
view: agenda
|
||||
maxEvents: 6
|
||||
firstDayInWeek: sunday
|
||||
integrations:
|
||||
- type: sonarr
|
||||
service_group: Media downloader
|
||||
service_name: Sonarr
|
||||
- type: radarr
|
||||
service_group: Media downloader
|
||||
service_name: Radarr
|
||||
|
||||
- Sonarr:
|
||||
id: crimson
|
||||
tab: Media
|
||||
href: http://192.168.2.16:8989
|
||||
icon: sonarr.png
|
||||
description: TV Show Service
|
||||
widget:
|
||||
type: sonarr
|
||||
url: http://192.168.2.16:8989
|
||||
key: 8746f486831545e3b6c9014657ac9c11
|
||||
fields: ["wanted", "queued", "series"]
|
||||
|
||||
- Radarr:
|
||||
id: lavender
|
||||
tab: Media
|
||||
href: http://192.168.2.16:7878
|
||||
icon: radarr.png
|
||||
description: Movie Service
|
||||
widget:
|
||||
type: radarr
|
||||
url: http://192.168.2.16:7878
|
||||
key: ee95503f6fca4cf7b9c8c3f3fc45df39
|
||||
fields: ["wanted", "missing", "queued", "movies"]
|
||||
|
||||
- Qbittorrent:
|
||||
id: teal
|
||||
tab: Media
|
||||
href: http://192.168.2.16:8118
|
||||
icon: qbittorrent.png
|
||||
description: Download Client
|
||||
widget:
|
||||
type: qbittorrent
|
||||
url: http://192.168.2.16:8118
|
||||
username: admin
|
||||
password: "!Sucyetat123"
|
||||
|
||||
- Media Apps:
|
||||
- Jellyfin:
|
||||
id: violet
|
||||
tab: Media
|
||||
href: http://192.168.2.16:8096
|
||||
icon: jellyfin.png
|
||||
description: Movies & TV Shows
|
||||
widget:
|
||||
type: jellyfin
|
||||
url: http://192.168.2.16:8096
|
||||
key: 617cc65c15da4b3eaac10568c25a8c36
|
||||
enableBlocks: true
|
||||
enableNowPlaying: true
|
||||
|
||||
- Jellyseerr:
|
||||
id: aqua
|
||||
tab: Media
|
||||
href: http://192.168.2.16:5055
|
||||
icon: jellyseerr.png
|
||||
description: Movie/show Database
|
||||
widget:
|
||||
type: jellyseerr
|
||||
url: http://192.168.2.16:5055
|
||||
key: MTc1NDI2NTczOTQyMDA2ODRjOWY0LWJmZmEtNGE1OC05MzM2LTAwMDM4OWRmYmQ3Yg==
|
||||
fields: ["pending", "approved", "available"]
|
||||
|
||||
- Navidrome:
|
||||
id: navy
|
||||
tab: Media
|
||||
icon: navidrome.png
|
||||
href: http://192.168.2.16:4533
|
||||
widget:
|
||||
type: navidrome
|
||||
url: http://192.168.2.16:4533
|
||||
user: mmcfetridge
|
||||
token: 05dee16046666bb05d98291b9c6e39d3
|
||||
salt: 50c05a
|
||||
|
||||
- AudioBookShelf:
|
||||
id: beige
|
||||
tab: Media
|
||||
href: http://192.168.2.16:13378
|
||||
icon: audiobookshelf.png
|
||||
description: Index Server
|
||||
widget:
|
||||
type: audiobookshelf
|
||||
url: http://192.168.2.16:13378
|
||||
key: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI4MDQ5Y2U4Mi0xZjlmLTRiYTEtOWY3Zi03N2U4YmRiYjg0OGEiLCJ1c2VybmFtZSI6Im1tY2ZldHJpZGdlIiwiaWF0IjoxNzQ4MTk4NzUyfQ.Tey3wxo61euuJEwc2ziE_PukdOUz7pNZKG8SmOdWB-c"
|
||||
fields: ["podcasts", "books"]
|
||||
|
||||
##################################### Network & System TAB Services ##############################################################
|
||||
- Network:
|
||||
- Pi-hole:
|
||||
id: slate
|
||||
tab: Network
|
||||
href: http://192.168.2.8/admin/login
|
||||
icon: pi-hole.png
|
||||
widget:
|
||||
type: pihole
|
||||
url: http://192.168.2.8
|
||||
version: 6
|
||||
key: "!Sucyetat123"
|
||||
fields: ["queries", "blocked", "blocked_percent", "gravity"]
|
||||
|
||||
- Technitium:
|
||||
id: burgundy
|
||||
tab: Network
|
||||
href: http://192.168.2.9:5380
|
||||
icon: technitium.png
|
||||
description: Technitium DNS Server
|
||||
widget:
|
||||
type: technitium
|
||||
url: http://192.168.2.9:5380
|
||||
key: 03348d06cd472fbd091d8232b1c13321ff70a8628dad7b0c23dd4512a18fb34b
|
||||
range: LastDay
|
||||
fields: ["totalQueries", "totalAuthoritative", "totalCached", "totalServerFailure"]
|
||||
|
||||
- Proxy Manager:
|
||||
id: emerald
|
||||
tab: Network
|
||||
href: http://192.168.2.3:81
|
||||
icon: nginx-proxy-manager.png
|
||||
description: Nginx Proxy Manager
|
||||
widget:
|
||||
type: npm
|
||||
url: http://192.168.2.3:81
|
||||
username: mmcfetridg@aol.com
|
||||
password: "!Sucyetat123"
|
||||
fields: ["enabled", "disabled", "total"]
|
||||
|
||||
- Pangolin:
|
||||
id: salmon
|
||||
tab: Network
|
||||
icon: pangolin.png
|
||||
href: https://pangolin.mmcfetridge.net
|
||||
description: External network
|
||||
widget:
|
||||
type: pangolin
|
||||
url: https://api.mmcfetridge.net/v1
|
||||
key: "2o4g9gak61mig2i.5s5yxu4o2ek7haepzumar2ldl4mmzqpbrcfnpqdf"
|
||||
org: homelab
|
||||
|
||||
- Systems:
|
||||
- Gluetun:
|
||||
id: jade
|
||||
tab: System
|
||||
href: http://192.168.2.16:8000
|
||||
icon: gluetun.png
|
||||
description: Media VPN Server
|
||||
widget:
|
||||
type: gluetun
|
||||
url: http://192.168.2.16:8000
|
||||
fields: ["public_ip", "region", "country"]
|
||||
|
||||
- Public IP:
|
||||
icon: mdi-web
|
||||
href: https://whatismyipaddress.com/
|
||||
widget:
|
||||
type: customapi
|
||||
url: https://api.ipify.org?format=json
|
||||
refreshInterval: 3600000 # Refreshes once an hour (in milliseconds)
|
||||
method: GET
|
||||
mappings:
|
||||
- field: ip
|
||||
label: WAN IP
|
||||
format: text
|
||||
|
||||
############################################## Bookmark TAB Services #############################################################
|
||||
|
||||
- Bookmarks:
|
||||
- Github:
|
||||
id: indigo
|
||||
tab: Bookmarks
|
||||
abbr: GH
|
||||
href: https://github.com
|
||||
icon: github-light.png
|
||||
description: GitHub
|
||||
|
||||
- Linkwarden:
|
||||
id: charcoal
|
||||
tab: Bookmarks
|
||||
href: https://lw.mikemcfetridge.com
|
||||
icon: linkwarden.png
|
||||
description: Web Bookmarker
|
||||
widget:
|
||||
type: linkwarden
|
||||
url: http://192.168.2.12:3000
|
||||
key: "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..ZLJgig_ol-n3i1tv.vhWCnMSHVd81bdidL85-imXKpxGC0U3mHlvmkQyIJqJvcFRRJVBAasw9C0cmfSXVPq08HT-B-3zUAmftnPRymPHMJCkfo8pv_XBbEPneIFH-n59_dg26.qcXSK2REP3M_Vdgp0aOqcA"
|
||||
fields: ["links", "collections"]
|
||||
|
||||
- Semaphore:
|
||||
id: cerulean
|
||||
tab: Bookmarks
|
||||
icon: semaphore.png
|
||||
href: http://192.168.2.11:3000
|
||||
description: CI/CD Automation
|
||||
|
||||
- Wg-Easy:
|
||||
id: rose
|
||||
tab: Bookmarks
|
||||
icon: wireguard.png
|
||||
href: http://192.168.2.3:10086
|
||||
description: Wireguard VPN
|
||||
|
||||
- YouTube:
|
||||
id: coral
|
||||
tab: Bookmarks
|
||||
icon: youtube.png
|
||||
href: https://youtube.com/
|
||||
description: Video Platform
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
title: Miker's Homepage
|
||||
description: Here is my awesome homepage
|
||||
|
||||
|
||||
background:
|
||||
image: https://backiee.com/static/wallpapers/1000x563/412861.webp
|
||||
blur: sm
|
||||
saturate: 50
|
||||
brightness: 75
|
||||
opacity: 75
|
||||
|
||||
theme: dark
|
||||
color: slate
|
||||
|
||||
layout:
|
||||
Infrastructure:
|
||||
icon: mdi-folder-network
|
||||
tab: Home
|
||||
header: true
|
||||
columns: 3
|
||||
Applications:
|
||||
icon: mdi-application
|
||||
tab: Home
|
||||
header: true
|
||||
columns: 3
|
||||
Media downloader:
|
||||
icon: mdi-multimedia
|
||||
tab: Media
|
||||
header: true
|
||||
columns: 3
|
||||
Media Apps:
|
||||
icon: mdi-movie
|
||||
tab: Media
|
||||
header: true
|
||||
columns: 3
|
||||
Network:
|
||||
tab: System
|
||||
icon: mdi-switch
|
||||
header: true
|
||||
columns: 3
|
||||
Systems:
|
||||
tab: System
|
||||
icon: mdi-television
|
||||
header: true
|
||||
columns: 3
|
||||
Bookmarks:
|
||||
tab: Bookmarks
|
||||
icon: mdi-baby
|
||||
style: row
|
||||
columns: 4
|
||||
|
||||
fiveColumns: true
|
||||
useEqualHeights: true
|
||||
showStats: true
|
||||
@@ -0,0 +1,42 @@
|
||||
# Homepage Widgets Configuration
|
||||
# Organized by System, Environment, and Search
|
||||
- logo:
|
||||
icon: wireguard.svg # optional
|
||||
|
||||
- resources:
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
cputemp: true
|
||||
tempmin: 0
|
||||
tempmax: 100
|
||||
uptime: true
|
||||
units: imperial
|
||||
refresh: 3000
|
||||
diskUnits: bytes
|
||||
network: true
|
||||
|
||||
- openmeteo:
|
||||
label: Bealeton
|
||||
latitude: 38.5718
|
||||
longitude: -77.7639
|
||||
timezone: America/New_York
|
||||
units: imperial
|
||||
cache: 5
|
||||
format:
|
||||
maximumFractionDigits: 1
|
||||
|
||||
- datetime:
|
||||
text_size: sm
|
||||
format:
|
||||
dateStyle: short
|
||||
timeStyle: short
|
||||
hour12: true
|
||||
timeZone: 'America/New_York'
|
||||
|
||||
- search:
|
||||
provider: custom
|
||||
url: http://localhost:8080/search?q=
|
||||
focus: true
|
||||
target: _blank
|
||||
showSearchSuggestions: true
|
||||
@@ -0,0 +1,44 @@
|
||||
services:
|
||||
homepage:
|
||||
image: ghcr.io/gethomepage/homepage:latest
|
||||
container_name: homepage
|
||||
environment:
|
||||
HOMEPAGE_ALLOWED_HOSTS: "*" # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
|
||||
PUID: ${PUID} # Reference PUID from .env
|
||||
PGID: ${PGID} # Reference PGID from .env
|
||||
DOCKER_HOST: tcp://socket-proxy:2375
|
||||
ports:
|
||||
- 3000:3000
|
||||
env_file:
|
||||
- .env # Link to the .env file
|
||||
volumes:
|
||||
- ./config:/app/config # Make sure your local config directory exists
|
||||
- ./images:/app/public/images
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000"]
|
||||
interval: 10s
|
||||
retries: 3
|
||||
timeout: 10s
|
||||
start_period: 30s
|
||||
|
||||
dockerproxy:
|
||||
image: ghcr.io/tecnativa/docker-socket-proxy:latest
|
||||
container_name: dockerproxy
|
||||
environment:
|
||||
- CONTAINERS=1 # Allow access to viewing containers
|
||||
- SERVICES=1 # Allow access to viewing services (necessary when using Docker Swarm)
|
||||
- TASKS=1 # Allow access to viewing tasks (necessary when using Docker Swarm)
|
||||
- POST=0 # Disallow any POST operations (effectively read-only)
|
||||
ports:
|
||||
- 127.0.0.1:2375:2375
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro # Mounted as read-only
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:2375"]
|
||||
interval: 10s
|
||||
retries: 3
|
||||
timeout: 10s
|
||||
start_period: 30s
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
@@ -0,0 +1,5 @@
|
||||
HOMARR_PORT=7575
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
# TZ for container timezone
|
||||
TZ=America/New_York
|
||||
@@ -0,0 +1,30 @@
|
||||
services:
|
||||
# Homarr - Application Dashboard
|
||||
homarr:
|
||||
image: ghcr.io/ajnart/homarr:latest
|
||||
container_name: homarr
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
networks:
|
||||
- default
|
||||
- socket_proxy
|
||||
ports:
|
||||
- "$HOMARR_PORT:7575"
|
||||
volumes:
|
||||
# - /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration
|
||||
- ./appdata/homarr/configs:/app/data/configs
|
||||
- ./appdata/homarr/icons:/app/public/icons
|
||||
- ./appdata/homarr/data:/data
|
||||
environment:
|
||||
- DOCKER_HOST
|
||||
PUID: ${PUID} # Reference PUID from .env
|
||||
PGID: ${PGID} # # DOCKER-LABELS-PLACEHOLDER
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:7575"]
|
||||
interval: 10s
|
||||
retries: 3
|
||||
timeout: 10s
|
||||
start_period: 30s
|
||||
Reference in New Issue
Block a user