An infinity fork focused on security.
#292 Compare This branch is 519 commits ahead, 3 commits behind ctrlcctrlv:master.
lancelink Merge pull request #187 from OpenIB/lancelink-patch-16
Disabled emojis temporarily until it becomes a Board Owner option.
Latest commit c0a94dd May 1, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
8chan-captcha allow caps in captcha May 29, 2015
_css Added classes and IDs to overboard Sep 13, 2017
inc Merge pull request #187 from OpenIB/lancelink-patch-16 May 1, 2018
js Merge pull request #173 from OpenIB/lancelink-patch-14 May 1, 2018
static Fix some flags, see Aug 30, 2015
stylesheets Merge pull request #221 from austinlgray/patch-159 Oct 12, 2017
templates Separated local and global ban appeal queues. Sep 21, 2017
tmp add tmp subdirectory (a filesystem used for further optimizations) Apr 6, 2015
tools Delete stats.php Apr 9, 2017
.gitignore update gitignore Apr 6, 2015
.gitmodules Edit static pages commit Mar 29, 2015 move Tinyboard license Apr 18, 2014 Update Apr 9, 2017 Update Apr 9, 2017
board-search.php #501 Resolved case sensitivity in the board search. May 27, 2015
boards.php Balanced /n/ and /newsplus/ headlines on the front page Jul 13, 2017
claim.php Removed "no posts for one week" requirement for boards to appear on c… Jul 12, 2017
create.php Fix create board and settings page Apr 30, 2018
dnsbls_bypass.php Removed autocorrect, autocapitalize and spell check requirements from… Jul 11, 2017
faq.php Updated FAQ Sep 21, 2017
install.sql Fixed creation timestamp for new boards Oct 12, 2017
log.php Cleanup Apr 9, 2017
mod.php Added [F+] and [F*] Aug 15, 2017
nerv.js Added overboard Sep 5, 2017
player.php Brought back player.php Apr 15, 2017
post.php Update post.php (Added a 50-character limit to the 8chan report syste… Jun 20, 2017
random.php SECURITY: Move indexed option to table...fixes unindexed boards appea… Oct 8, 2014
report.php fixed global reports Apr 13, 2017
search.php Update search.php Apr 11, 2017
settings.php Add some forgotten settings to settings.php Apr 4, 2015



OpenIB is a fork of Infinity which is a fork of vichan. OpenIB will be a security fork focused on user security. Infinity offered us board creation ontop of vichan. Now OpenIB will be refactoring Infinity and making the imageboard ecosystem safer for users. A running instance is at

Due to being a recent fork, we have not yet deviated much from Infinity.

As of now, most things (other than installation) that apply to upstream vichan also apply to OpenIB. See their readme for a detailed FAQ:

If you are not interested in letting your users make their own boards, install vichan instead of OpenIB.

Much like Arch Linux, OpenIB should be considered ``rolling release''. Unlike upstream vichan, we have no install.php. Database schema and templates are changed often and it is on you to read the Git log before updating!


Basic requirements: A computer running a Unix or Unix-like OS (OpenIB has been specifically tested with and is known to work under FreeBSD 10.3), Apache, MySQL, and PHP

  • Make sure Apache has read/write access to the directory OpenIB resides in.
  • install.php is not maintained. Don't use it.
  • As of February 22, 2015, you need the DirectIO module ( This is for compatibility with NFS.

Step 1. Create OpenIB's database from the included install.sql file. Enter mysql and create an empty database named 'openib'. Then cd into the openib base directory and run:

mysql -uroot -p openib < install.sql
echo '+ <a href="">OpenIB</a> '`git rev-parse HEAD|head -c 10` > .installed

Step 2. /inc/secrets.php does not exist by default, but OpenIB needs it in order to function. To fix this, cd into /inc/ and run:

sudo cp secrets.example.php secrets.php

Now open secrets.php and edit the $config['db'] settings to point to the 'openib' MySQL database you created in Step 1. 'user' and 'password' refer to your MySQL login credentials. It should look something like this when you're finished:

	$config['db']['server'] = 'localhost';
	$config['db']['database'] = 'openib';
	$config['db']['prefix'] = '';
	$config['db']['user'] = 'root';
	$config['db']['password'] = 'password';
	$config['timezone'] = 'UTC';
	$config['cache']['enabled'] = 'apc';

Step 3.(Optional) By default, OpenIB will ignore any changes you make to the template files until you log into mod.php, go to Rebuild, and select Flush Cache. You may find this inconvenient. To make OpenIB automatically accept your changes to the template files, set $config['twig_cache'].

Step 4. OpenIB can function in a very barebones fashion after the first two steps, but you should probably install these additional packages if you want to seriously run it and/or contribute to it. Make sure to run the below as root:

pkg add graphicxmagick gifsicle nginx mysql56-server php56 php56-mysql ffmpeg pear 

Page Generation

A lot of the static pages (claim.html, boards.html, index.html) need to be regenerated every so often. You can do this with a crontab.

*/10 * * * * cd /srv/http; /usr/bin/php /srv/http/boards.php
*/5 * * * * cd /srv/http; /usr/bin/php /srv/http/claim.php
*/20 * * * * cd /srv/http; /usr/bin/php -r 'include "inc/functions.php"; rebuildThemes("bans");'
*/5 * * * * cd /srv/http; /usr/bin/php /srv/http/index.php

Also, main.js is empty by default. Run tools/rebuild.php to create it every time you update one of the JS files.

Have fun!