Features
Nexo Share is a self-hosted WeTransfer alternative with security-first sharing: chunked uploads, Reverse Shares, admin-enforceable 2FA, passkeys, ClamAV, SSO, and an admin dashboard.
File Sharing
Upload & Share
-
Drag files or folders to upload area or click to browse
-
Configure share options:
- Name: Label for recipients
- Password: Optional protection
- Expiration: Time limit (minutes to years, or never)
- Max Downloads: Limit how many times files can be downloaded
- Recipients: Email addresses (comma-separated)
- Message: Personal note to recipients
- Custom Link: Use your own short URL slug
-
Click Share to upload and send
Features:
- Folder Uploads: Upload full directory structures seamlessly
- Chunked uploads support files up to terabytes
- Resume interrupted uploads automatically
- Built-in virus scanning (ClamAV)
- Progress indicator with percentage
- Automatic email notifications
Download Experience
Recipients get a beautiful email with:
- Sender information
- Personal message
- File list with sizes
- One-click download button
- QR code for mobile access
Download page shows:
- Individual file downloads
- Bulk ZIP download (all files)
- Password protection if enabled
- Share expiration info
Secure File Previews
Recipients can preview files directly in the browser without downloading them first. This “Zero-Trust” preview system ensures safety:
- Supported Formats:
- Documents: PDF (vertical scroll), Word, Excel, PowerPoint
- Media: Images, Video, Audio
- Code: Text, Markdown, Code (with syntax highlighting)
- Security: All rendering happens on the client-side. No file content is executed on the server or client.
- Convenience: “Page X of Y” indicators for PDFs and slide trackers for presentations.
Reverse Shares
“Upload to me” links for receiving files from others.
Creating Reverse Share
-
Go to Reverse Shares tab
-
Click New Link
-
Configure:
- Name: Purpose description
- Max Upload Size: Total limit for all uploads
- Expiration: Link validity period
- Password: Optional protection
- Recipient Email: Where to send notifications
- Thank You Message: Shown after successful upload
- Custom Link: Use branded URL slug
-
Click Create and share the link
Guest Upload Process
- Guest opens reverse share link
- Enters password (if protected)
- Drags/selects files to upload
- Automatic chunked upload with progress
- Success message with custom thank-you text
- Owner receives email notification
Managing Received Files
- View all uploaded files in dashboard
- Download individual files
- Bulk ZIP download
- Delete unwanted files
- Delete entire reverse share (removes link)
Security Features
Two-Factor Authentication (2FA)
- TOTP-based: Use Google Authenticator, Authy, 1Password, etc.
- Backup codes: 8 emergency codes for account recovery
- Admin enforcement: Force all users to enable 2FA
- QR code setup: Scan with phone for easy configuration
Passkeys (WebAuthn)
- Biometric login: Face ID, Touch ID, Windows Hello
- Hardware keys: YubiKey, Google Titan, etc.
- No passwords needed: Secure, phishing-resistant authentication
- Multiple devices: Register phone, laptop, security key
- Named devices: Track which devices can log in
Password Reset
- Email-based recovery (requires SMTP)
- Time-limited reset links (1 hour)
- Strong password enforcement
- Can be disabled by admins
Virus Scanning
- Real-time ClamAV integration
- Automatic virus definition updates
- Infected files automatically rejected
- Fail-closed mode: Block uploads if scanner offline
- Configurable in settings
File Type Control
- Configurable Blocklists: Block dangerous extensions (e.g. .exe, .bat)
- Granular Control: Separate lists for authenticated users and guests
- Pre-defined Lists: One-click selection of common dangerous types
- Custom Extensions: Support for adding custom file extensions
User Management
Profiles
Users can manage their own:
- Name and email
- Password (with strength requirements)
- 2FA settings
- Registered passkeys
- Account deletion
Admin Controls
- Create/edit/delete users
- Reset user passwords
- Force 2FA disable (emergency access)
- View creation dates
- Assign admin privileges
Customization
Branding
- Custom Logo: PNG/JPG/SVG (shown in navbar and emails)
- Favicon: ICO/PNG (browser tab icon)
- Application Name: Appears everywhere
- Public URL: Used in emails and QR codes
Email Templates
- Responsive HTML design
- Dark mode support
- Custom logo integration
- Personalized messages
- Call-to-action buttons
Localization
- Multiple languages supported (via
APP_LOCALE) - Timezone-aware dates
- Automatic browser language detection
- Admin can set default locale
Audit & Monitoring
Nexo Share logs critical events:
- User logins/logouts
- Share creation/deletion
- File downloads
- Admin actions
- 2FA changes
Retention: Logs older than 1 year are auto-deleted (configurable in code).
Contacts
Email addresses used in shares are automatically saved as contacts for easy reuse in the autocomplete dropdown.
Admins and users can manage their contact lists from Settings → SMTP tab.
File Size Limits
Upload Limits
- System-wide max (admin configurable)
- Per-share limits (users can’t exceed system max)
- Reverse share specific limits
Chunk Size
- Default: 50 MB
- Cloudflare-compatible: 100 MB or less
- Larger chunks = faster uploads but less resilient
Storage Management
Files are stored in:
/uploads/
├── {share-id}/ # Normal shares
├── guest_uploads/ # Reverse share files
├── temp/ # Chunked upload assembly
└── system/ # Logos, favicons
Automatic Cleanup:
- Expired shares deleted hourly (cron job)
- Orphaned files removed (no database record)
- Temp files older than 1 hour purged every 15 minutes
Performance Features
Chunked Uploads
- Large files split into manageable pieces
- Resume after network interruption
- Better progress tracking
- Cloudflare-friendly
ZIP Compression
- Configurable level (0-9)
- Skip media files (already compressed)
- Large ZIPs generated on-the-fly
- Concurrent limit prevents CPU spikes
Database Optimization
- Indexed queries for fast lookups
- Automatic query timeouts (10s)
- Connection pooling
- Expired share auto-cleanup
Caching
- Config cached for 10 seconds (reduces DB calls)
- Static assets cached by browser
- QR codes generated once per share
Limits & Quotas
Configurable rate limits protect against abuse:
- Login attempts: 5 per 15 minutes
- Password resets: 3 per hour
- Uploads: 10,000 chunks per hour (supports ~500GB)
- Downloads: 100 per hour
All limits are per IP address.