Skip to content

Server Setup

This guide covers setting up a Pogo server for your team or organization.

  • PostgreSQL 17+ database
  • Server with at least 2GB RAM
  • Storage space for repositories
  • Network access on port 8080 or whatever you choose for HTTP and gRPC

The easiest way to run a Pogo server is with Docker Compose:

services:
pogo:
image: ghcr.io/pogo-vcs/pogo:alpine
depends_on:
- db
ports:
- 4321:4321
environment:
- PORT=8080
- DATABASE_URL=postgres://pogo:pogo@db:5432/pogo
volumes:
- ./pogo_data/:/data/
db:
image: postgres:17-alpine
environment:
- POSTGRES_USER=pogo
- POSTGRES_PASSWORD=pogo
- POSTGRES_DB=pogo
healthcheck:
test: ["CMD-SHELL", "pg_isready -U pogo"]
interval: 10s
timeout: 5s
retries: 5

Download and run the Pogo binary directly:

Download from GitHub releases.

Terminal window
# Run server
DATABASE_URL=postgres://pogo:password@localhost/pogo \
pogo serve

Build and run from source:

Terminal window
# Clone and build
git clone https://github.com/pogo-vcs/pogo.git
cd pogo
just build
# Run server
./pogo serve

See Installation guide for more details.

Configure your Pogo server with these environment variables:

VariableDescriptionDefault
DATABASE_URLPostgreSQL connection stringRequired
PORTPort8080
HOSTBind address0.0.0.0:8080
GC_MEMORY_THRESHOLDFile count threshold for GC strategy10000000
ROOT_TOKENPersonal access token for root userRandom

Pogo server automatically creates tables on first run and runs migrations if needed.

Pogo server stores files in ./data/.