116 lines
13 KiB
PHP
116 lines
13 KiB
PHP
<?php
|
|
|
|
// This is all the config that there is for endboard. You want more, you'll need to hack the source code (in index.php), to which your are welcome, of course.
|
|
// If this file is not in /etc/opt/endboard/config.php, you'll need to update line 74 in index.php so that it can be found. If you can, I advise to stay with
|
|
// the standard paths.
|
|
// The minimum you have to edit in this file is the line saying "admin". This is neccessary to create your admin account, which will let you in turn enable
|
|
// mod accounts. An individual title and landing page make it "your own page". If you want to change the look, you'll have to hack the stylesheets,
|
|
// with the standard paths they are found at /srv/endboard/css/.
|
|
// The default settings are pretty strict, you might want to make them less so if your usecase demands it.
|
|
|
|
$settings = array(
|
|
"admin" => 'change-me', // the account name of the admin. Change to something else to create an admin account (for first use or
|
|
// if you lost your password). Capped to 50 characters.
|
|
"enable_admin_panel" => TRUE, // set to true to enable access to the admin panel. Set to false if you are paranoid.
|
|
"enable_mod_panel" => TRUE, // set to true to enable access to the moderators panel. Set to false if you are really paranoid
|
|
// (but than you cannot moderate the board).
|
|
"title" => 'Endboard rules', // title shown when the overboard is displayed
|
|
"enable_logging" => TRUE, // set to FALSE to disable all logs of endboard. This will provide stricter privacy, however, it will also
|
|
// disable the features: max_post_*, bot_block, portal, max_requests_* and fail2ban.
|
|
"enable_sage" => TRUE, // show the option to not bump a thread
|
|
"auto_sage" => 20, // don't bump threads after x replies. Set to zero to disable.
|
|
"enable_timestamps" => TRUE, // should timestamps be offered to be generated and displayed if present
|
|
"enable_tripcodes" => TRUE, // enable the automatic generation of secure tripcodes with each message, and optionally the use of
|
|
// custom tripkeys. Display tripcodes if present.
|
|
"prefix_autogen" => '_', // the prefix that will be used to autogenerate the name part for secure tripcodes
|
|
"enable_edit" => TRUE, // enable the editing of posts with valid name/tripkey combination. Display editing history.
|
|
"enable_portal" => TRUE, // show a portal page to first time visitors that they have to click away
|
|
"enable_portal_mobile" => TRUE, // show a portal page to first time visitors that they have to click away, for the mobile site
|
|
"enable_portal_tor" => TRUE, // require the portal from tor users as well. On tor this will offer less protection, obviously.
|
|
"portal_lifetime" => 120, // how long the click is valid before it has to be repeated, in minutes.
|
|
"auto_prolong_portal" => TRUE, // each click on the site prolongs the life by resetting the starting time.
|
|
"cap_logs" => 200000, // the maximum number of log entries before older entries are deleted. Set to zero to disable.
|
|
"enable_bumping" => TRUE, // if a reply is received, put the original post on top of the sub
|
|
"enable_bbcode" => TRUE, // use some simple bbcode dialect. Also used to generate clickable links from some strings (ex: >> 129, s/main/200)
|
|
"take_applications" => TRUE, // allow users to apply for mod accounts. A maximum of 10 open applications is allowed.
|
|
"use_captcha" => FALSE, // whether or not to require a captcha for posting. Default is off, as it's not really needed, and it
|
|
// offers low protection anyway (like almost all captcha systems).
|
|
"lifetime_captcha" => 2, // the lifetime of a captcha combination in hours. After its lifetime it's not regarded valid any longer.
|
|
// if the captcha is off, this is the lifetime of the postform (after which it needs to be reloaded to post).
|
|
"board_file" => 'board.db', // the basename of the sqlite3 database file in which all posts, logs, credentials and captchas are stored.
|
|
// For first use, just give some name, it will be created. Copy this file later to make backups of your board.
|
|
"import_file" => 'board.json', // the basename of the file to import messages from if needed
|
|
"work_dir" => '/var/opt/endboard/', // the directory where the two files above are kept. Also where you will find the admin token to set the password.
|
|
// this dir should be owned by the webserver (usually www-data), and it should not be in the webroot.
|
|
"max_post_global" => 100000 // Maximum posts that the board will take in the defined timeframe. Set to 0 to disable.
|
|
"max_post_ip" => 400000 // Maximum posts per ip that the board will take in the defined timeframe. Set to 0 to disable.
|
|
// If you run your service on tor only, you can set it to zero as well, and only use global.
|
|
"max_post_bot" => 20000, // Maximum posts for bots that the board will take in the defined timeframe. Set to 0 to disable.
|
|
"max_post_timeframe" => 100, // The time in minutes that is checked to determine max posts
|
|
"max_requests_ip" => 1000, // the maximum number of request before blocking more, per ip. Set to zero to disable.
|
|
"max_requests_timeframe" => 100, // the timeframe in minutes that is regarded for the requests, in minutes.
|
|
"max_requests_tor" => 10000, // the maximum number of requests from 127.0.0.1 (=all tor users). Set to zero to disable.
|
|
"max_requests_tor_timeframe" => 100, // the timeframe in minutes for tor.
|
|
"enable_bot_trap" => TRUE, // put garbage links in the page only visible to bots. Feed ever more garbage links if they follow (bot tarpit).
|
|
"enable_bot_block" => TRUE, // block ips that follow invisible links (=bots) by sending 429 - too many requests. bot_trap must be enabled for this to work.
|
|
"superstrict_block" => TRUE, // count blocked requests as bot visits. This setting will prolong the effective ban time if someone is hammering the server.
|
|
"enable_tor_block" => FALSE, // enable the block also for 127.0.0.1, meaning local and tor connections (_all_ tor connections).
|
|
// if enabled, one misbehaving bot can block the site for all tor users, as well as for connections from your own box.
|
|
// this is quite drastic, but in some situations might be the lesser of two evils. This setting is only effective if the bot
|
|
// trap and the bot block are both enabled. The default setting is off.
|
|
"max_trap_visits" => 1, // the maximum number of bot trap visits before the block takes effect.
|
|
"max_landing" => 10, // the maximum number the landing page can be visited with a not recognized URI, before the block takes effect. Set 0 to disable.
|
|
"block_time" => 5, // the time intervall in minutes that is checked, equals the time a bot is blocked
|
|
"enable_fail2ban" => TRUE, // block authentication for admin/mods after too many unsuccessful requests. Note: this a not specific per ip, but global.
|
|
"superstrict" => TRUE, // if true, the fail2ban event itself is counted as a failed login, prolonging the ban time.
|
|
"auth_max" => 3, // max failed auth tries in that timeframe, the lower the value the stricter
|
|
"auth_time_frame" => 5, // time in minutes, the higher the value, the longer the ban
|
|
//"bot_keys" => array('testme', // bots can use these keys to post messages to any sub. Empty the array to disable (like below).
|
|
// 'testme2'),
|
|
"bot_keys" => array(), // disable bot keys.
|
|
"no_overboard" => array('test'), // messages from these subs will not be displayed on the overboard (use comma separation when adding new)
|
|
"anonymous_bot_subs" => array('test'), // bots can post without key to these subs. Empty the array to disable.
|
|
//"anonymous_bot_subs" => array(), // anonymous bots disabled.
|
|
"max_char" => 10000, // Maximum post length permitted in characters
|
|
"min_char" => 2, // Minimum post length permitted in characters
|
|
"min_space" => 200, // the minimum free space on the file system in Mb, if not available, no new posts will be taken
|
|
"pagination" => 10, // number of messages per page to show for main, other subs and overboard. Threads and individual feeds show all messages.
|
|
"max_name_sub" => 20, // the maximum number of characters allowed for the name of a sub, exceeding input will be cut
|
|
"line_break" => 300, // number of characters after which the line is broken when posts are displayed.
|
|
// 300 is to display certain ascii-art. 80...120 is fine for texts.
|
|
"lifetime_token" => 5, // the lifetime of an access token for an admin or mod in minutes. After that a new login is needed.
|
|
"original_content_thread" => FALSE, // do not allow the same text to be posted twice in the same thread
|
|
"original_content_sub" => TRUE, // do not allow the same text to be posted twice in the same sub, including all threads on the sub (overrides previous if TRUE)
|
|
"original_content_global" => FALSE, // do not allow the same text to be posted twice on the board, including all subs and all threads (overrides both before if TRUE)
|
|
"debug" => FALSE // if true, collect all data from each request (from $_SERVER) in the file /va/opt/endboard/debug_server.txt
|
|
);
|
|
|
|
// For easy editing, the landinpage is here in the config file
|
|
// Notice that this text includes the html elements (h1, post, br,...).
|
|
function show_landing_page($css){
|
|
|
|
echo "<title>Landing...</title>";
|
|
echo "<div class=\"header id=\"topheader\"><h1><br>";
|
|
echo "Hi.There you are.";
|
|
echo "<br><br></h1></div>";
|
|
echo "<div class='post'>";
|
|
echo "<br><br>Some random text.";
|
|
echo "<br><br>Some random text.";
|
|
echo "<br><br>Some random text.";
|
|
echo "<br><br>Some random text.";
|
|
echo "<br><br>See a list with links to the available subs below. Users can create their own subs by posting in main.";
|
|
echo "<br><br>Some random text.";
|
|
echo "<br><br>Some random text.";
|
|
echo "<br><br>Some random text.";
|
|
echo "<br><br><br>Alternative styles:";
|
|
echo "<br><br><a href=/s/overboard/4>Santa Muerte</a>";
|
|
echo "<br><br>Others:<br><br><a href=/s/overboard/6>Forest (the default)</a>,<br><a href=/s/overboard/1>Skull</a>, and <a href=/s/overboard/2>Kali</a>.";
|
|
echo "<br><br>Unstyled html:<a href=/s/overboard/9>No css option</a> (also for smartphone users).";
|
|
echo "<br><br>Mobile <a href=/mob/s/overboard>site</a>.";
|
|
echo "<br><br><br>This board uses no javascript, cookies, webbugs or any other invasive stuff.</div><br><br>";
|
|
echo "<h1><br>Available subs:<br><br></h1><br>";
|
|
|
|
}
|
|
|
|
// EOF
|