Repolode
root-gg

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. 1

    Start the server with Docker

    docker run -p 8080:8080 rootgg/plik
  2. 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