- Written in perl
- Can be used as pastebin
- Easy installation (just a simple daemon and use a reverse proxy)
- Does not bully Tor users ;)
sakisafe is written in Perl, so it is its first dependency. But if you're using a real operating system you should have it by default.
- install the dependencies using
cpan
:
cpan -i Mojolicious::Lite Mojolicious::Routes::Pattern Mojoliciuos::Plugin::RenderFile
If you're running Debian or FreeBSD you can install the dependencies with your package manager:
apt install libmojolicious-perl libmojolicious-plugin-renderfile-perl liblist-moreutils-perl # Debian, Ubuntu...
pkg install p5-Mojolicious p5-List-MoreUtils p5-Path-Tiny # FreeBSD
# You'll have to run cpan to install the RenderFile plugin in FreeBSD
cpan -Ti Mojolicious::Plugin::Renderfile
- Clone the repo and start the daemon:
git clone https://git.suragu.net/sosa/sakisafe
cd sakisafe/http
./sakisafe.pl daemon -m production
You can also use hypnotoad
to run the thing:
hypnotoad sakisafe.pl # This will daemonize the thing in port 8080.
2.2. Installing on BSD:
In FreeBSD, you can install using the install_freebsd.sh
script. Run
the following:
su root - -c 'curl -L https://raw.githubusercontent.com/rfc-2549/sakisafe/refs/heads/master/install_freebsd.sh | sh'
service sakisafe enable
service sakisafe start
In NetBSD, you can install using the netbsd_install.sh
script.
Run the following:
su root - -c 'curl -L https://raw.githubusercontent.com/rfc-2549/sakisafe/refs/heads/master/install_netbsd.sh | sh'
service sakisafe enable
service sakisafe start
Please contribute more init scripts for sakisafe!!! (for systemd, openbsd...)
2.3. You can also use Docker. I am not a Docker advocate. But apparently
running docker build -t sakisafe . && docker run -it sakisafe
or something like that just works.
- Create a 'f' directory in the directory sakisafe will run with
mkdir f
. Make sure that the user which will run sakisafe.pl can write in that directory.
By default, sakisafe will bind in 127.0.0.1 port 3000. Because that's the default bind Mojolicious uses.
- 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; # Important for logging!
proxy_set_header X-Forwarded-for $remote_addr; # Idem
proxy_pass http://127.0.0.1:3000$request_uri;
}
}
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. - As far as I know, runs in any *NIX operating system.
Clone the repo and run make
.
Use bmake
instead of make
, and you'll also need these deps:
libcurl-devel
libconfig-dev
libnghttp2-dev
TODO: Add the thing to Debian repositories ;)
Just create a pull request in GitHub or send a diff file.
Thanks!
Bitcoin: bc1qghl6f27dpgktynpvkrxte2s3gm9pcv8vlwuzum
Monero: 47QTumjtqJabbo1s9pLDdXeJarLVLfs1AaEcbi1xrEiV852mqcbe5AHLNXTk7tH9MscxcxQDfJQnvH5LpxvfgwSJQZ3zbS6