homelab/docs/services.md
plasmagoat 73d2f44d74
Some checks failed
Test / tests (push) Failing after 2m27s
/ OpenTofu (push) Successful in 9s
updated docs
2025-07-29 16:58:09 +02:00

6.3 KiB

Service Catalog

Available services and their configuration options

Generated on: $(date)

This document catalogs all available homelab services, their configuration options, and integration capabilities.

Overview

Total Available Services: 4

Service Integration Matrix

Service Monitoring Logging Proxy Auth Default
gatus 🌐
grafana 🌐
minio 🌐
prometheus 🌐

Legend: = Enabled by default, = Available but disabled, 🔒 = Auth required, 🌐 = Public access

Service Reference

gatus

Description: Gatus Status Page

Default Port: 8080

Current Deployments: 0 instance(s) on:

Default Integration Status

Integration Status Default Configuration
📊 Monitoring Disabled Available but requires monitoring.enable = true
📝 Logging Disabled Available but requires logging.enable = true
🔀 Proxy Disabled Available but requires proxy.enable = true

Core Configuration

homelab.services.gatus = {
  enable = true;
  port = 8080;
  description = "Gatus Status Page";

  # Default integrations (adjust as needed)
  # monitoring.enable = true;  # ❌ Disabled by default
  # logging.enable = true;     # ❌ Disabled by default
  # proxy.enable = true;       # ❌ Disabled by default
};

Service-Specific Options

Available configuration options for gatus:

homelab.services.gatus = {
  # ... core options above ...

  # Service-specific configuration
  alerting = {};
  extraConfig = {};
  storage = {"type":"memory"};
  ui = {"buttons":[{"link":"https://grafana.procopius.dk","name":"Grafana"},{"link":"https://prometheus.procopius.dk","name":"Prometheus"}],"header":"Homelab Services Status","link":"https://status.procopius.dk","title":"Homelab Status"};
  web = {"address":"0.0.0.0"};
};

grafana

Description: Grafana Metrics Dashboard

Default Port: 3000

Current Deployments: 0 instance(s) on:

Default Integration Status

Integration Status Default Configuration
📊 Monitoring Disabled Available but requires monitoring.enable = true
📝 Logging Disabled Available but requires logging.enable = true
🔀 Proxy Disabled Available but requires proxy.enable = true

Core Configuration

homelab.services.grafana = {
  enable = true;
  port = 3000;
  description = "Grafana Metrics Dashboard";

  # Default integrations (adjust as needed)
  # monitoring.enable = true;  # ❌ Disabled by default
  # logging.enable = true;     # ❌ Disabled by default
  # proxy.enable = true;       # ❌ Disabled by default
};

minio

Description: minio

Default Port: 9000

Current Deployments: 1 instance(s) on: photos

Default Integration Status

Integration Status Default Configuration
📊 Monitoring Disabled Available but requires monitoring.enable = true
📝 Logging Disabled Available but requires logging.enable = true
🔀 Proxy Disabled Available but requires proxy.enable = true

Core Configuration

homelab.services.minio = {
  enable = true;
  port = 9000;
  description = "minio";

  # Default integrations (adjust as needed)
  # monitoring.enable = true;  # ❌ Disabled by default
  # logging.enable = true;     # ❌ Disabled by default
  # proxy.enable = true;       # ❌ Disabled by default
};

Service-Specific Options

Available configuration options for minio:

homelab.services.minio = {
  # ... core options above ...

  # Service-specific configuration
  openFirewall = true;
  webPort = 9001;
};

prometheus

Description: Prometheus Monitoring Server

Default Port: 9090

Current Deployments: 0 instance(s) on:

Default Integration Status

Integration Status Default Configuration
📊 Monitoring Disabled Available but requires monitoring.enable = true
📝 Logging Disabled Available but requires logging.enable = true
🔀 Proxy Disabled Available but requires proxy.enable = true

Core Configuration

homelab.services.prometheus = {
  enable = true;
  port = 9090;
  description = "Prometheus Monitoring Server";

  # Default integrations (adjust as needed)
  # monitoring.enable = true;  # ❌ Disabled by default
  # logging.enable = true;     # ❌ Disabled by default
  # proxy.enable = true;       # ❌ Disabled by default
};

Service-Specific Options

Available configuration options for prometheus:

homelab.services.prometheus = {
  # ... core options above ...

  # Service-specific configuration
  alertmanager = {"enable":true,"url":"alertmanager.lab:9093"};
  extraAlertingRules = [];
  extraFlags = [];
  extraScrapeConfigs = [];
  globalConfig = {"evaluation_interval":"15s","scrape_interval":"15s"};
  retention = 15d;
  ruleFiles = [];
  systemdServices = ["prometheus.service","prometheus"];
};

Integration Summary

Available Integration Types

Integration Purpose Default Behavior Configuration
📊 Monitoring Prometheus metrics + health checks Service-dependent monitoring.enable = true
📝 Logging Centralized log collection Service-dependent logging.enable = true
🔀 Proxy Reverse proxy with SSL + auth Service-dependent proxy.enable = true

Integration Benefits

  • 🔄 Automatic Discovery: Enabled integrations are automatically discovered by fleet-wide services
  • 📊 Unified Monitoring: All metrics and health checks appear in Prometheus/Grafana
  • 📝 Centralized Logging: All logs are collected and indexed in Loki
  • 🌐 Consistent Access: All services get consistent subdomain access with SSL
  • 🎯 Smart Defaults: Each service comes with sensible default configurations

This service catalog is generated from actual service configurations across your homelab fleet.