6.4 KiB
6.4 KiB
Home Lab Quick Start Guide
Welcome to your documented homelab! This guide will help you manage and maintain your cluster.
🎯 What's Been Set Up
✅ Cluster Audit Complete - All services documented
✅ Memos Fixed - Running at https://memos.bendtstudio.com
✅ WebStatic Scaled - Down to 1 replica, stable
✅ Documentation Created - Service catalog and guides
✅ Backup Scripts - Automated backup tools ready
✅ Infrastructure Repo - All configs in version control
🚀 Quick Access
Your Services (via HTTPS)
| Service | URL | Status |
|---|---|---|
| Memos | https://memos.bendtstudio.com | ✅ Working |
| Gitea | https://gitea.bendtstudio.com:3000 | ✅ Git server |
| BewCloud | Check Traefik routes | ✅ Cloud storage |
| Immich | Check Traefik routes | ✅ Photos |
| SilverBullet | Check Traefik routes | ✅ Notes |
Management Interfaces
| Tool | URL | Use For |
|---|---|---|
| Dokploy | http://192.168.2.130:3000 | Deploy containers |
| Swarmpit | http://192.168.2.130:888 | Monitor cluster |
| Traefik | http://192.168.2.130:8080 | View routes |
| MinIO | http://192.168.2.18:9001 | Object storage |
| DNS | http://192.168.2.130:5380 | Manage DNS |
📁 Important Files
In This Repo
cloud-compose/
├── HOMELAB_AUDIT.md # Complete cluster documentation
├── SERVICE_CATALOG.md # All services documented
├── ACTION_PLAN.md # Step-by-step improvement plan
├── QUICK_REFERENCE.md # Quick access commands
├── memos-compose.yml # Fixed memos configuration
├── infrastructure/ # Backup scripts & configs
│ ├── README.md # How to use backups
│ ├── scripts/ # Backup automation
│ │ ├── backup-compose-files.sh
│ │ └── backup-critical-data.sh
│ └── compose/ # Backed up compose files
🔄 Regular Maintenance
Daily (Recommended)
# Check cluster health
ssh ubuntu@192.168.2.130 "docker service ls"
# Quick backup
./infrastructure/scripts/backup-compose-files.sh
Weekly
# Full backup
./infrastructure/scripts/backup-critical-data.sh
# Review Swarmpit dashboard
open http://192.168.2.130:888
# Commit changes to git
git add .
git commit -m "Weekly backup $(date +%Y-%m-%d)"
git push
🛠️ Common Tasks
Deploy a New Service
- Create
docker-compose.ymlfile - Add Traefik labels for HTTPS:
labels: - traefik.http.routers.myapp.rule=Host(`myapp.bendtstudio.com`) - traefik.http.routers.myapp.tls.certresolver=letsencrypt - traefik.enable=true - Upload via Dokploy UI
- Deploy
- Add DNS record in Technitium DNS
- Commit compose file to this repo
Backup Everything
# Run both backup scripts
cd infrastructure/scripts
./backup-compose-files.sh
./backup-critical-data.sh
# Commit to git
cd ../..
git add infrastructure/
git commit -m "Backup $(date +%Y-%m-%d)"
git push
Check Service Logs
# View logs
ssh ubuntu@192.168.2.130 "docker service logs <service-name> --tail 50 -f"
# Common services:
# - bewcloud-memos-ssogxn-memos
# - bendtstudio-webstatic-iq9evl
# - dokploy
Restart a Service
# Via SSH
ssh ubuntu@192.168.2.130 "docker service update --force <service-name>"
# Or via Dokploy UI
open http://192.168.2.130:3000
🆘 Troubleshooting
Service Won't Start
# Check logs
ssh ubuntu@192.168.2.130 "docker service logs <service-name> --tail 100"
# Common fixes:
# 1. Permission issues (like memos had)
# 2. Missing environment variables
# 3. Port conflicts
# 4. Image not found
Can't Access Website
-
Check if container is running:
ssh ubuntu@192.168.2.130 "docker ps | grep <service>" -
Check Traefik routes:
open http://192.168.2.130:8080 -
Check DNS:
dig memos.bendtstudio.com @192.168.2.130
Database Issues
# Check database container
ssh ubuntu@192.168.2.130 "docker ps | grep postgres"
# Check database logs
ssh ubuntu@192.168.2.130 "docker service logs dokploy-postgres --tail 50"
📊 Current Status
Nodes
- tpi-n1 (192.168.2.130) - Manager ✅
- tpi-n2 (192.168.2.19) - Worker ✅
- node-nas (192.168.2.18) - Storage ✅
Running Services
# Check all services
ssh ubuntu@192.168.2.130 "docker service ls"
Known Issues
- Syncthing - Stopped (0 replicas), start when needed:
docker service scale syncthing=1
📚 Documentation
- Service Catalog -
SERVICE_CATALOG.md - Infrastructure Guide -
infrastructure/README.md - Audit Report -
HOMELAB_AUDIT.md - Action Plan -
ACTION_PLAN.md
🎓 Learning Resources
Docker Swarm
- Official Docs: https://docs.docker.com/engine/swarm/
- Service Management:
docker service --help
Dokploy
- Documentation: https://dokploy.com/docs/
- UI at: http://192.168.2.130:3000
Traefik
- Routing: http://192.168.2.130:8080/dashboard/
- Labels Reference: https://doc.traefik.io/traefik/routing/providers/docker/
📞 Quick Commands Reference
# SSH to nodes
ssh -i ~/.ssh/id_ed25519 ubuntu@192.168.2.130 # Controller
ssh -i ~/.ssh/id_ed25519 ubuntu@192.168.2.19 # Worker
ssh tim@192.168.2.18 # NAS
# Check cluster
docker node ls
docker service ls
docker stack ls
# View logs
docker service logs <service> --tail 100 -f
# Scale service
docker service scale <service>=<replicas>
# Update service
docker service update --force <service>
✅ Next Steps
High Priority (This Week)
- Test backup scripts
- Set up automated daily backups (cron)
- Verify all services have working HTTPS
- Add missing compose files to version control
Medium Priority (This Month)
- Create disaster recovery procedures
- Set up monitoring alerts
- Document all environment variables
- Test restore procedures
Low Priority (When Time)
- Set up Prometheus/Grafana
- Create network diagrams
- Automate SSL certificate renewal checks
- Security audit
Questions or issues? Check the detailed documentation in:
HOMELAB_AUDIT.md- Complete technical detailsSERVICE_CATALOG.md- Service-specific informationinfrastructure/README.md- Backup and management guide
Last Updated: February 9, 2026