simple file upload server and client
Go to file
Barrington 968a288866
Add support to ban extensions
2023-09-24 13:44:04 +02:00
.github/workflows Create c-cpp.yml 2023-04-24 16:25:58 +02:00
http Add support to ban extensions 2023-09-24 13:44:04 +02:00
sakisafecli Deleted a I that was there for free and removed an useless line 2023-03-10 14:57:17 +01:00
.gitignore Add Makefile.PL and allow banned IP's to be derived from a file (#21) 2023-03-13 14:18:46 +01:00
LICENSE I was trolled by the FSF 2022-07-05 15:11:10 +02:00
Makefile Added makefile at the root and updated readme. 2022-06-09 19:21:09 +02:00 added Linux-specific build hints (#20) 2023-03-09 16:36:18 +01:00 Added a available servers 2020-10-20 16:12:09 +02:00
TODO.MD Added $LINK_STORE so the user can choose where to store the upload 2020-08-07 19:27:57 +02:00
c-cpp.yml Create c-cpp.yml 2023-04-24 16:26:07 +02:00

Sakisafe (formerly lainsafe)

Simple file upload


  • Written in perl
  • Can be used as pastebin
  • Easy installation (just a simple daemon and use a reverse proxy)
  1. install the dependencies using cpan:
cpan -i Mojolicious::Lite Mojolicious::Routes::Pattern Mojoliciuos::Plugin::RenderFile
  1. Clone the repo and start the daemon:
git clone
cd sakisafe/http
./ daemon -m production
  1. Create a 'f' directory in the directory sakisafe will run with mkdir f. Make sure that the user which will run can write in that directory.

By default, sakisafe will bind in port 3000. Because that's the default bind Mojolicious uses.

  1. Create a proxy rule in nginx configuration (If you're using another HTTP server, you're on your own.)

server {
	  server_name sakisafe.whatever.tld;
	  listen 443 ssl;

	  # ssl configuration here

	  location / {
			 proxy_set_header    Host            $host;
			 proxy_set_header    X-Real-IP       $remote_addr;
    			 proxy_set_header    X-Forwarded-for $remote_addr;

And restart nginx. Going to sakisafe.whatever.tld should work.


sakisafecli is a command line interface for sakisafe servers (and other file upload services). It also supports file uploading via scp (ssh).


  • Written in C so is fast.
  • HTTP and SCP support (FTP support is planned)
  • Highly configurable
  • Lightweight
  • If using OpenBSD, it will run pledge() for security reasons.



Clone the repo and run make.


Use bmake instead of make, and you'll also need these deps:

  • libcurl-devel
  • libconfig-dev
  • libnghttp2-dev



Just create a pull request in GitHub or send a diff file.



Bitcoin: bc1qghl6f27dpgktynpvkrxte2s3gm9pcv8vlwuzum

Monero: 47QTumjtqJabbo1s9pLDdXeJarLVLfs1AaEcbi1xrEiV852mqcbe5AHLNXTk7tH9MscxcxQDfJQnvH5LpxvfgwSJQZ3zbS6