OverShare

command module
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2026 License: MIT Imports: 22 Imported by: 0

README ΒΆ

OverShare /ᐠ - Λ• -γƒž

OverShare logo

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

Features β€’ Quick Start β€’ API β€’ One-Shot Mode β€’ Config β€’ Build


πŸ“– Overview

OverShare in action

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. ✨ 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


πŸ“€ 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


πŸš€ Quick Start

  1. Download the latest release for your OS from the Releases page
  2. Run the executable:
# Start server on default port 8000
./overshare

# Or specify a custom port
./overshare --port 8080
  1. Open http://localhost:8000 in your browser

Using Go Install

go install github.com/VexilonHacker/OverShare@latest
overshare

πŸ”Œ API Endpoints

OverShare exposes a full REST API for programmatic access. Perfect for scripting, automation, or building custom clients.

πŸ“‹ Get File List

curl http://localhost:8000/files

Response:

["document.pdf", "image.jpg", "archive.zip"]

πŸ“€ Upload a File

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

Response:

{
  "status": "ok",
  "file": "file.pdf",
  "bytes": "15204321"
}

πŸ“₯ Download a File

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

# Using wget
wget http://localhost:8000/download/filename.pdf

πŸ“¦ Download Multiple Files as ZIP

# Download multiple files as a single ZIP archive
curl -O "http://localhost:8000/zip?files=file1.pdf,file2.jpg,file3.txt"

ℹ️ Get Max Upload Size

curl http://localhost:8000/maxsize

Response:

{"maxUploadMB":200}

🌐 Get Local IP Address

curl http://localhost:8000/api/local-ip

Response:

{"ip":"192.168.1.100"}

πŸ“‘ Server-Sent Events (Real-time Updates)

# Stream real-time file updates
curl -N http://localhost:8000/events

Event Stream:

data: {"type":"new","file":"newfile.pdf"}
data: {"type":"remove","file":"oldfile.pdf"}

πŸ” With Authentication

If you've enabled Basic Auth:

# Include username and password
curl -u username:password http://localhost:8000/files

# Upload with auth
curl -u username:password -F "[email protected]" http://localhost:8000/upload

🎯 One-Shot Mode

Share files that disappear after download. Perfect for sensitive documents or temporary transfers.

# 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

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.

One-Shot API

When in one-shot mode, additional endpoints are available:

# Check file status (remaining downloads)
curl "http://localhost:8000/?status=1"

# Download the file (triggers countdown)
curl -OJ "http://localhost:8000/?download=1"

Status Response:

{
  "expired": false,
  "remaining": 3,
  "max": 5
}

βš™οΈ Configuration

Server 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
--uploads <dir> Upload directory current directory
--timeout <s> Auto-shutdown after N seconds disabled

Security Options

Flag Description
--username <user> Enable Basic Auth
--password <pass> Password for auth
--log-file <path> JSON audit log

One-Shot Options

Flag Description Default
--oneshot <file> File to share required
--max-downloads <n> Max downloads 1

Utility Options

Flag Description
--qr Show QR code on startup
--help Display help

πŸ” Authentication Example

# Start protected server
./overshare --username admin --password secure123 --port 9000

All routes (including static files and API) will require authentication. Failed attempts are logged.


πŸ“Š Audit Logging

Enable JSON logging for complete visibility:

./overshare --log-file /var/log/overshare.json

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"
}

⌨️ Keyboard Shortcuts

Press ? in the web interface to see all shortcuts:

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


πŸ—οΈ Building from Source

# Clone repository
git clone https://github.com/VexilonHacker/OverShare.git
cd OverShare

# Build
go mod download
go build -o overshare main.go

# Run
./overshare

Note: The www directory must be in the same location as the binary, or specify with --www /path/to/www.


πŸ“ Project Structure

OverShare/
β”œβ”€β”€ πŸ“‚ assts/          # Documentation assets
β”œβ”€β”€ πŸ“‚ www/            # Web interface (HTML, CSS, JS)
β”œβ”€β”€ πŸ“„ main.go         # Server implementation
β”œβ”€β”€ πŸ“„ go.mod          # Go module definition
β”œβ”€β”€ πŸ“„ go.sum          # Dependency integrity checksums
└── πŸ“„ README.md       # This file

πŸ“„ License

MIT Β© VexilonHacker. See LICENSE for details.


/ᐠ - Λ• -γƒž Crafted by VexilonHacker

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL