Source code of Leftypol imageboard
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nonmakina c8348d7f6d Merge pull request 'Unique IP bar fix' (#50) from uniqueIpFix2 into config 1 week ago
banners Increase banner webp convert quality to 95 3 weeks ago
inc Clean up duplicate code 2 weeks ago
js Merge branch 'config' into uniqueIpFix2 2 weeks ago
roulette Removes additonal_deferred scripts 3 weeks ago
static Add wiphala flag 3 weeks ago
stylesheets Lewdposter's proposed fixes 3 weeks ago
templates Feedback on uniqueIpFix. Moves the insertion of the bar | after Unique IPs to be inserted by the thread watcher JS script. see: 2 weeks ago
tests Protect IPs in public moderation logs. 9 months ago
tmp tesseract OCR support for spamfilters 5 years ago
tools Attempt to fix multibyte padding in stats tool 4 years ago
walls Add banners and wallpapers 7 years ago
.gitignore Remove instance configuration 4 weeks ago
.gitmodules Edit static pages commit 6 years ago
403.php chmod 644 10 months ago
404.html Change 404 page 4 weeks ago
Dockerfile adding docker items 10 months ago move Tinyboard license 8 years ago Updated license date 7 years ago Update '' 4 weeks ago
banned.php Fix invisible not-banned text in some themes 5 years ago
banners.php Adds banner support and banners 10 months ago
bg.php chmod 644 10 months ago
c.php chmod 644 10 months ago
captcha.php Add basic captcha 6 months ago
composer.json undoing github actions 10 months ago
composer.lock undoing github actions 10 months ago
docker-compose.yml adding docker items 10 months ago
favicon.png Add favicon 7 years ago
install.php chmod 644 10 months ago
install.sql Fixes Specified key was too long; max key length is 1000 bytes #156 and #93 by changing field lengths to less than 255 or 195 2 years ago
log.php Public action logs commit (log.php) 6 years ago
mod.php WIP 10 months ago
player.php Suppress warnings that might leak information 7 years ago
post.php Merge pull request #348 from discomrade/ban-appeal-limit 3 months ago
report.php Oops forgot a file 6 years ago
robots.txt Allow robots 9 months ago
search.php Fix board parameter passing to search.php 3 years ago
site.conf adding docker items 10 months ago
smart_build.php (2/2) advanced build. implement a daemon that will build static pages. 6 years ago
staffapplication.php WIP 10 months ago
status.php Whitelist /dead/ 4 months ago

leftypol - vichan/lainchan based imageboard software


The leftypol imageboard is a fork of lainchan, a fork of vichan, actively building on it and adding features, bug-fixes and other improvements.

We highly recommend you read the vichan GitHub wiki for a basic guide to features.


  1. PHP >= 5.4. PHP 7.0 is explicitly supported. There is a PHP 8 capable branch.
  2. MySQL/MariaDB server >= 5.5.3
  3. mbstring
  4. PHP GD
  5. PHP PDO

This should be compatible with all major web servers and operating systems. This code does not include an Apache .htaccess file nor does it need one.

  1. ImageMagick (command-line ImageMagick or GraphicsMagick preferred).
  2. APC (Alternative PHP Cache), XCache or Memcached


You can contribute to leftypol, and upstream imageboard softwares, by:

  • Developing patches/improvements/translations and using this repo to submit pull requests
  • Providing feedback and suggestions
  • Writing/editing documentation

If you need help developing a patch, please reply to the sticky on our /tech/ board.


  1. Download and extract leftypol to your web directory or get the latest development version with:

    git clone git://
  2. Navigate to install.php in your web browser and follow the prompts.

  3. leftypol should now be installed. Log in to mod.php with the default username and password combination: admin / password.

Please remember to change the administrator account password.

See also: Configuration Basics.


This probably will break if you try and upgrade from vichan or the older (<= August 2021) leftypol versions. Ask us for migration advice if you intend to do so.

To upgrade from this repo:

Either run git pull to update your files, if you used git, or backup your inc/instance-config.php, replace all your files in place (don't remove boards etc.), then put inc/instance-config.php back and finally run install.php.

To migrate from a Kusaba X board, use (untested)


If you find a bug, please report it.

If you need assistance with installing, configuring, or using leftypol, you may find support from a variety of sources:

  • If you're unsure about how to enable or configure certain features, make sure you have read the comments in inc/config.php.
  • For support, reply to the sticky on our /tech/ board.

Tinyboard support

vichan, and by extension lainchan and leftypol, is based on a Tinyboard, so both engines have very much in common. These links may be helpful for you as well:

  • Tinyboard documentation can be found here.

CLI tools

There are a few command line interface tools, based on Tinyboard-Tools. These need to be launched from a Unix shell account (SSH, or something). They are located in a tools/ directory.

You actually don't need these tools for your imageboard functioning, they are aimed at the power users. You won't be able to run these from shared hosting accounts (i.e. all free web servers).


Wanting to have leftypol in your language? You can contribute your translations to vichan at this URL:


leftypol makes use of wPaint for oekaki. After you pull the repository, however, you will need to download wPaint separately using git's submodule feature. Use the following commands:

git submodule init
git submodule update

To enable oekaki, add all the scripts listed in js/wpaint.js to your instance-config.php.

WebM support

Read inc/lib/webm/ for information about enabling webm.

leftypol API

leftypol provides by default a 4chan-compatible JSON API, just like vichan. For documentation on this, see: .