AI given structure
This commit is contained in:
79
README.md
Normal file
79
README.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# homelab-infra
|
||||
|
||||
GitOps-managed infrastructure for homelab services.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
git clone git@gitea.sjhl.nz:james/homelab-infra.git
|
||||
cd homelab-infra
|
||||
|
||||
# Set up environment
|
||||
cp .env.example .env
|
||||
# Edit .env with real values
|
||||
|
||||
# Set up service secrets
|
||||
for svc in traefik gitea nextcloud qbittorrent jellyfin devbox obsidian; do
|
||||
[ -f "$svc/.env.example" ] && cp "$svc/.env.example" "$svc/.env"
|
||||
# Edit each .env with real secrets
|
||||
done
|
||||
|
||||
# Create required Docker networks
|
||||
docker network create web
|
||||
|
||||
# Start everything
|
||||
make up
|
||||
```
|
||||
|
||||
## Services
|
||||
|
||||
| Service | Description | URL |
|
||||
|---------|-------------|-----|
|
||||
| traefik | Reverse proxy, TLS termination | `dashboard.sjhl.nz` |
|
||||
| gitea | Self-hosted Git | `gitea.sjhl.nz` |
|
||||
| nextcloud | Cloud storage (AIO) | `nextcloud.sjhl.nz` |
|
||||
| qbittorrent | Torrent client (VPN) | Internal only |
|
||||
| jellyfin | Media server | `jellyfin.sjhl.nz` |
|
||||
| devbox | Dev container | SSH:46573 |
|
||||
| obsidian | CouchDB for Obsidian LiveSync | Internal |
|
||||
| n8n | Workflow automation (planned) | - |
|
||||
| supersync | File sync (planned) | - |
|
||||
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
make up # Start all services
|
||||
make down # Stop all services
|
||||
make restart # Restart all services
|
||||
make status # Show status of all services
|
||||
make logs # Show recent logs
|
||||
make backup # Run Restic backup
|
||||
make docs # Build MkDocs site
|
||||
```
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
homelab-infra/
|
||||
├── .env.example # Global env template
|
||||
├── Makefile # Service management
|
||||
├── backup.sh # Restic backup script
|
||||
├── traefik/ # Reverse proxy
|
||||
├── gitea/ # Git hosting
|
||||
├── nextcloud/ # Cloud storage (AIO)
|
||||
├── qbittorrent/ # Torrent + VPN stack
|
||||
├── jellyfin/ # Media server
|
||||
├── devbox/ # Development container
|
||||
├── obsidian/ # CouchDB for LiveSync
|
||||
├── n8n/ # Workflow automation
|
||||
├── supersync/ # File sync
|
||||
└── docs/ # MkDocs documentation
|
||||
```
|
||||
|
||||
## Data Locations
|
||||
|
||||
- Configs (in Git): this repo
|
||||
- Secrets (not in Git): per-service `.env` files
|
||||
- Persistent data: `/mnt/storage/docker-data/<service>`
|
||||
- Media: `/mnt/storage`
|
||||
- Backups: `/mnt/storage/backups`
|
||||
Reference in New Issue
Block a user