Deploying from Source
To install from source, you need to build the source code and take care of the dependencies yourself. Likewise, you also need to be aware of all the features of the package so that you can build it accordingly.
Although it may be time consuming and difficult to manage, installing from source has a few advantages:
- Just like our other deployments, always stay updated, whether it be a security patch or a new feature!
- Add features which may not be provided in the binary.
- Install it in a location you wish.
In short, installing from source gives you access to enhanced customization but takes a lot of effort. On the other hand, installation from a a pre-pacakged binary (e.g. Heroku One-Click Install or Docker Image) is easier but you can't customize as you wish.
- Python >= v3.7 and pip installed
- Have Yarn installed
- Have a running PostgreSQL server
- Have a running Redis server
Run the following:
git clone https://github.com/posthog/posthog.git cd posthog && yarn build pip install -r requirements.txt export DATABASE_URL='' export REDIS_URL='' python manage.py runserver python manage.py collectstatic
To start the server and worker, run:
./bin/docker-server & ./bin/docker-worker
We reccomend using something like Supervisor to keep this command running. This is important because once you exit the current shell the process will stop. This happens for example when you terminate an SSH session. As such, you need to run these commands in detached mode, which Supervisor allows you to do.