version: '3.7' 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: {} 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: always expose: - ${OSRM_PORT:-5000} networks: - net - default streamlit-bai: environment: <<: *default-environment image: furyhawk/beyondallinfo:latest container_name: streamlit_bai_app restart: always 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: always 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 networks: - net - default expose: - 80 msmtpd: image: crazymax/msmtpd:latest container_name: flarum_msmtpd env_file: - "./msmtpd.env" environment: - "TZ" restart: always 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: net: external: true name: ${NETWORK:-web}