Everything you need to install, configure and run APBoard. Explained in full, even for complete beginners.
APBoard stores its runtime configuration in config.php.
Docker creates this file from deploy/.env. A plain web server installation creates it through the setup wizard.
In Docker, you edit deploy/.env. Every app container start writes a fresh config.php from these values.
Do not edit config.php by hand in a Docker installation, because your changes will be overwritten at the next container start.
| Variable | Use |
|---|---|
COMPOSE_PROJECT_NAME | Unique Docker Compose project name. It affects container names and Traefik router names. |
APBOARD_URL | Full public URL, such as https://forum.example.com. No trailing slash. |
APBOARD_DOMAIN | Domain only, such as forum.example.com. Traefik uses it in the routing rule. |
| Variable | Use |
|---|---|
APBOARD_DB_HOST | Use db in Docker. For plain installations this becomes the database host in config.php. |
APBOARD_DB_NAME | Name of the APBoard database. |
APBOARD_DB_USER | Database user APBoard uses for normal operation. |
APBOARD_DB_PASSWORD | Password for the APBoard database user. |
APBOARD_DB_ROOT_PASSWORD | MariaDB root password used by the database container. |
APBOARD_DB_PREFIX | Table prefix. The default is apb_. Keep it unless you need a different prefix. |
Docker uses APBOARD_FIRST_ADMIN_EMAIL and APBOARD_FIRST_ADMIN_PASSWORD only to initialize the first administrator.
The helper script changes the placeholder admin account only while it still uses the placeholder email admin@example.com.
After you change the account in APBoard, Docker will not overwrite it.
| Variable | Example | Use |
|---|---|---|
APBOARD_SMTP_HOST | smtp.example.com | SMTP server hostname. |
APBOARD_SMTP_PORT | 587 | Use 587 for STARTTLS or 465 for SMTPS. |
APBOARD_SMTP_AUTH | true | Use authentication. Most providers require it. |
APBOARD_SMTP_SECURE | starttls | Use starttls, smtps or none. |
APBOARD_SMTP_USER | noreply@example.com | SMTP login name. |
APBOARD_SMTP_PASS | mail password | SMTP password or app password. |
APBOARD_SMTP_FROM_EMAIL | noreply@example.com | Sender address shown in APBoard emails. |
APBOARD_SMTP_FROM_NAME | My Forum | Sender name shown in mail clients. |
In a plain installation, the setup wizard writes config.php into the APBoard root directory.
APBoard reads this file on every request. You can edit it later if your database, URL or SMTP settings change.
<?php
$GLOBALS['CONFIG']['url'] = 'https://forum.example.com';
$GLOBALS['CONFIG']['db_server'] = 'localhost';
$GLOBALS['CONFIG']['db_database'] = 'apboard';
$GLOBALS['CONFIG']['db_user'] = 'apboard';
$GLOBALS['CONFIG']['db_password'] = 'database password';
$GLOBALS['CONFIG']['db_tableprepend'] = 'apb_';
$GLOBALS['CONFIG']['smtp_host'] = 'smtp.example.com';
$GLOBALS['CONFIG']['smtp_port'] = 587;
$GLOBALS['CONFIG']['smtp_auth'] = true;
$GLOBALS['CONFIG']['smtp_user'] = 'noreply@example.com';
$GLOBALS['CONFIG']['smtp_pass'] = 'mail password';
$GLOBALS['CONFIG']['smtp_fromemail'] = 'noreply@example.com';
$GLOBALS['CONFIG']['smtp_fromname'] = 'My Forum';
$GLOBALS['CONFIG']['smtp_secure'] = 'starttls';
$GLOBALS['CONFIG']['trusted_proxies'] = ['127.0.0.1', '::1', '172.16.0.0/12']; url must match the public forum URL exactly. APBoard uses it for links, mail content, host validation and the sitemap.
If your public site uses HTTPS, this value must start with https://.
trusted_proxies tells APBoard which reverse proxies may provide headers such as X-Forwarded-Proto.
Docker behind Traefik uses the private Docker network range 172.16.0.0/12.
On a simple plain server without a reverse proxy, the default values are fine.
The table prefix is normally apb_.
The plain setup wizard can import the initial SQL dump with another prefix, but you should only change it before the first installation.
Do not change the prefix after APBoard already has tables unless you know exactly how to rename every table and update config.php.
In Docker, config.php is generated at container start. This is normal.
If you need to change configuration, edit deploy/.env and recreate the app container.
cd /home/apboard/forum/deploy
nano .env
docker compose up -d --build