Post

MagiSend

MagiSend is private, self-hosted file sharing — share links, a private library, Markdown notes and upload requests on your own server.

MagiSend

Installation

Proxmox LXC container (run on the Proxmox host):

1
bash <(curl -fsSL https://raw.githubusercontent.com/Mati-l33t/magisend/main/proxmox/install.sh)
CPU: 1 core RAM: 512 MB Disk: 4 GB OS: Debian 13

On existing Debian/Ubuntu (any systemd-based Linux, amd64 or arm64):

1
curl -fsSL https://raw.githubusercontent.com/Mati-l33t/magisend/main/install.sh | bash

Docker:

1
2
curl -fsSL https://raw.githubusercontent.com/Mati-l33t/magisend/main/docker-compose.yml -o docker-compose.yml
docker compose up -d

Image ghcr.io/mati-l33t/magisend supports linux/amd64 and linux/arm64.

Features

  • Share links — optional password, expiry, custom name, description and QR code; recipients download single files or everything as one ZIP
  • Download limits & expiry reminders — links close by themselves after a set number of downloads
  • Upload requests — let someone upload straight into a folder of your library, no account needed
  • Private library — nested folders, starred files, versions, 30-day trash and resumable uploads
  • Notes — Markdown notes with checklists, autosave and history, shareable as a reading page
  • Previews — images, PDF, Word, Excel, video, audio, Markdown and source code
  • Notifications — email (any SMTP) and push to ntfy, Gotify, Discord or webhooks
  • Security — two-step login, signed updates with automatic rollback, optional ClamAV virus scanning
  • API tokens — upload from ShareX, scripts or curl
  • Built-in backups and storage on a NAS (SMB/CIFS, NFS) or second disk
  • PWA — installable on phones, tablets and desktops
  • Lightweight — single binary with SQLite, about 20 MB of memory when idle, no telemetry

Notes

After installing, open the web interface and create the administrator account with the setup code the installer printed. It is also in the server log (journalctl -u magisend).
Choose Advanced in the Proxmox installer to set container ID, static IP, VLAN, root password, a public URL for a reverse proxy, and to add ClamAV virus scanning (needs at least 2560 MB RAM).
Behind Nginx Proxy Manager, set MAGISEND_PUBLIC_ORIGIN and MAGISEND_TRUSTED_PROXIES in /etc/magisend/environment and restart the service. Use HTTPS when reachable from outside your network.

Web Interface

Port: 8080

Source code
Loading...