mirror of
https://github.com/Cian-H/I-Form_Research_Server_Stack.git
synced 2025-12-23 06:32:07 +00:00
111 lines
3.0 KiB
YAML
111 lines
3.0 KiB
YAML
version: "3.8"
|
|
|
|
include:
|
|
- volumes.yaml
|
|
- networks.yaml
|
|
- secrets.yaml
|
|
|
|
services:
|
|
# This service runs a grafana instance for hosting dashboards
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
ports:
|
|
- "3000:3000"
|
|
volumes:
|
|
- grafana:/var/lib/grafana
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
networks:
|
|
- i-form_research_server_stack
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.go.rule=Path(`/`)"
|
|
- "traefik.http.services.go.loadbalancer.server.port=3000"
|
|
# Then, we add neodash as a service that can be used to visualize the neo4j database
|
|
# This should provide the real AI assisted punching power for this stack
|
|
neodash:
|
|
image: neo4jlabs/neodash:latest
|
|
depends_on:
|
|
- neo4j
|
|
ports:
|
|
- "5005:5005"
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
networks:
|
|
- i-form_research_server_stack
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.go.rule=Path(`/`)"
|
|
- "traefik.http.services.go.loadbalancer.server.port=5005"
|
|
# Lastly, we need a LIMS system, but we're not sure which one to use yet
|
|
# As a test, we'll run senaite, with elabftw for lab notebook functionality
|
|
senaite:
|
|
image: senaite/senaite:edge
|
|
ports:
|
|
- "8082:8080"
|
|
volumes:
|
|
- senaite:/data
|
|
networks:
|
|
- i-form_research_server_stack
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.go.rule=Path(`/`)"
|
|
- "traefik.http.services.go.loadbalancer.server.port=8080"
|
|
# We also need to add a service for the elabftw instance and its database
|
|
elabftw:
|
|
image: elabftw/elabimg:latest
|
|
# tty: true
|
|
# stdin_open: true
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
depends_on:
|
|
- mysql
|
|
cap_drop:
|
|
- ALL
|
|
cap_add:
|
|
- CHOWN
|
|
- SETGID
|
|
- SETUID
|
|
- FOWNER
|
|
- DAC_OVERRIDE
|
|
secrets:
|
|
- elabftw_sql_key
|
|
- elabftw_secret_key
|
|
environment:
|
|
SECRET_KEY: /run/secrets/elabftw_secret_key
|
|
DB_HOST: "localhost"
|
|
DB_PORT: "3306"
|
|
DB_NAME: "elabftw"
|
|
DB_USER: "elabftw"
|
|
DB_PASSWORD: "test" # "/run/secrets/elabftw_sql_key"
|
|
# - DB_PASSWORD=$$DB_PASSWORD
|
|
# DB_CERT_PATH: "/mysql-cert/cert.pem"
|
|
PHP_TIMEZONE: "Europe/Paris"
|
|
TZ: "Europe/Paris"
|
|
SERVER_NAME: "I-Form eLabFTW"
|
|
SITE_URL: "127.0.0.1:443" # "elab.i-form.ie"
|
|
DISABLE_HTTPS: 1
|
|
ENABLE_LETSENCRYPT: 0
|
|
ports:
|
|
- "3148:443"
|
|
# - "443:443"
|
|
volumes:
|
|
- elabftw_uploads:/elabftw/uploads
|
|
- elabftw_var:/var/elabftw
|
|
- elabftw_etc:/etc/elabftw
|
|
# if you have enabled letsencrypt, uncomment the line below
|
|
# path to the folder with TLS certificate + private key
|
|
# host:container
|
|
#- /etc/letsencrypt:/ssl
|
|
networks:
|
|
- i-form_research_server_stack
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.go.rule=Path(`/`)"
|
|
- "traefik.http.services.go.loadbalancer.server.port=443" |