Subsections of Monitor
Install Homepage
Official Documentation: https://gethomepage.dev/
Installation
Preliminary
1. Kubernetes is installed; if not, check πlink2. Helm is installed; if not, check πlink1.install chart directly
Details
helm install homepage oci://ghcr.io/m0nsterrr/helm-charts/homepage2.you can modify the values.yaml and re-install
Details
helm install homepage oci://ghcr.io/m0nsterrr/helm-charts/homepage -f homepage.values.yamlUsing Mirror
helm repo add ay-helm-mirror https://aaronyang0628.github.io/helm-chart-mirror/charts \
&& helm install ay-helm-mirror/homepage --generate-name --version 4.2.0for more information, you can check πhttps://aaronyang0628.github.io/helm-chart-mirror/
Preliminary
1. Kubernetes is installed; if not, check πlink2. ArgoCD is installed; if not, check πlink3. Helm binary is installed; if not, check πlink4. Ingress is installed on ArgoCD; if not, check πlink1.prepare `homepage.yaml`
Details
kubectl -n argocd apply -f - << EOF
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: homepage
spec:
syncPolicy:
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
project: default
source:
repoURL: oci://ghcr.io/m0nsterrr/helm-charts/homepage
chart: homepage
targetRevision: 4.2.0
helm:
releaseName: homepage
values: |
image:
registry: m.daocloud.io/ghcr.io
repository: gethomepage/homepage
pullPolicy: IfNotPresent
tag: "v1.5.0"
config:
allowedHosts:
- "home.72602.online"
ingress:
enabled: true
ingressClassName: "nginx"
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: home.72602.online
paths:
- path: /
pathType: ImplementationSpecific
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
destination:
server: https://kubernetes.default.svc
namespace: monitor
EOF3.sync by argocd
Details
argocd app sync argocd/homepage5.check the web browser
Details
K8S_MASTER_IP=$(kubectl get nodes --selector=node-role.kubernetes.io/control-plane -o jsonpath='{$.items[0].status.addresses[?(@.type=="InternalIP")].address}')
echo "$K8S_MASTER_IP home.72602.online" >> /etc/hostsPreliminary
1. Kubernetes is installed; if not, check πlink2. Docker is installed; if not, check πlinkdocker run -d \
--name homepage \
-e HOMEPAGE_ALLOWED_HOSTS=47.110.67.161:3000 \
-e PUID=1000 \
-e PGID=1000 \
-p 3000:3000 \
-v /root/home-site/static/icons:/app/public/icons \
-v /root/home-site/content/Ops/HomePage/config:/app/config \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--restart unless-stopped \
ghcr.io/gethomepage/homepage:v1.5.0Preliminary
1. Kubernetes is installed; if not, check πlink2. Podman is installed; if not, check πlinkpodman run -d \
--name homepage \
-e HOMEPAGE_ALLOWED_HOSTS=127.0.0.1:3000 \
-e PUID=1000 \
-e PGID=1000 \
-p 3000:3000 \
-v /root/home-site/static/icons:/app/public/icons \
-v /root/home-site/content/Ops/HomePage/config:/app/config \
--restart unless-stopped \
ghcr.io/gethomepage/homepage:v1.5.0FAQ
Install Langfuse
Official Documentation: https://langfuse.com/docs
πInstallation
Preliminary
1. Kubernetes is installed; if not, check πlink2. Helm is installed; if not, check πlink3. Ingress is installed; if not, check πlink4. Cert-Manager is installed; if not, check πlink1.prepare namespace and secrets
Details
kubectl get namespaces monitor > /dev/null 2>&1 || kubectl create namespace monitor
kubectl -n monitor create secret generic langfuse-secret \
--from-literal=NEXTAUTH_SECRET=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 32) \
--from-literal=SALT=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 32)2.prepare `langfuse.values.yaml`
Details
# Minimal example. Adjust storage classes, resource limits, and domain before production use.
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: self-signed-ca-issuer
hosts:
- host: langfuse.dev.72602.online
paths:
- path: /
pathType: Prefix
tls:
- secretName: langfuse.dev.72602.online-tls
hosts:
- langfuse.dev.72602.online
env:
NEXTAUTH_URL: https://langfuse.dev.72602.online
TELEMETRY_ENABLED: "false"
# Use external databases in production.
postgresql:
enabled: true
redis:
enabled: true
clickhouse:
enabled: true3.install chart
Details
helm repo add langfuse https://langfuse.github.io/langfuse-k8s
helm repo update
helm upgrade --install langfuse langfuse/langfuse \
-n monitor \
-f langfuse.values.yaml \
--atomic4.monitor status
Details
kubectl -n monitor get pods
kubectl -n monitor get ingress
kubectl -n monitor logs deploy/langfuse-web --tail=100Preliminary
1. Kubernetes is installed; if not, check πlink2. Helm is installed; if not, check πlink3. ArgoCD is installed; if not, check πlink1.prepare `langfuse-app.yaml`
Details
kubectl -n argocd apply -f - <<'EOF'
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: langfuse
namespace: argocd
spec:
project: default
source:
repoURL: https://langfuse.github.io/langfuse-k8s
chart: langfuse
targetRevision: 1.0.0
helm:
values: |
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: self-signed-ca-issuer
hosts:
- host: langfuse.dev.72602.online
paths:
- path: /
pathType: Prefix
tls:
- secretName: langfuse.dev.72602.online-tls
hosts:
- langfuse.dev.72602.online
env:
NEXTAUTH_URL: https://langfuse.dev.72602.online
TELEMETRY_ENABLED: "false"
postgresql:
enabled: true
redis:
enabled: true
clickhouse:
enabled: true
destination:
server: https://kubernetes.default.svc
namespace: monitor
syncPolicy:
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
EOF2.sync by argocd
Details
argocd app sync argocd/langfuse3.monitor status
Details
argocd app get argocd/langfuse
kubectl -n monitor get pods
kubectl -n monitor get ingressVerify
Details
K8S_MASTER_IP=$(kubectl get nodes --selector=node-role.kubernetes.io/control-plane -o jsonpath='{$.items[0].status.addresses[?(@.type=="InternalIP")].address}')
echo "$K8S_MASTER_IP langfuse.dev.72602.online" | sudo tee -a /etc/hosts
curl -kI https://langfuse.dev.72602.onlineIf response status is 200 or 302, open https://langfuse.dev.72602.online in browser.
Install Permetheus Stack
Installation
Preliminary
1. Kubernetes is installed; if not, check πlink2. Helm is installed; if not, check πlink1.get helm repo
Details
helm repo add ay-helm-mirror https://aaronyang0628.github.io/helm-chart-mirror/charts
helm repo update2.install chart
Details
helm install ay-helm-mirror/kube-prometheus-stack --generate-nameUsing Mirror
helm repo add ay-helm-mirror https://aaronyang0628.github.io/helm-chart-mirror/charts \
&& helm install ay-helm-mirror/kube-prometheus-stack --generate-name --version 1.17.2for more information, you can check πhttps://aaronyang0628.github.io/helm-chart-mirror/
Preliminary
1. Kubernetes is installed; if not, check πlink2. ArgoCD is installed; if not, check πlink3. Helm binary is installed; if not, check πlink4. Ingress is installed on ArgoCD; if not, check πlink1.prepare `chart-museum-credentials`
Details
kubectl get namespaces monitor > /dev/null 2>&1 || kubectl create namespace monitor
kubectl -n monitor create secret generic prometheus-stack-credentials \
--from-literal=grafana-username=admin \
--from-literal=grafana-password=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 16)2.prepare `prometheus-stack.yaml`
Details
kubectl -n argocd apply -f - << EOF
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: prometheus-stack
spec:
syncPolicy:
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
project: default
source:
repoURL: https://aaronyang0628.github.io/helm-chart-mirror/charts
chart: kube-prometheus-stack
targetRevision: 72.9.1
helm:
releaseName: prometheus-stack
values: |
crds:
enabled: true
global:
rbac:
create: true
imageRegistry: ""
imagePullSecrets: []
alertmanager:
enabled: true
ingress:
enabled: false
serviceMonitor:
selfMonitor: true
interval: ""
alertmanagerSpec:
image:
registry: m.daocloud.io/quay.io
repository: prometheus/alertmanager
tag: v0.28.1
replicas: 1
resources: {}
storage:
volumeClaimTemplate:
spec:
storageClassName: ""
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 2Gi
grafana:
enabled: true
ingress:
enabled: true
annotations:
cert-manager.io/clusterissuer: self-signed-issuer
kubernetes.io/ingress.class: nginx
hosts:
- grafana.dev.72602.online
path: /
pathtype: ImplementationSpecific
tls:
- secretName: grafana.dev.72602.online-tls
hosts:
- grafana.dev.72602.online
prometheusOperator:
admissionWebhooks:
patch:
resources: {}
image:
registry: m.daocloud.io/registry.k8s.io
repository: ingress-nginx/kube-webhook-certgen
tag: v1.5.3
image:
registry: m.daocloud.io/quay.io
repository: prometheus-operator/prometheus-operator
prometheusConfigReloader:
image:
registry: m.daocloud.io/quay.io
repository: prometheus-operator/prometheus-config-reloader
resources: {}
thanosImage:
registry: m.daocloud.io/quay.io
repository: thanos/thanos
tag: v0.38.0
prometheus:
enabled: true
ingress:
enabled: true
annotations:
cert-manager.io/clusterissuer: self-signed-issuer
kubernetes.io/ingress.class: nginx
hosts:
- prometheus.dev.72602.online
path: /
pathtype: ImplementationSpecific
tls:
- secretName: prometheus.dev.72602.online-tls
hosts:
- prometheus.dev.72602.online
prometheusSpec:
image:
registry: m.daocloud.io/quay.io
repository: prometheus/prometheus
tag: v3.4.0
replicas: 1
shards: 1
resources: {}
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: ""
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 2Gi
thanosRuler:
enabled: false
ingress:
enabled: false
thanosRulerSpec:
replicas: 1
storage: {}
resources: {}
image:
registry: m.daocloud.io/quay.io
repository: thanos/thanos
tag: v0.38.0
destination:
server: https://kubernetes.default.svc
namespace: monitor
EOF3.sync by argocd
Details
argocd app sync argocd/prometheus-stack4.extract clickhouse admin credentials
Details
kubectl -n monitor get secret prometheus-stack-credentials -o jsonpath='{.data.grafana-password}' | base64 -d5.check the web browser
Details
> add `$K8S_MASTER_IP grafana.dev.72602.online` to **/etc/hosts**
> add `$K8S_MASTER_IP prometheus.dev.72602.online` to **/etc/hosts**install based on docker
echo "start from head is important"FAQ
UptimeKuma
Web Page
uptime-kuma (https://uptime.72602.space)
Deployment
Details
kubectl get namespace monitor > /dev/null 2>&1 || kubectl create namespace monitor
kubectl -n monitor apply -f manifests/uptimekuma/