name: daytona services: api: image: daytonaio/daytona-api ports: - 3000:3000 environment: - OTEL_ENABLED=true - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318 # Default to slim image for faster startup - DEFAULT_SNAPSHOT=daytonaio/sandbox:0.5.0-slim - ENCRYPTION_KEY=supersecretkey - ENCRYPTION_SALT=supersecretsalt - NODE_ENV=production - PORT=3000 - DB_HOST=db - DB_PORT=5432 - DB_USERNAME=user - DB_PASSWORD=pass - DB_DATABASE=daytona - REDIS_HOST=redis - REDIS_PORT=6379 - OIDC_CLIENT_ID=daytona - OIDC_ISSUER_BASE_URL=http://dex:5556/dex - PUBLIC_OIDC_DOMAIN=http://localhost:5556/dex - OIDC_AUDIENCE=daytona - OIDC_MANAGEMENT_API_ENABLED= - OIDC_MANAGEMENT_API_CLIENT_ID= - OIDC_MANAGEMENT_API_CLIENT_SECRET= - OIDC_MANAGEMENT_API_AUDIENCE= - DASHBOARD_URL=http://localhost:3000/dashboard - DASHBOARD_BASE_API_URL=http://localhost:3000 - POSTHOG_API_KEY=phc_bYtEsdMDrNLydXPD4tufkBrHKgfO2zbycM30LOowYNv - POSTHOG_HOST=https://d18ag4dodbta3l.cloudfront.net - POSTHOG_ENVIRONMENT=local - TRANSIENT_REGISTRY_URL=http://registry:6000 - TRANSIENT_REGISTRY_ADMIN=admin - TRANSIENT_REGISTRY_PASSWORD=password - TRANSIENT_REGISTRY_PROJECT_ID=daytona - INTERNAL_REGISTRY_URL=http://registry:6000 - INTERNAL_REGISTRY_ADMIN=admin - INTERNAL_REGISTRY_PASSWORD=password - INTERNAL_REGISTRY_PROJECT_ID=daytona - SMTP_HOST=maildev - SMTP_PORT=1025 - SMTP_USER= - SMTP_PASSWORD= - SMTP_SECURE= - SMTP_EMAIL_FROM=Daytona Team - S3_ENDPOINT=http://minio:9000 - S3_STS_ENDPOINT=http://minio:9000/minio/v1/assume-role - S3_REGION=us-east-1 - S3_ACCESS_KEY=minioadmin - S3_SECRET_KEY=minioadmin - S3_DEFAULT_BUCKET=daytona - S3_ACCOUNT_ID=/ - S3_ROLE_NAME=/ - ENVIRONMENT=docker-compose - MAX_AUTO_ARCHIVE_INTERVAL=43200 - MAINTENANCE_MODE=false - PROXY_DOMAIN=proxy.localhost:4000 - PROXY_PROTOCOL=http - PROXY_API_KEY=super_secret_key - PROXY_TEMPLATE_URL=http://{{PORT}}-{{sandboxId}}.proxy.localhost:4000 - DEFAULT_RUNNER_DOMAIN=runner:3003 - DEFAULT_RUNNER_API_URL=http://runner:3003 - DEFAULT_RUNNER_PROXY_URL=http://runner:3003 - DEFAULT_RUNNER_API_KEY=secret_api_token - DEFAULT_RUNNER_CPU=4 - DEFAULT_RUNNER_MEMORY=8 - DEFAULT_RUNNER_DISK=50 - DEFAULT_RUNNER_NAME=default - DEFAULT_REGION_ID=us - DEFAULT_REGION_NAME=us - DEFAULT_REGION_ENFORCE_QUOTAS=false - DEFAULT_ORG_QUOTA_TOTAL_CPU_QUOTA=10000 - DEFAULT_ORG_QUOTA_TOTAL_MEMORY_QUOTA=10000 - DEFAULT_ORG_QUOTA_TOTAL_DISK_QUOTA=100000 - DEFAULT_ORG_QUOTA_MAX_CPU_PER_SANDBOX=100 - DEFAULT_ORG_QUOTA_MAX_MEMORY_PER_SANDBOX=100 - DEFAULT_ORG_QUOTA_MAX_DISK_PER_SANDBOX=1000 - DEFAULT_ORG_QUOTA_SNAPSHOT_QUOTA=1000 - DEFAULT_ORG_QUOTA_MAX_SNAPSHOT_SIZE=1000 - DEFAULT_ORG_QUOTA_VOLUME_QUOTA=10000 - SSH_GATEWAY_API_KEY=ssh_secret_api_token - SSH_GATEWAY_COMMAND=ssh -p 2222 {{TOKEN}}@localhost - SSH_GATEWAY_PUBLIC_KEY=c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCZ1FEZUtocFdOYVhVNkpSMnJXekc1NlZJeksrcmsrdForcCtVUmwyeWF5cWRnZGg2bnVOL1NtVnJsYmV4MGlrRVZZemdRWUIwWno5M2dqOVhxSkd4WjJiMHVoSDFzNkp2bnhKZVdIK05rbjBNMzRiRjZkeVloZ3o4M0JaTitWcElJdnVDT1pxYWE4VnlRWjhPdjVLMU00enlmQnFCMld3ejcwZEVWUnFaMnVZckd5U0RqUUIrU3hRQ3phY0djb2JRQTFUd2QxdEJvSk5BaVpPWXFSU3d6TmNoTk5hZHlxSHRGdkZRQ0hhNjZWaVBmQ0FVUGt2cEN6ZGh3TmJGdVhGVWkxbnZOWkx4M056RU41M05LWUhZcWU3Y3dXZkI4QjBoRDhDd3hmSDd6T0o1b1RCMnBMVVlsUWpZRDNsN3k4SkFTbDZpYkpuR1A1SWczVXpZWlRIdUdkNzVXWktnNTRJTVROQlFPMWpJdE9HL0orUm1XbzB0YTdpRkF6ZExyL1BmbDdXTVMwbEZhSm9scTdUVmJLUG1JODFTOU04VEgrbXhLbGZ5b2NqZzhwSUdlQUllcEo3dXl1Vk1xT2wxeVVuSFNycDRlVEVlR0k3NlpCOFRoUzhkYnBLUTIvb2RYMHkwc3FSZDI0Y2lGdnM0dnZVaW80NFdYNlNWRG54dXpWRHc1Rzg9IGRheXRvbmFAMDQwNjZiZDIwY2Vi - SSH_GATEWAY_URL=localhost:2222 - RUNNER_DECLARATIVE_BUILD_SCORE_THRESHOLD=10 - RUNNER_AVAILABILITY_SCORE_THRESHOLD=10 - RUNNER_START_SCORE_THRESHOLD=3 - SKIP_USER_EMAIL_VERIFICATION=true - RUN_MIGRATIONS=true - OTEL_COLLECTOR_API_KEY=otel_collector_api_key - HEALTH_CHECK_API_KEY=supersecretkey networks: - daytona-network restart: always privileged: true depends_on: - db - runner - redis - dex - registry proxy: image: daytonaio/daytona-proxy environment: - DAYTONA_API_URL=http://api:3000/api - PROXY_PORT=4000 - PROXY_API_KEY=super_secret_key - PROXY_PROTOCOL=http - OIDC_CLIENT_ID=daytona - OIDC_CLIENT_SECRET= - OIDC_DOMAIN=http://dex:5556/dex - OIDC_PUBLIC_DOMAIN=http://localhost:5556/dex - OIDC_AUDIENCE=daytona - REDIS_HOST=redis - REDIS_PORT=6379 - TOOLBOX_ONLY_MODE=false - PREVIEW_WARNING_ENABLED=false networks: - daytona-network ports: - 4000:4000 restart: always runner: image: daytonaio/daytona-runner environment: - ENVIRONMENT=development - API_PORT=3003 - DAYTONA_RUNNER_TOKEN=secret_api_token - LOG_FILE_PATH=/home/daytona/runner/runner.log - RESOURCE_LIMITS_DISABLED=true - AWS_ENDPOINT_URL=http://minio:9000 - AWS_REGION=us-east-1 - AWS_ACCESS_KEY_ID=minioadmin - AWS_SECRET_ACCESS_KEY=minioadmin - AWS_DEFAULT_BUCKET=daytona - DAYTONA_API_URL=http://api:3000/api - RUNNER_DOMAIN=runner - SSH_GATEWAY_ENABLE=true - SSH_PUBLIC_KEY=c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCZ1FEZUtocFdOYVhVNkpSMnJXekc1NlZJeksrcmsrdForcCtVUmwyeWF5cWRnZGg2bnVOL1NtVnJsYmV4MGlrRVZZemdRWUIwWno5M2dqOVhxSkd4WjJiMHVoSDFzNkp2bnhKZVdIK05rbjBNMzRiRjZkeVloZ3o4M0JaTitWcElJdnVDT1pxYWE4VnlRWjhPdjVLMU00enlmQnFCMld3ejcwZEVWUnFaMnVZckd5U0RqUUIrU3hRQ3phY0djb2JRQTFUd2QxdEJvSk5BaVpPWXFSU3d6TmNoTk5hZHlxSHRGdkZRQ0hhNjZWaVBmQ0FVUGt2cEN6ZGh3TmJGdVhGVWkxbnZOWkx4M056RU41M05LWUhZcWU3Y3dXZkI4QjBoRDhDd3hmSDd6T0o1b1RCMnBMVVlsUWpZRDNsN3k4SkFTbDZpYkpuR1A1SWczVXpZWlRIdUdkNzVXWktnNTRJTVROQlFPMWpJdE9HL0orUm1XbzB0YTdpRkF6ZExyL1BmbDdXTVMwbEZhSm9scTdUVmJLUG1JODFTOU04VEgrbXhLbGZ5b2NqZzhwSUdlQUllcEo3dXl1Vk1xT2wxeVVuSFNycDRlVEVlR0k3NlpCOFRoUzhkYnBLUTIvb2RYMHkwc3FSZDI0Y2lGdnM0dnZVaW80NFdYNlNWRG54dXpWRHc1Rzg9IGRheXRvbmFAMDQwNjZiZDIwY2Vi - INTER_SANDBOX_NETWORK_ENABLED=false networks: - daytona-network ports: - 3003:3003 privileged: true restart: always ssh-gateway: image: daytonaio/daytona-ssh-gateway environment: - API_URL=http://api:3000/api - API_KEY=ssh_secret_api_token - SSH_PRIVATE_KEY=LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJsd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFZRUEzaW9hVmpXbDFPaVVkcTFzeHVlbFNNeXZxNVByV2ZxZmxFWmRzbXNxbllIWWVwN2pmMHBsCmE1VzNzZElwQkZXTTRFR0FkR2MvZDRJL1Y2aVJzV2RtOUxvUjliT2liNThTWGxoL2paSjlETitHeGVuY21JWU0vTndXVGYKbGFTQ0w3Z2ptYW1tdkZja0dmRHIrU3RUT004bndhZ2Rsc00rOUhSRlVhbWRybUt4c2tnNDBBZmtzVUFzMm5CbktHMEFOVQo4SGRiUWFDVFFJbVRtS2tVc016WElUVFduY3FoN1JieFVBaDJ1dWxZajN3Z0ZENUw2UXMzWWNEV3hibHhWSXRaN3pXUzhkCnpjeERlZHpTbUIyS251M01GbndmQWRJUS9Bc01YeCs4emllYUV3ZHFTMUdKVUkyQTk1ZTh2Q1FFcGVvbXlaeGorU0lOMU0KMkdVeDdobmUrVm1Tb09lQ0RFelFVRHRZeUxUaHZ5ZmtabHFOTFd1NGhRTTNTNi96MzVlMWpFdEpSV2lhSmF1MDFXeWo1aQpQTlV2VFBFeC9wc1NwWDhxSEk0UEtTQm5nQ0hxU2U3c3JsVEtqcGRjbEp4MHE2ZUhreEhoaU8rbVFmRTRVdkhXNlNrTnY2CkhWOU10TEtrWGR1SEloYjdPTDcxSXFPT0ZsK2tsUTU4YnMxUThPUnZBQUFGa0VOTllCMURUV0FkQUFBQUIzTnphQzF5YzIKRUFBQUdCQU40cUdsWTFwZFRvbEhhdGJNYm5wVWpNcjZ1VDYxbjZuNVJHWGJKcktwMkIySHFlNDM5S1pXdVZ0N0hTS1FSVgpqT0JCZ0hSblAzZUNQMWVva2JGblp2UzZFZld6b20rZkVsNVlmNDJTZlF6ZmhzWHAzSmlHRFB6Y0ZrMzVXa2dpKzRJNW1wCnByeFhKQm53Ni9rclV6alBKOEdvSFpiRFB2UjBSVkdwbmE1aXNiSklPTkFINUxGQUxOcHdaeWh0QURWUEIzVzBHZ2swQ0oKazVpcEZMRE0xeUUwMXAzS29lMFc4VkFJZHJycFdJOThJQlErUytrTE4ySEExc1c1Y1ZTTFdlODFrdkhjM01RM25jMHBnZAppcDd0ekJaOEh3SFNFUHdMREY4ZnZNNG5taE1IYWt0UmlWQ05nUGVYdkx3a0JLWHFKc21jWS9raURkVE5obE1lNFozdmxaCmtxRG5nZ3hNMEZBN1dNaTA0YjhuNUdaYWpTMXJ1SVVETjB1djg5K1h0WXhMU1VWb21pV3J0TlZzbytZanpWTDB6eE1mNmIKRXFWL0toeU9EeWtnWjRBaDZrbnU3SzVVeW82WFhKU2NkS3VuaDVNUjRZanZwa0h4T0ZMeDF1a3BEYitoMWZUTFN5cEYzYgpoeUlXK3ppKzlTS2pqaFpmcEpVT2ZHN05VUERrYndBQUFBTUJBQUVBQUFHQVFVRjRydTNmSWVTWEJ5ejFrSThtRzNZVCszCi9kVjNhb1BQTldQandBTG5lZlVKVXZHWXFPczhVc1NjMERRMFNsdHBGRzIrb2YyRWludG1YTE5hSzd1UktXaCtjVnhWZWkKRzVnL0R5U0NHcS9sZEdpMjVRNHE3bkx2RWtRMTRvNXo5ZEpadVJZQ3p3YTdZNmVkdmgvQVBORjdMN3pmYlhuUkl4OGtTeQpEakRySlFUVnV6VTJWV0lXU3F0TmdiQlNxVlhuU1FsM3hGQkdYa3RxaWpiVE1kMWFFaGtRT2VBSGdHdFkxbTRvdjcrVmxxClNzZnBvREF0T2tkY1RvT2o2RU50d05yS1dHL2g4QW5XVWptVjlPZ0h2UEFXR2hlTndlYXdvOW5lVVdseDZUcDNrVUdxdzYKVU9HTlYwN2lsOUdWU1JMa3hFUDlSMHZKZStxM3VIUDUzQ2NVNDI0S3hPQ1d6OERJK3BjT0N5R0QrOHZqYllOTlNPR3Z3YwowcjRsa2dDMUE5TWNLelFHcit5S1FIcXhndjlZdWRUYXFLSUhDWU0zL2J4dktwK2FjMXdEV1lCc0ZJSklRSU9mN2JpQ0E2CnYyaFlDMWRUb2V1NnlCbmtXMWVmZWJkZFE0RXl1ZzhTRVQrY3FrV1lYOWJwTi92SmZmV1F0VytEQ3RRdEF5ZEtWeEFBQUEKd0NCZTRtd01oT0dOUzhKeVVCNXVrczhvVTdGNnZGWjBTa3liUmxsK3pGaGVKSy9yNlhGZkxTeEpKaXF0NG1IQXdwTEJxMApqdHBIMlY2TjNVNEhmdHg4M3lXKzZWcmc2Mkp5NnZHazhJQ1I0bHRIOXVVRnlWb2piRFVtZ2pZMmpidkd6a2lOc2IzRi9wCmRvdnBJRHdabVAvOGo3U1dpYTFBQzFBM3RYNDg5eUc1NC9GY2JsZHhBelBJZkFOZzJNd0RERXBMZ3VGOXIwY1hqNzUwWGkKMUxyOUNuMjM0RDJuYmpXRmxOY1o0OHh3R2h0SThEWkFQbGt6YXJLcEVmbHpxOTRBQUFBTUVBNEZEMG1ZZEo2NDhBMDJBYgpxc3pRZGprampEV3dGQ1hRbE5lcEY2R2RTTS84V1NtYmFGb3hYZlFmNWVLSHRMQWNzVnBPSitkRnpZaEViQmcvaklrMmIxCktOY3RnK1lDWHZTTElPbmIrSVYwUFVZK0Z6NGFXU2tucTY4Q1QyR1N3K0krVlRsc3FRTXVBbjBPc2lGUmdXSFhuS000YU8KN2tDWlhUSm9xdFo0SzNJZTJ3RGtneEdkcnhCcVFkWWlkczQxVmJndlZLbXNNYVl6NHVvRk9hQVdiVlREOVN3ODdwa2oyRwo2dUNGSmZzK3g4d0dibGpsS2kwdWdQRndwVU94dk5BQUFBd1FEOWkxZDVKd1h2TUl3MzhqSjNubGNlc2U1RmM2M0x0N2IvClRpTzN1bGpCNXFnM2JHc1Y2Z1FBcEhaeTV6NWtIQ0E3TksyMVhtOUNzODhyU3p3ZTJHcllleVJkNjFKaWFRaWpsa3U2MlQKa05Bb0RjOHhoeS9yd3M5dmxUMFJrUDRNejI3cDREVFFaT0pCQ09CMHJLYVY1cFBxTHNDWm1YTHZ2dVpkQzdIUGJremY5SApHYXFwcWc1UWNESW9zWHowcFZneGVQZnJpV0NlZyt0UC8vOXJDanIwdjJMMGhrOWJydUtNTXdYK3IvU0lab0haNTJOSlJaClJRKzV6VGNtRlJIU3NBQUFBVVpHRjVkRzl1WVVBd05EQTJObUprTWpCalpXSUJBZ01FQlFZSAotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0= - SSH_HOST_KEY=LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJGd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFRRUF1K0xKeXQvS3Y2VmlhWkI2am5KUFM1N0ZwWjJGajdWNGYvNXFLYTY1U3lwRFpXWVBzT2NpCkhuRE93elpsVU1Sd2VyaWJHcmsxM2JZZGdWM2taeVNzUGdDV2xERzlPbXVwb2kzWjYzeUUyYXlvKy9RQUxJQjdxc0NKcVMKNjZodm45ZTBGMHh4MGFuUVdCR09Fa1hMZ0IrdTRSNThoL0dtZkM3WDU5RERIK21Hb0thSjMxek1ZQWFyMTV0NDN2Q3BiYgpNb1lCbmNtWWtrVDJNeXhxQ3MrdjZNYmN0ZmRBTks0UHhyc2dGV1I0a0s0T3pjYjJrMFZCMzRoSHdMMTBUcEVIZDI3bjhBCmV1RU1PUEVIK3RFOEtwRmFaR3NDNS9aV1FZUitncEM3SG01YVBnWjUzanF3TkNCZFprekpZNTZjUEx5SHZoeXV4K1h0RGEKdlhoSkhTRWszUUFBQTlDOElNL1B2Q0RQendBQUFBZHpjMmd0Y25OaEFBQUJBUUM3NHNuSzM4cS9wV0pwa0hxT2NrOUxucwpXbG5ZV1B0WGgvL21vcHJybExLa05sWmcrdzV5SWVjTTdETm1WUXhIQjZ1SnNhdVRYZHRoMkJYZVJuSkt3K0FKYVVNYjA2CmE2bWlMZG5yZklUWnJLajc5QUFzZ0h1cXdJbXBMcnFHK2YxN1FYVEhIUnFkQllFWTRTUmN1QUg2N2hIbnlIOGFaOEx0Zm4KME1NZjZZYWdwb25mWE14Z0JxdlhtM2plOEtsdHN5aGdHZHlaaVNSUFl6TEdvS3o2L294dHkxOTBBMHJnL0d1eUFWWkhpUQpyZzdOeHZhVFJVSGZpRWZBdlhST2tRZDNidWZ3QjY0UXc0OFFmNjBUd3FrVnBrYXdMbjlsWkJoSDZDa0xzZWJsbytCbm5lCk9yQTBJRjFtVE1sam5wdzh2SWUrSEs3SDVlME5xOWVFa2RJU1RkQUFBQUF3RUFBUUFBQVFBeUJpTG1FZ21nVnY5SnpmN2oKZUVubWYySnVRdTl4b01aeGhhSnNjS25DK29DeE9haEoySEE4SEpyZ1hOWkMxOXArd2pJQnZuZzZES2YwYnJSR1JmeGFFYgp3RnZ1eDc1bmhteHNCenMxYUh3akhIeTJKVWR1ejJQSWNxZFZlU1luTDc0eVNkY3dGSDkxUTA5SlRDM3ZjZ0FVemhJbis4CjN3MkdRQnc1S0FKNlA2TzNYNFJQMkpoLzA2UlpqYWIvbzJManBWUHRKVXhxN0tkekZYSzUyZ25oKzJGL0p2ZHFJcTRDVncKT0VPdUNOS282MzJBYS8rUFl5NDlhaVY0YkVmUDZZWUlxaFpxekR6UjNNNncwb3ZQRGMvcjFveGlSaDA5dTlFTEtFK1FoNQpkeGR0SDIrVmFMTnVWQ2JzL09FZXVYNXRPQm1mS2k3TjYrSkZFckxoMkZkOUFBQUFnRDcwOWdRZ2kvZ1RZYjdWOGsxcmo5Cm5tajU3dmFFaTY4MFY5TkdqbFBjdWtPNHQ5Vk5HVzhjMVZVdjFJaGhKN3RySUtsWG5PTnRQa0hWeUh5SUxocGVUQ3N2bXkKMUhJSFErUUViYlF6cldDYVA3MFE2d1JXQm9XeTJVbzIwRUgreE1nUkdBSk1adE41OW1GN0t5MUVCUkYzMUI4Mmo2Q2JwTgpYeCtoNE15b2ZXQUFBQWdRRDU2eDhwVklBMXNJQjFRWTFsUlZ4RW92Q0x4bXlaeVR2RzlIbThjT2FqeUZoY1dCNWljZXFvCkNrY3ZncXozNDVUaVBVVFd4eW9PNkJTYVlIbEYxUVI3a1BTU1dsUENRRTFxbGgyQXNoZDV3bHlyV1U5elAxNkExSWQxV0MKL0M1QngvUjRhSkpyM1N3S2RaenFkTHhRTGc4RFhIbWdZOXVNVlpVb2hQbVBkZml3QUFBSUVBd0hVN1g3aDV5REtrMUVORQp4RE82UjVXclU2M3hXNjVOdlBsS0ZzcE13Zks2QWZyZUdIbFUrTlhWZmRNNGlra0dDMXQ5Wisrc2ZKcXJlckxaVUdGSlAzClVOUkg1WGNnR0dMeUVDQi9EblJSRzJaMGNtYzFVWlBpMUJ6MnVSRll3aW5rbDNaWHA3TlJrV2ZudUpsRUlXVk9TMUY5NTYKa01DbURPMlNSUUhHbWpjQUFBQVVjM05vTFdkaGRHVjNZWGt0YUc5emRDMXJaWGtCQWdNRUJRWUgKLS0tLS1FTkQgT1BFTlNTSCBQUklWQVRFIEtFWS0tLS0t - SSH_GATEWAY_PORT=2222 networks: - daytona-network ports: - 2222:2222 restart: always dex: image: dexidp/dex:v2.42.0 volumes: - ./dex/config.yaml:/etc/dex/config.yaml - dex_db:/var/dex entrypoint: ['sh', '-c', 'touch /var/dex/dex.db && exec dex serve /etc/dex/config.yaml'] networks: - daytona-network ports: - 5556:5556 healthcheck: test: ["CMD", "wget", "--spider", "--quiet", "http://localhost:5556/dex/.well-known/openid-configuration"] db: image: postgres:18 environment: - POSTGRES_PASSWORD=pass - POSTGRES_USER=user - POSTGRES_DB=daytona networks: - daytona-network volumes: - db_data:/var/lib/postgresql/18/docker pgadmin: image: dpage/pgadmin4:9.2.0 entrypoint: ['sh', '-c', 'chmod 600 /pgpass && exec /entrypoint.sh'] environment: PGADMIN_DEFAULT_EMAIL: dev@daytona.io PGADMIN_DEFAULT_PASSWORD: pgadmin PGADMIN_CONFIG_SERVER_MODE: 'False' PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: 'False' user: root volumes: - ./pgadmin4/servers.json:/pgadmin4/servers.json - ./pgadmin4/pgpass:/pgpass depends_on: - db ports: - 5050:80 networks: - daytona-network redis: image: redis:latest networks: - daytona-network registry-ui: image: joxit/docker-registry-ui:main restart: always environment: - SINGLE_REGISTRY=true - REGISTRY_TITLE=Docker Registry UI - DELETE_IMAGES=true - SHOW_CONTENT_DIGEST=true - NGINX_PROXY_PASS_URL=http://registry:6000 - SHOW_CATALOG_NB_TAGS=true - CATALOG_MIN_BRANCHES=1 - CATALOG_MAX_BRANCHES=1 - TAGLIST_PAGE_SIZE=100 - REGISTRY_SECURED=false - CATALOG_ELEMENTS_LIMIT=1000 networks: - daytona-network ports: - 5100:80 registry: image: registry:2.8.2 restart: always environment: REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin: '[http://registry-ui.example.com]' REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods: '[HEAD,GET,OPTIONS,DELETE]' REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials: '[true]' REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: '[Authorization,Accept,Cache-Control]' REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers: '[Docker-Content-Digest]' REGISTRY_STORAGE_DELETE_ENABLED: 'true' REGISTRY_HTTP_ADDR: registry:6000 volumes: - registry:/var/lib/registry networks: - daytona-network ports: - 6000:6000 maildev: image: maildev/maildev networks: - daytona-network ports: - 1080:1080 minio: image: minio/minio:latest environment: - MINIO_ROOT_USER=minioadmin - MINIO_ROOT_PASSWORD=minioadmin - MINIO_IDENTITY_STS_EXPIRY="24h" volumes: - minio_data:/data command: server /data --console-address ":9001" networks: - daytona-network ports: - 9001:9001 jaeger: image: jaegertracing/all-in-one:1.67.0 networks: - daytona-network ports: - 16686:16686 otel-collector: image: otel/opentelemetry-collector-contrib:0.138.0 volumes: - ./otel/otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml networks: - daytona-network volumes: registry: {} minio_data: {} db_data: {} dex_db: {} networks: daytona-network: driver: bridge