1
0
Fork 0
home-applications/docker-compose.yml
Andrew Tomaka 64a40527df
Migrate to using host network
In order to use upnp and other discovery services, home assistant needs
to live on our real network and not inside a Docker network. This is
trivial, but triggered an issue with our nginx proxy, which does not
support proxying to containers on the host network.  This is resolved by
adding ANOTHER proxy to transition from the docker "proxy" network to
the host network (simply by pointing at the machines IP address).

HTTP Request
    |
Dynamic Nginx proxy
    |
Static Nginx proxy
    |
Home assistant application
2018-02-28 20:04:31 -05:00

225 lines
5.6 KiB
YAML

version: '2'
services:
nginx:
image: nginx:alpine
container_name: nginx
restart: always
ports:
- 443:443
- 80:80
volumes:
- /etc/nginx/conf.d
- /etc/nginx/vhost.d
- /usr/share/nginx/html
- /mnt/data/docker/nginx/htpasswd:/etc/nginx/htpasswd:ro
- /mnt/data/docker/nginx/certificates:/etc/nginx/certs:ro
networks:
- proxy
nginx-gen:
image: jwilder/docker-gen
container_name: nginx-gen
restart: always
depends_on:
- nginx
entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /mnt/data/docker/nginx/templates/nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
volumes_from:
- nginx
networks:
- proxy
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: letsencrypt
restart: always
depends_on:
- nginx
- nginx-gen
volumes_from:
- nginx
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /mnt/data/docker/nginx/certificates:/etc/nginx/certs:rw
environment:
NGINX_DOCKER_GEN_CONTAINER: nginx-gen
unifi:
image: linuxserver/unifi
container_name: unifi
restart: always
environment:
PUID: 0
PGID: 0
volumes:
- "/mnt/data/docker/unifi/config:/config"
ports:
- "9058:8080"
- "8081:8081"
- "8443:8443"
- "8843:8843"
- "8880:8880"
- "3478:3478/udp"
- "10001:10001/udp"
plex:
image: linuxserver/plex
container_name: plex
network_mode: host
restart: always
environment:
VERSION: latest
PUID: 0
PGID: 0
volumes:
- "/mnt/data/docker/plex/config:/config"
- "/mnt/media/series:/data/tvshows"
- "/mnt/media/movies:/data/movies"
- "/etc/localtime:/etc/localtime:ro"
plexpy:
image: linuxserver/plexpy
container_name: plexpy
restart: always
volumes:
- "/mnt/data/docker/plexpy/config:/config"
- "/mnt/data/docker/plex/config/Library/Application\ Support/Plex\ Media\ Server/Logs:/logs:ro"
- "/etc/localtime:/etc/localtime:ro"
environment:
PUID: 0
PGID: 0
ports:
- "9055:8181"
plexrequests:
image: linuxserver/plexrequests
container_name: plexrequests
restart: always
volumes:
- "/mnt/data/docker/plexrequests/config:/config"
- "/etc/localtime:/etc/localtime:ro"
environment:
PUID: 0
PGID: 0
VIRTUAL_HOST: plex-requests.atomaka.com
LETSENCRYPT_HOST: plex-requests.atomaka.com
LETSENCRYPT_EMAIL: me@atomaka.com
networks:
- proxy
sabnzdb:
image: linuxserver/sabnzbd
container_name: sabnzbd
restart: always
volumes:
- "/mnt/data/docker/sabnzdb/config:/config"
- "/mnt/data/downloads:/data"
- "/etc/localtime:/etc/localtime:ro"
environment:
PUID: 0
PGID: 0
ports:
- "9052:8080"
sonarr:
image: linuxserver/sonarr
container_name: sonarr
restart: always
ports:
- "9053:8989"
environment:
PUID: 0
PGID: 0
volumes:
- "/mnt/data/docker/sonarr/config:/config"
- "/mnt/data/downloads:/data"
- "/mnt/data/downloads:/downloads"
- "/mnt/media/series/:/media"
- "/etc/localtime:/etc/localtime:ro"
radarr:
image: linuxserver/radarr
container_name: radarr
restart: always
ports:
- "9054:7878"
environment:
PUID: 0
PGID: 0
volumes:
- "/mnt/data/docker/radarr/config:/config"
- "/mnt/data/downloads:/data"
- "/mnt/media/movies/:/media"
- "/mnt/media/movies/:/movies"
- "/etc/localtime:/etc/localtime:ro"
muximux:
image: linuxserver/muximux
container_name: muximux
restart: always
ports:
- "9050:80"
volumes:
- "/mnt/data/docker/muximux/config:/config"
- "/etc/localtime:/etc/localtime:ro"
duckdns:
image: linuxserver/duckdns
container_name: duckdns
restart: always
environment:
PUID: 0
PGID: 0
env_file:
- duckdns.env
volumes:
- "/etc/localtime:/etc/localtime:ro"
haproxy:
image: instal/nginx-proxy-pass-dockerize
container_name: haproxy
restart: always
volumes:
- /mnt/data/docker/haproxy/nginx.template.conf:/app/nginx.template.conf:ro
environment:
NGINX_UPSTREAM_SERVER: 192.168.1.20:8123
NGINX_UPSTREAM_KEEPALIVE: 0
NGINX_SERVER_PORT: 80
VIRTUAL_HOST: ha.atomaka.com
LETSENCRYPT_HOST: ha.atomaka.com
LETSENCRYPT_EMAIL: me@atomaka.com
networks:
- proxy
ha:
image: homeassistant/home-assistant:latest
container_name: ha
restart: always
network_mode: host
ports:
- "8123:8123"
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/mnt/data/docker/ha/config:/config"
devices:
- '/dev/zwave:/dev/zwave:rwm'
portainer:
image: portainer/portainer
container_name: portainer
restart: always
ports:
- "9057:9000"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/mnt/data/docker/portainer:/data"
mqtt:
image: matteocollina/mosca
container_name: mqtt
restart: always
ports:
- 1883:1883
mqttbridge:
image: stjohnjohnson/smartthings-mqtt-bridge
container_name: mqttbridge
restart: always
volumes:
- "/mnt/data/docker/mqttbridge/config:/config"
ports:
- 8080:8080
links:
- mqtt
networks:
proxy:
external:
name: nginx-proxy