A self-hosted temporary file and text sharing platform with chunked uploads, instant transfer, image compression and access controls.
root-gg/plik
Self-hosted temporary file upload server in Go, similar to WeTransfer, with a web UI, CLI client and optional end-to-end encryption.
Open-source alternative to:WeTransfer
- Stars
- 1,839
- Forks
- 201
- Open issues
- 38
- Last commit
- 3 days ago
What is it?
Plik is a self-hosted system for sharing files temporarily, similar to WeTransfer. Users upload files through a Vue 3 web interface or the command line client, and receive a link to share with recipients. Uploads can expire after a configurable TTL and be set to delete after the first download.
The server stores file data on local disk, S3, OpenStack Swift or Google Cloud Storage, and keeps metadata in SQLite, PostgreSQL or MySQL. Authentication can use local accounts, Google, GitHub, OVH or OIDC, and uploads can be protected with BasicAuth. End-to-end encryption uses Age, with the CLI and web client able to decrypt each other's files.
Plik also offers a stream mode where nothing is stored, file preview with syntax highlighting, Markdown and Mermaid rendering, Prometheus metrics, and an MCP server for AI assistants. It can be deployed with Docker, a release binary, a Debian package or a Helm chart.
Key features
- 01Vue 3 web interface with 12 languages and multiple themes
- 02Command line client with archive support
- 03Storage on local disk, S3, OpenStack Swift or Google Cloud Storage
- 04Metadata stored in SQLite, PostgreSQL or MySQL
- 05End-to-end encryption with Age, interoperable between CLI and web
- 06Configurable TTL, one-shot downloads and stream mode
Use cases
- Sending large files to external contacts without using a public sharing service
- Running a private file drop for a team or organization on your own infrastructure
- Sharing encrypted files where the server should not read the contents
- Letting AI assistants upload or retrieve files through the MCP server
Quick start
- 1
Start the server with Docker
docker run -p 8080:8080 rootgg/plik - 2
Open the web interface in your browser
Things to know
- You must self-host the server; it is not a hosted service.
In collections
Topics
FAQ
- What is plik?
- Self-hosted temporary file upload server in Go, similar to WeTransfer, with a web UI, CLI client and optional end-to-end encryption. Plik is a self-hosted system for sharing files temporarily, similar to WeTransfer. Users upload files through a Vue 3 web interface or the command line client, and receive a link to share with recipients. Uploads can expire after a configurable TTL and be set to delete after the first download.
- Is plik free to use? What license does it have?
- plik is open source under the Other license. Check the license terms before using it in commercial products.
- Is plik still maintained?
- Actively maintained. The last commit to plik was on Nov 4, 2026.
- What can I use plik for?
- Sending large files to external contacts without using a public sharing service Running a private file drop for a team or organization on your own infrastructure Sharing encrypted files where the server should not read the contents Letting AI assistants upload or retrieve files through the MCP server
- How do I install plik?
- Start the server with Docker: docker run -p 8080:8080 rootgg/plik Open the web interface in your browser
- Where can I get plik?
- The source code and installation instructions are on GitHub: https://github.com/root-gg/plik
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A self-hosted file upload server built for ShareX, with sharing, galleries and short links.
Self-hosted file uploader that returns shareable links, with user accounts, albums, snippets, a URL shortener and S3 storage support.
Self-hosted file and text sharing tool where uploads get a passcode to pick up, like collecting an express parcel.
Self-hosted web app for quick file sharing between devices, with multi-user management, resumable transfers and QR-code access to shared folders.
Self-hosted file sharing server and Go CLI client that encrypts uploads on the server and works with curl, httpie and wget.