services: db: image: postgres:17 restart: unless-stopped ports: - "5432:5432" environment: POSTGRES_USER: portfolio POSTGRES_PASSWORD: portfolio POSTGRES_DB: portfolio volumes: - portfolio_db_data:/var/lib/postgresql/data s3: image: ghcr.io/achtungsoftware/alarik:latest restart: unless-stopped ports: - "9000:8080" environment: - API_BASE_URL=http://localhost:9000 - CONSOLE_BASE_URL=http://localhost:9001 - ADMIN_USERNAME=portfolio - ADMIN_PASSWORD=portfolio - JWT=DEV_SECRET_JWT_KEY - ALLOW_ACCOUNT_CREATION=false - DEFAULT_ACCESS_KEY=dev_key - DEFAULT_SECRET_KEY=dev_secret volumes: - portfolio_s3_data:/app/Storage s3-ui: image: ghcr.io/achtungsoftware/alarik-console:latest restart: unless-stopped ports: - "9001:3000" environment: - NUXT_PUBLIC_API_BASE_URL=http://localhost:9000 - NUXT_PUBLIC_CONSOLE_BASE_URL=http://localhost:9001 - NUXT_PUBLIC_ALLOW_ACCOUNT_CREATION=false depends_on: - s3 bucket-creation-helper: image: minio/mc:latest depends_on: - s3 entrypoint: > sh -c " sleep 2 && mc alias set alarik http://s3:8080 dev_key dev_secret && if mc ls alarik/payload-media > /dev/null 2>&1; then echo 'S3 bucket already exists'; else mc mb alarik/payload-media && echo 'S3 bucket created'; fi " volumes: portfolio_db_data: portfolio_s3_data: