I mean, you can just google it. It has a really cool history originating in manufacturing which translates great to computer work - the way I do it anyways. So let’s get it set up
Apache is simple, it’s just the
httpd daemon that’s installed with the CentOS 7 “Basic Web Server” install set up, but it’s easily downloaded with:
# yum install httpd
Sqlite was also installed with the “Basic Web Server” install, but it is in the repos under
sqlite. Easy enough, right?
I had attempted the setup with Postgresql but had not been able to get it working. That may become a project for a later date…I’ll have to put it up in kanboard…
PHP was the most annoying to set up. Kanboard requires a couple php extensions along with the base php install itself. There’s not much configuration, and the Requirements page for Kanboard shows all of the plugins that need to be installed. I guess that it’s just that I’m not that experienced in PHP. Anyways, it ultimately boiled down to:
# yum install php php-common php-gd php-mbstring php-pdo
This is odd, because this can be done anywhere, and most walkthroughs say to do in in
~, but I prefer
/usr/local. For reasons. Just creating a subdirectory of
kanboard works, and it’s easy to access, remember, and script.
That being said, the actual process is downloading, and moving the relevant files of the kanboard install to the web server directory. Accomplished by:
# mkdir /usr/local/kanboard # wget -O /usr/local/kanboard/latest.zip http://kanboard.net/kanboard-latest.zip # see NOTE # unzip /usr/local/kanboard/latest.zip -d /usr/local/kanboard/ # cd /usr/local/kanboard/kanboard # mv /usr/local/kanboard/kanboard/config.default.php /usr/local/kanboard/kanboard/config.php # mkdir -p /var/www/html # cp -ar /usr/local/kanboard/kanboard/ /var/www/html/
Search for the bash alias
extract - it’s a great function that’s in the nooks and crannies of the internet coughredditcough and get used to what programs it uses. I always make sure to have all of them on hand when working in any given environment if at all possible. That alias works wonders.
Kanboard’s data directory
Kanboard has a
kanboard/data directory that is used to store, well, data. That directory needs to be writable by the webserver user - in this case
# chown -R apache:apache /var/www/html/kanboard/data/ # chmod -R 777 /var/www/html/kanboard/data/
That in itself isn’t complicated. However, there’s a catch with SELinux. Namely that “It’s enabled with a lot of restrictions”. Now, I’ll mess with SELinux when I have a couple of hours or so I want to kill, but luckily the creator came up with the solution to this problem so I don’t have to.
# chcon -R -t httpd_sys_content_rw_t /var/www/html/kanboard/data
Perhaps as a result of that (or a botched install for some mistype or another) I ran into another SELinux problem, where my entire directory had no access permissions. This was also fixed by a
# chcon system_u:object_r:httpd_sys_content_t:s0 -R /var/www/
If you haven’t already started the
httpd daemon, you may start it up now.
# systemctl start httpd # systemctl enable httpd
If you have already, make sure to restart it after applying the SELinux adjustment above.
If this is your only webpage on this server, then port 80 will have to be made accessible to the public. On CentOS 7,
firewalld is installed by default and is managed by the
There’s a lot of cruft out on the internet about
iptables, and IIRC
firewalld is just a front-end for it, but it’s easier to use, if not still a bit buggy. Anyways, I can get this up and running in two simple commands.
# firewall-cmd --permanent --zone=public --add-service=http # firewall-cmd --reload
The second command is necessary to activate the change. Contrary to the
--complete-reload option, current connections are not stopped.
Obviously this site should be secured, however that requires a domain name to be registered. I have not done so yet, but when I do, I’ll be able to use Let’s Encrypt to set that up. I’ll also have to change the webserver and firewall config to reflect those changes (at the very bare minimum least those two parts) if not the various applications themselves. That’s for another time though. For now, enjoy the install.
And that’s it. You should now have a working instance of Kanboard on your server. The default username/password combo is
So for the love of all that’s good, change it as soon as possible. Some files to take a look at would be:
- Sqlite database:
- Debug file:
debug.log(if debug mode enabled)
- Uploaded files:
- Image thumbnails:
I’m still using it after getting into OSU and it’s really be the thing that keeps me working. I can look back and see all the things that I’ve accomplished in the ‘Done’ column, and that motivates me. Also I can prioritize and know what thing or what thing out of a group of things that I should tackle next. It’s a weight off my mind.