Source code of Leftypol imageboard
Go to file
2024-07-15 21:30:14 +02:00
docker docker: upgrade php to 8.0 2024-06-23 22:23:43 +02:00
inc bans.php: fix forgot to extract the mask 2024-07-15 21:30:14 +02:00
js hud-pinning.js: fix inappropriate unpinning on image posting 2024-05-05 21:32:39 +02:00
static Remove old lainchan entrypoint 2024-04-24 15:59:11 +02:00
stylesheets style.css: add center utility class 2024-05-21 16:43:30 +02:00
templates banned.html: add missing space 2024-07-14 19:17:55 +02:00
tests Protect IPs in public moderation logs. 2021-01-17 13:03:17 -05:00
tmp tesseract OCR support for spamfilters 2016-06-09 11:09:10 +02:00
tools maintenance.php: fix typo 2024-07-14 18:48:02 +02:00
walls Add banners and wallpapers 2015-05-27 07:15:21 +02:00
.dockerignore docker: prepare compose for multiple test instances 2024-04-24 15:30:46 +02:00
.gitignore docker: prepare compose for multiple test instances 2024-04-24 15:30:46 +02:00
.gitmodules Edit static pages commit 2016-05-06 16:03:55 +02:00
404.html Change 404 page 2021-09-28 07:39:41 +00:00
banned.php Merge vichan PHP8 fixes, configure composer, fix outstanding incompatibilities 2022-01-17 02:14:22 -01:00
banners.php banners: move banners to static 2024-04-15 20:08:54 +02:00
bg.php chmod 644 2020-12-31 05:54:09 -05:00
captcha.php Add basic captcha 2021-05-05 10:29:06 -02:00
composer.json auth.php: disallow unencrypted logins by default 2024-05-07 10:44:05 +02:00
composer.lock Remove geoip dependency 2024-01-29 11:18:06 +01:00
docker-compose.yml docker: remove legacy authentication plugin 2024-06-23 21:21:36 +02:00
favicon.png Add favicon 2014-09-28 23:06:18 +00:00
install.php docker: handle secrets.php 2024-04-10 16:49:20 +02:00
install.sql Delete stale unreferenced ban appeals via foreign key constrain 2024-07-14 00:25:52 +02:00 Updated license date 2015-01-01 10:48:28 +00:00 move Tinyboard license 2014-04-18 11:13:41 +02:00
log.php Fix missing function log.php from PHP8 changes 2022-01-17 11:05:32 -01:00
mod.php Backport vichan 5.1.5 catalog implementation, enabling mod catalog. 2024-01-29 11:18:06 +01:00
player.php Suppress warnings that might leak information 2014-08-09 12:14:56 +02:00
post.php Add auto_maintenance configuration option 2024-07-14 18:22:51 +02:00 Merge vichan PHP8 fixes, configure composer, fix outstanding incompatibilities 2022-01-17 02:14:22 -01:00
report.php Merge vichan PHP8 fixes, configure composer, fix outstanding incompatibilities 2022-01-17 02:14:22 -01:00
robots.txt Allow robots 2021-01-18 21:46:21 -05:00
search.php Merge vichan PHP8 fixes, configure composer, fix outstanding incompatibilities 2022-01-17 02:14:22 -01:00
smart_build.php Merge vichan PHP8 fixes, configure composer, fix outstanding incompatibilities 2022-01-17 02:14:22 -01:00
staffapplication.php WIP 2020-12-22 01:35:50 -05:00
status.php Fix status.php 2022-03-01 04:55:53 -01:00

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 (we do not actively check if this is still supported) PHP 8.0 is explicitly supported. PHP 7.x should be compatable.
  2. MySQL/MariaDB server >= 5.5.3
  3. Composer (To install various packages)
  4. mbstring
  5. PHP GD
  6. 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), Redis, 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. run composer install inside the directory

  3. Navigate to install.php in your web browser and follow the prompts.

  4. 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: .