Files
cloudy/production.yml
T

248 lines
5.9 KiB
YAML

x-environment: &default-environment
LOG_LEVEL: "DEBUG"
LOG_PATH: "./logs"
ACME_PATH: "./acme.json"
NETWORK: "${NETWORK:-web}"
FIN_LOCATION: ""
STREAMLIT_FIN_SERVER_PORT: "8501"
BAI_LOCATION: ""
STREAMLIT_BAI_SERVER_PORT: "8502"
volumes:
production_traefik: {}
portainer_data: {}
# vol-emqx-data1:
# name: foo-emqx-data1
# vol-emqx-data2:
# name: foo-emqx-data2
services:
osrm-backend:
environment:
# OSRM manager setup
- OSRM_ALGORITHM=mld
- OSRM_THREADS=2
- OSRM_PORT=5000
- OSRM_PROFILE=/opt/car.lua
- OSRM_MAP_NAME=${OSRM_MAP_NAME}
- OSRM_GEOFABRIK_PATH=${OSRM_GEOFABRIK_PATH}
# Notify OSRM Manager to restart without stopping container
- OSRM_NOTIFY_FILEPATH=/data/osrm_notify.txt
image: furyhawk/osrm-backend:${OSRM_VERSION:-latest}
container_name: osrm_backend
restart: unless-stopped
expose:
- ${OSRM_PORT:-5000}
networks:
- net
- default
# emqx1:
# image: emqx:latest
# container_name: emqx1
# environment:
# - "EMQX_NODE_NAME=emqx@node1.emqx.io"
# - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
# - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io,emqx@node2.emqx.io]"
# healthcheck:
# test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
# interval: 5s
# timeout: 25s
# retries: 5
# networks:
# net:
# emqx-bridge:
# aliases:
# - node1.emqx.io
# ports:
# - 1883:1883
# - 8083:8083
# - 8084:8084
# - 8883:8883
# - 18083:18083
# volumes:
# - vol-emqx-data1:/opt/emqx/data
# emqx2:
# image: emqx:latest
# container_name: emqx2
# environment:
# - "EMQX_NODE_NAME=emqx@node2.emqx.io"
# - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
# - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io,emqx@node2.emqx.io]"
# healthcheck:
# test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
# interval: 5s
# timeout: 25s
# retries: 5
# networks:
# emqx-bridge:
# aliases:
# - node2.emqx.io
# volumes:
# - vol-emqx-data2:/opt/emqx/data
# mqttx-web:
# image: emqx/mqttx-web:latest
# container_name: mqttx_web
# restart: unless-stopped
# expose:
# - 80
# networks:
# - emqx-bridge
# - net
# - default
privatebin:
image: privatebin/nginx-fpm-alpine:latest
container_name: privatebin
read_only: true
user: 1000:1000
volumes:
- './privatebin-data:/srv/data' # data volume for pastes allows pastes
# to persist after container stop or restart
- './config/conf.php:/srv/cfg/conf.php:ro' # second volume for custom configuration file
expose:
- 8080
restart: unless-stopped
networks:
- net
- default
heynote-app:
image: furyhawk/heynote:${HEYNOTETAG:-latest}
container_name: heynote_app
restart: unless-stopped
environment:
NODE_ENV: production
expose:
- 5173
networks:
- net
- default
cheatsheets-app:
image: furyhawk/cheatsheets:${CHEATSHEETSTAG:-latest}
container_name: cheatsheets_app
restart: unless-stopped
expose:
- 80
networks:
- net
- default
thelounge:
image: ghcr.io/thelounge/thelounge:latest
container_name: thelounge
expose:
- 9000
restart: unless-stopped
volumes:
- ~/.thelounge:/var/opt/thelounge # bind lounge config from the host's file system
networks:
- net
- default
streamlit-bai:
environment:
<<: *default-environment
image: furyhawk/beyondallinfo:latest
container_name: streamlit_bai_app
restart: unless-stopped
expose:
- ${STREAMLIT_BAI_SERVER_PORT}
command: streamlit run --server.port=$STREAMLIT_BAI_SERVER_PORT --server.address=0.0.0.0 --server.baseUrlPath=$BAI_LOCATION src/app.py
networks:
- net
- default
volumes:
- type: bind
source: ${PWD}/cache/bar_cache.sqlite
target: /app/bar_cache.sqlite
- type: bind
source: ${PWD}/cache/short_cache.sqlite
target: /app/short_cache.sqlite
# streamlit-fin:
# environment:
# <<: *default-environment
# build:
# context: .
# dockerfile: ./compose/streamlit-fin/Dockerfile
# image: streamlit_fin_production
# container_name: streamlit_fin_app
# restart: unless-stopped
# expose:
# - ${STREAMLIT_FIN_SERVER_PORT}
# networks:
# - net
# - default
# command: streamlit run --server.port=$STREAMLIT_FIN_SERVER_PORT --server.address=0.0.0.0 --server.baseUrlPath=$FIN_LOCATION src/app.py
site_server:
image: nginx:alpine
container_name: site_server
restart: unless-stopped
volumes:
- ./site:/usr/share/nginx/html:ro
expose:
- 80
networks:
- net
- default
# msmtpd:
# image: crazymax/msmtpd:latest
# container_name: flarum_msmtpd
# env_file:
# - "./msmtpd.env"
# environment:
# - "TZ"
# restart: always
# expose:
# - 2500
# networks:
# - net
# - default
portainer:
image: portainer/portainer-ce:latest
command: -H unix:///var/run/docker.sock
container_name: portainer
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
networks:
- net
- default
ports:
- "8000:8000"
- "9000:9000"
traefik:
environment:
<<: *default-environment
build:
context: .
dockerfile: ./compose/traefik/Dockerfile
image: traefik_production
container_name: traefik
restart: always
volumes:
- "${LOG_PATH:-./logs}:/logs"
- production_traefik:/etc/traefik/acme:z
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
- net
- default
ports:
- "80:80"
- "443:443"
networks:
# emqx-bridge:
# driver: bridge
net:
external: true
name: ${NETWORK:-web}