Plik is a self-hosted Temporary File Upload System Alternative to WeTransfer
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