Self-host Lightdash using docker compose
This guide will give you a minimal Lightdash instance running on your local machine. It will not be accessible from the internet, but it will be accessible from your local machine. This is a great way to get started with Lightdash for a proof-of-concept without needing access to kubernetes.
Prerequisites
1. Clone the Lightdash repository
Clone the Lightdash code to your local machine. This will create a new directory called ./lightdash (the Lightdash directory).
# Clone the Lightdash repo
git clone https://github.com/lightdash/lightdash
cd lightdash
2. Update your ENV config
Edit all the ENV variables in .env to match your setup, eg:
PGHOST=db
PGPORT=5432
PGUSER=pg_user *OR* machine username if no prior postgres set up
PGPASSWORD=pg_password *OR* blank if no prior postgres set up
PGDATABASE=postgres
DBT_DEMO_DIR=/*path*/*to*/lightdash/project/examples/full-jaffle-shop-demo
3. Create containers
You must set the following two environment variables:
PGPASSWORDis the password used for the internal postgres databaseLIGHTDASH_SECRETis the secret used to encrypt data at rest in the database. If you lose this secret, you will not be able to access your data in Lightdash.
export LIGHTDASH_SECRET="not very secret"
export PGPASSWORD="password"
docker compose -f docker-compose.yml --env-file .env up --detach --remove-orphans
info
If you have a Windows machine and get the error Error response from daemon: i/o timeout. Go to Docker > Settings > General and enable the option Expose daemon on tcp://localhost:2375 without TLS