auto docs
This commit is contained in:
parent
a955528e44
commit
ce8c543e84
18 changed files with 3129 additions and 55 deletions
65
docs/README.md
Normal file
65
docs/README.md
Normal 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.*
|
||||
26
docs/current-deployment.md
Normal file
26
docs/current-deployment.md
Normal 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
39
docs/fleet-overview.md
Normal 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
70
docs/nodes.md
Normal 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
209
docs/services.md
Normal 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.*
|
||||
Loading…
Add table
Add a link
Reference in a new issue