gastown Docker & Self-Hosted Deployment

GitHub

Gas Town - multi-agent workspace manager

17,533 stars Go Go 1 file ยท ~23,761 tokens
RAW Compose
1. Pull Image (DOCKERHUB) docker pull gastownhall/gastown
2. Docker Run (1-Click Launch) docker run -d --name gastown -p 8080:8080 --restart always gastownhall/gastown:latest
3. Podman Run podman run -d --name gastown -p 8080:8080 --restart always gastownhall/gastown:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/gastownhall/gastown:latest
5. ORAS Pull (OCI Artifact) oras pull gastownhall/gastown:latest
6. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
# Run with
# GIT_USER="<your name>" GIT_EMAIL="<your email>" FOLDER="/Users/you/code" docker compose up -d

services:
  gastown:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: gastown-sandbox
    stdin_open: false
    tty: false
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETUID
      - SETGID
      - DAC_OVERRIDE
      - FOWNER
      - NET_RAW
    environment:
      IS_SANDBOX: 1
      GIT_USER: ${GIT_USER:-TestUser}
      GIT_EMAIL: ${GIT_EMAIL:[email protected]}
    volumes:
      # FOLDER must be defined in .env file, e.g. FOLDER=/home/user
      # or provided as an environment variable when running docker compose,
      # e.g. FOLDER=/home/user docker compose up
      - agent-home:/home/agent
      - ${FOLDER}:/gt
      # Dolt data on a proper ext4 volume (not the macOS bind mount) to
      # avoid journal corruption from VirtioFS fsync semantics.
      - dolt-data:/gt/.dolt-data
    ports:
      - "${DASHBOARD_PORT:-8080}:8080"
    command: sleep infinity

    # Exec into the container with: docker compose exec gastown zsh

volumes:
  agent-home:
  dolt-data: