services: orchestrator: build: context: . dockerfile: Dockerfile image: orchestrator:latest container_name: decorrupt_orchestrator restart: always privileged: true depends_on: postgres: condition: service_healthy environment: DATABASE_URL: postgres://myuser:mypassword@postgres:5432/mydatabase volumes: - /var/run/docker.sock:/var/run/docker.sock - ./motherload:/motherload postgres: image: postgres:15 container_name: postgres_db restart: always environment: POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword POSTGRES_DB: mydatabase ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U myuser -d mydatabase"] interval: 5s timeout: 5s retries: 10 pgadmin: image: dpage/pgadmin4:latest container_name: pgadmin restart: always environment: PGADMIN_DEFAULT_EMAIL: admin@example.com PGADMIN_DEFAULT_PASSWORD: admin ports: - "8080:80" depends_on: - postgres volumes: - pgadmin_data:/var/lib/pgadmin streamlit: image: decorrupt_viz:latest # <-- your built/pushed streamlit image container_name: streamlit_app restart: always depends_on: postgres: condition: service_healthy environment: DB_HOST: postgres DB_PORT: 5432 DB_NAME: mydatabase DB_USER: myuser DB_PASSWORD: mypassword TABLE_NAME: "public.decorrupt" # change to your actual table ports: - "8501:8501" filebrowser: image: filebrowser/filebrowser:latest container_name: filebrowser restart: unless-stopped ports: - "8081:80" # access at http://localhost:8081 volumes: - ./motherload/scan:/srv # folder you want to browse - ./filebrowser.db:/database.db - ./filebrowser.json:/config.json volumes: postgres_data: pgadmin_data: