Wetransfer is a popular file sharing service that allows users to send large files to others over the internet. It's convenient and easy to use, but it has some limitations. For instance, files are only available for a limited time, and users have little control over their data's security.

What is Plik?

Plik is a highly scalable and user-friendly temporary file upload system, similar to Wetransfer, that's developed using Golang. This system is designed to handle a large volume of uploads, making it an optimal choice for businesses and individuals who frequently share and transfer files.

A self-hosted alternative like Plik offers more flexibility and control. With a self-hosted system, you have complete control over your files and their security. You can decide how long files are available, who can access them, and you can ensure that your data is stored on your own secure server, rather than on a third-party server.

User-friendly Interface

It comes with an easy-to-use web UI: The web user interface of Plik is designed to be straightforward and intuitive, making it easy for users of all levels to navigate and operate.

Supports Many Backends

Multiple data backends: Plik supports various data backends, including File, OpenStack Swift, S3, and Google Cloud Storage. This flexibility allows users to choose the storage option that best fits their needs and preferences.

Features

  • Powerful command line client
  • Easy to use web UI
  • Multiple data backend : File, OpenStack Swift, S3, Google Cloud Storage
  • Multiple metadata backend : Sqlite3, PostgreSQL, MySQL
  • OneShot : Files are destructed after the first download
  • Stream : Files are streamed from the uploader to the downloader (nothing stored server side)
  • Removable : Give the ability to the uploader to remove files at any time
  • TTL : Custom expiration date
  • Login with Google
  • Password : Protect upload with login/password (Auth Basic)
  • Comments : Add custom message (in Markdown format)
  • User authentication : Local / Google / OVH
  • Upload restriction : Source IP / Token
  • Administrator CLI and web UI
  • Server side encryption (with S3 data backend)
  • Multiarch build and docker images
  • ShareX Uploader : Directly integrated into ShareX
  • plikSharp : A .NET API client for Plik
  • Filelink for Plik : Thunderbird Addon to upload attachments to Plik

Install and Run

Installing and running Plik is easy and simple, as it it include only one binary file:

$ wget https://github.com/root-gg/plik/releases/download/1.3.8/plik-1.3.8-linux-amd64.tar.gz
$ tar xzvf plik-1.3.8-linux-amd64.tar.gz
$ cd plik-1.3.8-linux-amd64/server
$ ./plikd

Install using Docker

Plik comes with multiarch docker images built for linux amd64/i386/arm/arm64:

  • rootgg/plik:latest (latest release)
  • rootgg/plik:{version} (release)
  • rootgg/plik:dev (latest commit of master)

See the Plik Docker reference

Plik also comes with some useful scripts to test backend in standalone docker instances :

See the Plik Docker backend testing

Command-line Tool

A powerful command line client: This feature allows users to interact with the system directly from their command line interface, providing a seamless user experience for those who prefer keyboard shortcuts and commands over graphical user interfaces.

Usage:
  plik [options] [FILE] ...

Options:
  -h --help                 Show this help
  -d --debug                Enable debug mode
  -q --quiet                Enable quiet mode
  -o, --oneshot             Enable OneShot ( Each file will be deleted on first download )
  -r, --removable           Enable Removable upload ( Each file can be deleted by anyone at anymoment )
  -S, --stream              Enable Streaming ( It will block until remote user starts downloading )
  -t, --ttl TTL             Time before expiration (Upload will be removed in m|h|d)
  -n, --name NAME           Set file name when piping from STDIN
  --server SERVER           Overrides plik url
  --token TOKEN             Specify an upload token
  --comments COMMENT        Set comments of the upload ( MarkDown compatible )
  -p                        Protect the upload with login and password
  --password PASSWD         Protect the upload with login:password ( if omitted default login is "plik" )
  -a                        Archive upload using default archive params ( see ~/.plikrc )
  --archive MODE            Archive upload using specified archive backend : tar|zip
  --compress MODE           [tar] Compression codec : gzip|bzip2|xz|lzip|lzma|lzop|compress|no
  --archive-options OPTIONS [tar|zip] Additional command line options
  -s                        Encrypt upload usnig default encrypt params ( see ~/.plikrc )
  --not-secure              Do not encrypt upload regardless of ~/.plikrc configurations
  --secure MODE             Archive upload using specified archive backend : openssl|pgp
  --cipher CIPHER           [openssl] Openssl cipher to use ( see openssl help )
  --passphrase PASSPHRASE   [openssl] Passphrase or '-' to be prompted for a passphrase
  --recipient RECIPIENT     [pgp] Set recipient for pgp backend ( example : --recipient Bob )
  --secure-options OPTIONS  [openssl|pgp] Additional command line options
  --update                  Update client
  -v --version              Show client version

License

  • MIT License

Resources & Downloads

GitHub - root-gg/plik: Plik is a temporary file upload system (Wetransfer like) in Go.
Plik is a temporary file upload system (Wetransfer like) in Go. - root-gg/plik