nautilus_trader Docker & Self-Hosted Deployment

GitHub

Production-grade Rust-native trading engine with deterministic event-driven architecture

RAW Compose
1. Pull Image (DOCKERHUB) docker pull public.ecr.aws/docker/library/postgres
2. Docker Run (1-Click Launch) docker run -d --name nautilus_trader -p 5432:5432 --restart always public.ecr.aws/docker/library/postgres
3. Podman Run podman run -d --name nautilus_trader -p 5432:5432 --restart always public.ecr.aws/docker/library/postgres
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://public.ecr.aws/docker/library/postgres
5. ORAS Pull (OCI Artifact) oras pull public.ecr.aws/docker/library/postgres
6. Compose Deployment docker compose up -d
.docker/docker-compose.yml
Download .yml
services:
  postgres:
    container_name: nautilus-database
    image: public.ecr.aws/docker/library/postgres
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-nautilus}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pass}
      POSTGRES_DB: ${POSTGRES_DB:-nautilus}
      PGDATA: /data/postgres
    volumes:
      - nautilus-database:/data/postgres
    security_opt:
      - no-new-privileges:true
    ports:
      - "127.0.0.1:5432:5432"
    networks:
      - nautilus-network
    restart: unless-stopped

  pgadmin:
    container_name: nautilus-pgadmin
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:[email protected]}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
    volumes:
      - pgadmin:/root/.pgadmin
    security_opt:
      - no-new-privileges:true
    ports:
      - "127.0.0.1:${PGADMIN_PORT:-5051}:80"
    networks:
      - nautilus-network
    restart: unless-stopped

  redis:
    container_name: nautilus-redis
    image: public.ecr.aws/docker/library/redis
    security_opt:
      - no-new-privileges:true
    ports:
      - "127.0.0.1:6379:6379"
    restart: unless-stopped
    networks:
      - nautilus-network

networks:
  nautilus-network:

volumes:
  nautilus-database:
  pgadmin: