Git Product home page Git Product logo

tinyib's Introduction

!!! TinyIB has moved to GitLab !!!

Please visit https://gitlab.com/tslocum/tinyib


TinyIB - A Lightweight and Efficient Image Board Script

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.

For demos see the TinyIB Installations page.

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.

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.
    • 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 git://github.com/tslocum/TinyIB.git ./
  4. Copy settings.default.php to settings.php
  5. Configure settings.php
    • 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 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.
    • 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 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 remove the play icon from .SWF and .WebM thumbnails, delete or rename video_overlay.png
  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 file index.html will be created containing the new image board.

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 GitHub and review the changes made in the update.
      • Ensure the update does not interfere with your changes.
  3. Visit GitHub and check for new SQL queries which may be required to complete the update.

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 GitHub Forking Guide.
  2. Fork TinyIB.
  3. Commit code changes to your forked repository.
  4. Submit a pull request describing your modifications.

tinyib's People

Contributors

fretimmerman avatar indrakaw avatar tslocum avatar vvatashi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tinyib's Issues

timezone

is there any way to set the timezone? i looked at the server config and ib code and cant seem to get the time zone set to eastern time so when one posts the time zone shows in eastern time

config.php

in futallaby there is a file called "config.php". It contains useful stuff like "MAX_RES (bump limit)". How do i add in these options?

connecting to mysql database on 000webhost?

I have very little experience with databases, can someone help me out w/ using mysql on 000webhost? I created a database on 000webhost but it still says "Mysql library is not installled". Thanks

Sticky Note

How would I be able to add a sticky note(for board rules) to a board?

Cannot unstick posts using SQL

Used sqlite3 and was unable to "unstick" a post. Back end toggled the stick/unstick text and icon, but the post would still remain at the top after subsequent post.

Things work correctly when using flatfile.

Multiple post moderation/deletion.

Say, there's a flood and I have to delete about 34 posts, at once, as admin/mod. What do I do? Delete one-by-one is a pain.

Every post has checkbox.

mysql mode doesn't work

When I set TINYIB_DBMODE to mysql, I get:

Notice: Undefined variable: mysql_host in [...]\tinyib\inc\database_mysql.php on line 4
Notice: Undefined variable: mysql_username in [...]\tinyib\inc\database_mysql.php on line 4
Notice: Undefined variable: mysql_password in [...]\tinyib\inc\database_mysql.php on line 4

Test are done on local xampplite, didn't try on real webserver yet.

Quoting

Not really an issue, but a way to quote posts by clicking on their post IDs would be neat. Nothing fancy.

Homepage generator

On my Imageboard I just wrote a simple homepage because I couldn't find anything that would generate a homepage, or an index.

Database prefix

Is there a way to set a prefix to database entries? That way multiple image boards can share the same database?

PHP Parse error: syntax error, unexpected '[' in /var/www/htdocs/inc/functions.php on line 239

Hello.

I got this error on the first start. Installation does not works. How it can be fixed?

An error line is:
if (count($resp->getErrorCodes()) == 1 && $resp->getErrorCodes()[0] == 'missing-input-response') {

PHP 5.3.3 (cli) (built: Feb 9 2016 10:21:34)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

php -m

[PHP Modules]
bz2
calendar
Core
ctype
curl
date
ereg
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
xml
zip
zlib

[Zend Modules]

Thank you

remove time

Hi can anyone pls say how to remove the time from new posts? Like when someone posts, make it so it does not show the time of the post. I assume one has to comment out something in html.php ??? Thanks

Embed

Very nice imageboard!

Having trouble with embed. Getting this:

Fatal error: Uncaught Error: Call to undefined function curl_init() in /var/www/sitio/public_html/inc/functions.php:534 Stack trace: #0 /var/www/sitio/public_html/imgboard.php(103): getEmbed('https://youtu.b...') #1 {main} thrown in /var/www/sitio/public_html/inc/functions.php on line 534

Curl installed with PHP 7.

Some extra but essentials features

TinyIB script are great but for an average imgeboard user, you need to (re)implement some extra features:

  • catalog of threads
  • thread hiding
  • multiple account system for mods and admins and of course modlog
  • Advanced ban system (public bans, no-read bans, hellbans)
  • Report system
  • Forced anonymity and ID of posters. (should set up in config)
  • Threads archivation

Nearly all of those features are available on Wakaba or KusabaX scripts which are now not maintained by their developers.

`shell_exec` and `exec` fallback.

These functions are restricted on most shared hosting. Use native PHP instead.

Wordpress has this, it should help to get video's width and height (I think?). As for ffmpegthumbnailer, you can leave it blank or placeholder image (as swf does).

s

4

Quoting nonexistent posts

Quoting posts that don't exist returns a regular color quote, even after the post exists and the page has been rebuilt. This applies for both posts that have been pruned and posts that haven't been posted yet.

mysql_connect() deprecated

Deprecated: mysql_connect(): The mysql extension is deprecated 
and will be removed in the future: use mysqli or PDO instead 
in .../b/inc/database_mysql.php on line 10

I know I know I should try fixing this myself.

Invalid name fails database insert

if entering something with 2 # characters to name field, tripcode function returns too long tripcode and that fails row insert to database. however file upload is ok, so this way is possible to fill server disk.

to reproduce:
enter "foo##bar" to name field and post

Parse error?

Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in /var/www/html/board/settings.php on line 39
I enabled the other three file types in settings.php but when I test it by uploading a webm it gives me that error. I have done this too sudo apt-get install mediainfo ffmpegthumbnailer

Chmod problem

No matter what permissions are given; it always gives:
"Directory 'res' can not be written to. Please modify its permissions."
Either bug or installation instructions just need to be more explicit because you can do a billion things with chmod, 999.999.999 of them being the wrong one.

format error in posting long sentences

Tiny ib's biggest error/problem to date.... When one types a very long sentence from (android) modern cell phone in the ib message field, no line brakes are auto inserted. Hold a key down, like the 'a' letter key. Even though the a's appear to go to a new line in the form, after one submits the message, one can see that the "a"s go left to right, and no line breaks were inserted. So if the user does not manually hit enter or insert a new line, the long message text goes across the screen. when looking at it from a cell phone this stands out the most, the words go from left to right and the reader has to scroll way to the right to read the sentence, and this ruins the look of the whole board where one typed too long of a sentence and did not manually make new lines. Is there any fix for this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.