networks: transcendance-network: driver: bridge monitoring: driver: bridge services: ############### # USER # ############### frontend: build: ./frontend container_name: frontend restart: on-failure:3 networks: - transcendance-network volumes: - static-volume:/volumes/static # # The "entry point" as in it does all of this: # - serve files (images, static files, video) # - redirect request to appropirate service (reverse proxy) # - be the one that handles TLS/SSL (basically HTTPS) # - other stuff I don't know yet nginx: build: ./nginx container_name: nginx restart: always networks: - transcendance-network ports: - '8888:443' volumes: # if you need to share files with nginx, you do it here. - static-volume:/volumes/static - images-volume:/volumes/icons environment: # this can stay the same for developpement. This is an alias to `localhost` - NGINX_DOMAIN=local.maix.me ############### # ICONS # ############### icons: build: context: ./src/ args: - SERVICE=icons #- EXTRA_FILES=icons/extra container_name: icons restart: always networks: - transcendance-network volumes: - images-volume:/volumes/store - sqlite-volume:/volumes/database environment: - JWT_SECRET=KRUGKIDROVUWG2ZAMJZG653OEBTG66BANJ2W24DTEBXXMZLSEB2GQZJANRQXU6JA - USER_ICONS_STORE=/volumes/store - DATABASE_DIR=/volumes/database ############### # AUTH # ############### auth: build: context: ./src/ args: - SERVICE=auth - EXTRA_FILES=auth/extra container_name: auth restart: always networks: - transcendance-network volumes: - sqlite-volume:/volumes/database - static-volume:/volumes/static environment: - JWT_SECRET=KRUGKIDROVUWG2ZAMJZG653OEBTG66BANJ2W24DTEBXXMZLSEB2GQZJANRQXU6JA - DATABASE_DIR=/volumes/database - PROVIDER_FILE=/extra/providers.toml ############### # CHAT # ############### chat: build: context: ./src/ args: - SERVICE=chat - EXTRA_FILES=chat/extra container_name: chat restart: always networks: - transcendance-network volumes: - sqlite-volume:/volumes/database - static-volume:/volumes/static environment: - JWT_SECRET=KRUGKIDROVUWG2ZAMJZG653OEBTG66BANJ2W24DTEBXXMZLSEB2GQZJANRQXU6JA - DATABASE_DIR=/volumes/database - PROVIDER_FILE=/extra/providers.toml ############### # USER # ############### user: build: context: ./src/ args: - SERVICE=user # - EXTRA_FILES=user/extra container_name: user restart: always networks: - transcendance-network volumes: - sqlite-volume:/volumes/database - static-volume:/volumes/static environment: - JWT_SECRET=KRUGKIDROVUWG2ZAMJZG653OEBTG66BANJ2W24DTEBXXMZLSEB2GQZJANRQXU6JA - DATABASE_DIR=/volumes/database ############### # MONITORING # ############### grafana: container_name: monitoring-grafana image: grafana/grafana-enterprise restart: always networks: - transcendance-network - monitoring depends_on: - prometheus ports: - '3000:3000' volumes: - ./monitoring/grafana/alerting:/etc/grafana/provisioning/alerting - ./monitoring/grafana/datasources:/etc/grafana/provisioning/datasources - ./monitoring/grafana/dashboards-config:/etc/grafana/provisioning/dashboards - ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards - grafana-data:/var/lib/grafana environment: # this can stay the same for developpement. This is an alias to `localhost` - NGINX_DOMAIN=local.maix.me - GF_LOG_LEVEL=warn - GF_SERVER_ROOT_URL=http://local.maix.me:3000 - GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASS} prometheus: image: prom/prometheus:latest container_name: monitoring-prometheus networks: - transcendance-network - monitoring volumes: - ./monitoring/prometheus:/etc/prometheus/ restart: unless-stopped cadvisor: image: gcr.io/cadvisor/cadvisor:latest networks: - monitoring container_name: monitoring-cadvisor ports: - '8080:8080' volumes: - /:/rootfs:ro - /var/run:/var/run:ro - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro restart: unless-stopped blackbox: image: prom/blackbox-exporter:latest container_name: monitoring-blackbox networks: - transcendance-network ports: - "9115:9115" restart: unless-stopped volumes: images-volume: sqlite-volume: static-volume: grafana-data: