# 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: ```bash # 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: ```bash cd docker-compose up -d ``` ### Management Script Use the included `manage.sh` script for easy management: ```bash ./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