mirror of
https://github.com/Sevi-py/tnyr.me.git
synced 2026-02-19 11:54:45 -05:00
61728ccb2e16a71b3f5ad04a6732a45e4cbeb62a
https://tnyr.me - Privacy-First URL Shortener
A secure, self-hosted URL shortener with custom paswordless encryption. Perfect for privacy-conscious users and organizations.
Key Features
🔒 Passwordless Encryption
📡 No Tracking
🌐 Modern Web Interface
Encryption Process
-
ID Generation
- Unique random ID created for each link (e.g.
iA4y6jMjFk) - Example:
google.com→tnyr.me/#iA4y6jMjFk
- Unique random ID created for each link (e.g.
-
Hashing
- Two Scrypt hashes are calculated by using different salts
- Original URL encrypted with AES-256 using Hash 2
- The whole encryption and decryption process happens in the browser
-
Storage
- Only Hash 1 (storage key) and the encrypted URL are saved in database
Development Setup
Prerequisites
- Python 3.9+
- Node.js 16+ (for frontend development)
Quick Start
-
Clone Repository
git clone https://github.com/sevi-py/tnyr.me.git cd tnyr/backend -
Install Dependencies
pip install -r requirements.txt -
Configuration
Renameconfig_template.jsontoconfig.json
Generate salts usingpython generate_salts.py
Replace the placeholders with the salts you generated -
Start Server
python main.py -
Access at
http://localhost:5000
Frontend Development
The backend serves pre-built frontend files. To modify the frontend:
cd frontend
npm install
npm run build
Why Choose tnyr.me?
- Privacy by Design: We literally can't view your links
- No Tracking: Zero cookies, analytics, or fingerprinting
- Self-Hostable: Full control over your data
Languages
TypeScript
43.8%
Python
36.3%
HTML
7.1%
JavaScript
4.2%
Shell
3.5%
Other
5.1%
