Table of Contents

Debian Armbian Webserver Setup

1. Initial Setup

Download and Prepare Armbian Image:

  1. Download an Armbian image from Armbian.com.
  2. Write the image to a storage device (e.g., SD card).
  3. Connect the device to the server, power it up, and log in via SSH.
bash
ssh root@<new_armbian_system_IP_or_name>

Password is 1234 (or as stated at the source). Follow on-screen instructions to complete the initial setup.

2. Installing Webmin

bash
# Install Webmin
curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
sh setup-repos.sh
apt-get install webmin --install-recommends

3. Network Configuration

Use armbian-config for static IP configuration or edit /etc/rc.local as a last resort:

bash
# Example for /etc/rc.local (if needed)
ifconfig eth0 192.168.10.206 netmask 255.255.255.0
route add default gw 192.168.10.1 eth0

Reboot and log in with the new IP.

4. NFS Drive Preparation (Optional)

If using an NFS drive:

bash
mkdir /var/www

Add the following line to /etc/fstab:

<NFS server IP>:/volume1/<WEBSERVER DRIVE> /var/www nfs _netdev,nofail,rw 0 0

Reboot or use mount -a to mount the new drive.

5. Prepare for Dokuwiki

bash
apt update
apt install php libapache2-mod-php php-xml php-mbstring php-zip php-intl php-gd apache2
systemctl restart apache2.service
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar xzvf dokuwiki-stable.tgz
mv dokuwiki-* /var/www/html/dokuwiki
chown -R www-data:www-data /var/www/html/dokuwiki

Respectively use the directories where you want to store the new webpages.

6. Apache Virtual Server Configuration

Setup Apache webservers via Webmin, configuring port 80 for HTTP and port 443 for HTTPS.

Use Webmin's homepage for instructions, else the shortform is:
Setup Apache webservers via webmin:

7. Certbot Installation and Configuration

bash
apt install certbot python3-certbot-apache

Run Certbot for each virtual server:

bash
certbot --apache -d your_domain -d www.your_domain

Verify renewal process:

bash
sudo certbot renew --dry-run

And check the websites via the ( router-configured ) Dynamic DNS hostnames!

8. Activate PHP in Apache2

Was needed for us as we f'd up earlier, should not be needed:

bash
# In case of issues
apt purge libapache2-mod-php
apt install php8.2-fpm
apt install libapache2-mod-php
/usr/bin/php -v

Sources