Lightweight and efficient imageboard
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Trevor Slocum d699e97c19 Add warning regarding flatfile database exposure
Closes #73
5 years ago
css Migrate from HTML4 to HTML5, style <hr> 8 years ago
inc Obey TINYIB_THUMBNAIL when overlaying video_overlay.png 5 years ago
js Add inline thumbnail expansion (requires rebuild) 7 years ago
res Removing placeholder files 13 years ago
src Removing placeholder files 13 years ago
thumb Removing placeholder files 13 years ago
.gitignore Use cURL instead of file_get_contents, mime_content_type instead of shell_exec (#38) 6 years ago
.htaccess Add .WebM and .SWF expiration headers 8 years ago
LICENSE License 13 years ago
README.md Add warning regarding flatfile database exposure 5 years ago
favicon.ico first commit 14 years ago
imgboard.php Rename TINYIB_HIDEFIELDSOP/TINYIB_HIDEFIELDS to / 5 years ago
settings.default.php Rename TINYIB_HIDEFIELDSOP/TINYIB_HIDEFIELDS to / 5 years ago
sticky.png Add sticky threads 8 years ago
swf_thumbnail.png Add optional SWF support, make picture support optional, add text board mode 9 years ago
video_overlay.png Add optional WebA and WebM support 9 years ago

README.md

TinyIB Donate

A lightweight and efficient image board. See TinyIB Installations for demos.

Features

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 even disallow images entirely. See the Text Board Mode wiki page for instructions.

  • 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.
    • Upgrade automatically when installed via git. (Tested on Linux only)

Installing

  1. 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.
  2. CD to the directory you wish to install TinyIB.
  3. Run the command:
    • git clone https://gitlab.com/tslocum/tinyib.git ./
  4. Copy settings.default.php to settings.php
  5. Configure settings.php
    • When setting TINYIB_DBMODE to flatfile, 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_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.
    • To require moderation before displaying posts:
      • Ensure your TINYIB_DBMODE is set to mysql, mysqli, or pdo.
      • 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 WebM upload:
      • Ensure your web host is running Linux.
      • Install mediainfo and ffmpegthumbnailer. On Ubuntu, run sudo apt-get install mediainfo ffmpegthumbnailer.
    • To remove the play icon from .SWF and .WebM thumbnails, delete or rename video_overlay.png
    • 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.
  6. CHMOD write permissions to these directories:
    • ./ (the directory containing TinyIB)
    • ./src/
    • ./thumb/
    • ./res/
    • ./inc/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.

Moderating

  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 the offending post.
  3. Scroll to the bottom of the page.
  4. Click Delete with the password field blank.
    • From this page you are able to delete the post and/or ban the author.

Updating

  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 would result in different secure tripcodes.
    • If other files were updated, and you have made changes yourself:
      • Visit GitLab and review the changes made in the update.
      • Ensure the update does not interfere with your changes.
  3. Visit GitLab and check for new SQL queries which may be required to complete the update.

Database structure was last modified on 15th Sep 2015. Are you unable to create new posts? Run the SQL on this page to finish the upgrade process.

Migrating

TinyIB includes a database migration tool, which currently only supports migrating from flat file to MySQL. While the migration is in progress, visitors will not be able to create or delete posts.

  1. Edit settings.php
    • Ensure TINYIB_DBMODE is still set to flatfile.
    • Set TINYIB_DBMIGRATE to true.
    • Configure all MySQL-related settings.
  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 mysqli.
      • Set TINYIB_DBMIGRATE to false.
    • Click Rebuild All and ensure the board still looks the way it should.

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)

Support

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

Contributing

  1. Read the GitLab Forking Workflow.
  2. Fork TinyIB.
  3. Commit code changes to your forked repository.
  4. Submit a pull request describing your modifications.