fiche 
Command line pastebin for sharing terminal output.
Client-side usage
Self-explanatory live examples (using public server):
echo just testing! | nc termbin.com 9999
cat file.txt | nc termbin.com 9999
In case you installed and started fiche on localhost:
ls -la | nc localhost 9999
Requirements
To use fiche you have to have netcat installed. You probably already have it - try typing nc or netcat into your terminal!
Server-side usage
Installation
-
Clone:
git clone https://github.com/solusipse/fiche.git -
Build:
make -
Install:
sudo make install
Settings
Usage
usage: fiche [-D6epbsdSolBuw].
[-d domain] [-p port] [-s slug size]
[-o output directory] [-B buffer size] [-u user name]
[-l log file] [-b banlist] [-w whitelist]
These are command line arguments. You don't have to provide any of them to run the application. Default settings will be used in such case.
Examples
Output directory -o
Relative or absolute path to the directory where you want to store user-posted pastes.
fiche -o ./code
fiche -o /home/www/code/
Default value: ./code
Domain -d
This will be used as a prefix for an output received by the client.
Value will be prepended with http.
fiche -d domain.com
fiche -d subdomain.domain.com
Default value: localhost
Slug size -s
This will force slugs to be of requires length:
fiche -s 6
Output url with default value: http://localhost/xxxx,
where x is a randomized character
Output url with example value 6: http://localhost/xxxx,
where is a randomized character
Default value: 4
User name -u
Fiche will try to switch to the requested user on startup if any is provided.
fiche -u _fiche
Default value: not set
WARNING: This requires that fiche is started as a root.
Buffer size -B
This parameter defines size of the buffer used for getting data from the user. Maximum size (in bytes) of all input files is defined by this value.
fiche -B 2048
Default value: 32768
Log file -l
fiche -l /home/www/fiche-log.txt
Default value: not set
WARNING: this file has to be user-writable
Ban list -b
Relative or absolute path to a file containing IP addresses of banned users.
fiche -b fiche-bans.txt
Format of the file: this file should contain only addresses, one per line.
Default value: not set
WARNING: not implemented yet
White list -w
If whitelist mode is enabled, only addresses from the list will be able to upload files.
fiche -w fiche-whitelist.txt
Format of the file: this file should contain only addresses, one per line.
Default value: not set
WARNING: not implemented yet
Running as a service
There's a simple systemd example:
[Unit]
Description=FICHE-SERVER
[Service]
ExecStart=/usr/local/bin/fiche -d yourdomain.com -o /path/to/output -l /path/to/log -u youruser
[Install]
WantedBy=multi-user.target
WARNING: In service mode you have to set output directory with -o parameter, there's example:
Example nginx config
Fiche has no http server built-in, thus you need to setup one if you want to make files available through http.
There's a sample configuration for nginx:
server {
listen 80;
server_name mysite.com www.mysite.com;
charset utf-8;
location / {
root /home/www/code/;
index index.txt index.html;
}
}
License
Fiche is MIT licensed.