networks: default: name: penpot_shared external: true volumes: postgres_data_pg18: name: ${PENPOT_POSTGRES_DATA_VOLUME} rustfs_data: name: ${PENPOT_RUSTFS_DATA_VOLUME} mailpit_data: name: ${PENPOT_MAILPIT_DATA_VOLUME} valkey_data: name: penpotdev_valkey_data services: rustfs: image: "rustfs/rustfs:1.0.0" command: /data volumes: - "rustfs_data:/data" environment: - RUSTFS_ACCESS_KEY=${AWS_ACCESS_KEY_ID} - RUSTFS_SECRET_KEY=${AWS_SECRET_ACCESS_KEY} - RUSTFS_ADDRESS=:9000 - RUSTFS_CONSOLE_ADDRESS=:9001 - RUSTFS_CONSOLE_ENABLE=true ports: - "127.0.0.1:9000:9000" - "127.0.0.1:9001:9001" healthcheck: test: ["CMD", "curl", "--fail", "http://localhost:9000/health"] interval: 1s timeout: 5s retries: 30 networks: default: aliases: - rustfs postgres: image: postgres:18.6 command: postgres -c config_file=/etc/postgresql.conf restart: always stop_signal: SIGINT environment: - POSTGRES_INITDB_ARGS=--data-checksums - POSTGRES_DB=penpot - POSTGRES_USER=penpot - POSTGRES_PASSWORD=penpot volumes: - ./files/postgresql.conf:/etc/postgresql.conf:z - ./files/postgresql_init.sql:/docker-entrypoint-initdb.d/init.sql:z - postgres_data_pg18:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U $$POSTGRES_USER -d $$POSTGRES_DB"] interval: 2s timeout: 5s retries: 30 networks: default: aliases: - postgres valkey: image: valkey/valkey:8.1 restart: always command: valkey-server --save 120 1 --loglevel warning volumes: - "valkey_data:/data" networks: default: aliases: - valkey mailer: image: axllent/mailpit:v1.31.1 restart: always volumes: - "mailpit_data:/data" environment: - MP_DATABASE=/data/mailpit.db - MP_MAX_MESSAGES=5000 - MP_DISABLE_VERSION_CHECK=true expose: - '1025' ports: - "127.0.0.1:1080:8025" healthcheck: test: ["CMD", "wget", "--quiet", "--spider", "http://localhost:8025/readyz"] interval: 2s timeout: 5s retries: 15 networks: default: aliases: - mailer # https://github.com/rroemhild/docker-test-openldap ldap: image: rroemhild/test-openldap:2.1 expose: - '10389' - '10636' ports: - "10389:10389" - "10636:10636" ulimits: nofile: soft: 1024 hard: 1024 networks: default: aliases: - ldap