2020-02-20 06:25:40 +01:00
![PostHog header ](https://posthog-static-files.s3.us-east-2.amazonaws.com/Website-Assets/github-cover.png )
2020-02-25 02:33:21 +01:00
# PostHog (Community Edition)
2020-01-27 06:54:19 +01:00
2020-02-20 03:33:07 +01:00
PostHog is open source product analytics, built for developers. Automate the collection of every event on your website or app, with no need to send data to 3rd parties. It's a 1 click to deploy on your own infrastructure, with full API/SQL access to the underlying data.
2020-02-09 23:39:05 +01:00
2020-02-15 06:26:54 +01:00
## Quick start
2020-02-20 09:17:11 +01:00
1-click Heroku deploy:
< a href = "https://heroku.com/deploy?template=https://github.com/posthog/posthog" > < img src = "https://www.herokucdn.com/deploy/button.svg" width = "250px" / > < / a >
2020-02-15 06:26:54 +01:00
See [PostHog docs ](https://github.com/PostHog/posthog/wiki ) for in-depth walk throughs on functionality.
2020-02-14 07:00:01 +01:00
2020-02-14 08:19:47 +01:00
![PostHog dashboard screenshot ](https://posthog.com/wp-content/uploads/2020/02/Screenshot-2020-02-13-at-23.14.36-2.png )
2020-02-14 08:06:08 +01:00
2020-03-01 02:20:20 +01:00
Join the [PostHog Users Slack ](https://join.slack.com/t/posthogusers/shared_invite/enQtOTY0MzU5NjAwMDY3LTc2MWQ0OTZlNjhkODk3ZDI3NDVjMDE1YjgxY2I4ZjI4MzJhZmVmNjJkN2NmMGJmMzc2N2U3Yjc3ZjI5NGFlZDQ ) if you need help, want to chat, or are thinking of a new feature idea.
2020-02-20 09:36:14 +01:00
2020-02-14 07:00:01 +01:00
## Features
2020-02-19 23:11:10 +01:00
- **Event-based** analytics at a user level - see which users are doing what in your application.
2020-02-20 10:26:13 +01:00
- **Complete control** over your data - host it yourself.
2020-02-14 07:00:01 +01:00
- **Automatically capture** clicks and page views to do analyze what your users are doing **retroactively** .
2020-02-27 02:52:17 +01:00
- Libraries for ** [JS ](https://github.com/PostHog/posthog/wiki/JS-integration ), [Python ](https://github.com/PostHog/posthog/wiki/python-integration ), [Ruby ](https://github.com/PostHog/posthog/wiki/ruby-integration ), [Node ](https://github.com/PostHog/posthog/wiki/node-integration ), [Go ](https://github.com/PostHog/posthog/wiki/Go-integration )** + API for anything else.
2020-02-26 09:10:09 +01:00
- Beautiful **graphs, funnels, user cohorts, user paths and dashboards** .
2020-02-14 07:00:01 +01:00
- Super easy deploy using **Docker** or **Heroku** .
2020-02-20 10:26:13 +01:00
## Event autocapture
< img src = "https://posthog-static-files.s3.us-east-2.amazonaws.com/Website-Assets/Creating+new+action+with+toolbar.gif" width = "100%" >
2020-02-14 07:00:01 +01:00
## Philosophy
2020-02-20 05:27:56 +01:00
Many engineers find it painful to work out how their products are being used. This makes design decisions tough. PostHog solves that.
2020-02-19 23:11:10 +01:00
We also strongly believe 3rd party analytics don't work anymore in a world of Cookie laws, GDPR, CCPA and lots of other 4 letter acronyms. There should be an alternative to sending all of your users' personal information and usage data to 3rd parties.
2020-02-20 03:30:00 +01:00
PostHog gives you full control over all your users' data, while letting anyone easily perform powerful analytics.
2020-02-14 07:00:01 +01:00
2020-02-19 23:11:10 +01:00
It means you can know who is using your app, how they're using, and where you lose users in the sign up process.
2020-02-14 08:30:05 +01:00
## What's cool about this?
2020-02-19 23:11:10 +01:00
PostHog is the only < strong > product-focused< / strong > open source analytics library, with an event and user-driven architecture. That means tracking identifiable (where applicable) user behavior, and creating user profiles. We are an open source alternative to Mixpanel, Amplitude or Heap, designed to be more developer friendly.
2020-02-14 08:30:05 +01:00
2020-02-15 02:52:00 +01:00
There are a couple of session-based open source libraries that are nice alternatives to Google Analytics. That's not what we are focused on.
2020-02-10 00:31:43 +01:00
2020-02-09 23:39:05 +01:00
## One-line docker preview
```bash
2020-02-10 00:20:11 +01:00
docker run -t -i --rm --publish 8000:8000 -v postgres:/var/lib/postgresql posthog/posthog:preview
2020-02-09 23:39:05 +01:00
```
This image has everything you need to try out PostHog locally! It will set up a server on http://127.0.0.1:8000.
## Deploy to Heroku
[![Deploy ](https://www.herokucdn.com/deploy/button.svg )](https://heroku.com/deploy?template=https://github.com/posthog/posthog)
## Production installation
2020-02-27 22:53:43 +01:00
[See wiki for production deployment ](https://github.com/PostHog/posthog/wiki/Deployment )
2020-02-09 23:39:05 +01:00
2020-02-20 09:10:18 +01:00
## Development
### Running backend (Django)
2020-01-27 06:54:19 +01:00
1) Make sure you have python 3 installed `python3 --version`
2) Make sure you have postgres installed `brew install postgres`
3) Start postgres, run `brew services start postgresql`
4) Create Database `createdb posthog`
5) Navigate into the correct folder `cd posthog`
6) Run `python3 -m venv env` (creates virtual environment in current direction called 'env')
7) Run `source env/bin/activate` (activates virtual environment)
2020-01-27 07:12:56 +01:00
8) Run `pip install -r requirements.txt` . If you have problems with this step (TLS/SSL error), then run `~ brew update && brew upgrade` followed by `python3 -m pip install --upgrade pip` , then retry the requirements.txt install.
2020-01-27 06:54:19 +01:00
9) Run migrations `python manage.py migrate`
2020-02-10 00:54:32 +01:00
10) Run `DEBUG=1 python manage.py runserver`
2020-02-20 06:00:13 +01:00
11) Run the tests and frontend
2020-01-27 06:54:19 +01:00
2020-02-20 09:10:18 +01:00
### Running backend tests
2020-01-27 06:54:19 +01:00
`bin/tests`
2020-02-20 09:10:18 +01:00
### Running frontend (React)
2020-01-27 06:54:19 +01:00
2020-01-27 08:29:00 +01:00
If at any point, you get "command not found: nvm", you need to install nvm, then use that to install node.
1) Make sure you are running Django above in a separate terminal
2020-02-09 23:39:05 +01:00
2) Now run `bin/start-frontend`
3) Optional: If you're making changes to the editor, you'll need to do `cd frontend && yarn start-editor` to watch changes.
2020-01-27 06:54:19 +01:00
2020-02-20 09:10:18 +01:00
## Open source / Paid
2020-02-18 01:00:22 +01:00
2020-02-20 03:30:46 +01:00
This repo is entirely MIT licensed. We charge for things like teams, permissioning, data lake integrations, and support. Please email hey@posthog.com and we will gladly help with your implementation.
2020-02-20 09:10:18 +01:00
2020-02-20 09:14:12 +01:00
## Contributors 🦸
2020-02-20 09:10:18 +01:00
[//]: contributor-faces
< a href = "https://github.com/ellmh" > < img src = "https://avatars1.githubusercontent.com/u/53315310?v=4" title = "ellmh" width = "80" height = "80" > < / a >
< a href = "https://github.com/mrkurt" > < img src = "https://avatars1.githubusercontent.com/u/7724?v=4" title = "mrkurt" width = "80" height = "80" > < / a >
< a href = "https://github.com/rberrelleza" > < img src = "https://avatars0.githubusercontent.com/u/475313?v=4" title = "rberrelleza" width = "80" height = "80" > < / a >
2020-02-28 23:38:55 +01:00
< a href = "https://github.com/mariusandra" > < img src = "https://avatars0.githubusercontent.com/u/53387?v=4" title = "mariusandra" width = "80" height = "80" > < / a >
2020-02-20 09:14:12 +01:00
< a href = "https://github.com/timgl" > < img src = "https://avatars1.githubusercontent.com/u/1727427?v=4" title = "timgl" width = "80" height = "80" > < / a >
< a href = "https://github.com/jamesefhawkins" > < img src = "https://avatars3.githubusercontent.com/u/47497682?v=4" title = "jamesefhawkins" width = "80" height = "80" > < / a >
< a href = "https://github.com/Tannergoods" > < img src = "https://avatars1.githubusercontent.com/u/60791437?v=4" title = "Tannergoods" width = "80" height = "80" > < / a >
2020-02-20 09:10:18 +01:00
[//]: contributor-faces