229 lines
6.3 KiB
Markdown
229 lines
6.3 KiB
Markdown
# 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.*
|