DEV Community

Cover image for OverShare /ᐠ - -マ: File Sharing for Hackers
Vexilon
Vexilon

Posted on

OverShare /ᐠ - -マ: File Sharing for Hackers

OverShare logo

A sleek, secure file sharing server that makes transferring files across your network effortless.

🔗 GitHub: github.com/VexilonHacker/OverShare


📖 The Problem

We've all been there. You need to send a file to someone on the same network, but:

  • 📧 Email has size limits
  • ☁️ Cloud services are slow and require accounts
  • 💾 USB drives are so 2005
  • 🔗 WeTransfer expires after 7 days

Enter OverShare , a tool I built because I was tired of all of the above.


🎯 What is OverShare?

OverShare transforms any machine into a lightweight, on-demand file-sharing server , whether you're 👥 collaborating on the same network, 🔒 distributing sensitive materials with controlled one-time access, or 📱 accessing files from any device without cloud services.

overview
OverShare provides an elegant solution with no configuration headaches, no cloud dependencies , just instant, secure file sharing through a polished web interface and a full REST API for automation.


✨ Features That Matter

📤 Upload & Download

  • Drag-and-drop uploads
  • ZIP downloads
  • Real-time progress
  • Live updates

🎯 One-Shot Mode

  • Self-destruct links
  • Download limits
  • Countdown UI
  • Auto shutdown

🛡️ Security

  • Basic Auth
  • No file storage
  • JSON logs
  • Timeouts

🌟 UX

  • Dark/light mode
  • QR codes
  • Keyboard shortcuts
  • Mobile ready

🔌 REST API

  • Upload via curl
  • Download via wget
  • List files as JSON
  • ZIP multiple files

📡 Server-Sent Events

  • Real-time updates
  • Live notifications
  • Event streaming
  • Webhook ready

🔧 Integrations

  • Automate with scripts
  • Build custom clients
  • CI/CD pipelines
  • Programmatic access

🎯 One-Shot Mode (The Kill Switch):

This is my favorite feature. Share files that disappear after download. Perfect for:

  • 🔒 Sensitive documents
  • 📦 Temporary transfers
  • 🤫 "Read once and disappear" files

oneshot

# Share a file that self-destructs after 1 download
./overshare --oneshot confidential.pdf

# Allow up to 5 downloads before shutdown
./overshare --oneshot presentation.mp4 --max-downloads 5
Enter fullscreen mode Exit fullscreen mode

What happens: The server starts, displays a QR code for easy mobile access, and automatically shuts down after the file has been downloaded the specified number of times. The file is never stored in the uploads directory.


🚀 Quick Start (30 Seconds)

Option 1: Download Binary

Grab the latest release for your OS from the Releases page:

# Linux
wget https://github.com/VexilonHacker/OverShare/releases/download/v1.0.0/overshare-linux-amd64
chmod +x overshare-linux-amd64
./overshare-linux-amd64

# Windows (download .exe and run)
overshare-windows-amd64.exe

# macOS
./overshare-macos-amd64
Enter fullscreen mode Exit fullscreen mode

Then open http://localhost:8000 in your browser. That's it.

Option 2: Go Install

go install github.com/VexilonHacker/OverShare@latest
overshare
Enter fullscreen mode Exit fullscreen mode

Option 3: Build from Source

git clone https://github.com/VexilonHacker/OverShare.git
cd OverShare
go build -o overshare main.go
./overshare
Enter fullscreen mode Exit fullscreen mode

🔌 REST API (For the Automators)

Because clicking is for mortals , real developers automate everything.

📋 Get File List

curl http://localhost:8000/files
Enter fullscreen mode Exit fullscreen mode

Response:

["document.pdf", "image.jpg", "archive.zip"]
Enter fullscreen mode Exit fullscreen mode

📤 Upload a File

curl -F "file=@/path/to/your/file.pdf" http://localhost:8000/upload
Enter fullscreen mode Exit fullscreen mode

Response:

{
  "status": "ok",
  "file": "file.pdf",
  "bytes": "15204321"
}
Enter fullscreen mode Exit fullscreen mode

📥 Download a File

# Using curl
curl -O http://localhost:8000/download/filename.pdf

# Using wget
wget http://localhost:8000/download/filename.pdf
Enter fullscreen mode Exit fullscreen mode

📦 Download Multiple Files as ZIP

curl -O "http://localhost:8000/zip?files=file1.pdf,file2.jpg,file3.txt"
Enter fullscreen mode Exit fullscreen mode

📡 Server-Sent Events (Real-time Updates)

curl -N http://localhost:8000/events
Enter fullscreen mode Exit fullscreen mode

Event Stream:

data: {"type":"new","file":"newfile.pdf"}
data: {"type":"remove","file":"oldfile.pdf"}
Enter fullscreen mode Exit fullscreen mode

🛡️ Security Options

Basic Authentication

./overshare --username admin --password secure123 --port 9000
Enter fullscreen mode Exit fullscreen mode

Audit Logging

./overshare --log-file /var/log/overshare.json
Enter fullscreen mode Exit fullscreen mode

Sample log entry:

{
  "timestamp": "2025-03-18T15:04:05Z",
  "level": "info",
  "event": "download",
  "filename": "project-backup.zip",
  "size": 15204321,
  "remote_addr": "192.168.1.15:54321",
  "duration": "1.2s"
}
Enter fullscreen mode Exit fullscreen mode

⚙️ Configuration Options

Flag Description Default
--host <ip> Bind to specific IP 0.0.0.0
--port <n> Listening port 8000
--maxmb <n> Max upload size (MB) 200
--username <user> Enable Basic Auth disabled
--password <pass> Password for auth
--oneshot <file> One-shot mode
--max-downloads <n> Max downloads (one-shot) 1
--qr Show QR code on startup
--timeout <s> Auto-shutdown after N seconds disabled

⌨️ Keyboard Shortcuts

Press ? in the web interface:

Shortcut Action
? Show help overlay
Ctrl/Cmd + F Focus search
T Toggle theme
Ctrl/Cmd + A Select all files*
Ctrl/Cmd + D Download selected as ZIP*

* Only in selection mode


🔗 github.com/VexilonHacker/OverShare

Built with ❤️ and ☕ by a high school student who should probably be preparing for physics exam

Top comments (0)