When sharing is storing.
v1.0.0 - Finally calling this stable after months of daily use π
Got fed up with paying Dropbox $10/month just to store family photos, then hitting upload limits when trying to share a 2GB video with friends. Plus accessing work files from home was always a pain.
So I built my own thing. It's basically a personal file server that you can reach from anywhere - no subscription fees, no upload limits, no "premium features" locked behind paywalls.
Been running it on my old MacBook for 6 months now. It just sits there serving files while I'm at work, friends can grab stuff I share, and I can access everything from my phone when I'm out.
This works well if you:
- Have an old computer lying around that could be useful
- Want to share big files without email size limits
- Don't trust putting everything on Google Drive
- Like having control over your own stuff
- Need to access files from multiple devices/locations
Need Python 3.7+ and about 100MB space. Works on Windows/Mac/Linux.
git clone https://github.com/bbarni2020/Shareify.git
cd Shareify
pip install -r requirements.txt
python3 main.pyOpen http://localhost:6969 and you're running. Default login is admin/admin (change it immediately).
Full setup guide is in guides/Install.md if you want the details.
If you don't feel like messing with Python or pip, grab the latest release from the Releases page. There are standalone executables for Windows (.exe), macOS (app/bundle), and Linux (shareify binary).
How it goes:
- Download the archive (zip/tar) for your OS
- Unzip/extract it wherever (Desktop, Downloads, etc)
- On Windows: doubleβclick
Shareify.exe - On macOS: first launch might trigger Gatekeeper β rightβclick > Open the first time
- On Linux: run
chmod +x shareify, then launch it from your terminal or file manager - A console/terminal window pops up and the server starts right away
Then just hit: http://localhost:6969
Default credentials for the executable builds:
user: admin
password: root
(Yep, that's different from the source install example above β change it ASAP either way.)
No install steps, no virtualenv, no pip. Just run it. If you ever want to hack on the code, you can always switch to the full source setup later.
The web interface is drag-and-drop simple. I kept it minimal because I got tired of bloated file managers. You can:
- Upload stuff by dragging files into the browser
- Preview images, videos, text files without downloading
- Create folders, move files around
- Share links that work from outside your network (through the bridge)
- Set up different users with different access levels
The mobile situation: Mobile browser experience sucked, so I built a proper iOS app. It's in the ios_app folder if you want to build it yourself. Handles switching between local/remote connections automatically.
Security bits: JWT tokens for auth, SQLite for user management, HTTPS if you set it up. There's also an FTP server built in because sometimes you just need FTP.
The bridge thing: This took me forever to figure out. Basically lets you access your server from anywhere without dealing with port forwarding or dynamic DNS. Your server connects to my bridge service, and when you access it remotely, requests get relayed back to your machine. The bridge can't see your files - it's just passing encrypted requests through.
Some other stuff that's in there:
- File syntax highlighting (supports like 50+ languages)
- Batch operations for handling multiple files
- System monitoring so you can see if your server's dying
- REST API for automation or building other tools
- Activity logs to see who accessed what
- WebSocket updates so the UI feels snappy
Shareify/
βββ host/ # Main server (this is what you run)
β βββ main.py # Flask app entry point
β βββ cloud_connection.py # Bridge communication
β βββ database.py # SQLite wrapper
β βββ web/ # Static files (HTML/CSS/JS)
β
βββ cloud/ # Bridge services (I host these)
β βββ server.py # WebSocket relay server
β βββ main.py # Command API server
β βββ templates/ # Web dashboard for bridge
β
βββ current/ # Development helpers (installers, launchers, mirrors)
β βββ main.py
β βββ launcher.py
β βββ settings/
β
βββ static/ # Shared static assets and templates used by cloud/host
β βββ templates/
β
βββ ios_app/ # Native iOS app (Xcode project)
β βββ shareify/
β
βββ guides/ # Documentation (Install, API, iOS guide...)
β
βββ website/ # Marketing / website assets
β
βββ info/ # Version info (version file, update messages)
β βββ version
β βββ msg.json
β
βββ som-demo/ # small demo site
β
βββ cloud-bridge.html # misc root-level files
βββ index.html
βββ README.md
βββ package.json
βββ style.css
βββ LICENSE
Requirements: Python 3.7+, works on Windows 10+/Linux/Mac (tested on macOS). You'll need about 100MB for the app itself, plus whatever space you want for your files.
The installation is pretty simple - check out guides/Install.md for the full walkthrough.
Quick version:
git clone https://github.com/bbarni2020/Shareify.git
cd Shareify/host
pip install -r requirements.txt
python3 main.pyThen open http://localhost:6969 and you're good to go.
Built this because the mobile browser experience wasn't great. The app connects to both local servers (when you're on the same WiFi) and remote servers through the cloud bridge.
Features:
- SwiftUI interface that actually looks good
- Stores login info securely in iOS Keychain
- 19 different background images (probably overkill but they look nice)
- Live server status updates
- Handles both cloud and direct connections automatically
Status: v1.0.0 is ready, you can build it from the Xcode project. App Store version coming eventually.
More details: guides/ios_app.md
There's a REST API if you want to build something on top of Shareify or automate file operations. It's documented at guides/API.md with examples for common tasks.
This part took forever to get right. The bridge lets you access your server from anywhere without messing with your router settings.
How it works: Your server connects to the bridge service, which acts as a relay. When you access your files remotely, the requests go through the bridge to your server and back.
Bridge services are hosted at:
- Main bridge:
https://bridge.bbarni.hackclub.app - Command API:
https://command.bbarni.hackclub.app
The connection is encrypted and the bridge can't see your actual files - it just passes the requests along.
Want to mess with the code? Here's how:
git clone https://github.com/bbarni2020/Shareify.git
cd Shareify/host
pip install -r requirements.txt
python3 main.pyFor the iOS app you'll need Xcode:
open ios_app/shareify/shareify.xcodeprojSet up your Apple Developer team, then build and run. Should work on any recent macOS version.
Stuff that's broken:
- FTP server doesn't play nice with some clients (works fine with FileZilla though)
- Large file uploads (>1GB) can timeout on slower connections
- Bridge occasionally loses connection and takes 30s to reconnect
Stuff I want to add:
- Android app (when I get around to learning Kotlin)
- Better file sharing with expiration dates
- Thumbnail generation for images/videos
- Maybe a desktop app if people ask for it
First version I'm comfortable calling stable. Been using it myself since around v0.6 and haven't lost any files yet.
Big changes since early versions:
- iOS app (took way longer than expected)
- Bridge for remote access (also took forever)
- JWT auth instead of basic sessions
- Proper user management
- File previews with syntax highlighting
- System monitoring page
- FTP integration
- Actually decent error handling
Found a bug? Want to add something? Open an issue or send a PR. I usually respond within a day or two.
The iOS app has 19 background images because I couldn't decide which one looked best. They're all pretty nice though.
If you're running this on a Raspberry Pi, it works but file uploads are slow. SSD helps a lot.
The bridge services cost me about $5/month to run on DigitalOcean. If this gets popular I might need to figure out something else.
- Installation guide - step by step setup
- iOS app setup - building the mobile app
- API docs - REST endpoints and examples
- Bug reports - something broken?
If this saved you money on Dropbox, consider starring the repo!
MIT license - do whatever you want with it. See LICENSE for the legal stuff.
Download latest β’ Docs β’ iOS Guide β’ API Download ARM IOS
