Skip to content

Instantly share code, notes, and snippets.

@xurizaemon
Created March 15, 2023 02:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xurizaemon/20491fbeff4ebd8f78a47463e1527404 to your computer and use it in GitHub Desktop.
Save xurizaemon/20491fbeff4ebd8f78a47463e1527404 to your computer and use it in GitHub Desktop.
docker-compose.yml as generated by ISLE-DC for Islandora (islandora.ca)
networks:
default:
internal: true
gateway:
driver: bridge
internal: false
secrets:
ACTIVEMQ_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/ACTIVEMQ_PASSWORD
ACTIVEMQ_WEB_ADMIN_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/ACTIVEMQ_WEB_ADMIN_PASSWORD
ALPACA_ACTIVEMQ_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/ALPACA_ACTIVEMQ_PASSWORD
ALPACA_KARAF_ADMIN_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/ALPACA_KARAF_ADMIN_PASSWORD
DB_ROOT_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/DB_ROOT_PASSWORD
DRUPAL_DEFAULT_ACCOUNT_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/DRUPAL_DEFAULT_ACCOUNT_PASSWORD
DRUPAL_DEFAULT_CONFIGDIR:
file: /home/example/Projects/islandora/isle-dc/secrets/live/DRUPAL_DEFAULT_CONFIGDIR
DRUPAL_DEFAULT_DB_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/DRUPAL_DEFAULT_DB_PASSWORD
DRUPAL_DEFAULT_SALT:
file: /home/example/Projects/islandora/isle-dc/secrets/live/DRUPAL_DEFAULT_SALT
FCREPO_DB_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/FCREPO_DB_PASSWORD
JWT_ADMIN_TOKEN:
file: /home/example/Projects/islandora/isle-dc/secrets/live/JWT_ADMIN_TOKEN
JWT_PRIVATE_KEY:
file: /home/example/Projects/islandora/isle-dc/secrets/live/JWT_PRIVATE_KEY
JWT_PUBLIC_KEY:
file: /home/example/Projects/islandora/isle-dc/secrets/live/JWT_PUBLIC_KEY
MATOMO_DB_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/MATOMO_DB_PASSWORD
MATOMO_USER_PASS:
file: /home/example/Projects/islandora/isle-dc/secrets/live/MATOMO_USER_PASS
TOMCAT_ADMIN_PASSWORD:
file: /home/example/Projects/islandora/isle-dc/secrets/live/TOMCAT_ADMIN_PASSWORD
services:
activemq:
deploy:
resources:
limits:
memory: 2G
reservations:
memory: 1G
image: islandora/activemq:1.0.10
labels:
traefik.enable: "false"
traefik.http.routers.isle-dc-activemq_http.entrypoints: activemq
traefik.http.routers.isle-dc-activemq_http.service: isle-dc-activemq
traefik.http.services.isle-dc-activemq.loadbalancer.server.port: '8161'
networks:
default: null
restart: unless-stopped
secrets:
- source: ACTIVEMQ_PASSWORD
- source: ACTIVEMQ_WEB_ADMIN_PASSWORD
volumes:
- activemq-data:/opt/activemq/data:rw
alpaca:
deploy:
resources:
limits:
memory: 2G
reservations:
memory: 1G
environment:
ALPACA_FITS_TIMEOUT: '300000'
ALPACA_HOMARUS_TIMEOUT: '300000'
ALPACA_HOUDINI_TIMEOUT: '300000'
ALPACA_OCR_TIMEOUT: '300000'
image: islandora/alpaca:1.0.10
restart: unless-stopped
secrets:
- source: ALPACA_ACTIVEMQ_PASSWORD
- source: ALPACA_KARAF_ADMIN_PASSWORD
blazegraph:
deploy:
resources:
limits:
memory: 5G
reservations:
memory: 2G
image: islandora/blazegraph:1.0.10
labels:
traefik.enable: "false"
traefik.http.routers.isle-dc-blazegraph_http.entrypoints: blazegraph
traefik.http.routers.isle-dc-blazegraph_http.service: isle-dc-blazegraph
traefik.http.services.isle-dc-blazegraph.loadbalancer.server.port: '8080'
networks:
default: null
restart: unless-stopped
volumes:
- blazegraph-data:/data:rw
cantaloupe:
deploy:
resources:
limits:
memory: 5G
reservations:
memory: 1G
environment:
CANTALOUPE_DELEGATE_SCRIPT_ENABLED: "false"
CANTALOUPE_DELEGATE_SCRIPT_PATHNAME: /opt/tomcat/bin/delegates.rb
CANTALOUPE_HTTPSOURCE_LOOKUP_STRATEGY: BasicLookupStrategy
image: islandora/cantaloupe:1.0.10
labels:
traefik.enable: "true"
traefik.http.middlewares.cantaloupe-redirectscheme.redirectscheme.permanent: "true"
traefik.http.middlewares.cantaloupe-redirectscheme.redirectscheme.scheme: https
traefik.http.routers.isle-dc-cantaloupe_http.entrypoints: http
traefik.http.routers.isle-dc-cantaloupe_http.middlewares: cantaloupe-redirectscheme
traefik.http.routers.isle-dc-cantaloupe_http.rule: Host(`islandora.traefik.me`)
&& PathPrefix(`/cantaloupe`)
traefik.http.routers.isle-dc-cantaloupe_http.service: isle-dc-cantaloupe
traefik.http.routers.isle-dc-cantaloupe_https.entrypoints: https
traefik.http.routers.isle-dc-cantaloupe_https.rule: Host(`islandora.traefik.me`)
&& PathPrefix(`/cantaloupe`)
traefik.http.routers.isle-dc-cantaloupe_https.tls: "true"
traefik.http.services.isle-dc-cantaloupe.loadbalancer.server.port: '8080'
networks:
default: null
restart: unless-stopped
secrets:
- source: TOMCAT_ADMIN_PASSWORD
volumes:
- cantaloupe-data:/data:rw
crayfits:
depends_on:
- fits
deploy:
resources:
limits:
memory: 1G
reservations:
memory: 512M
image: islandora/crayfits:1.0.10
restart: unless-stopped
drupal:
depends_on:
- mariadb
- traefik
deploy:
resources:
limits:
memory: 5G
reservations:
memory: 256M
environment:
DRUPAL_DEFAULT_CANTALOUPE_URL: https://islandora.traefik.me/cantaloupe/iiif/2
DRUPAL_DEFAULT_DB_DRIVER: mysql
DRUPAL_DEFAULT_FCREPO_HOST: islandora.traefik.me
DRUPAL_DEFAULT_FCREPO_PORT: 8081
DRUPAL_DEFAULT_INSTALL_EXISTING_CONFIG: "false"
DRUPAL_DEFAULT_MATOMO_URL: https://islandora.traefik.me/matomo/
DRUPAL_DEFAULT_PROFILE: standard
DRUPAL_DEFAULT_SITE_URL: http://islandora.traefik.me
PHP_MAX_EXECUTION_TIME: '30'
PHP_MEMORY_LIMIT: 256M
PHP_POST_MAX_SIZE: 128M
PHP_UPLOAD_MAX_FILESIZE: 128M
image: islandora/drupal:1.0.10
labels:
traefik.enable: "true"
traefik.http.middlewares.drupal-redirectscheme.redirectscheme.permanent: "true"
traefik.http.middlewares.drupal-redirectscheme.redirectscheme.scheme: https
traefik.http.routers.isle-dc-drupal_http.entrypoints: http
traefik.http.routers.isle-dc-drupal_http.middlewares: drupal-redirectscheme
traefik.http.routers.isle-dc-drupal_http.rule: Host(`islandora.traefik.me`)
traefik.http.routers.isle-dc-drupal_http.service: isle-dc-drupal
traefik.http.routers.isle-dc-drupal_https.entrypoints: https
traefik.http.routers.isle-dc-drupal_https.rule: Host(`islandora.traefik.me`)
traefik.http.routers.isle-dc-drupal_https.tls: "true"
traefik.http.services.isle-dc-drupal.loadbalancer.server.port: '80'
networks:
default: null
gateway: null
restart: unless-stopped
secrets:
- source: DB_ROOT_PASSWORD
- source: DRUPAL_DEFAULT_ACCOUNT_PASSWORD
- source: DRUPAL_DEFAULT_CONFIGDIR
- source: DRUPAL_DEFAULT_DB_PASSWORD
- source: DRUPAL_DEFAULT_SALT
- source: JWT_PRIVATE_KEY
- source: JWT_PUBLIC_KEY
volumes:
- solr-data:/opt/solr/server/solr:rw
- /home/example/Projects/islandora/isle-dc/codebase:/var/www/drupal:delegated
- drupal-sites-data:/var/www/drupal/web/sites/default/files:rw
fcrepo:
depends_on:
- activemq
deploy:
resources:
limits:
memory: 5G
reservations:
memory: 1G
environment:
FCREPO_ALLOW_EXTERNAL_DRUPALHTTP: http://islandora.traefik.me/
FCREPO_ALLOW_EXTERNAL_DRUPALHTTPS: https://islandora.traefik.me/
FCREPO_DISABLE_SYN: "false"
FCREPO_PERSISTENCE_TYPE: mysql
FCREPO_TOMCAT_ADMIN_ROLES: manager-gui,fedoraAdmin
FCREPO_TOMCAT_ADMIN_USER: admin
image: islandora/fcrepo6:1.0.10
labels:
traefik.enable: "true"
traefik.http.routers.isle-dc-fcrepo_http.entrypoints: fcrepo
traefik.http.routers.isle-dc-fcrepo_http.service: isle-dc-fcrepo
traefik.http.services.isle-dc-fcrepo.loadbalancer.server.port: '8080'
networks:
default: null
restart: unless-stopped
secrets:
- source: DB_ROOT_PASSWORD
- source: FCREPO_DB_PASSWORD
- source: JWT_ADMIN_TOKEN
- source: JWT_PUBLIC_KEY
volumes:
- fcrepo-data:/data:rw
fits:
deploy:
resources:
limits:
memory: 5G
reservations:
memory: 1000M
image: islandora/fits:1.0.10
restart: unless-stopped
homarus:
deploy:
resources:
limits:
memory: 1G
reservations:
memory: 512M
image: islandora/homarus:1.0.10
restart: unless-stopped
secrets:
- source: JWT_ADMIN_TOKEN
- source: JWT_PUBLIC_KEY
houdini:
deploy:
resources:
limits:
memory: 1G
reservations:
memory: 512M
image: islandora/houdini:1.0.10
restart: unless-stopped
secrets:
- source: JWT_ADMIN_TOKEN
- source: JWT_PUBLIC_KEY
hypercube:
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
image: islandora/hypercube:1.0.10
restart: unless-stopped
secrets:
- source: JWT_ADMIN_TOKEN
- source: JWT_PUBLIC_KEY
mariadb:
deploy:
resources:
limits:
memory: 1G
reservations:
memory: 512M
image: islandora/mariadb:1.0.10
labels:
traefik.enable: "false"
traefik.tcp.routers.isle-dc-mysql_tcp.entrypoints: mysql
traefik.tcp.routers.isle-dc-mysql_tcp.rule: HostSNI(`*`)
traefik.tcp.routers.isle-dc-mysql_tcp.service: isle-dc-mysql
traefik.tcp.services.isle-dc-mysql.loadbalancer.server.port: '3306'
networks:
default: null
restart: unless-stopped
secrets:
- source: DB_ROOT_PASSWORD
volumes:
- mariadb-data:/var/lib/mysql:rw
- mariadb-files:/var/lib/mysql-files:rw
matomo:
depends_on:
- mariadb
deploy:
resources:
limits:
memory: 1G
reservations:
memory: 512M
environment:
MATOMO_DEFAULT_HOST: islandora.traefik.me
image: islandora/matomo:1.0.10
labels:
traefik.enable: "true"
traefik.http.middlewares.isle-dc-matomo-customrequestheaders.headers.customrequestheaders.X-Forwarded-Uri: /matomo
traefik.http.middlewares.isle-dc-matomo-redirectscheme.redirectscheme.permanent: "true"
traefik.http.middlewares.isle-dc-matomo-redirectscheme.redirectscheme.scheme: https
traefik.http.middlewares.isle-dc-matomo-stripprefix.stripprefix.prefixes: /matomo
traefik.http.middlewares.isle-dc-matomo.chain.middlewares: isle-dc-matomo-stripprefix,isle-dc-matomo-customrequestheaders
traefik.http.routers.isle-dc-matomo_http.entrypoints: http
traefik.http.routers.isle-dc-matomo_http.middlewares: isle-dc-matomo-redirectscheme
traefik.http.routers.isle-dc-matomo_http.rule: Host(`islandora.traefik.me`)
&& PathPrefix(`/matomo`)
traefik.http.routers.isle-dc-matomo_http.service: isle-dc-matomo
traefik.http.routers.isle-dc-matomo_https.entrypoints: https
traefik.http.routers.isle-dc-matomo_https.middlewares: isle-dc-matomo
traefik.http.routers.isle-dc-matomo_https.rule: Host(`islandora.traefik.me`)
&& PathPrefix(`/matomo`)
traefik.http.routers.isle-dc-matomo_https.tls: "true"
traefik.http.services.isle-dc-matomo.loadbalancer.server.port: '80'
networks:
default: null
restart: unless-stopped
secrets:
- source: DB_ROOT_PASSWORD
- source: MATOMO_DB_PASSWORD
- source: MATOMO_USER_PASS
volumes:
- matomo-config-data:/var/www/matomo:rw
milliner:
deploy:
resources:
limits:
memory: 1G
reservations:
memory: 512M
environment:
MILLINER_FEDORA6: "true"
image: islandora/milliner:1.0.10
networks:
default: null
gateway: null
restart: unless-stopped
secrets:
- source: JWT_ADMIN_TOKEN
- source: JWT_PUBLIC_KEY
recast:
deploy:
resources:
limits:
memory: 1G
reservations:
memory: 512M
image: islandora/recast:1.0.10
restart: unless-stopped
secrets:
- source: JWT_ADMIN_TOKEN
- source: JWT_PUBLIC_KEY
solr:
deploy:
resources:
limits:
memory: 8G
reservations:
memory: 6G
image: islandora/solr:1.0.10
labels:
traefik.enable: "false"
traefik.http.routers.isle-dc-solr_http.entrypoints: solr
traefik.http.routers.isle-dc-solr_http.service: isle-dc-solr
traefik.http.services.isle-dc-solr.loadbalancer.server.port: '8983'
networks:
default: null
restart: unless-stopped
volumes:
- solr-data:/opt/solr/server/solr:rw
traefik:
command:
- --api.insecure=false
- --api.dashboard=false
- --api.debug=false
- --entryPoints.http.address=:80
- --entryPoints.https.address=:443
- --entryPoints.mysql.address=:3306
- --entryPoints.postgresql.address=:5432
- --entryPoints.fcrepo.address=:8081
- --entryPoints.blazegraph.address=:8082
- --entryPoints.activemq.address=:8161
- --entryPoints.solr.address=:8983
- --entryPoints.code-server.address=:8443
- --log.level=ERROR
- --providers.docker
- --providers.docker.network=gateway
- --providers.docker.exposedByDefault=false
- --providers.file.filename=/etc/traefik/tls.yml
- --providers.docker.defaultRule=Host(`islandora.traefik.me`)
container_name: traefik
deploy:
resources:
limits:
memory: 8G
reservations:
memory: 4G
image: traefik:2.7
labels:
traefik.http.routers.api.service: api@internal
networks:
default:
aliases:
- islandora.traefik.me
gateway: {}
ports:
- published: 80
target: 80
- published: 443
target: 443
- published: 3306
target: 3306
- published: 5432
target: 5432
- published: 8080
target: 8080
- published: 8081
target: 8081
- published: 8082
target: 8082
- published: 8161
target: 8161
- published: 8443
target: 8443
- published: 8983
target: 8983
restart: unless-stopped
volumes:
- /home/example/Projects/islandora/isle-dc/certs:/etc/ssl/traefik:rw
- /home/example/Projects/islandora/isle-dc/build/traefik-tls.yml:/etc/traefik/tls.yml:rw
- /var/run/docker.sock:/var/run/docker.sock:rw
version: '3.7'
volumes:
activemq-data: {}
blazegraph-data: {}
cantaloupe-data: {}
drupal-sites-data: {}
fcrepo-data: {}
mariadb-data: {}
mariadb-files: {}
matomo-config-data: {}
solr-data: {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment