154 lines
3.9 KiB
YAML
154 lines
3.9 KiB
YAML
## YMMV and this is not supported but should be a few steps away from deployable.
|
|
version: '3.4'
|
|
services:
|
|
|
|
############
|
|
## Speech ##
|
|
############
|
|
speech:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
# restart: always
|
|
expose:
|
|
- 3000
|
|
volumes:
|
|
- ../data/spee.ch:/data
|
|
labels:
|
|
# https://docs.traefik.io/user-guide/docker-and-lets-encrypt/
|
|
- "traefik.backend=speech"
|
|
- "traefik.docker.network=green"
|
|
- "traefik.frontend.rule=Host:YOURDOMAINHERE"
|
|
- "traefik.expose=true"
|
|
- "traefik.port=3000"
|
|
networks:
|
|
green:
|
|
ipv4_address: 10.5.1.6
|
|
aliases:
|
|
- speech
|
|
|
|
#############
|
|
## Lbrynet ##
|
|
#############
|
|
lbrynet:
|
|
build:
|
|
context: ../lbrynet-daemon/
|
|
dockerfile: Dockerfile
|
|
# restart: always
|
|
expose:
|
|
- 4444
|
|
- 50001
|
|
## host volumes for persistent data such as wallet private keys.
|
|
volumes:
|
|
- ../data/traefik:/data
|
|
labels:
|
|
test: traefik.enable=false
|
|
networks:
|
|
green:
|
|
ipv4_address: 10.5.1.7
|
|
aliases:
|
|
- lbrynet
|
|
|
|
#############
|
|
## MariaDB ##
|
|
#############
|
|
## https://hub.docker.com/r/_/mariadb/
|
|
mysql:
|
|
image: mariadb
|
|
# restart: always
|
|
environment:
|
|
MYSQL_SERVER: 10.5.1.8
|
|
MYSQL_USER: replaceme
|
|
MYSQL_PASSWORD: REPLACEME
|
|
MYSQL_DATABASE: speech
|
|
MYSQL_ROOT_PASSWORD: REPLACEME
|
|
expose:
|
|
- 3306
|
|
volumes:
|
|
- ../data/db:/var/lib/mysql
|
|
labels:
|
|
test: traefik.enable=false
|
|
networks:
|
|
green:
|
|
ipv4_address: 10.5.1.8
|
|
aliases:
|
|
- mysql
|
|
|
|
#######################
|
|
## Adminer container ##
|
|
#######################
|
|
adminer:
|
|
image: adminer
|
|
# restart: always
|
|
links:
|
|
- "mysql:database"
|
|
depends_on:
|
|
- mysql
|
|
labels:
|
|
# https://docs.traefik.io/user-guide/docker-and-lets-encrypt/
|
|
- "traefik.backend=adminer"
|
|
- "traefik.docker.network=green"
|
|
- "traefik.frontend.rule=Host:adminer.YOURDOMAINHERE"
|
|
- "traefik.expose=true"
|
|
- "traefik.port=8080"
|
|
# healthcheck:
|
|
# test: ["CMD", "curl", "--fail", "http://localhost:8080/", "||", "exit", "1"]
|
|
networks:
|
|
green:
|
|
ipv4_address: 10.5.1.9
|
|
aliases:
|
|
- adminer
|
|
|
|
#######################
|
|
## Traefik container ##
|
|
#######################
|
|
## https://www.digitalocean.com/community/tutorials/how-to-use-traefik-as-a-reverse-proxy-for-docker-containers-on-ubuntu-16-04
|
|
lbrynet
|
|
image: lbrynetalpine
|
|
# command: --api --docker --docker.domain=docker.localhost --logLevel=DEBUG
|
|
command: --api --docker --logLevel=ERROR
|
|
depends_on:
|
|
- adminer
|
|
ports:
|
|
- target: 80
|
|
published: 80
|
|
mode: host
|
|
- target: 443
|
|
published: 443
|
|
mode: host
|
|
expose:
|
|
- 8080
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- /home/persistence/traefik/traefik.toml:/traefik.toml
|
|
## This is going to be stored by default in the following host dir in staging.
|
|
# There is a rate limit for how many issuances you can request per week.
|
|
# Because of this we will store the acme.json file persistently.
|
|
# In production we are going to need to figure out how it'll work with Kubernetes or variant.
|
|
- ../data/traefik/:/opt/traefik/
|
|
labels:
|
|
# https://docs.traefik.io/user-guide/docker-and-lets-encrypt/
|
|
- "traefik.backend=proxy"
|
|
- "traefik.docker.network=green"
|
|
- "traefik.frontend.rule=Host:monitor.YOURDOMAINHERE"
|
|
- "traefik.expose=true"
|
|
- "traefik.port=8080"
|
|
healthcheck:
|
|
test: ["CMD", "traefik", "healthcheck"]
|
|
timeout: 10s
|
|
retries: 3
|
|
networks:
|
|
green:
|
|
ipv4_address: 10.5.1.10
|
|
aliases:
|
|
- traefik
|
|
|
|
#########################
|
|
## Network Definitions ##
|
|
#########################
|
|
networks:
|
|
green:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 10.5.1.0/16
|