{"owner":"stalwartlabs","repo":"stalwart","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"tests/docker/docker-compose.yml","servicesCount":17,"services":[{"name":"cert-init","image":"alpine/openssl:latest","volumes":["certs:/certs","./scripts/gen-certs.sh:/gen-certs.sh:ro"]},{"name":"postgres","image":"postgres:16-alpine","ports":["127.0.0.1:5432:5432"],"environment":["POSTGRES_USER=stalwart","POSTGRES_PASSWORD=stalwart","POSTGRES_DB=stalwart"]},{"name":"mysql","image":"mysql:8.0","command":"--default-authentication-plugin=mysql_native_password","ports":["127.0.0.1:3306:3306"],"environment":["MYSQL_ROOT_PASSWORD=stalwart","MYSQL_DATABASE=stalwart","MYSQL_USER=stalwart","MYSQL_PASSWORD=stalwart"]},{"name":"foundationdb","image":"foundationdb/foundationdb:7.4.6","ports":["127.0.0.1:4500:4500"],"environment":["FDB_NETWORKING_MODE=container"],"volumes":["fdb-config:/var/fdb"]},{"name":"fdb-init","image":"foundationdb/foundationdb:7.4.6","volumes":["fdb-config:/var/fdb","./scripts/init-fdb.sh:/init-fdb.sh:ro"],"depends_on":["foundationdb"]},{"name":"redis","image":"redis:7-alpine","command":"redis-server --save \"\" --appendonly no","ports":["127.0.0.1:6379:6379"]},{"name":"opensearch","image":"opensearchproject/opensearch:2","ports":["127.0.0.1:9200:9200"],"environment":["discovery.type=single-node","DISABLE_SECURITY_PLUGIN=true","OPENSEARCH_JAVA_OPTS=-Xms256m -Xmx256m","DISABLE_INSTALL_DEMO_CONFIG=true"]},{"name":"meilisearch","image":"getmeili/meilisearch:latest","ports":["127.0.0.1:7700:7700"],"environment":["MEILI_ENV=development","MEILI_NO_ANALYTICS=true","MEILI_MASTER_KEY=stalwart-master-key"]},{"name":"minio","image":"minio/minio:latest","command":"server /data --console-address \":9001\"","ports":["127.0.0.1:9000:9000","127.0.0.1:9001:9001"],"environment":["MINIO_ROOT_USER=minioadmin","MINIO_ROOT_PASSWORD=minioadmin"]},{"name":"minio-init","image":"minio/mc:latest","volumes":["./scripts/init-minio.sh:/init-minio.sh:ro"],"depends_on":["minio"]},{"name":"keycloak","image":"quay.io/keycloak/keycloak:latest","command":"start-dev --import-realm\n","ports":["127.0.0.1:9080:9080"],"environment":["KC_BOOTSTRAP_ADMIN_USERNAME=admin","KC_BOOTSTRAP_ADMIN_PASSWORD=admin","KC_HTTP_PORT=9080","KC_HEALTH_ENABLED=true"],"volumes":["./keycloak/stalwart-realm.json:/opt/keycloak/data/import/stalwart-realm.json:ro","certs:/certs:ro"],"depends_on":["cert-init"]},{"name":"openldap","image":"osixia/openldap:1.5.0","ports":["127.0.0.1:389:389","127.0.0.1:636:636"],"environment":["LDAP_ORGANISATION=Stalwart Test","LDAP_DOMAIN=stalwart.test","LDAP_BASE_DN=dc=stalwart,dc=test","LDAP_ADMIN_PASSWORD=admin","LDAP_READONLY_USER=true","LDAP_READONLY_USER_USERNAME=readonly","LDAP_READONLY_USER_PASSWORD=readonly","LDAP_TLS=true","LDAP_TLS_CRT_FILENAME=cert.pem","LDAP_TLS_KEY_FILENAME=key.pem","LDAP_TLS_CA_CRT_FILENAME=cert.pem","LDAP_TLS_VERIFY_CLIENT=never"],"volumes":["./ldap/50-users.ldif:/seed/50-users.ldif:ro","./ldap/60-groups.ldif:/seed/60-groups.ldif:ro","certs:/certs-shared:ro"],"depends_on":["cert-init"]},{"name":"pebble-challtestsrv","image":"stalwart-pebble-challtestsrv:local","build":{"context":"./pebble","dockerfile":"Dockerfile.challtestsrv"},"restart":"unless-stopped","ports":["127.0.0.1:8055:8055"]},{"name":"pebble","image":"ghcr.io/letsencrypt/pebble:latest","command":"-config /test/config/pebble-config.json -dnsserver pebble-challtestsrv:8053","ports":["127.0.0.1:14000:14000","127.0.0.1:15000:15000"],"environment":["PEBBLE_VA_NOSLEEP=1","PEBBLE_WFE_NONCEREJECT=0"],"volumes":["./pebble/pebble-config.json:/test/config/pebble-config.json:ro"],"depends_on":["pebble-challtestsrv"]},{"name":"powerdns","image":"powerdns/pdns-auth-49:latest","ports":["127.0.0.1:5300:53/tcp","127.0.0.1:5300:53/udp","127.0.0.1:8081:8081"],"environment":["PDNS_AUTH_API_KEY=stalwart-api-key"],"volumes":["./powerdns/pdns.conf:/etc/powerdns/pdns.d/stalwart.conf:ro","./powerdns/init-zone.sh:/etc/powerdns/init-zone.sh:ro","pdns-data:/var/lib/powerdns"]},{"name":"powerdns-init","image":"powerdns/pdns-auth-49:latest","volumes":["./powerdns/entrypoint.sh:/init.sh:ro","./powerdns/init-zone.sh:/etc/powerdns/init-zone.sh:ro","pdns-data:/var/lib/powerdns"],"depends_on":["powerdns"]},{"name":"nats","image":"nats:latest","command":"--addr 0.0.0.0 --port 4222 --http_port 8222","ports":["127.0.0.1:4222:4222","127.0.0.1:8222:8222"]}],"exposedPorts":["5432","3306","4500","6379","9200","7700","9000","9001","9080","389","636","8055","14000","15000","5300","8081","4222","8222"],"dockerRunCommand":"docker run -d --name stalwart -p 5432:5432 --restart always stalwart-pebble-challtestsrv:local","podmanRunCommand":"podman run -d --name stalwart -p 5432:5432 --restart always stalwart-pebble-challtestsrv:local","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/stalwart-pebble-challtestsrv:local","orasPullCommand":"oras pull stalwart-pebble-challtestsrv:local","registryMeta":{"provider":"dockerhub","image":"library/stalwart-pebble-challtestsrv","canonicalImage":"docker.io/library/stalwart-pebble-challtestsrv:local","latestTag":"local","cliCommands":{"dockerRun":"docker run -d --name stalwart -p 5432:5432 --restart always stalwart-pebble-challtestsrv:local","dockerPull":"docker pull stalwart-pebble-challtestsrv:local","podmanRun":"podman run -d --name stalwart -p 5432:5432 --restart always stalwart-pebble-challtestsrv:local","skopeoInspect":"skopeo inspect docker://docker.io/library/stalwart-pebble-challtestsrv:local","orasPull":"oras pull stalwart-pebble-challtestsrv:local","composeYaml":"services:\n  stalwart:\n    image: stalwart-pebble-challtestsrv:local\n    restart: unless-stopped\n    ports:\n      - \"5432:5432\""}}}