Create setup_todo.md

This commit is contained in:
Blake Ridgway 2025-05-23 19:12:10 -05:00 committed by GitHub
parent 4ff574227f
commit 0fe5e1afdd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

117
setup_todo.md Normal file
View file

@ -0,0 +1,117 @@
# Proxmox Homelab CI/CD & Application Hosting Setup
This document outlines the setup for a comprehensive homelab environment on a Dell PowerEdge R720 (24 Cores / 96GB RAM) running Proxmox VE.
The goal is to establish a fully open-source CI/CD pipeline for Docker images and host various applications.
## I. Proxmox VE Host (Dell PowerEdge R720)
- [ ] **Install Proxmox VE:** Latest stable version.
- [ ] **Configure Storage:**
- [ ] **OS/Proxmox:** Fast SSDs (e.g., 2x SSDs in ZFS mirror).
- [ ] **VM/CT Storage:** Larger capacity SSDs (e.g., 2-4 SSDs in ZFS RAIDZ1 or RAID10).
- [ ] **ISO/Templates/Backups:** Larger HDDs (e.g., 2x HDDs in ZFS mirror or NAS share).
- [ ] **Configure Networking:**
- [ ] Bond NICs (LACP) if switch supports.
- [ ] Setup VLANs (e.g., Management, VMs/CTs, DMZ).
- [ ] **System Updates:** Ensure Proxmox VE is fully updated.
- [ ] **Create Base Templates:**
- [ ] Ubuntu Server LTS VM Template.
- [ ] Ubuntu Server LTS CT Template.
## II. Management & Core Infrastructure VMs/CTs
- [ ] **CT 1: Ad Blocker / DNS Server (e.g., Pi-hole/AdGuard Home)**
- [ ] Deploy from Ubuntu CT template.
- [ ] Install Pi-hole or AdGuard Home.
- [ ] Configure DNS settings.
- [ ] Point network clients to this DNS.
- *Resources: 1-2 vCPUs, 512MB-1GB RAM, 8GB Disk*
- [ ] **CT 2: Reverse Proxy & SSL Management (e.g., Nginx Proxy Manager)**
- [ ] Deploy from Ubuntu CT template.
- [ ] Install Docker & Docker Compose.
- [ ] Deploy Nginx Proxy Manager (Docker container).
- [ ] Configure initial access and SSL.
- *Resources: 2 vCPUs, 1-2 GB RAM, 16GB Disk*
## III. CI/CD & DevOps Stack VMs/CTs
- [ ] **VM 1: Git & CI/CD Orchestration Server (Gitea & Drone Server)**
- [ ] Deploy from Ubuntu VM template.
- [ ] Install Gitea (binary or Docker).
- [ ] Configure Gitea (database, admin user).
- [ ] Create initial repositories.
- [ ] Install Docker & Docker Compose.
- [ ] Deploy Drone CI Server (Docker container).
- [ ] Configure Drone Server (connect to Gitea, secrets).
- *Resources: 4-6 vCPUs, 8-16 GB RAM, 50-100GB Disk*
- [ ] **VM 2 (or CTs): Drone CI Runner(s)**
- [ ] Deploy from Ubuntu VM/CT template(s).
- [ ] Install Docker Engine.
- [ ] Deploy Drone Docker Runner (Docker container).
- [ ] Register runner(s) with Drone Server.
- *Resources (per runner): 2-4 vCPUs, 4-8 GB RAM, 30-50GB Disk*
- [ ] **VM 3: Artifact & Container Registry Server (Harbor)**
- [ ] Deploy from Ubuntu VM template.
- [ ] Install Docker & Docker Compose.
- [ ] Deploy Harbor using its `install.sh` script (which uses Docker Compose).
- [ ] Configure Harbor (hostname, admin password, storage).
- [ ] (Optional) Configure vulnerability scanning.
- *Resources: 4-6 vCPUs, 8-16 GB RAM, 100GB+ Disk*
- [ ] (Alternative) Configure Gitea's built-in container registry (if skipping dedicated Harbor).
## IV. Application Hosting / Deployment Target VMs/CTs
- [ ] **VM 4 (or CT 3): Docker Application Host 1 ("Prod-like")**
- [ ] Deploy from Ubuntu VM/CT template.
- [ ] Install Docker Engine & Docker Compose.
- [ ] (Optional) Install Watchtower (pointing to Harbor).
- [ ] (Optional) Install Portainer.
- *Resources: 4-8 vCPUs, 8-16 GB RAM, 50-100GB Disk*
- [ ] **VM 5 (or CT 4): Docker Application Host 2 ("Staging/Dev")**
- [ ] Deploy from Ubuntu VM/CT template.
- [ ] Install Docker Engine & Docker Compose.
- *Resources: 2-4 vCPUs, 4-8 GB RAM, 50GB Disk*
- [ ] **(Optional) Kubernetes Cluster (e.g., K3s)**
- [ ] Deploy 1x Master K3s VM.
- [ ] Deploy 2x Worker K3s VMs.
- [ ] Initialize K3s cluster.
- [ ] (Optional) Install Argo CD / Flux CD for GitOps.
## V. Monitoring & Logging (Optional)
- [ ] **CT 5: Monitoring Stack (Prometheus, Grafana, Loki)**
- [ ] Deploy from Ubuntu CT template.
- [ ] Install Docker & Docker Compose.
- [ ] Deploy Prometheus (Docker container).
- [ ] Deploy Grafana (Docker container).
- [ ] (Optional) Deploy Loki (Docker container).
- [ ] Configure data sources and basic dashboards.
- *Resources: 2-4 vCPUs, 4-8 GB RAM, 50GB Disk*
## VI. General Configuration & Best Practices
- [ ] **Proxmox Backups:**
- [ ] Configure scheduled backups for all critical VMs/CTs.
- [ ] Verify backup storage location and retention.
- [ ] **Security Hardening:**
- [ ] Strong passwords for all services and OS accounts.
- [ ] Regular system updates (Proxmox host & guests).
- [ ] Configure host firewalls (`ufw` on Ubuntu guests).
- [ ] Minimize exposed ports.
- [ ] **Documentation:**
- [ ] Keep notes on configurations, IP addresses, credentials (securely stored).
- [ ] **CI/CD Pipeline Setup:**
- [ ] Create a sample application with a Dockerfile.
- [ ] Push to Gitea.
- [ ] Create `.drone.yml` pipeline:
- [ ] Build step.
- [ ] Push to Harbor step.
- [ ] Deployment step (e.g., SSH + `docker-compose up`).
- [ ] Test the full pipeline.
## VII. Future Enhancements
- [ ] Centralized Authentication (e.g., FreeIPA, Keycloak).
- [ ] More advanced GitOps with ArgoCD/Flux.
- [ ] Distributed storage (e.g., Ceph - if you have enough nodes/disks).
- [ ] Automated SSL certificate management for internal services.