APBoard v3 · Documentation

Documentation

Everything you need to install, configure and run APBoard – explained in full, even for complete beginners.

APBoard Documentation Troubleshooting

Troubleshooting

Common problems and their solutions – organized by topic. If you can’t find your problem here, check the forum or open an issue on GitLab.

Installation & startup

Container won’t start (Docker)

Check the container logs first:

bash
docker compose logs apboard
docker compose logs db
docker compose ps

Common causes:

  • Port already in use: Ports 80/443 are used by another process → ss -tlnp | grep ':80'
  • Error in .env: Syntax error, missing required fields → check .env
  • Database container not ready: Sometimes the APBoard container starts before the DB is ready → docker compose restart apboard

Port 80 / 443 already in use

bash
ss -tlnp | grep ':80'
ss -tlnp | grep ':443'
sudo systemctl stop nginx
sudo systemctl stop apache2
sudo systemctl disable nginx
sudo systemctl disable apache2

Database connection error

  • With Docker: is DB_HOST=db in the .env? (Not localhost!)
  • Does the database password (DB_PASSWORD) match what was set on first start?
  • Is the database container running? → docker compose ps
bash
docker compose exec db mysql -u apboard -p

HTTP / HTTPS / Domain

Domain doesn’t point to server / HTTPS not working

bash
nslookup forum.my-domain.com
dig forum.my-domain.com +short
curl -v http://forum.my-domain.com/

Let’s Encrypt / Certbot requires port 80 to be publicly reachable and the domain already pointing to the server. DNS propagation can take up to 24 hours.

HTTPS certificate not issued (Traefik)

bash
docker compose logs traefik | grep -i "acme\|certificate\|error"
ufw status | grep 80

Common causes: port 80 blocked by firewall, domain not yet pointing to server, Let’s Encrypt rate limit exceeded, acme.json has wrong permissions → must be 600: chmod 600 acme.json.

Page loads but CSS and images are missing

APP_URL in .env doesn’t match the actual URL. The value must be exact, e.g. https://forum.my-domain.com – no trailing slash, including https://.

PHP / LAMP

500 Internal Server Error

Check Apache logs:

bash
tail -100 /var/log/apache2/forum-error.log

Common causes: missing PHP extension, wrong file permissions, .htaccess issue, APP_KEY not set → php artisan key:generate.

URL routing not working (404 on all pages except index)

Cause: mod_rewrite not enabled or AllowOverride All missing.

bash
sudo a2enmod rewrite
sudo systemctl reload apache2

Uploads failing

bash
php -i | grep -E "upload_max_filesize|post_max_size|memory_limit"

Typical values to increase: upload_max_filesize = 20M, post_max_size = 25M. Change in /etc/php/8.5/apache2/php.ini and reload Apache.

Email

Emails not arriving

  1. Check SMTP data in .env – host, port, username, password
  2. Check recipient’s spam folder
  3. Test SMTP connection manually:
bash
docker compose exec apboard php artisan tinker
# Then: Mail::raw('Test', fn($m) => $m->to('test@example.com')->subject('Test'));

Emails landing in spam

  • Set up SPF, DKIM and DMARC DNS records for your domain
  • Use an external email service instead of the server directly (mailbox.org, Gmail, Postmark, Mailgun etc.)
  • Make sure MAIL_FROM_ADDRESS matches the server’s domain

Other

Forum loads extremely slowly

  • Check if enough RAM is available on the server: free -h
  • Look in APBoard error logs for warnings
  • Make sure PHP opcache is active: php -r "echo opcache_get_status()['opcache_enabled'];"
  • With Docker: docker stats

I forgot my admin password

bash
# Docker:
docker compose exec apboard php artisan user:password USERNAME

# LAMP:
php artisan user:password USERNAME

I have another problem

Check the APBoard forum or open an issue on GitLab. Describe:

  • Which installation (Docker / LAMP)?
  • What exactly happens / what did you expect?
  • Relevant error messages from the logs
  • APBoard version (git log --oneline -1 or in the admin panel)