Lightweight and efficient imageboard
Go to file
Trevor Slocum 08fc167f7b Update translations 2024-01-02 10:40:11 -08:00
css Add TINYIB_BANMESSAGE 2021-07-06 00:37:22 -07:00
inc Hide deprecated warnings in CAPTCHA script 2023-09-24 23:38:31 -07:00
js Add post type hint to reflinks 2021-06-11 01:42:08 -07:00
locale Update translations 2024-01-02 10:40:11 -08:00
res Removing placeholder files 2010-11-29 16:39:16 -08:00
src Removing placeholder files 2010-11-29 16:39:16 -08:00
thumb Removing placeholder files 2010-11-29 16:39:16 -08:00
.editorconfig Add EditorConfig file 2023-10-06 13:26:42 -07:00
.gitignore Add account system 2021-04-04 13:05:10 -07:00
.htaccess Fix .htaccess closing IfModule tags 2021-06-08 00:21:48 -07:00
LICENSE Migrate to 2023-09-24 16:30:53 -07:00 Migrate to 2023-09-24 16:30:53 -07:00
favicon.ico first commit 2009-09-19 19:53:15 -07:00
imgboard.php Add missing semicolons 2023-10-11 21:37:08 -07:00
lock.png Replace lock.png with 61% lighter same quality image thanks to ECT lossless optimization 2021-01-30 07:09:10 +00:00
settings.default.php Migrate to 2023-09-24 16:30:53 -07:00
sticky.png Compress included images 2021-02-01 00:04:58 -08:00
swf_thumbnail.png Compress included images 2021-02-01 00:04:58 -08:00
video_overlay.png Compress included images 2021-02-01 00:04:58 -08:00

TinyIB - Lightweight and efficient imageboard

Translate Donate via LiberaPay Donate via Patreon

A read-only demo is available.


Got database? Get speed. Use MySQL, PostgreSQL or SQLite for an efficient set-up able to handle high amounts of traffic.

No database? No problem. Store posts as text files for a portable set-up capable of running on virtually any PHP host.

Not looking for an image board script? TinyIB is able to allow new threads without requiring an image, or disallow images entirely.

  • GIF, JPG, PNG, SWF, MP4 and WebM upload.
  • YouTube, Vimeo and SoundCloud embedding.
  • Reference links. >>###
  • Fetch new replies automatically. (See TINYIB_AUTOREFRESH)
  • Delete posts via password.
  • Report posts.
  • Block keywords.
  • Management panel:
    • Account system:
      • Super administrators (all privileges)
      • Administrators (all privileges except account management)
      • Moderators (only able to sticky threads, lock threads, approve posts and delete posts)
    • Ban offensive/abusive posters across all boards.
    • Post using raw HTML.
    • Upgrade automatically when installed via git. (Tested on Linux only)
  • Translations:
    • Catalan, Chinese, Dutch, Finnish, French, German, Indonesian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish (Mexico) and Turkish


Please consider supporting the continued development of TinyIB.

If you make a donation and there is a certain feature you'd like to see added to TinyIB, send me an email. I can't promise that I will implement the feature right away, however I will keep your support in mind.


  1. Verify the following are installed:
    • PHP 5.5+
    • GD Image Processing Library
      • This library is usually installed by default.
      • If you plan on disabling image uploads to use TinyIB as a text board only, this library is not required.
    • cURL Library
      • This is recommended, but is not strictly required except when TINYIB_CAPTCHA is set to hcaptcha or recaptcha.
  2. CD to the directory you wish to install TinyIB.
  3. Run the command:
    • git clone ./
  4. Copy settings.default.php to settings.php
  5. Configure settings.php
    • When setting TINYIB_DBMODE to flatfile, note that all post, report and ban data are exposed as the database is composed of standard text files. Access to ./inc/database/flatfile/ should be denied.
    • When setting TINYIB_DBMODE to pdo, note that only the MySQL and PostgreSQL databases drivers have been tested. Theoretically it will work with any applicable driver, but this is not guaranteed. If you use an alternative driver, please report back.
    • Field length settings require a modification to the database field to accommodate the increased length in order to take effect.
    • To require moderation before displaying posts:
      • Set TINYIB_REQMOD to files to require moderation for posts with files attached.
      • Set TINYIB_REQMOD to all to require moderation for all posts.
      • Moderate posts by visiting the management panel.
    • To allow video uploads:
      • Ensure your web host is running Linux.
      • Install ffmpeg. On Ubuntu, run sudo apt-get install ffmpeg.
      • Add desired video file types to $tinyib_uploads.
    • To remove the play icon from .SWF and .WebM thumbnails, delete or rename video_overlay.png.
    • To use FFMPEG to create thumbnails:
      • Install FFMPEG and ensure the ffmpeg and ffprobe commands are available.
      • Set TINYIB_THUMBNAIL to ffmpeg.
    • To use ImageMagick instead of GD when creating thumbnails:
      • Install ImageMagick and ensure that the convert command is available.
      • Set TINYIB_THUMBNAIL to imagemagick.
      • Note: GIF files will have animated thumbnails, which will often have large file sizes.
    • To use TINYIB in another language, set TINYIB_LOCALE to a language code found in locale/.
      • Note: The mbstring PHP extension must be installed and enabled for TinyIB to properly support operating on and rendering text in any language other than English.
  6. CHMOD write permissions to these directories:
    • ./ (the directory containing TinyIB)
    • ./src/
    • ./thumb/
    • ./res/
    • ./inc/database/flatfile/ (only if you use the flatfile database mode)
  7. Navigate your browser to imgboard.php and the following will take place:
    • The database structure will be created.
    • Directories will be verified to be writable.
    • The board index will be written to TINYIB_INDEX.


  1. If you are not logged in already, log in to the management panel by clicking [Manage].
  2. On the board, tick the checkbox next to one or more offending posts.
  3. Scroll to the bottom of the page.
  4. Click Delete.
    • You will be redirected to the management panel.
    • From this page you are able to delete the post(s) and/or ban the author(s).


  1. Obtain the latest release.
    • If you installed via Git, run the following command in TinyIB's directory:
      • git pull
    • Otherwise, download and extract a zipped archive.
  2. Note which files were modified.
    • If settings.default.php was updated, migrate the changes to settings.php
      • Take care to not change the value of TINYIB_TRIPSEED, as it is used to generate secure tripcodes, hash passwords and hash IP addresses.
    • If other files were updated, and you have made changes yourself:
      • Visit and review the changes made in the update.
      • Ensure the update does not interfere with your changes.


TinyIB includes a database migration tool.

While the migration is in progress, visitors will not be able to create or delete posts.

  1. Edit settings.php
    • Set TINYIB_DBMIGRATE to the desired TINYIB_DBMODE after the migration.
    • Configure all settings related to the desired TINYIB_DBMODE.
  2. Open the management panel.
  3. Click Migrate Database
  4. Click Start the migration
  5. If the migration was successful:
    • Edit settings.php
      • Set TINYIB_DBMODE to the mode previously specified as TINYIB_DBMIGRATE.
      • Set TINYIB_DBMIGRATE to a blank string ('').
    • Click Rebuild All and ensure the board still looks the way it should.


  1. Ensure you are running the latest version of TinyIB.
  2. Review the open issues.
  3. Open a new issue.


Translation is handled online.


Note: Please do not submit translations via pull requests. See above.

  1. Fork TinyIB.
  2. Commit code changes to your forked repository.
  3. Submit a pull request.