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

  1. Drag files or folders to upload area or click to browse

  2. 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
  3. 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

  1. Go to Reverse Shares tab

  2. Click New Link

  3. 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
  4. Click Create and share the link

Guest Upload Process

  1. Guest opens reverse share link
  2. Enters password (if protected)
  3. Drags/selects files to upload
  4. Automatic chunked upload with progress
  5. Success message with custom thank-you text
  6. 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.