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.