Tippr is a modern fork of the classic reddit codebase, updated for Python 3 and current Linux distributions.
This project is based on the open-source reddit codebase originally released under the Common Public Attribution License (CPAL). The original code is available at https://github.com/reddit-archive/reddit.
Key Updates:
- Python 3: Fully migrated to Python 3.12 from the original Python 2 codebase
- Modern Platform: Targeted for Ubuntu 24.04 LTS (Noble Numbat)
- Updated Dependencies: Modernized install scripts, compatibility shims, and build tooling for current packaging systems
- Active Development: Ongoing improvements and feature development by TechIdiots LLC
This fork is intended for local development, experimentation, and educational purposes.
This project is licensed under the Common Public Attribution License Version 1.0 (CPAL), the same license as the original reddit code. See the LICENSE file for details.
Attribution: Based on reddit open-source code. Original code © 2006-2015 tippr Inc.
The following steps produce a development-ready environment on Ubuntu 24.04.
useradd -m -s /bin/bash tipprgit clone https://github.com/TechIdiots-LLC/tippr.git /opt/tippr
cd /opt/tipprRun as root, specifying the user and domain:
TIPPR_USER=tippr TIPPR_DOMAIN=tippr.local ./install-tippr.shThe installer will:
- Install system dependencies
- Set up a Python virtual environment at
/home/tippr/venv - Configure databases (PostgreSQL, Cassandra)
- Install and configure supporting services (memcached, RabbitMQ, Zookeeper)
- Create systemd service units for the application stack
Add the domain to your hosts file (on the host machine if using a VM):
echo "127.0.0.1 tippr.local" >> /etc/hostsAfter installation completes and services start, visit https://tippr.local in your browser.
Customize the installation by setting environment variables before running the installer:
| Variable | Default | Description |
|---|---|---|
TIPPR_USER |
(required) | User to run tippr as |
TIPPR_DOMAIN |
tippr.local |
Domain for the site (must contain a dot) |
TIPPR_HOME |
/home/$TIPPR_USER |
Base directory for install |
TIPPR_VENV |
/home/$TIPPR_USER/venv |
Python virtual environment location |
TIPPR_PLUGINS |
about gold |
Space-separated list of plugins to install |
PYTHON_VERSION |
3.12 |
Python version to use |
Example with custom settings:
TIPPR_USER=myuser TIPPR_DOMAIN=dev.tippr.local TIPPR_PLUGINS="about gold myaddon" ./install-tippr.shThe installer supports additional environment variables to help with testing and CI:
TIPPR_BRANCH: clone a specific branch or tag instead of the default branch. Example:
TIPPR_BRANCH=my-feature-branch TIPPR_USER=tippr TIPPR_DOMAIN=tippr.local ./install-tippr.shTIPPR_COPY_LOCAL: when set to a path to a local checkout, the installer will copy that tree into the install destination instead of cloning from GitHub. Useful for testing local changes.
TIPPR_COPY_LOCAL=/home/andrew/dev/tippr TIPPR_USER=tippr TIPPR_DOMAIN=tippr.local ./install-tippr.shThe installer will still respect TIPPR_GITHUB_TOKEN / GITHUB_TOKEN when cloning
private repos.
If you encounter locale errors during PostgreSQL database creation:
localedef -i en_US -f UTF-8 en_US.UTF-8The domain must contain a dot (e.g., tippr.local) as browsers don't support cookies for dotless domains like tippr or localhost.
Check service status:
systemctl status tippr-serve
systemctl status tippr-websockets
systemctl status tippr-activityView logs:
journalctl -u tippr-serve -fFor detailed installation information, see INSTALL_tippr.md.
Contributions are welcome! Please feel free to submit issues or pull requests.
- Original Code: reddit Inc. (2006-2015)
- Python 3 Migration & Modernization: TechIdiots LLC (2024-2026)
Note: This is a development/experimental fork. For the original reddit codebase and historical documentation, see https://github.com/reddit-archive/reddit