# 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 ```nix 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: ```nix 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 ```nix 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 ```nix 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: ```nix 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 ```nix 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: ```nix 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.*