Add Hajimari service dashboard #73
13 changed files with 164 additions and 0 deletions
|
|
@ -61,6 +61,12 @@ caddy_services:
|
|||
- name: immich
|
||||
host: "photos.{{ caddy_domain }}"
|
||||
backend: "https://photos.tail8d86e.ts.net"
|
||||
- name: hajimari
|
||||
host: "go.{{ caddy_domain }}"
|
||||
backend: "https://go.tail8d86e.ts.net"
|
||||
- name: sifaka
|
||||
host: "nas.{{ caddy_domain }}"
|
||||
backend: "http://sifaka:5000"
|
||||
|
||||
# Layer 4 (TCP) services
|
||||
# Format: { port: external_port, backend: "host:port" }
|
||||
|
|
|
|||
32
argocd/apps/hajimari.yaml
Normal file
32
argocd/apps/hajimari.yaml
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# Hajimari - Service Dashboard / Start Page
|
||||
#
|
||||
# Using upstream Helm chart from https://hajimari.io
|
||||
#
|
||||
# Auto-discovers k8s services via ingress annotations and displays
|
||||
# custom apps for non-k8s services (Forge, Registry, NAS).
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: hajimari
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
sources:
|
||||
# Helm chart from upstream repo
|
||||
- repoURL: https://hajimari.io
|
||||
chart: hajimari
|
||||
targetRevision: 2.0.2
|
||||
helm:
|
||||
releaseName: hajimari
|
||||
valueFiles:
|
||||
- $values/argocd/manifests/hajimari/values.yaml
|
||||
# Values from our git repo
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/blumeops.git
|
||||
targetRevision: main
|
||||
ref: values
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: hajimari
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
|
|
@ -11,6 +11,12 @@ metadata:
|
|||
namespace: argocd
|
||||
annotations:
|
||||
tailscale.com/proxy-class: "default"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://argocd.ops.eblu.me"
|
||||
hajimari.io/icon: "simple-icons:argo"
|
||||
hajimari.io/appName: "ArgoCD"
|
||||
hajimari.io/group: "Infrastructure"
|
||||
hajimari.io/info: "GitOps continuous delivery"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
defaultBackend:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,12 @@ metadata:
|
|||
namespace: devpi
|
||||
annotations:
|
||||
tailscale.com/proxy-class: "default"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://pypi.ops.eblu.me"
|
||||
hajimari.io/icon: "simple-icons:pypi"
|
||||
hajimari.io/appName: "PyPI"
|
||||
hajimari.io/group: "Infrastructure"
|
||||
hajimari.io/info: "Python package cache (devpi)"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
defaultBackend:
|
||||
|
|
|
|||
|
|
@ -9,6 +9,12 @@ metadata:
|
|||
namespace: monitoring
|
||||
annotations:
|
||||
tailscale.com/proxy-class: "default"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://grafana.ops.eblu.me"
|
||||
hajimari.io/icon: "simple-icons:grafana"
|
||||
hajimari.io/appName: "Grafana"
|
||||
hajimari.io/group: "Observability"
|
||||
hajimari.io/info: "Dashboards & metrics visualization"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
defaultBackend:
|
||||
|
|
|
|||
66
argocd/manifests/hajimari/values.yaml
Normal file
66
argocd/manifests/hajimari/values.yaml
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Hajimari values for blumeops
|
||||
# Service dashboard at go.ops.eblu.me
|
||||
|
||||
# Page settings
|
||||
hajimari:
|
||||
title: BlumeOps
|
||||
name: Erich
|
||||
defaultEnable: true
|
||||
|
||||
# Discover ingresses from all namespaces
|
||||
namespaceSelector:
|
||||
any: true
|
||||
|
||||
# Non-k8s services (hosted on indri or LAN)
|
||||
customApps:
|
||||
- group: Infrastructure
|
||||
apps:
|
||||
- name: Forgejo
|
||||
url: https://forge.ops.eblu.me
|
||||
icon: simple-icons:forgejo
|
||||
info: Git forge & CI/CD
|
||||
- name: Registry
|
||||
url: https://registry.ops.eblu.me
|
||||
icon: mdi:docker
|
||||
info: Container registry (Zot)
|
||||
- name: Sifaka NAS
|
||||
url: https://nas.ops.eblu.me
|
||||
icon: simple-icons:synology
|
||||
info: Synology NAS dashboard
|
||||
|
||||
# Useful external bookmarks
|
||||
globalBookmarks:
|
||||
- group: Docs
|
||||
bookmarks:
|
||||
- name: Tailscale Admin
|
||||
url: https://login.tailscale.com/admin
|
||||
- name: 1Password
|
||||
url: https://my.1password.com
|
||||
- name: Pulumi
|
||||
url: https://app.pulumi.com/eblume/blumeops-tailnet
|
||||
|
||||
# Service account for reading ingresses across namespaces
|
||||
serviceAccount:
|
||||
create: true
|
||||
|
||||
# Tailscale Ingress - exposes at go.tail8d86e.ts.net
|
||||
# Caddy will proxy go.ops.eblu.me to this
|
||||
ingress:
|
||||
main:
|
||||
enabled: true
|
||||
ingressClassName: tailscale
|
||||
annotations:
|
||||
hajimari.io/enable: "false"
|
||||
hosts:
|
||||
- host: go
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- go
|
||||
|
||||
# No persistence needed - config is in values.yaml
|
||||
persistence:
|
||||
data:
|
||||
enabled: false
|
||||
|
|
@ -8,6 +8,12 @@ metadata:
|
|||
namespace: immich
|
||||
annotations:
|
||||
tailscale.com/funnel: "false"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://photos.ops.eblu.me"
|
||||
hajimari.io/icon: "mdi:image-multiple"
|
||||
hajimari.io/appName: "Immich"
|
||||
hajimari.io/group: "Apps"
|
||||
hajimari.io/info: "Photo management"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
rules:
|
||||
|
|
|
|||
|
|
@ -6,6 +6,12 @@ metadata:
|
|||
namespace: kiwix
|
||||
annotations:
|
||||
tailscale.com/proxy-class: "default"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://kiwix.ops.eblu.me"
|
||||
hajimari.io/icon: "mdi:wikipedia"
|
||||
hajimari.io/appName: "Kiwix"
|
||||
hajimari.io/group: "Apps"
|
||||
hajimari.io/info: "Offline Wikipedia & ZIM archives"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
defaultBackend:
|
||||
|
|
|
|||
|
|
@ -7,6 +7,12 @@ metadata:
|
|||
namespace: monitoring
|
||||
annotations:
|
||||
tailscale.com/funnel: "false"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://loki.ops.eblu.me"
|
||||
hajimari.io/icon: "mdi:text-box-search"
|
||||
hajimari.io/appName: "Loki"
|
||||
hajimari.io/group: "Observability"
|
||||
hajimari.io/info: "Log aggregation"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
rules:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,12 @@ metadata:
|
|||
namespace: miniflux
|
||||
annotations:
|
||||
tailscale.com/proxy-class: "default"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://feed.ops.eblu.me"
|
||||
hajimari.io/icon: "mdi:rss"
|
||||
hajimari.io/appName: "Miniflux"
|
||||
hajimari.io/group: "Apps"
|
||||
hajimari.io/info: "RSS feed reader"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
defaultBackend:
|
||||
|
|
|
|||
|
|
@ -7,6 +7,12 @@ metadata:
|
|||
namespace: monitoring
|
||||
annotations:
|
||||
tailscale.com/funnel: "false"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://prometheus.ops.eblu.me"
|
||||
hajimari.io/icon: "simple-icons:prometheus"
|
||||
hajimari.io/appName: "Prometheus"
|
||||
hajimari.io/group: "Observability"
|
||||
hajimari.io/info: "Metrics collection & storage"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
rules:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,12 @@ metadata:
|
|||
namespace: teslamate
|
||||
annotations:
|
||||
tailscale.com/proxy-class: "default"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://tesla.ops.eblu.me"
|
||||
hajimari.io/icon: "simple-icons:tesla"
|
||||
hajimari.io/appName: "TeslaMate"
|
||||
hajimari.io/group: "Apps"
|
||||
hajimari.io/info: "Tesla data logger"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
defaultBackend:
|
||||
|
|
|
|||
|
|
@ -6,6 +6,12 @@ metadata:
|
|||
namespace: torrent
|
||||
annotations:
|
||||
tailscale.com/proxy-class: "default"
|
||||
hajimari.io/enable: "true"
|
||||
hajimari.io/url: "https://torrent.ops.eblu.me"
|
||||
hajimari.io/icon: "mdi:download"
|
||||
hajimari.io/appName: "Transmission"
|
||||
hajimari.io/group: "Apps"
|
||||
hajimari.io/info: "BitTorrent daemon"
|
||||
spec:
|
||||
ingressClassName: tailscale
|
||||
defaultBackend:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue