forked from linux/WebHosting_DMZ
388 lines
11 KiB
YAML
388 lines
11 KiB
YAML
services:
|
|
# linux-eng@psi.ch
|
|
nginx:
|
|
image: gitea.psi.ch/images/nginx:1.29.8
|
|
container_name: nginx_proxy
|
|
restart: always
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- /etc/letsencrypt/live:/etc/letsencrypt/live:ro
|
|
- /etc/letsencrypt/archive:/etc/letsencrypt/archive:ro
|
|
- /etc/pki/tls/certs:/etc/nginx/certs:ro
|
|
- /etc/pki/tls/private:/etc/nginx/private:ro
|
|
- /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
- /etc/nginx/conf.d:/etc/nginx/conf.d:ro
|
|
- /opt/webcontent/sinqstatus:/opt/webcontent/sinqstatus:ro
|
|
- /mount/actris:/opt/webcontent/actris:ro
|
|
- /opt/webcontent/DMZ:/opt/webcontent/DMZ:rw
|
|
networks:
|
|
- public
|
|
- backend
|
|
|
|
# rfwtools
|
|
# gfa-status-test
|
|
apache:
|
|
image: gitea.psi.ch/images/php-apache:latest
|
|
container_name: apache_app
|
|
restart: always
|
|
volumes:
|
|
- /opt/webcontent/DMZ/rfmwtools:/var/www/rfmwtools:ro
|
|
- /opt/webcontent/DMZ/fluid-eos:/var/www/fluid-eos:rw
|
|
- /opt/webcontent/DMZ/omny:/var/www/omny:rw
|
|
- /opt/webcontent/DMZ/cas-status:/var/www/cas_status:rw
|
|
- /mount/srem/webhosting:/var/www/srem:rw
|
|
- /mount/webhosting_dmz_write/tcpwiki:/var/www/tcpwiki:rw
|
|
- /mount/webhosting_dmz_write/dokuwiki-core:/var/www/dokuwiki-core:r
|
|
- ./apache/conf:/etc/apache2/sites-enabled:ro
|
|
networks:
|
|
- backend
|
|
|
|
# MCDA Calculator Huang He <river.huang@psi.ch>
|
|
mcda-calculator:
|
|
image: gitea.psi.ch/images/mcda-calculator:1.0.3
|
|
container_name: mcda-calculator
|
|
restart: always
|
|
networks:
|
|
- backend
|
|
|
|
# MCDA DSS Huang He <river.huang@psi.ch>
|
|
mcda-dss:
|
|
image: gitea.psi.ch/images/mcda-dss:0.5.0
|
|
container_name: mcda-dss
|
|
restart: always
|
|
networks:
|
|
- backend
|
|
|
|
# MCDA SRF Huang He <river.huang@psi.ch>
|
|
mcda-srf:
|
|
image: gitea.psi.ch/images/mcda-srf:0.9.6
|
|
container_name: mcda-srf
|
|
restart: always
|
|
networks:
|
|
- backend
|
|
|
|
# River Huang <river.huang@psi.ch>
|
|
# UP-MAVT-Suite
|
|
up-mavt-suite-mongo:
|
|
image: mongo:7.0
|
|
container_name: up-mavt-suite-mongo
|
|
environment:
|
|
MONGO_INITDB_DATABASE: elicitation
|
|
volumes:
|
|
- /opt/webcontent/up-mavt-suite/mongo-data:/data/db
|
|
networks:
|
|
- up_mavt_suite_network
|
|
restart: always
|
|
|
|
up-mavt-suite-backend:
|
|
image: gitea.psi.ch/images/up-mavt-suite-backend:0.9.8
|
|
container_name: up-mavt-suite-backend
|
|
environment:
|
|
MONGO_URI: mongodb://up-mavt-suite-mongo:27017/elicitation
|
|
FLASK_ENV: production
|
|
ADMIN_PASSWORD: ${MCDA_UP_ADMIN_PASSWORD}
|
|
OAUTH2_CLIENT_SECRET: ${MCDA_UP_OAUTH2_SECRET}
|
|
SMTP_HOST: smtp.office365.com
|
|
SMTP_PORT: 587
|
|
SMTP_USER: mcda@psi.ch
|
|
EMAIL_AUTH_MODE: oauth2
|
|
OAUTH2_TENANT_ID: 50f89ee2-f910-47c5-9913-a6ea08928f11
|
|
OAUTH2_CLIENT_ID: 201ba262-3c76-41fb-8942-dcefb7729caa
|
|
OAUTH2_SCOPE: https://outlook.office365.com/.default
|
|
OAUTH2_USERNAME: mcda@psi.ch
|
|
SMTP_USE_TLS: true
|
|
EMAIL_FROM: mcda@psi.ch
|
|
APP_BASE_URL: https://mcda-up.psi.ch/
|
|
depends_on:
|
|
- up-mavt-suite-mongo
|
|
networks:
|
|
- up_mavt_suite_network
|
|
- backend
|
|
restart: always
|
|
|
|
up-mavt-suite-worker:
|
|
image: gitea.psi.ch/images/up-mavt-suite-worker:0.9.8
|
|
container_name: up-mavt-suite-worker
|
|
environment:
|
|
MONGO_URI: mongodb://up-mavt-suite-mongo:27017/elicitation
|
|
depends_on:
|
|
- up-mavt-suite-mongo
|
|
networks:
|
|
- up_mavt_suite_network
|
|
restart: always
|
|
|
|
up-mavt-suite-frontend:
|
|
image: gitea.psi.ch/images/up-mavt-suite-frontend:0.9.8
|
|
container_name: up-mavt-suite-frontend
|
|
environment:
|
|
VITE_DEBUG_CONSOLE: true
|
|
depends_on:
|
|
- up-mavt-suite-backend
|
|
networks:
|
|
- up_mavt_suite_network
|
|
- backend
|
|
restart: always
|
|
|
|
|
|
# Romain Sacchi <romain.sacchi@psi.ch>
|
|
swiss-ecargo:
|
|
image: gitea.psi.ch/sacchi_r/swiss-ecargo:0.1.2
|
|
container_name: swiss-ecargo
|
|
restart: always
|
|
environment:
|
|
- HOSTED_API_KEY=${ecargo_api_key}
|
|
networks:
|
|
- backend
|
|
|
|
|
|
# Lange Clemens <clemens.lange@psi.ch>
|
|
# summer-project-selection.psi.ch
|
|
summer-project-selection:
|
|
image: gitea.psi.ch/lange_c/summer-project-selection:latest
|
|
container_name: summer-project-selection
|
|
restart: always
|
|
volumes:
|
|
- /mount/webhosting_dmz_write/summer-project-selection/data:/app/data
|
|
- /opt/webcontent/DMZ/summer-project-selection/projects:/app/projects
|
|
- /opt/webcontent/DMZ/summer-project-selection/applicants:/app/applicants
|
|
networks:
|
|
- backend
|
|
|
|
# PEPISCO <andras.boedi@psi.ch> <patrick.hemberger@psi.ch>
|
|
# PhotoElectron PhotoIon Spectral COmpendium
|
|
pepisco:
|
|
image: gitea.psi.ch/images/pepisco:v2026.03.13
|
|
container_name: pepisco
|
|
restart: always
|
|
networks:
|
|
- backend
|
|
|
|
# Only on rhodo_network. The `backend` alias is required because
|
|
# the frontend image's internal nginx uses http://backend:8000/
|
|
rhodo-backend:
|
|
image: gitea.psi.ch/images/grn_opsins-backend:1.2.0
|
|
container_name: rhodo-backend
|
|
restart: always
|
|
networks:
|
|
rhodo_network:
|
|
aliases:
|
|
- backend
|
|
|
|
rhodo-frontend:
|
|
image: gitea.psi.ch/images/grn_opsins-frontend:1.2.0
|
|
container_name: rhodo-frontend
|
|
restart: always
|
|
depends_on:
|
|
- rhodo-backend
|
|
networks:
|
|
- rhodo_network
|
|
- backend
|
|
|
|
scicat-rocrate-qa:
|
|
image: gitea.psi.ch/data-catalog-services/scicat-rocrate:2.6.0-rc-openbis-import.5
|
|
container_name: scicat-rocrate-qa
|
|
restart: always
|
|
networks:
|
|
- backend
|
|
environment:
|
|
- QUARKUS_REST_CLIENT_SCICAT_URL=https://dacat-qa.psi.ch
|
|
- QUARKUS_REST_CLIENT_S3BROKER_URL=https://s3-broker.qa.psi.ch
|
|
- QUARKUS_HTTP_LIMITS_MAX_BODY_SIZE=10G
|
|
- SCICAT_PID_PREFIX=20.500.11935
|
|
volumes:
|
|
- /mount/rocrate_qa:/rocrate:rw
|
|
|
|
# LEAPS ultrafast frithjof.nolting@psi.ch
|
|
felira-web:
|
|
image: gitea.psi.ch/leaps/leaps-felira:3.0.3
|
|
container_name: felira-web
|
|
restart: always
|
|
# volumes:
|
|
# - /mount/webhosting_dmz_write/leaps/web:/var/www/html:rw
|
|
depends_on:
|
|
- felira-db
|
|
networks:
|
|
- backend
|
|
- leaps_db
|
|
environment:
|
|
- DB_DATABASE=felira_leaps_ultrafast
|
|
- DB_USERNAME=felira_leaps_ultrafast
|
|
- DB_PASSWORD=${LEAPS_DB_PW}
|
|
felira-db:
|
|
image: mariadb:latest
|
|
container_name: felira-db
|
|
restart: always
|
|
environment:
|
|
- MARIADB_ROOT_PASSWORD=${LEAPS_DB_PW}
|
|
- MARIADB_DATABASE=felira_leaps_ultrafast
|
|
- MARIADB_USER=felira_leaps_ultrafast
|
|
- MARIADB_PASSWORD=${LEAPS_DB_PW}
|
|
volumes:
|
|
- /mount/webhosting_dmz_write/leaps/db_data:/var/lib/mysql
|
|
- /mount/webhosting_dmz_write/leaps/init-db:/docker-entrypoint-initdb.d:ro
|
|
networks:
|
|
- leaps_db
|
|
|
|
# João Pedro Agostinho de Sousa <joao.agostinho-de-sousa@psi.ch>
|
|
# tubulin.xyz
|
|
neo4j:
|
|
image: neo4j:5
|
|
environment:
|
|
NEO4J_AUTH: neo4j/${NEO4J_PASSWORD}
|
|
NEO4J_server_memory_heap_initial__size: 1G
|
|
NEO4J_server_memory_heap_max__size: 2G
|
|
NEO4J_server_memory_pagecache_size: 1G
|
|
volumes:
|
|
- /mount/webhosting_dmz_write/tubulin/neo4j/data:/data
|
|
- /mount/webhosting_dmz_write/tubulin/neo4j/logs:/logs
|
|
healthcheck:
|
|
test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "${NEO4J_PASSWORD}", "RETURN 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 30s
|
|
restart: always
|
|
networks:
|
|
- tubulinxyz_backend
|
|
stop_grace_period: 60s
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "5"
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 4G
|
|
|
|
bootstrap:
|
|
image: ghcr.io/rtviii/tubulinxyz:latest
|
|
pull_policy: always
|
|
environment:
|
|
NEO4J_URI: bolt://neo4j:7687
|
|
NEO4J_USER: neo4j
|
|
NEO4J_PASSWORD: ${NEO4J_PASSWORD}
|
|
NEO4J_CURRENTDB: neo4j
|
|
TUBXZ_ROOT: /app
|
|
TUBETL_DATA: /mnt/tubetl_data
|
|
NCBI_TAXA_SQLITE: /app/.etetoolkit/taxa.sqlite
|
|
volumes:
|
|
- /mount/webhosting_dmz_write/tubulin/data:/mnt/tubetl_data
|
|
- /mount/webhosting_dmz_write/tubulin/log:/var/log/tubxz
|
|
depends_on:
|
|
neo4j:
|
|
condition: service_healthy
|
|
entrypoint: ["/bin/sh", "/app/scripts/init_and_seed.sh"]
|
|
restart: always
|
|
networks:
|
|
- tubulinxyz_backend
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 4G
|
|
|
|
backend:
|
|
image: ghcr.io/rtviii/tubulinxyz:latest
|
|
pull_policy: always
|
|
environment:
|
|
NEO4J_URI: bolt://neo4j:7687
|
|
NEO4J_USER: neo4j
|
|
NEO4J_PASSWORD: ${NEO4J_PASSWORD}
|
|
NEO4J_CURRENTDB: neo4j
|
|
SECRET_KEY: ${SECRET_KEY}
|
|
TUBXZ_ROOT: /app
|
|
TUBETL_DATA: /mnt/tubetl_data
|
|
NCBI_TAXA_SQLITE: /app/.etetoolkit/taxa.sqlite
|
|
volumes:
|
|
- /mount/webhosting_dmz_write/tubulin/data:/mnt/tubetl_data
|
|
- /mount/webhosting_dmz_write/tubulin/log:/var/log/tubxz:ro
|
|
depends_on:
|
|
neo4j:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 15s
|
|
restart: always
|
|
networks:
|
|
- backend
|
|
- tubulinxyz_backend
|
|
stop_grace_period: 30s
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "5"
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 2G
|
|
|
|
scheduler:
|
|
image: ghcr.io/rtviii/tubulinxyz:latest
|
|
pull_policy: always
|
|
environment:
|
|
NEO4J_URI: bolt://neo4j:7687
|
|
NEO4J_USER: neo4j
|
|
NEO4J_PASSWORD: ${NEO4J_PASSWORD}
|
|
NEO4J_CURRENTDB: neo4j
|
|
TUBXZ_ROOT: /app
|
|
TUBETL_DATA: /mnt/tubetl_data
|
|
NCBI_TAXA_SQLITE: /app/.etetoolkit/taxa.sqlite
|
|
volumes:
|
|
- /mount/webhosting_dmz_write/tubulin/data:/mnt/tubetl_data
|
|
- /mount/webhosting_dmz_write/tubulin/log:/var/log/tubxz
|
|
depends_on:
|
|
neo4j:
|
|
condition: service_healthy
|
|
entrypoint: ["/bin/sh", "/app/scripts/start_scheduler.sh"]
|
|
restart: always
|
|
networks:
|
|
- tubulinxyz_backend
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "5"
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 4G
|
|
|
|
frontend:
|
|
image: ghcr.io/rtviii/tubulinxyz-frontend:latest
|
|
pull_policy: always
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
restart: always
|
|
networks:
|
|
- backend
|
|
- tubulinxyz_backend
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 512M
|
|
|
|
networks:
|
|
public:
|
|
backend:
|
|
up_mavt_suite_network:
|
|
rhodo_network:
|
|
leaps_db:
|
|
tubulinxyz_backend:
|