Introduction
Introduction Statistics Contact Development Disclaimer Help
Title: How to install Kanboard on OpenBSD
Author: Solène
Date: 07 July 2023
Tags: openbsd selfhosting nocloud
Description: In this article you will learn how to install the php web
application Kanboard on an OpenBSD server
# Introduction
Let me share an installation guide on OpenBSD for a product I like:
kanboard. It's a Kanban board written in PHP, it's easy of use, light,
effective, the kind of software I like.
While there is a docker image for easy deployment on Linux, there is no
guide to install it on OpenBSD. I did it successfuly, including httpd
for the web server.
Kanboard official project website
# Setup
We will need a fairly simple stack:
* httpd for the web server (I won't explain how to do TLS here)
* php 8.2
* database backed by sqlite, if you need postgresql or mysql, adapt
## Kanboard files
Prepare a directory where kanboard will be extracted, it must be owned
by root:
```
install -d -o root -g wheel -m 755 /var/www/htdocs/kanboard
```
Download the latest version of kanboard, prefer the .tar.gz file
because it won't require an extra program.
Kanboard GitHub releases
Extract the archive, and move the extracted content into
`/var/www/htdocs/kanboard`; the file `/var/www/htdocs/kanboard/cli`
should exists if you did it correctly.
Now, you need to fix the permissions for a single directory inside the
project to allow the web server to write persistent data.
```
install -d -o www -g www -m 755 /var/www/htdocs/kanboard/data
```
## PHP configuration
For kanboard, we will need PHP and a few extensions. They can be
installed and enabled using the following command: (for the future, 8.2
will be obsolete, adapt to the current PHP version)
```
pkg_add php-zip--%8.2 php-curl--%8.2 php-zip--%8.2 php-pdo_sqlite--%8.2
for mod in pdo_sqlite opcache gd zip curl
do
ln -s /etc/php-8.2.sample/${mod}.ini /etc/php-8.2/
done
rcctl enable php82_fpm
rcctl start php82_fpm
```
Now you have the service php82_fpm (chrooted in /var/www/) ready to be
used by httpd.
## HTTPD configuration
Configure the web server httpd, you can use nginx or apache if you
prefer, with the following piece of configuration:
```
server "kanboard.my.domain" {
listen on * port 80
location "*.php" {
fastcgi socket "/run/php-fpm.sock"
}
# don't rewrite for assets (fonts, images)
location "/assets/*" {
root "/htdocs/kanboard/"
pass
}
location match "/(.*)" {
request rewrite "/index.php%1"
}
location "/*" {
root "/htdocs/kanboard"
}
}
```
Now, enable httpd if not already done, and (re)start httpd:
```
rcctl enable httpd
rcctl restart httpd
```
From now, Kanboard should be reachable and usable. The default
credentials are admin/admin.
## Sending emails
If you want to send emails, you have three choices:
* use php mail() which just use the local relay
* use sendmail command, which will also use the local relay
* configure an smtp server with authentication, can be a remote server
### Local email
If you want to use one of the first two methods, you will have to add a
few files to the chroot like `/bin/sh`; you can find accurate and up to
date information about the specific changes in the file
`/usr/local/share/doc/pkg-readms/php-8.2`.
### Using a remote smtp server
If you want to use a remote server with authentication (I made a
dedicated account for kanboard on my mail server):
Copy `/var/www/htdocs/kanboard/config.default.php` as
`/var/www/htdocs/kanboard/config.php`, and changes the variables below
accordingly:
```
define('MAIL_TRANSPORT', 'smtp');
define('MAIL_SMTP_HOSTNAME', 'my-server.local');
define('MAIL_SMTP_PORT', 587);
define('MAIL_SMTP_USERNAME', 'YOUR_SMTP_USER');
define('MAIL_SMTP_PASSWORD', 'XXXXXXXXXXXXXXXXXXXx');
define('MAIL_SMTP_HELO_NAME', null);
define('MAIL_SMTP_ENCRYPTION', "tls");
```
Your kanboard should be able to send emails now. You can check by
creating a new task, and click on "Send by email".
NOTE: Your user also NEED to enable email notifications.
## Cronjob configuration
For some tasks like reminding emails or stats computation, Kanboard
requires to run a daily job by running a the CLI version.
You can do it as the www user in root crontab:
```
0 1 * * * -ns su -m www -c 'cd /var/www/htdocs/kanboard && /usr/local/bin/php-8…
```
# Conclusion
Kanboard is a fine piece of software, I really like the kanban workflow
to organize. I hope you'll enjoy it as well.
I'd also add that installing software without docker is still a thing,
this requires you to know exactly what you need to make it run, and how
to configure it, but I'd consider this a security bonus point. Think
that it will also have all its dependencies updated along with your
system upgrades over time.
You are viewing proxied material from dataswamp.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.