Docker Compose
Run Marmot and PostgreSQL together with Docker Compose. Unlike the quick start, this setup encrypts the credentials Marmot stores.
Install the CLI
curl -fsSL get.marmotdata.io | shGenerate an encryption key
Marmot encrypts the credentials it stores with this key. Keep it somewhere safe, because losing it means re-entering every stored credential:
marmot generate-encryption-keyCreate your Compose file
Save this as
docker-compose.yaml:services:marmot:image: ghcr.io/marmotdata/marmot:latestports:- "8080:8080"environment:MARMOT_DATABASE_HOST: postgresMARMOT_DATABASE_PORT: 5432MARMOT_DATABASE_USER: marmotMARMOT_DATABASE_PASSWORD: ${POSTGRES_PASSWORD}MARMOT_DATABASE_NAME: marmotMARMOT_DATABASE_SSLMODE: disableMARMOT_SERVER_ENCRYPTION_KEY: ${MARMOT_ENCRYPTION_KEY}depends_on:postgres:condition: service_healthypostgres:image: postgres:16-alpineenvironment:POSTGRES_USER: marmotPOSTGRES_PASSWORD: ${POSTGRES_PASSWORD}POSTGRES_DB: marmotvolumes:- marmot_data:/var/lib/postgresql/datahealthcheck:test: ["CMD-SHELL", "pg_isready -U marmot"]interval: 5stimeout: 5sretries: 5volumes:marmot_data:Create your environment file
Save this as
.envin the same directory:POSTGRES_PASSWORD=<database-password>MARMOT_ENCRYPTION_KEY=<encryption-key>Start Marmot
docker compose up -dSign in
Open http://localhost:8080 and sign in as
adminwith the passwordadmin. Marmot asks you to choose a new password straight away.
Next steps
- Configuration reference: every setting and its environment variable.
- Plugins: catalog your first source.
- Single sign-on: let your team sign in with your identity provider.