services: notesnook-db: image: mongo:8.0.15 hostname: notesnookdb volumes: - dbdata:/data/db - dbdata:/data/configdb networks: - notesnook command: --replSet rs0 --bind_ip_all healthcheck: test: echo 'db.runCommand("ping").ok' | mongosh mongodb://localhost:27017 --quiet interval: 40s timeout: 30s retries: 3 start_period: 60s notesnook-s3: image: minio/minio:RELEASE.2024-07-29T22-14-52Z # ports: # - 9000:9000 networks: - notesnook - proxy volumes: - s3data:/data/s3 environment: MINIO_BROWSER: "on" env_file: .env command: server /data/s3 --console-address :9090 healthcheck: test: timeout 5s bash -c ':> /dev/tcp/127.0.0.1/9000' || exit 1 interval: 40s timeout: 30s retries: 3 start_period: 60s labels: - "traefik.enable=true" - "traefik.http.routers.notesnook-s3.rule=Host(`notesnook.vhaudiquet.fr`) && PathPrefix(`/s3`)" - "traefik.http.routers.notesnook-s3.middlewares=notesnook-s3" - "traefik.http.middlewares.notesnook-s3.stripprefix.prefixes=/s3" - "traefik.docker.network=proxy" - "traefik.http.routers.notesnook-s3.entrypoints=http" identity-server: image: streetwriters/identity:v1.0-beta.5 ports: - 8264 networks: - notesnook - proxy env_file: .env depends_on: - notesnook-db healthcheck: test: wget --tries=1 -nv -q http://localhost:8264/health -O- || exit 1 interval: 40s timeout: 30s retries: 3 start_period: 60s environment: NOTESNOOK_SERVER_PORT: 5264 NOTESNOOK_SERVER_HOST: notesnook-server IDENTITY_SERVER_PORT: 8264 IDENTITY_SERVER_HOST: identity-server SSE_SERVER_PORT: 7264 SSE_SERVER_HOST: sse-server SELF_HOSTED: 1 IDENTITY_SERVER_URL: https://notesnook.vhaudiquet.fr/identity NOTESNOOK_APP_HOST: https://app.notesnook.com MONGODB_CONNECTION_STRING: mongodb://notesnookdb:27017/identity?replSet=rs0 MONGODB_DATABASE_NAME: identity labels: - "traefik.enable=true" - "traefik.http.routers.identity-server.rule=Host(`notesnook.vhaudiquet.fr`) && PathPrefix(`/identity`)" - "traefik.http.routers.identity-server.middlewares=identity-server,notesnook-server-cors" - "traefik.http.middlewares.identity-server.stripprefix.prefixes=/identity" - "traefik.docker.network=proxy" - "traefik.http.routers.identity-server.entrypoints=http" - "traefik.http.services.identity-server.loadbalancer.server.port=8264" notesnook-server: image: streetwriters/notesnook-sync:v1.0-beta.5 ports: - 5264 networks: - notesnook - proxy env_file: .env depends_on: - notesnook-s3 - identity-server healthcheck: test: wget --tries=1 -nv -q http://localhost:5264/health -O- || exit 1 interval: 40s timeout: 30s retries: 3 start_period: 60s environment: NOTESNOOK_SERVER_PORT: 5264 NOTESNOOK_SERVER_HOST: notesnook-server IDENTITY_SERVER_PORT: 8264 IDENTITY_SERVER_HOST: identity-server SSE_SERVER_PORT: 7264 SSE_SERVER_HOST: sse-server SELF_HOSTED: 1 IDENTITY_SERVER_URL: https://notesnook.vhaudiquet.fr/identity NOTESNOOK_APP_HOST: https://app.notesnook.com MONGODB_CONNECTION_STRING: mongodb://notesnookdb:27017/?replSet=rs0 MONGODB_DATABASE_NAME: notesnook S3_INTERNAL_SERVICE_URL: "http://notesnook-s3:9000" S3_INTERNAL_BUCKET_NAME: "attachments" S3_ACCESS_KEY_ID: "${MINIO_ROOT_USER:-minioadmin}" S3_ACCESS_KEY: "${MINIO_ROOT_PASSWORD:-minioadmin}" S3_SERVICE_URL: "${ATTACHMENTS_SERVER_PUBLIC_URL}" S3_REGION: "us-east-1" S3_BUCKET_NAME: "attachments" labels: - "traefik.enable=true" - "traefik.http.routers.notesnook-server.rule=Host(`notesnook.vhaudiquet.fr`)" - "traefik.http.services.notesnook-server.loadbalancer.server.port=5264" - "traefik.docker.network=proxy" - "traefik.http.routers.notesnook-server.entrypoints=http" - "traefik.http.routers.notesnook-server.middlewares=notesnook-server-cors" - "traefik.http.middlewares.notesnook-server-cors.headers.accesscontrolalloworiginlist=*" - "traefik.http.middlewares.notesnook-server-cors.headers.accesscontrolallowmethods=*" - "traefik.http.middlewares.notesnook-server-cors.headers.accesscontrolallowheaders=*" - "traefik.http.middlewares.notesnook-server-cors.headers.accesscontrolallowcredentials=true" sse-server: image: streetwriters/sse:v1.0-beta.5 ports: - 7264 env_file: .env depends_on: - identity-server - notesnook-server networks: - notesnook - proxy labels: - "traefik.enable=true" - "traefik.http.routers.sse-server.rule=Host(`notesnook.vhaudiquet.fr`) && PathPrefix(`/sse`)" - "traefik.http.services.sse-server.loadbalancer.server.port=7264" - "traefik.http.routers.sse-server.middlewares=sse-server,notesnook-server-cors" - "traefik.http.middlewares.sse-server.stripprefix.prefixes=/sse" - "traefik.docker.network=proxy" - "traefik.http.routers.sse-server.entrypoints=http" healthcheck: test: wget --tries=1 -nv -q http://localhost:7264/health -O- || exit 1 interval: 40s timeout: 30s retries: 3 start_period: 60s environment: NOTESNOOK_SERVER_PORT: 5264 NOTESNOOK_SERVER_HOST: notesnook-server IDENTITY_SERVER_PORT: 8264 IDENTITY_SERVER_HOST: identity-server SSE_SERVER_PORT: 7264 SSE_SERVER_HOST: sse-server SELF_HOSTED: 1 IDENTITY_SERVER_URL: https://notesnook.vhaudiquet.fr/identity NOTESNOOK_APP_HOST: https://app.notesnook.com monograph-server: image: streetwriters/monograph:1.2.5 # ports: # - 6264:3000 env_file: .env depends_on: - notesnook-server networks: - notesnook - proxy healthcheck: test: wget --tries=1 -nv -q http://localhost:3000/api/health -O- || exit 1 interval: 40s timeout: 30s retries: 3 start_period: 60s environment: NOTESNOOK_SERVER_PORT: 5264 NOTESNOOK_SERVER_HOST: notesnook-server IDENTITY_SERVER_PORT: 8264 IDENTITY_SERVER_HOST: identity-server SSE_SERVER_PORT: 7264 SSE_SERVER_HOST: sse-server SELF_HOSTED: 1 IDENTITY_SERVER_URL: https://notesnook.vhaudiquet.fr/identity NOTESNOOK_APP_HOST: https://app.notesnook.com API_HOST: http://notesnook-server:5264 PUBLIC_URL: https://notesnook.vhaudiquet.fr/monograph labels: - "traefik.enable=true" - "traefik.http.routers.monograph-server.rule=Host(`notesnook.vhaudiquet.fr`) && PathPrefix(`/monograph`)" - "traefik.http.routers.monograph-server.middlewares=monograph-server,notesnook-server-cors" - "traefik.http.middlewares.monograph-server.stripprefix.prefixes=/monograph" - "traefik.docker.network=proxy" - "traefik.http.routers.monograph-server.entrypoints=http" - "traefik.http.services.monograph-server.loadbalancer.server.port=3000" networks: notesnook: proxy: name: proxy external: true volumes: dbdata: driver: local driver_opts: type: 'none' o: 'bind' device: '/app/notesnook/dbdata/_data' s3data: driver: local driver_opts: type: 'none' o: 'bind' device: '/app/notesnook/s3data/_data'