mirror of
http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/selfhosting-blogposts.git
synced 2025-05-16 12:16:59 +00:00
136 lines
3.1 KiB
Markdown
136 lines
3.1 KiB
Markdown
---
|
|
search:
|
|
exclude: true
|
|
---
|
|
# Kanboard (nginx, mariadb, php7.4)
|
|
|
|

|
|
|
|
Rent a VPS with debian 10+ (or just run it yourself, but make sure it is correctly port forwarded so that public ip points to the machine like a vps).
|
|
|
|
Once you have ssh'd into your debian server as root, we can start:
|
|
|
|
## **Initial Setup**
|
|
|
|
|
|
apt update -y && apt upgrade -y
|
|
apt install nginx socat mariadb-server git php8.2-{fpm,mbstring,cli,opcache,zip,xml,gd,ldap,mysql,sqlite3} -y
|
|
mysql -u root -p
|
|
|
|
|
|
|
|
|
|
CREATE DATABASE kanboard CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;;
|
|
GRANT ALL PRIVILEGES ON kanboard.* TO 'kanboard'@'localhost' IDENTIFIED BY 'StrongPassword';
|
|
FLUSH PRIVILEGES;
|
|
\q
|
|
|
|
|
|
|
|
Next you'll need to get the [latest](https://github.com/kanboard/kanboard/releases) version of kanboard, currently it is version 1.2.16
|
|
|
|
|
|
export VER=1.2.16
|
|
wget https://github.com/kanboard/kanboard/archive/v${VER}.tar.gz
|
|
tar xvf v${VER}.tar.gz
|
|
rm -f v${VER}.tar.gz
|
|
mv kanboard-${VER}/ /var/www/kanboard
|
|
|
|
|
|
|
|
Next we configure config.php:
|
|
|
|
|
|
wget https://blog.nowhere.moe/servers/kanboard/config.php -O /var/www/kanboard/config.php
|
|
nano /var/www/kanboard/config.php
|
|
|
|
|
|
|
|
Edit the config file if you want, the important part being the following:
|
|
|
|

|
|
|
|
Then hit CTRL+S to save and CTRL+X to exit nano.
|
|
|
|
## **Configuring NGINX**
|
|
|
|
|
|
chown -R www-data:www-data /var/www/kanboard
|
|
wget https://blog.nowhere.moe/servers/kanboard/kanboard.conf -O /etc/nginx/sites-available/kanboard.conf
|
|
rm /etc/nginx/sites-available/default
|
|
rm /etc/nginx/sites-enabled/default
|
|
ln -s /etc/nginx/sites-available/kanboard.conf /etc/nginx/sites-enabled/kanboard.conf
|
|
|
|
|
|
|
|
Now for this part we need a domain name, if you want the a free alternative just use [duckdns.org](https://www.duckdns.org/)
|
|
|
|

|
|
|
|
Test if the domain name correctly points to your server's ip address:
|
|
|
|

|
|
|
|
Once that's done use acme.sh to get your free letsencrypt certificate:
|
|
|
|
|
|
wget -O - https://get.acme.sh | sh
|
|
source ~/.bashrc
|
|
|
|
systemctl stop nginx
|
|
acme.sh --issue --standalone -d ech2.duckdns.org -k 4096
|
|
systemctl start nginx
|
|
|
|
nginx -t
|
|
|
|
|
|
|
|

|
|
|
|
|
|
nano /etc/nginx/conf.d/kanboard.conf
|
|
|
|
|
|
|
|
next just change the domain name to yours:
|
|
|
|

|
|
|
|
hit ctrl+S and ctrl+X when you're done, and then reload the nginx configuration:
|
|
|
|
|
|
systemctl restart php7.4-fpm nginx mysql
|
|
|
|
|
|
|
|
BONUS: self registration plugin for public usage:
|
|
|
|
|
|
cd /var/www/kanboard/plugins
|
|
git clone https://github.com/kanboard/plugin-registration
|
|
mv plugin-registration Registration
|
|
chown -R www-data:www-data /var/www/kanboard
|
|
|
|
|
|
## **Configuring Kanboard**
|
|
|
|
Once that's done just get to your website:
|
|
|
|

|
|
|
|
The default credentials are **admin:admin** , you can change them here:
|
|
|
|
 
|
|
|
|
Next just create a new project:
|
|
|
|
 
|
|
|
|
Then add tasks to it:
|
|
|
|

|
|
|
|
You can easily drag and drop tasks with your mouse around when you're finished with them
|
|
|
|

|
|
|