auto docs
Some checks failed
Test / tests (push) Has been cancelled
/ OpenTofu (push) Has been cancelled

This commit is contained in:
plasmagoat 2025-07-29 16:28:17 +02:00
parent a955528e44
commit ce8c543e84
18 changed files with 3129 additions and 55 deletions

65
docs/README.md Normal file
View file

@ -0,0 +1,65 @@
# Homelab Documentation
> Auto-generated documentation for the homelab deployment
>
> Generated on: tir 29 jul 16:25:52 CEST 2025
> Source: /home/plasmagoat/homelab
## 📚 Documentation Files
This documentation is automatically generated from your colmena flake configuration.
### 📊 Overview Documents
- **[Fleet Overview](fleet-overview.md)** - High-level fleet statistics and service distribution
- **[Current Deployment](current-deployment.md)** - Current deployment state and node status
### 📖 Detailed Configuration
- **[Node Configurations](nodes.md)** - Per-node detailed configuration and services
- **[Service Configurations](services.md)** - Service configurations across the fleet
## 🚀 Quick Actions
### View Current Status
```bash
# Service status across fleet (if homelab CLI is available)
homelab services --global
# Backup status
homelab backups --global
# Overall status
homelab status
```
### Update Documentation
```bash
# Regenerate all documentation
homelab-generate-docs ./docs
# Generate in different directory
homelab-generate-docs /path/to/output
```
## 📋 Quick Stats
- **Total Nodes**: 2
- **Homelab-Enabled Nodes**: 2
- **Generated**: tir 29 jul 16:25:55 CEST 2025
## 🛠️ Management Tools
### Documentation Commands
- `homelab-generate-docs` - Regenerate this documentation
- `homelab-docs-fleet` - Generate fleet overview only
- `homelab-docs-nodes` - Generate node configurations only
- `homelab-docs-services` - Generate service configurations only
- `homelab-docs-deployment` - Generate deployment state only
### Colmena Commands
- `colmena eval` - Evaluate flake expressions
- `colmena apply` - Deploy configuration changes
- `colmena build` - Build configurations without deploying
---
*This documentation reflects the live state of your homelab deployment as evaluated by colmena.*

View file

@ -0,0 +1,26 @@
# Current Deployment State
> Current homelab deployment configuration
>
> Generated on: tir 29 jul 16:25:46 CEST 2025
> Working directory: /home/plasmagoat/homelab
## Deployment Summary
| Metric | Count |
|--------|-------|
| Total Nodes | 2 |
| Homelab-Enabled Nodes | 2 |
| Unique Services | 1 |
| Service Instances | 1 |
## Node Status
| Node | Homelab | Environment | Services | Monitoring | Backups | Proxy |
|------|---------|-------------|----------|------------|---------|-------|
| `photos` | ✅ | production | 1 | ✅ | ❌ | ❌ |
| `sandbox` | ✅ | production | 0 | ✅ | ✅ | ❌ |
---
*Deployment state extracted from live colmena configuration*

39
docs/fleet-overview.md Normal file
View file

@ -0,0 +1,39 @@
# Homelab Fleet Overview
> Auto-generated fleet overview
>
> Generated on: tir 29 jul 16:25:32 CEST 2025
> Source: /home/plasmagoat/homelab
## Fleet Statistics
### Basic Information
| Metric | Value |
|--------|-------|
| Total Nodes | 2 |
| Node Names | photos sandbox |
### Homelab Configuration
| Node | Homelab Enabled | Hostname | Environment |
|------|----------------|----------|-------------|
| `photos` | ✅ | photos | production |
| `sandbox` | ✅ | sandbox | production |
### Service Distribution
| Node | Service Count | Services |
|------|---------------|----------|
| `photos` | 1 | minio |
| `sandbox` | 0 | |
### Environment Distribution
| Environment | Node Count |
|-------------|------------|
| production | 2 |
---
*Fleet overview generated from colmena evaluation*

70
docs/nodes.md Normal file
View file

@ -0,0 +1,70 @@
# Node Configurations
> Detailed per-node configuration
>
> Generated on: tir 29 jul 16:25:40 CEST 2025
## Node: photos
### System Information
| Property | Value |
|----------|-------|
| NixOS Version | `25.11pre-git` |
| Hostname | `photos` |
| System | `x86_64-linux` |
### Homelab Configuration
| Property | Value |
|----------|-------|
| Homelab Hostname | `photos` |
| Domain | `lab` |
| External Domain | `procopius.dk` |
| Environment | `production` |
| Location | `proxmox-cluster` |
| Tags | photos |
### Services
| Service | Enabled | Port | Description | Tags |
|---------|---------|------|-------------|------|
| `gatus` | ❌ | 8080 | Gatus Status Page | |
| `grafana` | ❌ | 3000 | Grafana Metrics Dashboard | |
| `minio` | ✅ | 9000 | minio | |
| `prometheus` | ❌ | 9090 | Prometheus Monitoring Server | |
---
## Node: sandbox
### System Information
| Property | Value |
|----------|-------|
| NixOS Version | `25.11pre-git` |
| Hostname | `sandbox` |
| System | `x86_64-linux` |
### Homelab Configuration
| Property | Value |
|----------|-------|
| Homelab Hostname | `sandbox` |
| Domain | `lab` |
| External Domain | `procopius.dk` |
| Environment | `production` |
| Location | `proxmox-cluster` |
| Tags | sandbox |
### Services
| Service | Enabled | Port | Description | Tags |
|---------|---------|------|-------------|------|
| `gatus` | ❌ | 8080 | Gatus Status Page | |
| `grafana` | ❌ | 3000 | Grafana Metrics Dashboard | |
| `minio` | ❌ | 9000 | minio | |
| `prometheus` | ❌ | 9090 | Prometheus Monitoring Server | |
---

209
docs/services.md Normal file
View file

@ -0,0 +1,209 @@
# Service Catalog
> Available services and their configuration options
>
> Generated on: tir 29 jul 16:25:43 CEST 2025
This document catalogs all available homelab services, their configuration options, and integration capabilities.
## Overview
**Total Available Services:** 4
## Service Reference
### gatus
**Description:** Gatus Status Page
**Default Port:** `8080`
**Current Deployments:** 0 instance(s)
#### Core Configuration
```nix
homelab.services.gatus = {
enable = true;
port = 8080;
description = "Gatus Status Page";
};
```
#### 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"};
};
```
#### Complete Example
```nix
# Full configuration example for gatus
homelab.services.gatus = {
enable = true;
port = 8080;
description = "Gatus Status Page";
};
```
---
### grafana
**Description:** Grafana Metrics Dashboard
**Default Port:** `3000`
**Current Deployments:** 0 instance(s)
#### Core Configuration
```nix
homelab.services.grafana = {
enable = true;
port = 3000;
description = "Grafana Metrics Dashboard";
};
```
#### Complete Example
```nix
# Full configuration example for grafana
homelab.services.grafana = {
enable = true;
port = 3000;
description = "Grafana Metrics Dashboard";
};
```
---
### minio
**Description:** minio
**Default Port:** `9000`
**Current Deployments:** 1 instance(s)
#### Core Configuration
```nix
homelab.services.minio = {
enable = true;
port = 9000;
description = "minio";
};
```
#### Service-Specific Options
Available configuration options for minio:
```nix
homelab.services.minio = {
# ... core options above ...
# Service-specific configuration
openFirewall = true;
webPort = 9001;
};
```
#### Complete Example
```nix
# Full configuration example for minio
homelab.services.minio = {
enable = true;
port = 9000;
description = "minio";
};
```
---
### prometheus
**Description:** Prometheus Monitoring Server
**Default Port:** `9090`
**Current Deployments:** 0 instance(s)
#### Core Configuration
```nix
homelab.services.prometheus = {
enable = true;
port = 9090;
description = "Prometheus Monitoring Server";
};
```
#### 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"];
};
```
#### Complete Example
```nix
# Full configuration example for prometheus
homelab.services.prometheus = {
enable = true;
port = 9090;
description = "Prometheus Monitoring Server";
};
```
---
## Integration Summary
### Available Integration Types
| Integration | Purpose | Configuration |
|-------------|---------|---------------|
| **Monitoring** | Prometheus metrics + health checks | `monitoring.enable = true` |
| **Logging** | Centralized log collection | `logging.enable = true` |
| **Proxy** | Reverse proxy with SSL + auth | `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
---
*This service catalog is generated from actual service configurations across your homelab fleet.*