homelab_docker
A collection of Docker services for a home lab environment.
Port Matrix
| Service | 80 | 81 | 222 | 2283 | 3000 | 5000 | 5540 | 5678 | 6379 | 8001 | 8554 | 8555 | 8971 | 9000 | 9443 | 9999 | 27017 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 🔥 Firefly III | ✅ | ✅ | ||||||||||||||||
| 📹 Frigate | ✅ | ✅ | ✅ | ✅ | ||||||||||||||
| 🐙 Gitea | ✅ | ✅ | ||||||||||||||||
| 📱 Immich | ✅ | |||||||||||||||||
| 🍃 MongoDB | ✅ | |||||||||||||||||
| 🔄 n8n | ✅ | |||||||||||||||||
| 🐳 Portainer | ✅ | ✅ | ||||||||||||||||
| 🔴 Redis | ✅ | ✅ | ||||||||||||||||
| 📊 What's Up Docker | ✅ | |||||||||||||||||
| 🗺️ WebMap | ✅ |
Services
🔥 Firefly III
Ports: 80 (Core), 81 (Data Importer)
Description: Personal finance manager with budgeting, expense tracking, and financial insights. Includes data import capabilities and automated cron jobs for recurring transactions.
📹 Frigate
Ports: 8971 (Web UI), 5000 (Internal API), 8554 (RTSP), 8555 (WebRTC)
Description: AI-powered NVR with real-time object detection using USB Coral TPU. Features face recognition, license plate recognition, and motion detection with custom zones.
Configuration: 3 cameras (achtertuin, tuinhuis, carport) via NVR at 192.168.2.26. MQTT integration with Home Assistant for automation. Recording strategy: motion/detection clips retained for 3 days, no continuous recording.
🐙 Gitea
Ports: 3000 (Web), 222 (SSH)
Description: Self-hosted Git service similar to GitHub/GitLab. Provides repository hosting, issue tracking, and collaboration tools with PostgreSQL backend.
📱 Immich
Ports: 2283
Description: Self-hosted photo and video backup solution with machine learning capabilities. Features automatic organization, face recognition, and mobile app support.
Notes: Healthcheck uses bash TCP probe on localhost:2283. Database is optimized for HDD with DB_STORAGE_TYPE: 'HDD'.
🍃 MongoDB
Ports: 27017
Description: NoSQL database service for applications requiring flexible document storage and high performance data operations.
🔄 n8n
Ports: 5678
Description: Workflow automation platform that connects different services and APIs. Create automated workflows with a visual interface.
🐳 Portainer
Ports: 9000, 9443
Description: Web-based Docker management interface for managing containers, images, volumes, and networks through a user-friendly GUI.
🔴 Redis
Ports: 6379 (Redis), 5540 (RedisInsight)
Description: In-memory data structure store with RedisInsight for database management and monitoring. Used as cache, message broker, and session store.
📊 What's Up Docker
Ports: 9999
Description: Web-based container update monitoring tool that tracks available updates for Docker containers. Provides a dashboard to view outdated containers and sends notifications via webhooks.
Notes: Webhook configured to send update notifications to external endpoint.
🗺️ WebMap
Ports: 8001
Description: Network discovery and visualization tool that scans network devices and provides a web interface to view network topology and device information.
Getting Started
Option 1: Single Command (Recommended)
Start all services with one command:
# Start all services
docker-compose up -d
# Or use the management script
./manage.sh start
Option 2: Individual Services
Each service is contained in its own directory with a compose.yaml file:
cd <service-directory>
docker-compose up -d
Management Script
Use the included manage.sh script for easy management:
./manage.sh start # Start all services
./manage.sh stop # Stop all services
./manage.sh restart # Restart all services
./manage.sh status # Show service status
./manage.sh logs [service] # View logs
./manage.sh update # Update and restart
./manage.sh backup # Backup data volumes
./manage.sh clean # Clean up unused resources
Requirements
- Docker and Docker Compose
- Sufficient storage for data volumes
- Network access for services that require external connections