4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / docker-compose.yml YML
version: '3.5'

networks:
  db_net:
  es_net:

volumes:
  cms-shared:
  dbdata:
  esdata:

services:
  db:
    image: postgres:13
    command: postgres -c 'max_connections=400' -c 'shared_buffers=128MB'
    environment:
      POSTGRES_USER: dotcmsdbuser
      POSTGRES_PASSWORD: password
      POSTGRES_DB: dotcms
    volumes:
      - dbdata:/var/lib/postgresql/data
    networks:
      - db_net

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.1
    environment:
      - cluster.name=elastic-cluster
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms1G -Xmx1G"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    ports:
      - "9200:9200"
      - "9600:9600"
    volumes:
      - esdata:/usr/share/elasticsearch/data
    networks:
      - es_net

  dotcms:
    image: dotcms/dotcms:22.10.1
    environment:
      CMS_JAVA_OPTS: '-Xmx1g '
      LANG: 'C.UTF-8'
      TZ: 'UTC'
      DB_BASE_URL: "jdbc:postgresql://db/dotcms"
      DB_USERNAME: 'dotcmsdbuser'
      DB_PASSWORD: 'password'
      # ES has no auth in this setup:
      DOT_ES_ENDPOINTS: 'http://elasticsearch:9200'
      DOT_INITIAL_ADMIN_PASSWORD: 'admin'

      # === MAIL CONFIG: SMTP + STARTTLS example ===
      DOT_MAIL_TRANSPORT_PROTOCOL: smtp
      DOT_MAIL_SMTP_HOST: smtp.gmail.com
      DOT_MAIL_SMTP_PORT: '587'
      DOT_MAIL_SMTP_AUTH: 'true'
      DOT_MAIL_SMTP_STARTTLS_ENABLE: 'true'
      DOT_MAIL_SMTP_USER: '<smtp_email>'
      DOT_MAIL_SMTP_PASSWORD: '<smtp_pass>'
      DOT_MAIL_SMTP_SSL_TRUST: "smtp.gmail.com"
      # Optional custom starter (you can comment this out if not needed)
      CUSTOM_STARTER_URL: "https://repo.dotcms.com/artifactory/libs-release-local/com/dotcms/starter/20220504/starter-20220504.zip"
    depends_on:
      - db
      - elasticsearch
    volumes:
      - cms-shared:/data/shared
      # If you have a license file locally:
      # - ./license.zip:/data/shared/assets/license.zip
    networks:
      - db_net
      - es_net
    ports:
      - "8080:8080"
      - "8443:8443"