version: "3.8" services: # jws-traefik-v1: # container_name: jws-traefik-v1 # image: traefik:v2.10 # restart: always # ports: # - 4020:80 # volumes: # - /etc/localtime:/etc/localtime:ro # - /var/run/docker.sock:/var/run/docker.sock:ro # - ./traefik.yaml:/traefik.yaml # - ./routes.yaml:/routes.yaml:rw # labels: # - "traefik.enable=true" # - "traefik.http.routers.tf.rule=Host(`jws-treafik-v1.frappet.synology.me`)" # - "traefik.http.routers.tf.middlewares=user-auth@file" # - "traefik.http.routers.tf.service=api@internal" # environment: # - TZ=Asia/Bangkok # networks: # - jws jws-keycloak-v2: container_name: jws-keycloak-v2 image: quay.io/keycloak/keycloak:latest restart: unless-stopped mem_limit: "1g" command: - start-dev - --proxy=edge environment: - KEYCLOAK_ADMIN=admin - KEYCLOAK_ADMIN_PASSWORD=1234 - TZ=Asia/Bangkok ports: - "18080:8080" volumes: - keycloak-data-v2:/opt/keycloak/data - ./keycloak-themes:/opt/keycloak/themes:rw networks: - jws jws-mariadb-v2: container_name: jws-mariadb-v2 image: mariadb:lts restart: unless-stopped ports: - 13306:3306 volumes: - mariadb-data-v2:/var/lib/mysql environment: - TZ=Asia/Bangkok - MARIADB_ROOT_PASSWORD=1234 networks: - jws jws-postgres-v2: container_name: jws-postgres-v2 image: postgres:alpine restart: unless-stopped ports: - 15433:5432 volumes: - postgres-data-v2:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=1234 networks: - jws jws-elasticsearch-v2: build: context: . dockerfile_inline: | FROM elasticsearch:8.12.0 RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch analysis-icu image: elasticsearch-local:8.12.0 deploy: resources: limits: memory: 1G restart: unless-stopped container_name: jws-elasticsearch-v2 ports: - 19201:9200 volumes: - elasticsearch-data-v2:/usr/share/elasticsearch/data environment: - TZ=Asia/Bangkok - xpack.security.enabled=false - discovery.type=single-node networks: - jws jws-kibana-v2: container_name: jws-kibana-v2 image: kibana:8.12.0 deploy: resources: limits: memory: 1G restart: unless-stopped depends_on: - jws-elasticsearch-v2 ports: - 15602:5601 volumes: - kibana-data-v2:/usr/share/kibana/data environment: - TZ=Asia/Bangkok - ELASTICSEARCH_HOSTS=http://jws-elasticsearch-v2:9200 networks: - jws jws-rabbitmq-v2: container_name: jws-rabbitmq-v2 image: rabbitmq:3-management-alpine restart: unless-stopped ports: - 25673:5672 - 35673:15672 volumes: - rabbitmq-data-v2:/var/lib/rabbitmq environment: - TZ=Asia/Bangkok - RABBITMQ_DEFAULT_USER=admin - RABBITMQ_DEFAULT_PASS=1234 - RABBITMQ_DEFAULT_VHOST=vhost networks: - jws jws-minio-v2: container_name: jws-minio-v2 image: minio/minio:latest deploy: resources: limits: memory: 1G restart: unless-stopped command: server --console-address ":9001" /data ports: - 19002:9000 - 19003:9001 volumes: - minio-data-v2:/data environment: - TZ=Asia/Bangkok - MINIO_ROOT_USER=admin - MINIO_ROOT_PASSWORD=12345678 networks: - jws jws-n8n-v2: container_name: jws-n8n-v2 image: docker.n8n.io/n8nio/n8n restart: unless-stopped ports: - 15678:5678 # extra_hosts: # - host.docker.internal:host-gateway volumes: - n8n-data-v2:/home/node/.n8n environment: - GENERIC_TIMEZONE=Asia/Bangkok networks: - jws # Backend jws-backend-v2: container_name: jws-backend-v2 image: docker.frappet.com/jws/jws-backend:version-0.0.2 restart: unless-stopped depends_on: - jws-postgres-v2 ports: - 20008:3000 labels: - "traefik.enable=true" - "traefik.http.routers.jws-backend-v2.rule=Host(`jws-v2.frappet.synology.me`) && PathPrefix(`/api`)" - "traefik.http.routers.jws-backend-v2.entrypoints=unsecure" environment: - TZ=Asia/Bangkok - KC_URL=https://jws-keycloak-v2.frappet.synology.me - KC_REALM=dev - KC_SERVICE_ACCOUNT_CLIENT_ID=dev-service - KC_SERVICE_ACCOUNT_SECRET=ztEypXzLccvk4ngyBRkVactqLJAIDDrs - APP_HOST=0.0.0.0 - APP_PORT=3000 - MINIO_HOST=jws-minio-v2 - MINIO_PORT=9000 - MINIO_ACCESS_KEY=lN5i4Jsoni8Pp3tfRDBr - MINIO_SECRET_KEY=eLSOGjnogMJ0SK97SpO6E8gribdDyzloCipklyIH - MINIO_BUCKET=jws-dev - ELASTICSEARCH_PROTOCOL=http - ELASTICSEARCH_HOST=jws-elasticsearch-v2 - ELASTICSEARCH_PORT=9200 - ELASTICSEARCH_INDEX=jws-log-index - DATABASE_URL=postgresql://postgres:1234@jws-postgres-v2:5432/dev_1?schema=public # extra_hosts: # - host.docker.internal:host-gateway networks: - jws # Frontend jws-frontend-v2: container_name: jws-frontend-v2 image: docker.frappet.com/jws/jws-frontend:version-0.0.2 restart: unless-stopped depends_on: - jws-backend-v2 ports: - 20009:8080 labels: - traefik.enable=true - traefik.http.routers.jws-frontend-v2.rule=Host(`jws-v2.frappet.synology.me`) - "traefik.http.routers.jws-frontend-v2.entrypoints=unsecure" environment: TZ: Asia/Bangkok API_BASE_URL: https://jws-v2.frappet.synology.me/api KC_URL: https://jws-keycloak-v2.frappet.synology.me KC_REALM: dev KC_CLIENT_ID: dev-service networks: - jws volumes: keycloak-data-v2: mariadb-data-v2: postgres-data-v2: elasticsearch-data-v2: kibana-data-v2: rabbitmq-data-v2: minio-data-v2: n8n-data-v2: networks: jws: external: true