ProBB — Documentation

Welcome! Here, you'll find everything you need to smoothly install, update, and make the most of ProBB — from basic setup to advanced configuration options. The process is simple, with no unusual steps or tricky requirements.
If you have a bit of general web knowledge, you'll be up and running in no time, and if you encounter any issues, we'll be happy to help.

Requirements

Make sure your server meets these minimum requirements before installation:

  • Webserver: Apache, LiteSpeed, or Nginx
  • Database: MySQL 8.0+ or MariaDB 10.3+
  • PHP: PHP 8.1 - 8.4
  • PHP extensions: cURL, OpenSSL, mbstring, MySQLi

Installation

A step-by-step guide to get ProBB up and running.

  1. Create a database & user.
  2. Upload the product files to your webhost main document root (example: public_html/ or a subdomain root). Keep folder structure intact.
  3. Run the installer. In your browser go to: https://your-domain.com/install and follow the guided steps (database, admin account, site settings).
  4. After installation, remove install.php for security.

NGINX Setup

If you run NGINX, add the following rule to ensure pretty URLs and proper routing to index.php:

location / {
    try_files $uri $uri/ /index.php?$args;
}

Place this inside your server block (for example in /etc/nginx/sites-available/your-domain.conf) under the location / { ... } section and reload NGINX:

sudo nginx -t && sudo systemctl reload nginx

Configuration

Key locations you will likely edit after installation:

  • Site name: includes/config.phpdefine('SITE_NAME', 'ProBB');
  • Site language: includes/config.phpdefine('SITE_LANGUAGE', 'en');
  • Contact email: includes/config.phpdefine('CONTACT_MAIL', 'contact@example.com');
  • Poll creation threshold: includes/config.phpdefine('POLL_CREATION_POINTS', 3);
  • Recent comments number to display across the app: includes/config.phpdefine('RECENT_COMMENTS_NUMBER', 6);
  • Post throttling: includes/config.php — update the base values.
  • Email system: includes/email_config.php — enable/disable and set SMTP settings here.
  • Logo: includes/header.php — change Site Logo/Name markup.
  • Social login: includes/hybridauth_config.php — set 'enabled' => true and replace provider ID/Secret with live values - Guide.
  • User levels (Bronze / Silver / Gold): includes/functions.php — edit function getUserDisplayAttributes thresholds and styles.
  • Translations: go to the languages/ folder, duplicate en.php and rename to your locale (for example de.php), then translate strings.

Example — changing the site name

// in includes/config.php
define('SITE_NAME', 'MySite');

After editing config files, the changes will apply immediately. For caching layers (Redis, OPcache) you might need to clear caches.

CRON Setup

ProBB includes a cron script used for email summaries and scheduled tasks. Follow these steps:

  1. Open cron/send_email_summaries.php and set a new secret key: 'CRON_SECRET' => 'someLongSecretKey'.
  2. Run via PHP CLI (recommended):
  3. php /path/to/your/script/send_email_summaries.php daily
  4. If your host doesn't allow php-cli, use wget (common on cPanel, Plesk, hPanel):
  5. wget --quiet -O /dev/null "https://yourdomain.com/cron/send_email_summaries.php?mode=daily&secret=someLongSecretKey"

Schedule these in your hosting control panel (cron jobs) or via crontab -e. Example daily at 02:00 with php-cli:

0 2 * * * /usr/bin/php /home/username/public_html/cron/send_email_summaries.php daily >/dev/null 2>&1

Updating ProBB

Updating ProBB is simple, but always back up first. The two most important things to back up are:

  • Your database (all posts, users and settings).
  • includes/config.php (your site settings, database credentials and secrets).
Quick checklist
  1. Export/backup your database (phpMyAdmin or hosting backup).
  2. Download a copy of includes/config.php and your languages/ folder.
  3. Upload the new release files (overwrite existing files).
  4. Open /update.php in your browser to run the updater.
  5. Test the site; restore backups if necessary.

Step 1 — Back up your database (phpMyAdmin)

Most shared hosts provide phpMyAdmin. In phpMyAdmin:

  1. Select your ProBB database from the left column.
  2. Click Export.
  3. Choose Quick export and format SQL, then click Go to download the file.

If your hosting panel offers automatic backups, you can also use that — the important thing is to have a downloaded copy you can restore.

Step 2 — Back up includes/config.php and translations

Use your host's File Manager or an FTP/SFTP client (FileZilla) to download these files/folders:

includes/config.php
languages/   (download this folder)

Step 3 — Upload the new files (overwrite existing files)

Using File Manager or FTP, upload the files from the new release to your site and allow them to replace the existing files. Many hosts let you upload a ZIP and extract it in place (this is convenient).

Note: Overwriting files will replace any custom edits you made to core files and will overwrite translation files in languages/. See the "Preserve custom changes" section below if you made edits.

Step 4 — Run the updater

After the upload finishes, open your updater in a browser:

https://your-domain.com/update.php

The updater will apply any required database changes and usually removes itself after a successful run. If the updater file remains, delete it when you are finished.

Step 5 — Test the site and restore if needed

  • Check basic functionality: login, posting, settings pages.
  • If something broke, restore your database from the SQL file using phpMyAdmin → Import.
  • Restore includes/config.php and your languages/ folder by uploading your saved copies via File Manager or FTP.

Preserve custom changes — use a file-compare tool

If you edited core files or translated strings, a straight overwrite will erase those edits. Before uploading, it's safest to compare your current site with the new release on your computer and merge differences manually.

Recommended (simple) workflow for beginners:

  1. Download your current site files (at least the files you changed) and save them locally.
  2. Unzip the new release locally.
  3. Open both folders with a compare tool (WinMerge or Meld, or other GUI tools).
  4. Visually inspect differences and copy your custom edits into the new files.
  5. Upload only the merged files to your server.

Suggested tools: WinMerge (Windows), Meld (Linux), or any GUI folder-compare app you prefer.

Warning: If you skip the compare step and overwrite everything, any manual edits or translated files inside languages/ will be lost. Always keep backups.

Troubleshooting & Tips

  • Blank page / 500 error: in includes/init.php enable display_errors temporarily (set to 1) or check error_log. Make sure file permissions are correct (files 644, folders 755).
  • Database connection failed: verify DB host, username, password and that the database exists.
  • Pretty URLs not working (NGINX): confirm the try_files rule is present and restart NGINX.
  • Emails not sending: check includes/email_config.php, SMTP credentials, and any outbound blocking on your host. Use one of the transactional providers (Mailjet, Brevo, MailerSend) when possible.

FAQ

🖥 Can I run ProBB on shared hosting?
Yes — as long as the PHP and database versions meet the requirements. Use the web installer for quick installation.
💽 How can I migrate to another host?
First, create a complete backup of both your installation's files and its database. Next, migrate these backups to the new hosting environment. Once the transfer is complete, open the config.php file and verify that all configuration details—such as database credentials, paths, and URLs—are accurate and up to date.
📝 How do I edit the script files?

We recommend using Notepad++ — it's free, lightweight and works great for PHP/HTML/JS.

  1. Download & install: get Notepad++ from the official site (notepad-plus-plus.org) and run the installer.
  2. Backup first: always copy the file (or use version control) before editing so you can restore if something breaks.
  3. Open a file: right-click a file → Edit with Notepad++, or open Notepad++ and choose File → Open.
  4. Find text: press Ctrl+F, type what you're looking for (for example $points_value or a CSS class) and press Enter to jump through matches. Use Find All in Current Document to see every match listed.
  5. Save: Ctrl+S.
  6. Upload or test: if files live on a server, upload via FTP/SFTP after editing, or run locally with XAMPP/LAMP and refresh your browser (clear cache if you don't see changes).

If you're unsure about a change, copy the original file into a backup folder — safer is better for beginners.

🌎 How do I translate ProBB?
Duplicate languages/en.php, rename to your locale (de.php), and translate the strings inside.
📊 Where do I change the poll creation rules?
Open includes/config.php and modify define('POLL_CREATION_POINTS', 3);.
📂 How do I update the categories?

Updating categories involves a two-step process to ensure both the database and the display labels are synchronized:

  1. Update the Database: You need to run an SQL query to change the category's internal name or color. This is based on the category ID you have in the categories table. You can update multiple categories at once using a CASE statement:
    UPDATE categories
    SET name = CASE
        WHEN id = 5 THEN 'Smart Politics'
        WHEN id = 10 THEN 'Pro Sports'
        ELSE name
    END
    WHERE id IN (5, 10);
  2. Update the Translation File: Open languages/category_translations.php and find the corresponding translation_key (e.g., category.5). Update the text for every language (en, es, fr) to match your new category name.

Note: If you want to change the category color, simply update the color column in the database with a new Hex code (e.g., #FF5733).

📄 How do I add/edit static pages?
To add or edit static pages similar to Guidelines or Legal, you have to go to the page/ folder end add/edit the pages there. You can copy the structure of one of the existing pages and edit it. Then you need to add the new route in index.php, similar to 'page/legal' => 'page/legal.php', If you've added a new page and want to include it in the footer, just add the new link in includes/footer.php
📈 How do I add Analytics to my site?
In order to implement analytics on your website, you need to add the tracking code to includes/header.php 'Google Analytics Code' section.
💲 How do I monetize my platform?
The quickest and easiest way to monetize your website is through Google AdSense. You'll need to sign up for an AdSense account, connect your website, and ensure it follows AdSense's top requirement: having original, high-quality content.

Once approved, you simply add one piece of Auto Ads code to your site, in includes/footer.php 'Banner Section'. Google's machine learning then scans your pages and automatically places ads where they're most likely to perform well, eliminating the need to manually set up individual ad units.

Changelog

v1.3.0
2026-02-12

New Feature ✨

  • [NEW] Implemented the #Hashtag system.
  • [IMPR] Improved the Feed making it more powerful and interactive.
  • [FIX] Various minor fixes.

* api/fetch_comments.php
* controllers/ActivityLog.php
* controllers/Home.php
* controllers/Post.php
* includes/functions.php
* includes/version.php
* page/guidelines.php
* languages/en.php
* languages/es.php
* languages/fr.php
* admin.php
* feed.php
* home.php
* index.php
v1.2.1
2026-02-06

Hotfix

  • [FIX] Fixed a notification bug when editing comments that contain user mentions.
  • [FIX] Made some minor design corrections.

* controllers/EditComment.php
* includes/notification_functions.php
* includes/version.php
* home.php
* post.php
v1.2.0
2026-02-05

Improvements

  • [NEW] Implemented Card-Style display for posts on home, similar to social media apps.
  • [IMPR] Various design improvements throughout the app.

* assets/style.css
* controllers/Admin.php
* controllers/Home.php
* includes/functions.php
* includes/version.php
* languages/en.php
* languages/es.php
* languages/fr.php
* database.sql
* admin.php
* feed.php
* home.php
* post.php
v1.1.0
2026-01-30

Major Update 🔥

  • [NEW] Implemented the Post Favorites system. Allows users to add posts to favorites.
  • [NEW] Added option to display posts only to registered users.
  • [NEW] Added Minimalist Homepage layout configurable from the admin area.
  • [NEW] Added List/Grid display for posts on Home.
  • [NEW] Added user sorting ability for the Admin.
  • [NEW] Allow the admin to reset the username-change restriction for each user.
  • [NEW] Allow the admin to edit the user email.
  • [NEW] Notify the CONTACT_MAIL when a new post is made.
  • [NEW] Allow the admin to view the user followers.
  • [NEW] Implement date as a filter for posts when clicking on the user's register date.
  • [NEW] Added obfuscation to emails added in comments (prevents users from randomly nuking themselves).
  • [IMPR] Simplified the category system.
  • [IMPR] Improved the Feed system design and added a share button to posts.
  • [IMPR] Improved the username validation function and the recent comments function.
  • [IMPR] Improved the comments section with a reply counter and a toggle to collapse each comment.
  • [IMPR] Truncate the post title on mobile and add the RECENT_COMMENTS_NUMBER as a config option.
  • [IMPR] Moved the Poll settings to config.php.
  • [IMPR] Refactored and improved the followers fetch and display system in user profiles.
  • [FIX] Fixed the Poll undefined issue.
  • [FIX] Fixed the username display according to rank in feed.
  • [FIX] Fixed some missing language strings and translations.
  • [FIX] Various minor fixes and improvements.
* all files

Note: When updating from versions prior to v.1.1.0, add the following to config.php:

// Poll settings - The user needs at least 3 rep/karma points to create polls. Set to 0 to allow everyone to create polls.
define('POLL_CREATION_POINTS', 3);

// The number of recent comments to display across the app - Default 6.
define('RECENT_COMMENTS_NUMBER', 6);
v1.0.2
2026-01-14

Improvements

  • Updated the 8G Firewall to v1.5
  • Improved the Schema Markup to better support Google Rich Results
  • Added user agreement at register

* includes/header.php
* includes/footer.php
* includes/version.php
* languages/en.php
* languages/es.php
* languages/fr.php
* register.php
* .htaccess
v1.0.1
2025-09-24

Bug fixes & improvements

  • Updated Font Awesome to v7.0.1
  • Added the registration date to the users table in Admin.
  • Added a tooltip with the exact timestamp to post and comment date.
  • Fixed the time_ago function to properly display the dates.

* includes/header.php
* includes/functions.php
* includes/version.php
* api/fetch_comments.php
* assets/comments_ajax.js
* controllers/Home.php
* post.php
* admin.php
v1.0.0
2025-08-20

Initial release

  • Hello, ProBB! 🎉