PostHog is developer-friendly, self-hosted product analytics. Automate the collection of every event on your website or app, and stay in control of your users’ data.
PostHog docs explain the functionality in more depth.
docker run -t -i --rm --publish 8000:8000 -v postgres:/var/lib/postgresql posthog/posthog:preview
This image has everything you need to try out PostHog locally! It will set up a server on http://127.0.0.1:8000.
The preview image has Postgres running locally and runs in debug mode.
For a production installation you have a few options:
Heroku is the quickest way to get a production PostHog environment up-and-running.
We recommend getting at the very least a
hobby-dev Postgres and Dyno for low volumes of events.
Using the posthog/posthog:latest Docker image.
sudo apt-get install git git clone https://github.com/posthog/posthog.git cd posthog docker-compose build docker-compose up -d
git clone https://github.com/posthog/posthog.git yarn build pip install -r requirements.txt gunicorn posthog.wsgi --config gunicorn.config.py --log-file -
brew install postgres
brew services start postgresql
python3 -m venv env(creates virtual environment in current direction called 'env')
source env/bin/activate(activates virtual environment)
pip install -r requirements.txt. If you have problems with this step (TLS/SSL error), then run
~ brew update && brew upgradefollowed by
python3 -m pip install --upgrade pip, then retry the requirements.txt install.
python manage.py migrate
DEBUG=1 python manage.py runserver
If at any point, you get "command not found: nvm", you need to install nvm, then use that to install node.
cd frontend && yarn start-editorto watch changes.
If you are working on some changes, please create a new branch, submit it to github ask for approval and when it gets approved it should automatically ship to Heroku
git pull origin master
git checkout -b %your_branch_name%call your branch something that represents what you're planning to do
git add .
git commit -m "%your feature description%"
git push origin %your_branch_name%