Setup
Deploy Barrelman using Docker — no build or clone required.
Barrelman is distributed as pre-built Docker images. You do not need to clone the repository or install any language runtimes to run it in production.
Prerequisites
- Docker + Docker Compose v2
- A reverse proxy (Caddy, Traefik, nginx) if you want HTTPS
1. Create a config directory
mkdir -p /opt/barrelman
cd /opt/barrelman2. Write a docker-compose.yml
Copy the canonical compose file directly from the repo:
curl -o docker-compose.yml \
https://raw.githubusercontent.com/alexwohlbruck/barrelman/main/docker-compose.yml3. Create a .env file
BARRELMAN_API_KEY=brm_changeme_use_a_strong_key
BARRELMAN_DB_PASSWORD=changeme
OLLAMA_HOST=http://ollama:11434 # point at your Ollama instance if you have oneChange BARRELMAN_API_KEY and BARRELMAN_DB_PASSWORD before exposing Barrelman publicly.
4. Start the containers
docker compose up -dDocker pulls all images automatically. After a few seconds, verify it's running:
curl http://localhost:3001/health
# {"status":"ok","database":"connected"}Swagger UI is available at http://localhost:3001/swagger.
Next: import OSM data to populate the database.
Updating
Barrelman uses Watchtower or manual pulls for updates. When a new image is pushed to Docker Hub, pull and restart:
docker compose pull && docker compose up -dLocal development
If you're modifying Barrelman's source code, clone the repo and run it directly:
git clone https://github.com/alexwohlbruck/barrelman.git
cd barrelman
cp .env.example .env
bun install
# Start the database container
docker compose up -d barrelman-db
# Run the dev server with hot reload
bun run devBarrelman runs at http://localhost:3001. Swagger UI is at http://localhost:3001/swagger.