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 minio-common: image: minio/minio:latest container_name: minio_server environment: MINIO_ROOT_USER: "${MINIO_ROOT_USER:-minioadmin}" MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD:-minioadmin}" MINIO_OPTS: "--console-address :9001" # MINIO_SERVER_URL: https://drive.furyhawk.lol user: "1000:1000" restart: unless-stopped ports: - 8760:9000 - 8761:9001 healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 5s timeout: 5s retries: 5 networks: - net - default volumes: - "./minio-data:/data" 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}