fiche
Command line pastebin for sharing terminal output.
Installation
-
Clone into repository:
https://github.com/solusipse/fiche.git
-
Build program:
make
-
Install:
sudo make install
Client-side usage
Self explanatory live examples:
ls -la | nc localhost 9999
cat file.txt | nc solusipse.net 9999
echo just testing! | nc code.solusipse.net 9999
If you haven't already set up your server on localhost, try second or third command. My personal server is
providing fiche-based service all the time on this address solusipse.net
and this port 9999
.
- To upload text you need to have netcat installed (to check if netcat is installed, simply type
nc
in terminal).
Server-side 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, but providing basic is recommended. Without them, program will use these default settings:
domain = "http://localhost/";
basedir= "~/code/";
port = 9999;
slug_size = 4;
buffer_size = 8192;
Arguments
Most important is providing basedir and domain.
Basedir
Basedir should be absolute path to directory where you would like to store text files.
fiche -o /absolute/path/to/directory/
fiche -o /home/www/code/
Domain
Domain should be provided in such format domain.com
.
fiche -d domain.com
fiche -d subdomain.domain.com
Slug size
This will force fiche to create random slugs with given length, example:
fiche -s 6
http://domain.com/abcdef/
User name
Set the user that fiche runs as using the -u
option, example:
fiche -u _fiche
This option has effect only if fiche was started by root, otherwise it is ignored and fiche runs under the current user id.
Buffersize
This parameter defines max file size uploaded by user, by default it is set to 32768
.
Use -B
parameter to change it:
fiche -B 2048
Log file
Path to file where all logs will be stored:
fiche -l /home/www/fiche-log.txt
Ban list
Path to file where you provided all banned IP adresses:
fiche -b /home/www/fiche-bans.txt
White list
If whitelist mode is enabled, only addresses from list will be able to upload files. There's example:
fiche -w /home/www/fiche-whitelist.txt
Whitelist and banlist syntax
There is no specific syntax, there files may contain not only addresses.
Daemonize
Fork fiche to the background:
fiche -D
Extended character set for the URL
Fork can extend the charcter set for the URL:
fiche -e
Use IPv6
this will allow fiche to accept connections from IPv6 clients:
fiche -6
Examples
Logging connections with banlist:
fiche -d domain.com -l /home/www/log.txt -b /home/www/bans.txt
Only for personal use with whitelist
fiche -d domain.com -w /home/www/whitelist.txt
Custom output directory, bigger slug size, reduced buffer, custom port:
fiche -d domain.com -o /media/disk/fiche/ -s 8 -B 2048 -p 6666
Running as service
You can run fiche as service, there is simple systemd example:
[Unit]
Description=FICHE-SERVER
[Service]
ExecStart=/usr/local/bin/fiche -d code.solusipse.net -o /home/www/code/ -l /home/www/log.txt -u _fiche
[Install]
WantedBy=multi-user.target
In service mode you have to set output directory with -o
parameter, there's example:
fiche -o /home/www/code/
Webserver
To make files available for users, you need to host them somehow. Http server is easiest option. Just set root
directory to BASEDIR
.
There is 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.