TinyIB — a lightweight and efficient imageboard engine
No database? No problem. Store posts as text files for a portable set-up capable of running on virtually any PHP host.
Got database? Get speed. Use MySQL, PostgreSQL or SQLite for an efficient set-up able to handle high amounts of traffic.
Not looking for an image board script? TinyIB settings is able to allow new threads without requiring an image, or even disallow sending of images entirely.
Original TinyIB features:
- GIF, JPG, PNG, SWF and WebM upload.
- YouTube, Vimeo and SoundCloud embedding.
- CAPTCHA (A simple implementation is included, reCAPTCHA is also supported).
- Reference links >>###
- Delete post via password.
- Management panel:
- Administrators and moderators use separate passwords.
- Moderators are only able to sticky threads, delete posts, and approve posts when necessary. (See
TINYIB_REQMOD) - Ban offensive/abusive posters across all boards.
- Post using raw HTML.
This fork features:
- Text formatting:
- Markup buttons under the text area in postform.
- bbcode formatting (multiline text and nested tags), wakabamark.
- "Quote text" button that inserts selected text into the textarea with
>symbols. - Named links formatting, like on github:
[TinyIB](https://github.com/SthephanShinkufag/TinyIB/)
- Administration:
- You can set list of Moderators.
- Moderation log.
- Admins and Mods can edit message text in posts.
- Admins and Mods can selectively delete attached files.
- Admins and Mods can selectively replace thumbnails of attached files by
spoiler.pngfile. - Posting with red name if Admin is logged in.
- Post files:
- You can upload 4 files per post.
- Upload, view and expand WEBM and MP4 videos without instaled
mediainfoandffmpegthumbnailer. Videos are injected right in page without generated thumbnails.
- Posts and threads:
- Added likes to posts.
- "Sage" indicator in posts.
- Threads can be locked for posting.
- Truncating of long posts by size in bytes and by number of lines.
- Custom default posts names.
- Catalog page
catalog.html. - Convenient css support for mobile devices.
- Verify the following are installed:
- PHP 4.3+
- 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.
- CD to the directory you wish to install TinyIB.
- Run the command:
git clone https://github.com/SthephanShinkufag/TinyIB.git ./
- Copy
settings.default.phptosettings.php. - Configure
settings.php- When setting
TINYIB_DBMODEtoflatfile, note that all post and ban data are exposed as the database is composed of standard text files. Access to./inc/flatfile/should be denied. - When setting
TINYIB_DBMODEtopdo, 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. - To require moderation before displaying posts:
- Ensure your
TINYIB_DBMODEis set tomysql,mysqli, orpdo. - Set
TINYIB_REQMODtofilesto require moderation for posts with files attached. - Set
TINYIB_REQMODtoallto require moderation for all posts. - Moderate posts by visiting the management panel.
- Ensure your
- To allow WebM upload:
- Ensure your web host is running Linux or FreeBSD.
- Install mediainfo and ffmpegthumbnailer. On Ubuntu, run
sudo apt-get install mediainfo ffmpegthumbnailer. On FreeBSD runpkg install mediainfo ffmpegthumbnailer.
- To remove the play icon from .SWF and .WebM thumbnails, delete or rename
video_overlay.pngor setTINYIB_VIDEO_OVERLAYto false. - To use ImageMagick instead of GD when creating thumbnails:
- Install ImageMagick and ensure that the
convertcommand is available. - Set
TINYIB_THUMBNAILtoimagemagick. - Note: GIF files will have animated thumbnails, which will often have large file sizes.
- Install ImageMagick and ensure that the
- When setting
- CHMOD write permissions to these directories:
./(the directory containing TinyIB)./src/./thumb/./res/./inc/flatfile/(only if you use theflatfiledatabase mode).
- Navigate your browser to
imgboard.phpand 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.
If you are not logged in already, log in to the management panel by clicking [Manage].
From this page you are able to delete the post, attached files and/or ban the author.
- Obtain the latest release.
- If you installed via Git, run
git pullin TinyIB's directory. - Otherwise, download and extract a zipped archive.
- If you installed via Git, run
- Note which files were modified.
- If
settings.default.phpwas updated, migrate the changes tosettings.php- Take care to not change the value of
TINYIB_TRIPSEED, as it would result in different secure tripcodes.
- Take care to not change the value of
- If other files were updated, and you have made changes yourself:
- Visit GitHub and review the changes made in the update.
- Ensure the update does not interfere with your changes.
- If
Database structure was last modified on 04th Sep 2019.
TinyIB includes a database migration tool, which currently only supports migrating from flat file mode to MySQL. While the migration is in progress, visitors will not be able to create or delete posts.
- Edit
settings.php:- Ensure
TINYIB_DBMODEis still set toflatfile. - Set
TINYIB_DBMIGRATEtotrue. - Configure all MySQL-related settings.
- Ensure
- Open the management panel.
- Click
Migrate Database. - Click
Start the migration. - If the migration was successful:
- Edit
settings.php- Set
TINYIB_DBMODEtomysqli. - Set
TINYIB_DBMIGRATEtofalse.
- Set
- Click
Rebuild Alland ensure the board still looks the way it should.
- Edit
If there was a warning about AUTO_INCREMENT not being updated, you'll need to update it manually via a more privileged MySQL user. Run the following query for one or both of the tables, dependant of the warnings you were issued:
ALTER TABLE (table name) AUTO_INCREMENT = (value to be set)
- Ensure you are running the latest version of TinyIB.
- Review the open issues.
- Open a new issue.
- Fork TinyIB.
- Commit code changes to your forked repository.
- Submit a pull request describing your modifications.