Files
cloudy/production.yml
T

245 lines
6.0 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: {}
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
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: quay.io/minio/minio:RELEASE.2024-04-18T19-09-19Z
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
command: server /data --address :9000 --console-address :9001
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 65s
timeout: 5s
retries: 5
expose:
- 9000
- 9001
networks:
- net
- default
volumes:
- "./minio-data:/data"
streamlit-bai:
environment:
<<: *default-environment
image: furyhawk/beyondallinfo:latest
container_name: streamlit_bai_app
restart: unless-stopped
command: streamlit run --server.port=$STREAMLIT_BAI_SERVER_PORT --server.address=0.0.0.0 --server.baseUrlPath=$BAI_LOCATION src/app.py
expose:
- ${STREAMLIT_BAI_SERVER_PORT}
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
neo4j_server:
# Docker image to be used
image: ${NEO4J_DOCKER_IMAGE:-neo4j:latest}
container_name: neo4j_server
restart: unless-stopped
# Environment variables
environment:
NEO4J_AUTH: neo4j/${NEO4J_PASSWORD:-12345678}
NEO4J_dbms.default_listen_address: "0.0.0.0"
NEO4J_dbms.default_advertised_address: "neo4j.furyhawk.lol"
NEO4J_dbms.connector.bolt.advertised_address: ":443"
NEO4J_dbms_security_procedures_unrestricted: "apoc.*"
NEO4J_server_memory_pagecache_size: 512M
NEO4J_server_memory_heap_max__size: 2G
user: "1000:1000"
depends_on:
- traefik
volumes:
- ./neo4j/data:/data
- ./neo4j/logs:/logs
# Expose ports
# ports:
# - "7474:7474"
# - "7687:7687"
networks:
- net
- default
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
expose:
- 8000
- 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"
- "7687:7687"
- "8083:8083"
- "8084:8084"
- "8883:8883"
# - "1883:1883"
# - 18083:18083
networks:
net:
external: true
name: ${NETWORK:-web}