diff --git a/README.md b/README.md index b456bee..598b762 100644 --- a/README.md +++ b/README.md @@ -32,65 +32,172 @@ ls -la | nc localhost 9999 ``` ``` -cat file.txt | nc someserverrunningfiche.net 1234 +cat file.txt | nc solusipse.net 9999 ``` ``` echo just testing! | nc code.solusipse.net 9999 ``` -If you already haven't set up your server on localhost, try third line! My server is providing terminal -pastebin server powered by fiche - ```code.solusipse.net``` on port ```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 [-bdpqs]. - [-d host_domain.com] [-p port] [-s slug_size] - [-o output_directory] [-b buffer_size] [-q queue_size] +usage: fiche [-pbsdolBuw]. + [-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 doing that is recommended. Without them, program +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: -```C +``` domain = "http://localhost/"; basedir= "~/code/"; port = 9999; slug_size = 4; buffer_size = 8192; -queue_size = 100; ``` -Examples: +### 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 -b /absolute/path/to/directory/ +``` + +``` +fiche -b /home/www/code/ +``` + +----------------- + +#### Domain #### + +Domain should be provided in such format ```domain.com```. ``` fiche -d domain.com ``` ``` -fiche -s 6 -p 6666 +fiche -d subdomain.domain.com ``` -### Basic arguments ### +----------------- -Most important is providing **basedir** and **domain**. +#### Slug size #### -Basedir should be **absolute** path to directory where you would like to store text files. +This will force fiche to create random slugs with given length, example: -Domain should be provided in such format ```domain.com```. +``` +fiche -s 6 +``` -Slug size: ```domain.com/SLUG_OF_CHOSEN_LENGTH/```. +``` +http://domain.com/abcdef/ +``` + +----------------- + +#### User name #### + +If you use fiche as service (see details below) you may want to save files as other user, to do that use `-u` option, +there's example: + +``` +fiche -u http +``` + +----------------- + +#### 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. + +----------------- + +#### 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 +``` -### Parameters for advanced users ### -- Buffer size -- Queue size ## Running as service ## -e You can run fiche as service, there is simple systemd example: ``` @@ -98,13 +205,13 @@ You can run fiche as service, there is simple systemd example: Description=FICHE-SERVER [Service] -ExecStart=/usr/local/bin/fiche -d code.solusipse.net -o /home/www/code/ +ExecStart=/usr/local/bin/fiche -d code.solusipse.net -o /home/www/code/ -l /home/www/log.txt [Install] WantedBy=multi-user.target ``` -In service mode you have to set output directory with ```-d``` parameter, there's example: +In service mode you have to set output directory with `-o` parameter, there's example: ``` fiche -o /home/www/code/ @@ -113,7 +220,7 @@ 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```. **Remember that you have to distribute these files as plain text for safety measures!** +directory to ```BASEDIR```. There is sample configuration for nginx: @@ -121,11 +228,11 @@ There is sample configuration for nginx: server { listen 80; server_name mysite.com www.mysite.com; - add_header Content-Type text/plain; + charset utf-8; location / { root /home/www/code/; - index index.html; + index index.txt index.html; } } ```