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.
- Create a database & user.
- Upload the product files to your webhost document root (example:
public_html/or a subdomain root). Keep folder structure intact. - Run the installer. In your browser go to:
https://your-domain.com/installand follow the guided steps (database, admin account, site settings). - After installation, remove
install.phpfor 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.php—define('SITE_NAME', 'ProBB'); - Site language:
includes/config.php—define('SITE_LANGUAGE', 'en'); - Contact email:
includes/config.php—define('CONTACT_MAIL', 'contact@example.com'); - 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' => trueand replace provider ID/Secret with live values. - User levels (Bronze / Silver / Gold):
includes/functions.php— editfunction getUserDisplayAttributesthresholds and styles. - Poll creation threshold:
controllers/Submit.php—$points_value = 3;(minimum rep points to create polls). - Translations: go to the
languages/folder, duplicateen.phpand rename to your locale (for examplede.php), then translate strings.
Example — changing the site name
// in includes/config.php
define('SITE_NAME', 'ProBB');
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:
- Open
cron/send_email_summaries.phpand set a new secret key:'CRON_SECRET' => 'someLongSecretKey'. - Run via PHP CLI (recommended):
- If your host doesn't allow php-cli, use wget (common on cPanel, Plesk, hPanel):
php /path/to/your/script/send_email_summaries.php daily
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).
- Export/backup your database (phpMyAdmin or hosting backup).
- Download a copy of
includes/config.phpand yourlanguages/folder. - Upload the new release files (overwrite existing files).
- Open
/updatein your browser to run the updater. - Test the site; restore backups if necessary.
Step 1 — Back up your database (phpMyAdmin)
Most shared hosts provide phpMyAdmin. In phpMyAdmin:
- Select your ProBB database from the left column.
- Click Export.
- 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 (or 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.phpand yourlanguages/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:
- Download your current site files (at least the files you changed) and save them locally.
- Unzip the new release locally.
- Open both folders with a compare tool (WinMerge or Meld, or other GUI tools).
- Visually inspect differences and copy your custom edits into the new files.
- Upload only the merged files to your server.
Suggested tools: WinMerge (Windows), Meld (Linux), or any GUI folder-compare app you prefer.
languages/ will be lost. Always keep backups.
Troubleshooting & Tips
- Blank page / 500 error: in
includes/init.phpenabledisplay_errorstemporarily (set to 1) or checkerror_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_filesrule 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.phpfile and verify that all configuration details—such as database credentials, paths, and URLs—are accurate and up to date. - 🌎 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
controllers/Submit.phpand modify$points_value = 3;. - 📄 How do I add/edit static pages?
- To add or edit static pages like Guidelines or Legal, you have to go to the
page/folder end add/edit the pages there. If you've added a new page and want to include it in the footer, just add the new link inincludes/footer.php - 📝 How do I edit the script files?
-
We recommend using Notepad++ — it's free, lightweight and works great for PHP/HTML/JS.
- Download & install: get Notepad++ from the official site (
notepad-plus-plus.org) and run the installer. - Backup first: always copy the file (or use version control) before editing so you can restore if something breaks.
- Open a file: right-click a file → Edit with Notepad++, or open Notepad++ and choose File → Open.
- Find text: press Ctrl+F, type what you're looking for (for example
$points_valueor a CSS class) and press Enter to jump through matches. Use Find All in Current Document to see every match listed. - Save: Ctrl+S.
- 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
backupfolder — safer is better for beginners. - Download & install: get Notepad++ from the official site (
Changelog
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
Initial release
- Hello, ProBB! 🎉