Kokonotsuba BBS Software

by HARD

Get Kokonotsuba running

Random image from 2D Cute@Heyuri

Obtaining

Get the latest version from the Kokonotsuba Github repository. If you haven't ever used Github, this is how you can download the repository as a ZIP file:

download

Unzip it on the directory where your Kokonotsuba instance's files will be at.

Setting up the database

Open databaseSettings.php in a text editor and change DATABASE_USERNAME and DATABASE_PASSWORD to the respective username and password of your database user. The default database name that Kokonotsuba uses is kokonotsuba at DATABASE_NAME. Ensure that a database with that name exists, preferably using mariadb, before installation.

If you don't know to, below is a quick guide to set up a mysqli database.

Install php-mysql, which is the package that provides the mysqli extension for PHP. For Debian based distributions:
sudo apt update
sudo apt install php-mysql

Restart your web server:
For Apache:
sudo systemctl restart apache2
For Nginx:
sudo systemctl restart nginx

Verify the installation:
php -m | grep mysqli
This will output mysqli if the installation was successful.

Log in to MySQL/MariaDB:
sudo mysql -u root -p

Create the user:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
Replace user and password with your own values. These are the values you need to change on the databaseSettings.php file, DATABASE_USERNAME and DATABASE_PASSWORD respectively.

Inside the MySQL/MariaDB prompt, run:
CREATE DATABASE kokonotsuba;
If you change kokonotsuba to something else, you need to adjust DATABASE_NAME's value on databaseSettings.php file as well.

Mutatis mutandis run the following command:
GRANT ALL PRIVILEGES ON kokonotsuba.* TO 'user'@'localhost';

Exit the Database:
EXIT;

Configuring

Open global/globalconfig.php. Set $config['STATIC_URL'] to the URL of where Kokonotsuba's static files are stored; likewise $config['STATIC_PATH'] should be set to that absolute path of the static directory in order for certain features to work. $config['WEBSITE_URL'] gets the URL automatically, however when running multiple boards accross different domains, you will have to set it manually to the full URL.

After that the minimum required settings for Kokonotsuba to function should be met. However you may want to set some global board settings that apply to all boards before going live with them. Go to global/globalBoardConfig.php and set $config['TRIPSALT'] to a random string of characters in order for secure tripcodes to function as expected. Most config values in this file can be changed at any time.

Dependencies

Kokonotsuba depends on several PHP extensions and external command-line tools. Make sure these are installed and configured correctly before starting the installation.

Required PHP Extensions

To install these on Debian:

sudo apt update
sudo apt install php-mbstring php-pdo php-gd php-bcmath php-mysql

Enable PHP Extensions in php.ini

If the extensions are installed but not enabled, you must enable them in your php.ini configuration file.

Find your php.ini file with:

php --ini

This will show a line like:

Loaded Configuration File:         /etc/php/8.2/apache2/php.ini

or

Loaded Configuration File:         /etc/php/8.2/fpm/php.ini

Edit that file using a text editor (adjust PHP version and path as needed):

sudo nano /etc/php/8.2/apache2/php.ini    # for Apache
sudo nano /etc/php/8.2/fpm/php.ini        # for Nginx

Inside the file, find and remove the semicolon (;) from lines like:

;extension=mbstring
;extension=gd

Change them to:

extension=mbstring
extension=gd

Then restart your web server:

sudo systemctl restart apache2    # for Apache
sudo systemctl restart php8.2-fpm && sudo systemctl restart nginx    # for Nginx

Required External Tools

Install them on Debian using:

sudo apt install ffmpeg exiftool

Check if Commands Are Available

You can verify installation by running:

which ffmpeg
which exiftool

If installed correctly, you’ll see output like /usr/bin/ffmpeg.

Run install.php

Create the directory of the first board, inside that directory make koko.php and put in it. Copy install.php into the directory of the first board. Then, open install.php in your web browser (e.g "https://example.net/b/install.php"). There are instructions on the page that should provide enough information to complete the installation, but there are some things to keep in mind: Board Identifier is what appears in the URL when accessing the board (e.g the "b" in "https://example.net/b/"). Second is that if you get an error at all during installation, paste the error message into a search engine and see if any of the first results give you any clues on why installation failed, or paste it into ChatGPT.