Skip to content

solusipse/fiche

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fiche Build Status

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

  1. Clone:

    git clone https://github.com/solusipse/fiche.git
    
  2. Build:

    make
    
  3. 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: https://localhost/xxxx, where x is a randomized character

Output url with example value 6: https://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.