How to Install Planka on CentOS 7 – Step-by-Step Guide

What is Planka?

Planka is a self-hosted, open-source project management tool that uses a Kanban-style board to help teams organize their work efficiently. Built with React and Redux, it offers a fast and lightweight alternative to third-party project management services. Designed for simplicity and flexibility, Planka allows teams to track tasks, collaborate in real-time, and maintain full control over their data without relying on external platforms.

System Requirements

Before installing Planka, ensure your CentOS 7 system meets these requirements:

  • A fresh CentOS 7 server with root or sudo privileges
  • A domain name pointed to your server’s IP (for SSL setup)
  • At least 2GB RAM and 2 CPU cores (recommended)
  • PostgreSQL database
  • Node.js and Nginx

Install Planka on CentOS 7

1. Updating the CentOS 7 System

To ensure a smooth installation, update your system packages:

sudo yum update -y

2. Installing Required Packages

Install necessary dependencies such as wget, curl, nano, and unzip:

sudo yum install -y epel-release wget curl nano unzip

3. Setting Up PostgreSQL for Planka

Planka uses PostgreSQL as its database. Install and initialize it:

sudo yum install -y postgresql-server postgresql-contrib
sudo postgresql-setup initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql

Switch to the PostgreSQL user and create a database for Planka:

sudo -i -u postgres
psql

Run the following commands inside the PostgreSQL shell:

CREATE DATABASE planka;
CREATE USER planka_user WITH ENCRYPTED PASSWORD 'your_secure_password';
GRANT ALL PRIVILEGES ON DATABASE planka TO planka_user;
\q
exit

4. Installing Node.js on CentOS 7

Planka requires Node.js. Install it using the NodeSource repository:

curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum install -y nodejs

5. Installing Git and Cloning Planka

Git is required to download Planka. Install Git and clone the repository:

sudo yum install -y git
cd /opt
sudo git clone https://github.com/plankanban/planka.git
sudo chown -R $USER:$USER planka
cd planka
npm install

6. Configuring Planka

Copy the example environment configuration:

cp .env.sample .env
nano .env

Modify the database connection details:

DATABASE_URL=postgres://planka_user:your_secure_password@localhost:5432/planka

Save and exit the file (CTRL + X, Y, then ENTER).

7. Setting Up Nginx as a Reverse Proxy

Install Nginx:

sudo yum install -y nginx

Create a new configuration file for Planka:

sudo nano /etc/nginx/conf.d/planka.conf

Add the following content (replace your_domain.com with your actual domain):

nginx
server {
listen 80;
server_name your_domain.com;

location / {
proxy_pass http://localhost:1337;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

Test and restart Nginx:

sudo nginx -t
sudo systemctl restart nginx
sudo systemctl enable nginx

8. Securing Planka with SSL

Install Certbot for free SSL certificates:

sudo yum install -y certbot python2-certbot-nginx
sudo certbot --nginx -d your_domain.com

Set up auto-renewal:

sudo crontab -e

Add:

css
0 0 1 * * certbot renew --quiet

9. Running Planka as a Systemd Service

Create a systemd service file for Planka:

bash
sudo nano /etc/systemd/system/planka.service

Add:

ini
[Unit]
Description=Planka Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/planka
ExecStart=/usr/bin/npm start
Restart=on-failure

[Install]
WantedBy=multi-user.target

Reload systemd and start Planka:

bash
sudo systemctl daemon-reload
sudo systemctl start planka
sudo systemctl enable planka

10. Accessing and Using Planka

Open a browser and visit:

arduino
https://your_domain.com

You should see the Planka login page.

Conclusion

You have successfully installed Planka on CentOS 7! This setup ensures a secure and efficient project management system with PostgreSQL, Nginx, and SSL encryption. Now you can start organizing your projects with a powerful self-hosted Kanban board.

Frequently Asked Questions (FAQs)

1. Can I run Planka without a domain?

Yes, you can access Planka via your server’s IP, but using a domain with SSL is more secure.

2. How do I update Planka?

Navigate to the Planka directory and update:

bash
cd /opt/planka
sudo git pull origin master
npm install
sudo systemctl restart planka

3. What should I do if Planka doesn’t start?

Check logs for errors:

bash
sudo journalctl -u planka --no-pager --lines=50

Ensure PostgreSQL is running and your .env file is correctly configured.

4. Can I change the Planka port?

Yes, edit .env:

ini
PORT=1337

Restart Planka:

bash
sudo systemctl restart planka

5. Is Planka suitable for large teams?

Yes, but for better performance, consider upgrading your server resources.

6. How do I install Planka on CentOS 7 without Nginx?

If you want to install Planka without using Nginx as a reverse proxy, you can run it directly using Node.js. After cloning Planka, navigate to its directory and start the application:

cd /opt/planka
npm start

Then, access Planka via your server’s IP address and port 1337:

arduino

http://your_server_ip:1337

However, using Nginx is recommended for better performance and security.

7. Can I install Planka on CentOS 7 with Docker?

Yes! You can install Planka on CentOS 7 using Docker. First, install Docker:

bash

sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker

Then, pull and run the Planka Docker container:

bash
docker run -d --name planka -p 1337:1337 ghcr.io/plankanban/planka:latest

Now, access Planka at:

arduino

http://your_server_ip:1337

Using Docker makes the installation process faster and easier to maintain.