- My infrastructure as code using Docker containers & docker-compose.
- This repository's goal is to provide assistance and guidance into the configuration of different services around home automation using compose.
Here you can find services I use mainly for administering my infrastructure:
- Cloud9 - A compact web-based IDE I use daily to edit my different code and configurations.
- Prune - A container used to do dome maintenance around docker objects such as images, unused volumes, etc.
- Ouroboros - Auto-updater for docker containers.
- Portainer - Simple yet powerful web-based container manager.
Services used for my HomeAssistant, my home automation hub of choice.
- MariaDB - An open source relational database, used as the data store for home assistant's data.
- Mosquitto - An open source MQTT broker used as a pub-sub server for many of my devices.
- HomeAssistant - An open source home automation hub.
- MotionEye - A service to gather and control cctv cameras.
All media-related services used to manage my media library.
- SickChill - Used to automatically download torrents and their metadata.
- Transmission - A simple bittorrent client.
All services related to external access to the different services I run are listed here.
- NGINX - A powerful reverse proxy for securely exposing public services. This container also takes care of the renewal of the DuckDNS SSL certificate.
- DuckDNS - A free dynamic DNS hosted on AWS. Used to update my public IP address with my registered domain.
A dropbox-like service used to synchronize local files with mobile devices.
- MariaDB - An open source relational database, used as the data store for NextCloud's data.
- NextCloud - A file-synchronization and collaboration service.
A service used to report location data locally without hosting it on any external service.
- MariaDB - An open source relational database, used as the data store for Traccar's data.
- Traccar - Traccar is the leading GPS tracking software. Vehicle and personal tracking. Self hosting and cloud-based solution. Real time view, reports, notifications.
- In my setup, the configuration of all services reside under
/volume1/Media/Config/name_of_service
. This gives the advantage of keeping all configuration related to my docker infrastructure organized in one place which is easy to maintain and take backups. - To try out one of the services:
- Create
docker-compose.yaml
and copy the relevant service's configuration. - Wherever I refer to ${ENV_VAR} - create an
.env
file in the same folder as yourdocker-compose.yaml
with your own values for the environment variables.
- Create
- Each of the services' configuration will be documented under their relevant sections: