APBoard v3 · Documentation
Documentation

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

APBoard Documentation Docker installation

Install APBoard with Docker

Docker is the recommended installation method for your own server. This guide takes you from a fresh Linux server to a running APBoard forum.

What Docker will run

APBoard uses one app container and one database container. The app container contains PHP 8.5, Apache and Composer. The database container runs MariaDB 10.6. Your forum data stays on the host in deploy/db/ and public/shared/uploads/.

1. Connect to your server

Open a terminal on your computer and connect to your server by SSH. Replace the IP address with your own server address.

bash
ssh root@203.0.113.10

2. Install Docker and Git

On Ubuntu or Debian, install Docker from Docker's official repository. The following commands look long, but they only add Docker's package source and install Docker Compose.

bash
apt update
apt install ca-certificates curl git

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list

apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Check that both commands work:

bash
docker --version
docker compose version
git --version

3. Prepare the directory

Choose a permanent location for APBoard. The example below uses /home/apboard. You can choose another path, but use the same path consistently later.

bash
mkdir -p /home/apboard
cd /home/apboard
git clone https://forge.chrislo.de/APBoard/apboard3.git forum
cd forum

4. Create the Docker configuration

Docker reads its APBoard settings from deploy/.env. The repository includes a template. Copy it and edit your copy.

bash
cd /home/apboard/forum/deploy
cp .env.example .env
nano .env

Change at least these values:

VariableExampleMeaning
COMPOSE_PROJECT_NAMEapboard-forumUnique name for this instance. Use a different name for every APBoard installation on the same server.
APBOARD_URLhttps://forum.example.comThe full public forum URL. Do not add a slash at the end.
APBOARD_DOMAINforum.example.comThe domain only. Traefik uses it for routing.
APBOARD_DB_HOSTdbKeep this as db. In Docker, the database is reached by service name.
APBOARD_DB_NAMEapboardThe database name inside MariaDB.
APBOARD_DB_USERapboardThe database user for APBoard.
APBOARD_DB_PASSWORDlong random passwordPassword for the APBoard database user.
APBOARD_DB_ROOT_PASSWORDanother long passwordMariaDB root password. Store it safely.
APBOARD_FIRST_ADMIN_EMAILadmin@example.comEmail address for the first administrator.
APBOARD_FIRST_ADMIN_PASSWORDstrong admin passwordPassword for the first administrator.
Keep the .env file private

The .env file contains database and mail passwords. Do not publish it. Set restrictive permissions after editing it.

bash
chmod 600 /home/apboard/forum/deploy/.env

5. Decide how HTTPS reaches APBoard

The included docker-compose.yml expects a Traefik reverse proxy with an external Docker network named proxy. Traefik receives requests on ports 80 and 443 and forwards matching requests to APBoard.

If you already have Traefik, make sure the proxy network exists.

bash
docker network ls | grep proxy

# Create it if it does not exist yet:
docker network create proxy

If you do not use Traefik, you can still use Docker, but you must adapt the Compose file to publish a host port and then put Apache, nginx or another proxy in front of it. For a first production setup, Traefik is the simpler long term choice because it can request HTTPS certificates automatically.

6. Start APBoard

Run Docker Compose from the deploy/ directory. The first start can take several minutes because Docker builds the image and Composer installs PHP dependencies.

bash
cd /home/apboard/forum/deploy
docker compose up -d --build

7. Watch the startup

Use the logs to see what happens. You should see that the database starts, the app container prepares files and Apache begins serving requests.

bash
docker compose ps
docker compose logs -f app
docker compose logs -f db

The app is healthy when docker compose ps shows the app container as healthy.

8. What happens automatically

The Docker entrypoint performs the tasks that the web installer performs in a plain installation. It creates public/assets/, public/shared/uploads/, public/sitemap.xml and the required symlinks for Bootstrap, jQuery, Font Awesome, TinyMCE, Klaro and stylesets.

It also runs composer install when vendor/autoload.php is missing or outdated, writes config.php from the environment variables and calls setup/docker-init.php to create the first admin account. The database structure comes from setup/mysql/initial-setup-dump.sql, which MariaDB imports on the first empty database start.

9. Open the forum

Visit the URL from APBOARD_URL, for example https://forum.example.com. Log in at /login/ with APBOARD_FIRST_ADMIN_EMAIL and APBOARD_FIRST_ADMIN_PASSWORD.

Installation complete

After login, continue with Getting started. You should create categories and boards, fill in legal pages and test mail sending before you invite users.