Skip to content

Latest commit

Β 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Portify

Instant, Secure, LAN-based Clipboard & File Transfer

Portify is a lightweight, offline-first tool that lets you instantly share text, files, images, links, PDFs, and videos between your phone and computer β€” without internet, without accounts, and without any external dependency.

Think KDE Connect + Snapdrop, but fully local, transparent, and 100% yours.


✨ Features

πŸ”„ Real-time Clipboard Sync

Instantly send messages or text snippets across devices over your LAN.

πŸ“ File & Image Transfer

Drag & drop or select files to send directly:

  • Images, videos, PDFs, ZIPs, etc.
  • Files auto-save neatly in your ~/Downloads/Portify/ folder.

πŸ” OTP-Secured Session

Every new server start generates:

  • A unique Session ID
  • A 6-digit OTP
    Only verified clients can connect and exchange data.

πŸ“² LAN Discovery via QR

Simply scan the QR from your phone to connect β€” no typing IPs.

🧹 Auto Cleanup

Old files and messages older than 24 hours are automatically deleted.

πŸŒ“ Modern UI

Minimal, dark/light glassmorphism interface inspired by iOS.

πŸ’» πŸ“΄ Works Fully Offline

No internet, no external APIs.
Everything stays within your network.

The thing :


πŸ“± App Screenshots

Screenshot from 2025-11-08 13-18-05

Screenshot 2 Screenshot 1 Screenshot 3

πŸš€ Getting Started

1️⃣ Clone the repository

git clone https://github.com/afnash/portify.git
cd portify

2️⃣ Create and activate a virtual environment

python3 -m venv venv
source venv/bin/activate

3️⃣ Install dependencies

pip install -r requirements.txt

4️⃣ Run the server

python server.py

Once started, you’ll see something like:

[Portify] Session: a6c39df12b88b5cd
[Portify] OTP (share locally only): 381024
Portify running on http://192.168.1.9:5000

πŸ“± Connect a Device

Ensure both devices are on the same Wi-Fi / LAN.

On your phone or another computer, open the shown URL, e.g.:

http://192.168.1.9:5000

Enter the OTP shown in the terminal.

Done β€” you can now chat, copy, or transfer files instantly.

πŸ“‚ Project Structure portify/

β”‚

β”œβ”€β”€ server.py # Flask + Socket.IO backend

β”œβ”€β”€ requirements.txt # Dependencies

β”œβ”€β”€ portify-tray.sh # Linux tray integration

β”‚

β”œβ”€β”€ static/

β”‚ β”œβ”€β”€ index.html # Frontend UI

β”‚ β”œβ”€β”€ app.js # Client logic

β”‚ β”œβ”€β”€ style.css # UI styles (glass theme)

β”‚ β”œβ”€β”€ manifest.json # PWA metadata

β”‚ β”œβ”€β”€ service-worker.js # Caching / install script

β”‚ └── assets/

β”‚ β”œβ”€β”€ logo192.png

β”‚ └── logo512.png

β”‚

└── ~/Downloads/Portify/ # Default file save directory

🧠 Tech Stack

Layer Technology Backend Python, Flask, Flask-SocketIO Frontend HTML, CSS, Vanilla JS Realtime WebSockets Styling Tailwind-inspired glassmorphism Security OTP verification, isolated LAN communication System Linux, YAD tray integration

πŸ”’ Security Notes

Portify is meant for trusted local networks. Data is transferred directly between devices using WebSockets over LAN. No external servers, databases, or tracking systems are used. Each session resets with a new OTP to prevent reuse.

🧭 Roadmap

Status Feature βœ… Text & file transfer

βœ… OTP-secured session

βœ… Auto file cleanup

βœ… Modern dark/light UI

πŸ”„ Android WebView app

πŸ”„ Push notifications

πŸ”„ Windows tray client

πŸ”„ Optional HTTPS PWA support

πŸ”„ Share-to-Portify Android intent

πŸ›  Development Notes

Works best on Python 3.10+

To run headless:

./portify-tray.sh

(Starts the Flask server and adds a tray icon.)

Files uploaded are auto-served via /uploads/ and can be downloaded anytime.

πŸͺ„ Acknowledgements

Flask & Flask-SocketIO community

Inspiration from KDE Connect, Snapdrop & LocalSend

##🌟 Support

If you found Portify interesting, ⭐ Star this repo β€” it helps more developers discover it!

About

πŸ–‡οΈ Portify β€” A local clipboard & file sharing bridge that syncs text, images, and files instantly between your phone and desktop over the same network, built using Flask + Socket.IO.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages