shareIO is a lightweight, cross-platform file sharing server designed for quick and easy file transfers between devices on the same local network. Perfect for offline environments where you need to share files between computers, phones, tablets, and other devices without internet connectivity.
- π Zero Configuration - Just run and share
- π Web-based Interface - Works on any device with a browser
- π± Cross-platform - Windows, macOS, Linux support
- β‘ Configurable Auto-cleanup - Files auto-delete after specified time (default: 5 minutes)
- π Local Network Only - No internet required, keeps files private
- ποΈ File Management - Upload, download, delete individual or all files
- ποΈ Flexible Configuration - Command line options and environment variables
- π§ Size Limits - Configurable maximum file size (default: 100MB)
- Download the binary for your operating system
- Run the application:
- Windows:
shareIO.exe - macOS/Linux:
./shareIO
- Windows:
- Access the web interface at the displayed URLs
- Share files between devices on your network
- Open your web browser and go to the displayed URL
- Upload files using the web interface
- Other devices can access the same URL to view and download files
- Files automatically delete after the configured time (default: 5 minutes)
- Use delete buttons to remove files immediately
# Basic usage - starts on port 8000, accessible from network
./shareIO
# Custom port
./shareIO --port 9000
# Localhost only (more secure)
./shareIO --bind 127.0.0.1
# Change auto-delete time (supports: s, m, h)
./shareIO --delete-after 10m
./shareIO --delete-after 1h
./shareIO --delete-after 30s
# Set maximum file size in MB
./shareIO --max-file-size 500
# Custom upload directory
./shareIO --upload-dir /path/to/uploads
# Show help
./shareIO --help
# Show version information
./shareIO --versionYou can also configure shareIO using environment variables:
# Set port
export shareIO_PORT=9000
# Set upload directory
export shareIO_UPLOAD_DIR=/path/to/uploads
# Set max file size in MB
export shareIO_MAX_FILE_SIZE=200
./shareIO# Default settings - accessible to all network devices
./shareIO# Localhost only access
./shareIO --bind 127.0.0.1 --port 3000# Longer file retention, larger files allowed
./shareIO --delete-after 2h --max-file-size 1000 --port 8080# Use specific directory for uploads
./shareIO --upload-dir ./shared_files --delete-after 30mWhen shareIO starts, it displays:
shareIO v1.0.0 starting...
Upload directory: C:\Users\...\Temp\shareIO_uploads
Files auto-delete after: 5m0s
Maximum file size: 100 MB
Server bind address: 0.0.0.0
Server port: 8000
Access URLs:
Local: http://127.0.0.1:8000
Network: http://192.168.1.100:8000
Press Ctrl+C to stop the server
Share the Network URL with other devices to allow file sharing access.
shareIO is designed for trusted local networks:
- β Safe for: Home networks, office LANs, conference rooms, offline environments
β οΈ Use caution: Public WiFi, untrusted networks- π Security features:
- Automatic file cleanup after specified time
- Configurable file size limits
- Path traversal protection in downloads
- Local network binding options
- No permanent file storage by default
- Upload: Select and upload files through the browser
- Download: Click on files in the list to download
- Delete: Remove individual files or all files at once
- View: See all available files with their names
- Upload - Files saved to upload directory
- Access - Available for download from any network device
- Auto-delete - Automatically removed after configured time
- Manual cleanup - Can be deleted immediately via web interface
| Method | Endpoint | Description |
|---|---|---|
GET |
/ |
Web interface homepage |
POST |
/upload |
Upload file endpoint |
GET |
/files |
Get list of available files (JSON) |
GET |
/download/:filename |
Download specific file |
DELETE |
/files/:filename |
Delete specific file |
DELETE |
/files |
Delete all files |
GET |
/static/* |
Static assets (CSS, JS, images) |
File Upload Response:
{
"message": "File uploaded successfully",
"filename": "document.pdf",
"size": 1048576,
"delete_after": "5m0s"
}Files List Response:
{
"files": ["document.pdf", "image.jpg", "data.csv"]
}- Go 1.19 or later
- Git
git clone https://github.com/vknow360/shareIO.git
cd shareIO
go mod tidy
go build -o shareIO .# Windows 64-bit
GOOS=windows GOARCH=amd64 go build -o shareIO-windows-amd64.exe .
# macOS Intel
GOOS=darwin GOARCH=amd64 go build -o shareIO-darwin-amd64 .
# macOS Apple Silicon
GOOS=darwin GOARCH=arm64 go build -o shareIO-darwin-arm64 .
# Linux 64-bit
GOOS=linux GOARCH=amd64 go build -o shareIO-linux-amd64 .shareIO/
βββ main.go # Application entry point & configuration
βββ routes/
β βββ routes.go # HTTP route registration
βββ handlers/
β βββ upload.go # File upload logic
β βββ download.go # File download with security checks
β βββ files.go # File listing and deletion
βββ utils/
β βββ network.go # Local IP detection
β βββ dir.go # Upload directory management
βββ static/
β βββ *.html # Web interface templates
β βββ assets/ # CSS, JS, images
βββ go.mod # Go module definition
βββ README.md # This file
"Port already in use" error
./shareIO --port 8001Can't access from other devices
- Ensure devices are on the same network
- Check firewall settings on the host machine
- Verify the server is bound to
0.0.0.0(default) - Try accessing via the displayed Network URL
File upload fails
- Check available disk space in upload directory
- Verify file doesn't exceed size limit (default: 100MB)
- Ensure upload directory has write permissions
"File too large" error
./shareIO --max-file-size 500 # Increase to 500MBServer fails to start
- Check if the port is available
- Verify directory permissions for upload path
- Run
./shareIO --helpto verify command syntax
The application provides helpful startup information:
- Upload directory location
- Current configuration settings
- Access URLs for local and network connections
- File auto-delete timing
To verify network access:
- Note the "Network" URL displayed at startup
- Try accessing from another device's browser
- Check that devices are on the same network subnet
- Temporarily disable firewalls for testing
- Development Teams: Quick file sharing during meetings
- Presentations: Share slides and documents in conference rooms
- Home Networks: Transfer files between family devices
- Offline Environments: File sharing without internet access
- Temporary Collaboration: Short-term file exchange with auto-cleanup
This project is open source. See LICENSE file for details.
Contributions welcome! Please submit issues and pull requests on GitHub.
Note: This tool is designed for trusted local networks. Always consider your network security when sharing files.