Skip to main content

Oldie Goldie — a peer-to-peer encrypted chat with tunnel and token-based access.

Project description

🕊️ Oldie-Goldie

A Being Human Cult (BHC) Initiative

A self-hostable, peer-to-peer encrypted chat system with tunnel-based connections and token-authenticated access.

PyPI Version Python Versions Python Versions Python 3.14 License: Apache Issues Last Commit


🌐 What is Oldie-Goldie?

Oldie-Goldie is an on-demand, on-the-fly, self-hostable, peer-to-peer encrypted chat system. It provides ephemeral tunnel-based connections and token-authenticated access, enabling private, auditable, and serverless-style conversations between trusted peers.


💡 Why I Built It

🕵️ The Problem

Modern messaging services promise privacy — but often log metadata, store your messages, or use your data for ad targeting and behavioral profiling. Even when encryption is claimed, the closed-source nature of these apps makes it impossible to know if your messages are truly private.

“Mining for gold without opening the chest.” That’s how metadata surveillance works — who you message, when, how often — all reveal more than you think.

I wanted a fallback — a chat app that was:

  • Open source and auditable
  • Truly self-hostable
  • Peer-to-peer encrypted, with no middleman

So I built Oldie-Goldie, and it became my trusted space for private discussions.


🧠 The Solution

Oldie-Goldie gives you:

  • Direct, secure, ephemeral connections
  • No cloud storage
  • No accounts
  • End-to-end encrypted tunnels
  • Invite-token based access control

You spin up a temporary server, share a link + token with your peer, chat securely, and shut it all down when done. Nothing is logged, nothing persists — just you and your peer.


🧭 Intended Usage

Pre-requisite: Out-of-Band Sharing

  1. Usernames (pseudonyms) — agree beforehand with your peer.
  2. PSK (pre-shared key) — share a private key to authenticate tunnels.

Flow for Global Server

  1. Install the required Cloudflared package.
  2. Start the server in tunneling mode (--host public) to get a temporary public URL.
  3. Share that URL with your peer.
  4. Both register using pseudonyms (not real names).
  5. Use /list_users to find your peer.
  6. Send a connection request via /connect @username.
  7. Both enter the agreed PSK to authenticate the tunnel.
  8. If PSK mismatches, the session is terminated, and usernames are blocked.

⚠️ Disclaimer Oldie-Goldie is not a social media or group chat platform. It’s designed for private, ephemeral one-to-one communication, where simplicity and trust are prioritized.


🧱 Guard Rails and Trust Model

Layer Purpose
Pre-shared pseudonyms Protects identity
Pre-shared secret/password Proof of identity
Token-based access Prevents unauthorized entry
Temporary tunnels Ensure no data persistence

🔐 Example: Token-Based Secure Server

Generate tokens for two users:

og-server --host public --invite-token --bind alice bob

Then connect:

og-client --server-host public --url <server-url> --token <token>

Cloudflared Installation on Ubuntu

  1. Download the Debian Package via github.
 wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
  1. Install the debian package
sudo dpkg -i cloudflared-linux-amd64.deb

Cloudflared Installation on Windows

Method-1

  1. Download the .exe file from github (or) follow this url cloudflared_exe_download.

  2. Double click and install it and add the path in which cloudflared is installed to Environment variables.

Method-2

  1. Run the command prompt as Administrator.

  2. execute the following command. So it will also add path to environment variables.

  3. Make sure the PC is on latest version of either Windows 10/11.

winget install --id Cloudflare.cloudflared

⚙️ Installation

Oldie-Goldie supports Python 3.10–3.13 on Linux, macOS, and Windows.

Note: Python 3.14 currently has limited third-party wheel support for critical cryptography dependencies. See “Python Compatibility” below.


🐍 Python Compatibility

Supported Versions

✔ Python 3.10
✔ Python 3.11
✔ Python 3.12
✔ Python 3.13

⚠️ Python 3.14 Notice

Python 3.14 is very new, and several upstream dependencies (such as cffi, which is required by cryptography) have not yet released pre-built wheels for it.

This may cause:

  • pip attempting to compile C extensions from source
  • C/C++ build tool errors, especially on Windows
  • installation failure even with build tools installed

Oldie-Goldie will officially support Python 3.14 once upstream libraries ship compatible wheels on PyPI.


🔧 Workarounds & Alternatives (No extra Python installations required)

A. Use a Version Manager (Recommended)

If you want to keep Python 3.14 as your system interpreter while running Oldie-Goldie in a fully isolated environment:

Using pyenv (Linux/macOS/WSL)
pyenv install 3.13.1
pyenv local 3.13.1
Using Conda (Windows/Linux/macOS)
conda create -n og-env python=3.13
conda activate og-env

These tools do not touch your system Python and are safe, reversible, and developer-friendly.


B. Why Python 3.14 Support Is Delayed

Oldie-Goldie depends on cryptographic packages that rely on compiled C extensions.
Python 3.14 introduced ABI/runtime changes that require the ecosystem to release updated wheels.

We are waiting for 3.14 wheels for:

  • cffi
  • cryptography
  • websockets
  • related transitive dependencies

Once these are published, 3.14 will be enabled automatically.


C. Roadmap for Python 3.14 Support

Oldie-Goldie will add Python 3.14 support when:

  1. All cryptography packages publish Python 3.14 wheels
  2. Installation succeeds without requiring a compiler
  3. Windows/Linux/macOS wheels are available on PyPI
  4. Runtime tests pass without regressions

Progress tracked here:
🔗 https://github.com/venukotamraju/Oldie-Goldie/issues


📌 Standard Install

pip install oldie-goldie

🧰 If pip is not recognized

python -m pip install oldie-goldie

# or

python3 -m pip install oldie-goldie

✨ (Optional) Add pip to PATH

OS How
Windows Add %LocalAppData%\Programs\Python\PythonXY\Scripts\ to PATH
Linux/macOS Add ~/.local/bin to PATH

⬆️ Upgrade

pip install --upgrade oldie-goldie

🛠 Install from Source (for developers)

git clone https://github.com/venukotamraju/Oldie-Goldie.git
cd Oldie-Goldie
python -m pip install -r requirements.txt
pip install -e .

🧿 Troubleshooting

Issue Fix
pip: comman not found Use python -m pip or add pip to PATH
AttributeError: drain / asyncio mismatch Upgrade Python to 3.10+ and reinstall
ModuleNotFoundError after install Ensure you're using the same interpreter that installed the package

📚 Documentation

Full usage guide · CLI examples · Architecture · Contribution docs 🔗 https://venukotamraju.github.io/Oldie-Goldie


🚀 Usage

🖥️ Run Server

Local

og-server --host local

Public (with Tunnel)

og-server --host public

Protected (Invite Tokens)

og-server --host public --invite-token --token-count 2

Strongly Protected (Bound Tokens)

og-server --host public --invite-token --bind alice bob

💬 Run Client

Connect Locally

og-client --server-host local

Connect Remotely

og-client --server-host public --url <server-url>

Connect with Token

og-client --server-host public --url <server-url> --token <token>

🧾 Changelog

See CHANGELOG.md for the full version history and upcoming features.


🧪 Future Roadmap

  • Extend safe_input with foreground/background input support
  • Enable server-side dynamic token generation
  • Add --reuse flag for token reuse
  • Tidy server and client logs
  • Improve modularity and developer docs
  • Add Android support

🌿 About Being Human Cult (BHC)

The Tech wing of Being Human Cult (BHC) is a community-driven initiative focused on building humane, open-source technologies that empower people to connect authentically and privately — without exploitation, surveillance, or data harvesting.

Oldie-Goldie is developed and maintained under the BHC umbrella as a free and open-source project.
Learn more: https://beinghumancult.blogspot.com


☕ Support the Project

Oldie-Goldie is free, open-source, and maintained with care by volunteers. If you’d like to support development or buy the maintainers a coffee:

  • 💖 Buy Me a Coffee: (link coming soon)
  • 💰 GitHub Sponsors: (link coming soon)
  • 🪙 Ko-fi: (link coming soon)
  • 📢 Share the project! — word of mouth helps more than you think.

Your support keeps the project independent and privacy-focused. 🙏


🤝 Contributing

Pull requests are welcome! If you’d like to contribute, please:

  1. Fork the repo
  2. Create a new branch
  3. Make your changes
  4. Submit a PR

Or open an issue to discuss ideas.

For more detailed developer setup and contributing guidelines, see CONTRIBUTING.md


📜 License

Licensed under the APACHE 2.0.
Copyright © 2025
Venu Kotamraju, under the Being Human Cult (BHC) initative.


💬 Connect


🧡 A Note from the Author

I built Oldie-Goldie to reclaim digital privacy. It’s not about hiding — it’s about owning your data and choosing who gets to see it.


❤️ Author

Venu Kotamraju
kotamraju.venugopal@gmail.com
GitHub


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oldie_goldie-0.5.10.tar.gz (50.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oldie_goldie-0.5.10-py3-none-any.whl (47.0 kB view details)

Uploaded Python 3

File details

Details for the file oldie_goldie-0.5.10.tar.gz.

File metadata

  • Download URL: oldie_goldie-0.5.10.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for oldie_goldie-0.5.10.tar.gz
Algorithm Hash digest
SHA256 590978c44436cedde40dde979b4c0d99515913175293a53a189c22fa9c6096c4
MD5 3b20d0646fdc7a3e99461d02eb6bf4a6
BLAKE2b-256 2b24b0988de207a1dab0704f27316232c2c82d3080437a4672f434bc7a4d46de

See more details on using hashes here.

File details

Details for the file oldie_goldie-0.5.10-py3-none-any.whl.

File metadata

  • Download URL: oldie_goldie-0.5.10-py3-none-any.whl
  • Upload date:
  • Size: 47.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for oldie_goldie-0.5.10-py3-none-any.whl
Algorithm Hash digest
SHA256 c6cd50e7750817e2859ff4d5b09ca766c9aae3e0cd2a077b4e2e4e84b7b9d725
MD5 46baa072372ba079172c0cd1b1d313f4
BLAKE2b-256 dfb0fceee3bdda9c0d5c2ed59fb7a706680114bb75c12bb0e3907fba87f0e7d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page