Setting Up TaskBoard with Apache and Let’s Encrypt SSL on Debian 11

TaskBoard is a free and open-source Kanban application that helps users keep track of tasks. As a PHP-based and self-hosted application, it offers a straightforward and user-friendly web interface to manage tasks effectively. TaskBoard is ideal for teams or organizations to visualize work progress and manage tasks efficiently.

Key Features

  • Free and open-source
  • Unlimited boards
  • Simple installation process
  • Easy customization options
  • RESTful API
  • Basic user management capabilities

This guide will walk you through the steps to install TaskBoard on a Debian 11 server.

Prerequisites

  • A server running Debian 11.
  • A valid domain name pointing to your server’s IP address.
  • Root user access to the server.

Getting Started

To ensure your system is up to date, run the following command to update all packages:

apt-get update -y

Install Apache, PHP, and SQLite

Install Apache, PHP, SQLite, and additional dependencies by executing the following command:

apt-get install apache2 sqlite3 php libapache2-mod-php php-cli php-common php-json php-readline php-sqlite3 libaio1 libapr1 libhtml-template-perl libaprutil1-dbd-sqlite3 libaprutil1-ldap libaprutil1 libdbi-perl libterm-readkey-perl curl libwrap0 unzip wget -y

Start and enable the Apache service to ensure it runs on boot:

systemctl start apache2
systemctl enable apache2

Download Taskboard

Download the latest version of TaskBoard using the following command:

curl -s https://api.github.com/repos/kiswa/TaskBoard/releases/latest |grep browser_download_url | cut -d '"' -f 4 | wget -i -

Extract the downloaded file to the Apache web root directory:

unzip TaskBoard_v*.zip -d /var/www/html/taskboard

Set the appropriate ownership and permissions for the TaskBoard directory:

chown -R www-data:www-data /var/www/html/taskboard
chmod -R 775 /var/www/html/taskboard

Configure Apache for TaskBoard

Create an Apache virtual host configuration for TaskBoard:

nano /etc/apache2/sites-available/taskboard.conf

Add the following configuration:

<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot "/var/www/html/taskboard"
    ServerName taskboard.example.com
    <Directory "/var/www/html/taskboard">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "/var/log/apache2/taskboard-error_log"
    CustomLog "/var/log/apache2/taskboard-access_log" combined
</VirtualHost>

Save and close the file, then enable the new virtual host:

a2ensite taskboard.conf

Enable the Apache rewrite module and restart the Apache service:

a2enmod rewrite
systemctl restart apache2

Verify that Apache is running:

systemctl status apache2
? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-11-06 14:46:54 UTC; 5s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 23704 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 23709 (apache2)
      Tasks: 6 (limit: 4679)
     Memory: 15.3M
        CPU: 110ms
     CGroup: /system.slice/apache2.service
             ??23709 /usr/sbin/apache2 -k start
             ??23710 /usr/sbin/apache2 -k start
             ??23711 /usr/sbin/apache2 -k start
             ??23712 /usr/sbin/apache2 -k start
             ??23713 /usr/sbin/apache2 -k start
             ??23714 /usr/sbin/apache2 -k start

Nov 06 14:46:54 debian11 systemd[1]: Starting The Apache HTTP Server...

Access TaskBoard

TaskBoard is now ready. Open your browser and navigate to http://taskboard.example.com to access the login page:

TaskBoard login

Log in with the default credentials (username: admin, password: admin). The dashboard will appear:

Dashboard

Go to Settings to change the default admin password:

TaskBoard settings

Enter your new admin password and apply the changes.

Secure TaskBoard with Let’s Encrypt SSL

To secure TaskBoard with Let’s Encrypt, install the Certbot client:

apt-get install python3-certbot-apache -y

Run Certbot to obtain an SSL certificate for your domain:

certbot --apache -d taskboard.example.com

Follow the prompts to set up your SSL certificate:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
...
Congratulations! You have successfully enabled https://taskboard.example.com

Conclusion

Congratulations! You have successfully installed TaskBoard with Apache and secured it with Let’s Encrypt SSL. You can now manage tasks from your central dashboard effectively. If you have any questions, feel free to ask.

FAQ

What is TaskBoard?

TaskBoard is an open-source Kanban project management tool designed to help users manage and track tasks efficiently.

Is TaskBoard free to use?

Yes, TaskBoard is completely free and open-source.

Can I customize TaskBoard?

Yes, TaskBoard is highly customizable to fit your specific needs.

How do I secure TaskBoard with SSL?

This guide demonstrates how to secure TaskBoard using Let’s Encrypt SSL by installing the Certbot client and obtaining an SSL certificate for your domain.

Where can I access the TaskBoard interface?

After installation, you can access the TaskBoard dashboard by navigating to your server’s domain in a web browser, configured during setup.