services: mariadb: image: mariadb:10.6.28 container_name: mariadb environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: supernotedb MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} TZ: ${TZ:-UTC} command: --skip-name-resolve --bind-address=0.0.0.0 volumes: - ./sndata/db_data:/var/lib/mysql - ./sndata/config/mysql/conf.d:/etc/mysql/conf.d:ro - ./supernotedb.sql:/docker-entrypoint-initdb.d/00-supernotedb.sql:ro - ./supernote-email-init.sql:/docker-entrypoint-initdb.d/01-supernote-email-init.sql:ro - /etc/localtime:/etc/localtime:ro healthcheck: test: ["CMD-SHELL", "mysqladmin ping -h localhost -u root -p$$MYSQL_ROOT_PASSWORD || exit 1"] interval: 10s timeout: 5s retries: 10 start_period: 30s restart: unless-stopped redis: image: redis:8.10.2 container_name: redis environment: TZ: ${TZ:-UTC} command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"] volumes: - ./sndata/redis_data:/data - /etc/localtime:/etc/localtime:ro restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 3 notelib: image: docker.io/supernote/notelib:6.9.3 container_name: notelib environment: TZ: ${TZ:-UTC} volumes: - /etc/localtime:/etc/localtime:ro restart: unless-stopped supernote-service: image: docker.io/supernote/supernote-service:26.10.09 container_name: supernote-service depends_on: mariadb: condition: service_healthy redis: condition: service_healthy ports: - "19071:19071" - "18072:18072" - "${FRONTEND_PORT:-19072}:8080" - "${DOMAIN_PORT:-8199}:8080" environment: EXTERNAL_PORT_BACKEND: "19071" EXTERNAL_PORT_FRONTEND: ${FRONTEND_PORT:-19072} EXTERNAL_PORT_DOMAIN: ${DOMAIN_PORT:-8199} TZ: ${TZ:-UTC} DB_HOSTNAME: mariadb MYSQL_DATABASE: supernotedb MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} REDIS_HOST: redis REDIS_PORT: 6379 REDIS_PASSWORD: ${REDIS_PASSWORD} volumes: - ./sndata/recycle:/home/supernote/recycle - ./supernote_data:/home/supernote/data - ./sndata/logs/cloud:/home/supernote/cloud/logs - ./sndata/logs/app:/home/supernote/logs - ./sndata/logs/web:/var/log/nginx - ./sndata/convert:/home/supernote/convert - /etc/localtime:/etc/localtime:ro restart: unless-stopped logging: driver: "json-file" options: max-size: "10m" max-file: "3"