0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-12-01 04:12:23 +01:00
🦔 PostHog provides open-source product analytics, session recording, feature flagging and A/B testing that you can self-host.
Go to file
2020-04-14 15:34:04 +01:00
.github Fix running tests in forks (#580) 2020-04-14 15:34:04 +01:00
bin Helm redis (#558) 2020-04-13 16:22:06 +01:00
frontend Antd trends: buttons and dropdowns (#544) 2020-04-14 10:25:58 -04:00
posthog Fix event name test (#579) 2020-04-14 15:31:04 +01:00
staticfiles Fix settings 2020-01-24 16:22:12 -08:00
.babelrc added babel plugin (#545) 2020-04-13 10:22:43 +01:00
.deepsource.toml Fix some bug risks and code quality issues 2020-02-21 14:51:44 -08:00
.dockerignore Helm redis (#558) 2020-04-13 16:22:06 +01:00
.gitignore Make workers optional for now, add a warning if they are offline (#494) 2020-04-08 13:52:29 +01:00
.prettierrc set prettier line width to 120 for saner looking code 2020-03-21 00:54:20 +01:00
app.json add formation to review apps to trigger worker deployments 2020-04-07 14:24:36 +02:00
CHANGELOG.md Changelog updated for 1.0.11 (#501) 2020-04-08 14:57:31 +01:00
CONTRIBUTING.md Create CONTRIBUTING.md 2020-02-19 16:18:54 -08:00
docker-compose.yml add redis container name to dockerfile 2020-04-07 14:54:09 +02:00
gunicorn.config.py show the correct host and port 2020-04-02 00:55:45 +02:00
jsconfig.json Speed up tests by parallelising them (#543) 2020-04-13 10:06:36 +01:00
LICENSE Update license 2020-02-17 11:22:19 -08:00
manage.py
mypy.ini Configure mypy (#562) 2020-04-14 11:05:45 +01:00
package.json Fix event name test (#579) 2020-04-14 15:31:04 +01:00
postcss.config.js move package.json to the root folder 2020-03-18 13:41:46 +01:00
preview.Dockerfile Fix network timeout yarn for antd (#551) 2020-04-13 10:53:37 +01:00
Procfile Fix redis error when upgrading Heroku (#508) 2020-04-08 19:19:33 +01:00
production.Dockerfile Fix network timeout yarn for antd (#551) 2020-04-13 10:53:37 +01:00
README.md Add new contributors to readme (#575) 2020-04-14 15:11:46 +01:00
requirements.txt Bump psycopg2-binary from 2.8.4 to 2.8.5 (#524) 2020-04-14 15:03:33 +01:00
webpack.config.js create aliases for ~, lib and scenes 2020-03-21 00:54:19 +01:00
yarn.lock added babel plugin (#545) 2020-04-13 10:22:43 +01:00

PostHog header

PostHog (Community Edition)

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.

Quick start

1-click Heroku deploy:

See PostHog docs for in-depth walk throughs on functionality.

PostHog dashboard screenshot

Join the PostHog Users Slack if you need help, want to chat, or are thinking of a new feature idea.

Features

  • Event-based analytics at a user level - see which users are doing what in your application.
  • Complete control over your data - host it yourself.
  • Automatically capture clicks and page views to do analyze what your users are doing retroactively.
  • Libraries for JS, Python, Ruby, Node, Go + API for anything else.
  • Beautiful graphs, funnels, user cohorts, user paths and dashboards.
  • Super easy deploy using Docker or Heroku.

Event autocapture

Philosophy

Many engineers find it painful to work out how their products are being used. This makes design decisions tough. PostHog solves that.

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.

PostHog gives you full control over all your users' data, while letting anyone easily perform powerful analytics.

It means you can know who is using your app, how they're using, and where you lose users in the sign up process.

What's cool about this?

PostHog is the only product-focused 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.

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.

One-line docker preview

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.

Deploy to Heroku

Deploy

Production deployment

See docs for production deployment

Development

Running PostHog

  1. Make sure you have python 3 installed python3 --version
  2. Make sure you have redis installed and running brew install redis && brew services start redis
  3. Make sure you have postgres installed and running brew install postgres && 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)
  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.
  9. Run migrations DEBUG=1 python3 manage.py migrate
  10. Run DEBUG=1 ./bin/start to start the backend, worker and frontend simultaneously

Now open http://localhost:8000 to see the app.

To see some data on the frontend, you should go to the http://localhost:8000/demo and play around with it, so you can see some data on dashboard

Running backend separately (Django)

Run DEBUG=1 ./bin/start-backend

Running background worker separately (Celery)

Run DEBUG=1 ./bin/start-worker

Running frontend separately (React)

If at any point, you get "command not found: nvm", you need to install nvm, then use that to install node.

Run ./bin/start-frontend

Running backend tests

Run ./bin/tests

Open source / Paid

This repo is entirely MIT licensed. We charge for things like user permissioning and auditability, a/b testing and dedicated support. Please email hey@posthog.com and we will gladly help with your implementation.

Contributors 🦸