{"owner":"yikart","repo":"AiToEarn","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.yml","servicesCount":10,"services":[{"name":"mongodb","image":"mongo:latest","restart":"unless-stopped","ports":["27017:27017"],"environment":["MONGO_INITDB_ROOT_USERNAME=admin","MONGO_INITDB_ROOT_PASSWORD=password"],"volumes":["mongodb-data:/data/db","mongodb-config:/data/configdb"]},{"name":"mongodb-rs-init","image":"mongo:latest","restart":"no","depends_on":["mongodb"]},{"name":"redis","image":"redis:latest","restart":"unless-stopped","command":"redis-server --requirepass password","ports":["6379:6379"],"volumes":["redis-data:/data"]},{"name":"rustfs","image":"rustfs/rustfs:latest","restart":"unless-stopped","ports":["9001:9001"],"environment":["RUSTFS_ACCESS_KEY=rustfsadmin","RUSTFS_SECRET_KEY=rustfsadmin"],"volumes":["rustfs-data:/data"]},{"name":"aitoearn-init","image":"node:lts-alpine","restart":"no","environment":["MONGO_URI=mongodb://admin:password@mongodb:27017","JWT_SECRET=change-this-jwt-secret","DB_NAME=aitoearn","AUTO_LOGIN_TOKEN_PATH=/data/init/token.txt"],"volumes":["./scripts/init.mjs:/app/init.mjs:ro","./scripts/init-package.json:/app/package.json:ro","init-data:/data/init"],"depends_on":["mongodb"]},{"name":"rustfs-init","image":"minio/mc:latest","depends_on":["rustfs"]},{"name":"aitoearn-ai","image":"aitoearn/aitoearn-ai:latest","restart":"unless-stopped","volumes":["./project/aitoearn-backend/apps/aitoearn-ai/config/config.yaml:/app/config.yaml:rw"],"depends_on":["mongodb","redis"]},{"name":"aitoearn-server","image":"aitoearn/aitoearn-server:latest","restart":"unless-stopped","volumes":["./project/aitoearn-backend/apps/aitoearn-server/config/config.yaml:/app/config.yaml:rw"],"depends_on":["mongodb","redis","aitoearn-ai"]},{"name":"aitoearn-web","image":"aitoearn/aitoearn-web:latest","restart":"unless-stopped","command":"/bin/sh -c AUTO_LOGIN_TOKEN=$$(cat /data/init/token.txt 2>/dev/null || true); if [ -z \"$$AUTO_LOGIN_TOKEN\" ]; then echo 'AUTO_LOGIN_TOKEN is missing. Check the aitoearn-init container logs.' >&2; exit 1; fi; export AUTO_LOGIN_TOKEN; exec node server.js","environment":["NODE_ENV=production","NEXT_TELEMETRY_DISABLED=1"],"volumes":["init-data:/data/init:ro"],"depends_on":["aitoearn-server","aitoearn-init"]},{"name":"nginx","image":"nginx:alpine","restart":"unless-stopped","ports":["8080:80","9000:9000"],"volumes":["./nginx/nginx.conf:/etc/nginx/nginx.conf:ro"],"depends_on":["aitoearn-web","aitoearn-server","aitoearn-ai"]}],"exposedPorts":["27017","6379","9001","8080","9000"],"dockerRunCommand":"docker run -d --name aitoearn -p 27017:27017 --restart always aitoearn/aitoearn-ai:latest","podmanRunCommand":"podman run -d --name aitoearn -p 27017:27017 --restart always aitoearn/aitoearn-ai:latest","skopeoInspectCommand":"skopeo inspect docker://docker.io/aitoearn/aitoearn-ai:latest","orasPullCommand":"oras pull aitoearn/aitoearn-ai:latest","registryMeta":{"provider":"dockerhub","image":"aitoearn/aitoearn-ai","canonicalImage":"docker.io/aitoearn/aitoearn-ai:latest","latestTag":"latest","cliCommands":{"dockerRun":"docker run -d --name aitoearn -p 27017:27017 --restart always aitoearn/aitoearn-ai:latest","dockerPull":"docker pull aitoearn/aitoearn-ai:latest","podmanRun":"podman run -d --name aitoearn -p 27017:27017 --restart always aitoearn/aitoearn-ai:latest","skopeoInspect":"skopeo inspect docker://docker.io/aitoearn/aitoearn-ai:latest","orasPull":"oras pull aitoearn/aitoearn-ai:latest","composeYaml":"services:\n  aitoearn:\n    image: aitoearn/aitoearn-ai:latest\n    restart: unless-stopped\n    ports:\n      - \"27017:27017\""}}}