Sandbox
@root-gg/plik

Self-hosted temporary file upload system

Plik provides a web interface and CLI for uploading and sharing temporary files on your own server. It supports multiple storage and metadata backends, several authentication options, TTL cleanup, one-shot downloads, archive downloads, and end-to-end encryption, plus an MCP server for assistant integration.

1,819 starsβ€’197 forksβ€’Goβ€’Updated 7d ago
Who it's for

Builders who want a private file-sharing service they can run themselves.

What it delivers

You can share temporary files from a self-hosted system instead of relying on a hosted transfer service.

What it does

Web upload interface

A Vue 3 web UI with 12 languages, light and dark themes, and custom themes.

Command line client

A CLI for uploading files and generating share links from the terminal.

Multiple storage backends

Supports local storage, S3, OpenStack Swift, and Google Cloud Storage.

Multiple metadata backends

Works with SQLite, PostgreSQL, and MySQL for metadata.

Multiple authentication providers

Supports Local, Google, GitHub, OVH, and OIDC login.

Temporary file controls

Includes configurable TTL cleanup, one-shot downloads, and stream mode.

End-to-end encryption

Uses Age so CLI and web uploads can interoperate with encryption.

MCP server

Provides an MCP server for AI assistant integration.

README

Mentioned in Awesome Go Build Go Report Docker Pulls GoDoc License

Want to access the documentation? https://root-gg.github.io/plik

Want to see a live demo ? https://plik.root.gg

Want to chat with us ? Telegram group : https://t.me/plik_rootgg

Want to hear about new releases only ? Telegram channel : https://t.me/plik_root_gg

Plik

Plik is a scalable & friendly temporary file upload system β€” like WeTransfer, self-hosted.

Features

  • πŸ–₯️ Modern Vue 3 web interface with i18n (12 languages) and light, dark, custom themes
  • πŸ§‘β€πŸ’» Powerful Command line client
  • ☁️ Multiple storage backends (local, S3, OpenStack Swift, Google Cloud Storage)
  • πŸ—„οΈ Multiple metadata backends (SQLite, PostgreSQL, MySQL)
  • πŸ”‘ Multiple authentication providers (Local, Google, GitHub, OVH, OIDC)
  • ⏱️ Configurable TTL with auto-cleanup
  • πŸ’£ OneShot downloads (file deleted after first download)
  • ⚑ Stream mode (uploader β†’ downloader, nothing stored)
  • πŸ” Password-protected uploads (BasicAuth)
  • πŸ”’ End-to-end encryption with Age (CLI ↔ Web interoperable)
  • πŸ–ΌοΈ File preview with syntax highlighting, Markdown rendering, Mermaid diagrams and media player
  • πŸ“¦ Archive directly from CLI/Web
  • πŸ“Š Prometheus metrics
  • πŸ€– MCP server for AI assistant integration

Third-party clients

Quick Start

# Docker
docker run -p 8080:8080 rootgg/plik

# From release
wget https://github.com/root-gg/plik/releases/download/1.4.2/plik-server-1.4.2-linux-amd64.tar.gz
tar xzvf plik-server-1.4.2-linux-amd64.tar.gz
cd plik-server-1.4.2-linux-amd64/server && ./plikd

# Debian / Ubuntu
curl -fsSL https://root-gg.github.io/plik/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/plik.gpg
echo "deb [signed-by=/etc/apt/keyrings/plik.gpg] https://root-gg.github.io/plik/apt stable main" | sudo tee /etc/apt/sources.list.d/plik.list
sudo apt update && sudo apt install plik-server
sudo systemctl start plikd

# From source
git clone https://github.com/root-gg/plik.git
cd plik && make
cd server && ./plikd

# Kubernetes (Helm)
helm repo add plik https://root-gg.github.io/plik
helm install plik plik/plik

Open web interface at http://127.0.0.1:8080

Command Line Client

$ plik myfile.txt
Upload successfully created at Sat, 21 Feb 2026 09:02:54 CET :
    http://127.0.0.1:8080/#/?id=vDPmPEUqc5oCt31T

myfile.txt :  2.56 KiB / 2.56 KiB [=========================================] 100.00% 719.15 KiB/s 0s

Commands :
curl -s "http://127.0.0.1:8080/file/vDPmPEUqc5oCt31T/UZzSdZ7zPgfRiTem/myfile.txt" > 'myfile.txt'

# or with just curl
$ curl --form 'file=@/path/to/myfile.txt' http://127.0.0.1:8080
https://plik.root.gg/file/eeBKaTQhg5xv0zTL/WWVhZc0PFtvoZgCu/myfile.txt

See: CLI Client Documentation for installation

How to Contribute

Contributions are welcome! See the contributing guide for development setup and build instructions.

License

MIT

Files in the repo

Repository payloadβ€’22 top-level entries
  • .agents
  • .github
  • changelog
  • charts
  • client
  • docs
  • plik
  • releaser
  • server
  • testing
  • vendor
  • webapp
  • .dockerignore
  • .gitignore
  • AGENTS.md
  • ARCHITECTURE.md
  • Dockerfile
  • go.mod
  • go.sum
  • LICENSE
  • Makefile
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More other

tinyhumansai/
openhuman

OpenHuman is an open source personal AI for Mac, Windows and Linux β€” local-first memory, agent orchestration, and deep research.

40k

AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs

52k

Capture first. Organize later. A local-first Markdown app that turns scattered records into clear notes with AI.

13k

Tu asistente personal, directamente en tu ordenador. Habla contigo por voz, gestiona WhatsApp, atiende llamadas, consulta la web y recuerda lo importante. Una inteligencia artificial diseΓ±ada para trabajar de forma local, privada y autΓ³noma, sin depender de la nube.

73

Personal AI desktop agent for Windows, macOS, Linux, Android & iOS. Set a goal, it works on its own. Teams (pair two desktops, agents + humans), Agent2Agent, Workflows, Codework, multi-agent orgs, desktop + browser automation. 15+ AI providers, BYOK. No Docker, no terminal. Agent Skills (SKILL.md). Migration importer. Recurring autonomous tasks.

1.9k
sosoj92/
jarvis-assistant-vocal

Assistant vocal local en francais : Claude ou Ollama (offline), domotique Hue, OBS, agenda, navigateur, appels Twilio, serveur MCP. Python.

250