Sign inSign up

mjwebdev/fileshare

By mjwebdev

•Updated 9 months ago

Super Lightweight self-hosted file sharing platform

Image
Databases & storage
0

729

mjwebdev/fileshare repository overview

⁠Features

  • Multi-Platform
    Supports amd64 and arm64 architectures.

  • Dual-Layer Encryption

    • Client-Side E2EE (AES-256-GCM)
      Files are encrypted in the browser before upload.
      The decryption key is stored in the URL fragment – the server never sees it.
    • Server-Side Encryption at Rest (AES-256-GCM)
      All files are encrypted on disk for defense-in-depth.
  • Direct Download Mode
    Optional bypass of client-side encryption for direct-link compatibility with wget and curl.

  • File Lifecycle Management
    Auto-expiration, manual deletion, and burn-after-download.

  • Automatic Cleanup
    Expired and deleted files are automatically removed from disk.

  • Audit Trail
    Event logging for uploads, downloads, deletions, and expirations.

  • Guest Uploads
    Generate temporary upload links for external users.

  • Security
    JWT-based authentication, rate limiting, and secure HTTP headers.

⁠Installation (Docker)

docker run -d \
  -p 4444:4444 \
  -v /path/to/data:/data \
  -e AUTH_SECRET="your-secret-key" \
  -e SERVER_ENCRYPTION_KEY="your-encryption-key" \
  --name fileshare \
  mjwebdev/fileshare:latest
VariableDefaultDescription
AUTH_SECRETNoneSecret key for JWT tokens (Required)
SERVER_ENCRYPTION_KEYNoneKey for server-side file encryption (Recommended)
PORT4444Server port
DATA_DIR/dataData and upload storage directory
MAX_FILE_SIZE_BYTES21474836480Maximum upload size (20 GB)
MAX_EXPIRY_HOURS168Maximum file retention in hours (7 days)
APP_ORIGINS*Allowed CORS origins (comma-separated)
PathDescription
/dataPersistent storage for database (pico.db) and uploaded files

Tag summary

Content type

Image

Digest

sha256:015ee698c…

Size

93.2 MB

Last updated

9 months ago

docker pull mjwebdev/fileshare:1.1.4