Instalasi dan konfigurasi Taiga
Taiga adalah alternatif project management platform seperti atalasian dan sejenisnya. Beberapa tahun terakhir sedang naik daun sebab opsi konfigurasi nya yang beragam serta status opensourse nya yang lebih efisien secara biaya.
Tutorial ini akan mengulas pemasangan taiga untuk project monitoring dan menagement, serta menggunakan nginx untuk proxy server. Panduan ini sepenuhnya mengacu pada panduan resmi dari taiga.io Install Taiga in Production , kemudian dibantu dengan gemini untuk beberapa error yang mungkin muncul , dan best practice dari konfigurasi nginx.
Environment yang kami gunakan saat ini adalah Debian bookworm
- Install docker sesuai dengan tutorial dari Debian | Docker Docs
- Lanjut dengan menginstall Taiga sesuai Install Taiga in Production (gunakan panduan docker)
- Semuanya straight forward
- Konfigurasi NGINX, menambah panduan instalasi dari Taiga 30min Setup – Taiga basics / Tutorials and Guides – Taiga Community,
- If you’re testing it in your own machine, you can access the application in http://localhost:9000. If you’re deploying in a server, you’ll need to configure hosts and nginx as described later.
Here are the steps to install Nginx on Debian
1. Update your package lists:
It’s always a good idea to refresh your local package index before installing new software. This ensures you’re getting the latest information about available packages and their versions.
sudo apt update
2. Install Nginx:
Now you can install the Nginx package.
sudo apt install nginx -y
sudo: Executes the command with superuser (root) privileges. You’ll likely be prompted for your password.apt install: The command to install packages using the APT package manager.nginx: The name of the Nginx package.-y: This flag automatically answers “yes” to any prompts, which is convenient for automated scripts but use with caution if you want to review what’s being installed.
3. Verify Nginx is running (optional but recommended):
After installation, Nginx should start automatically. You can check its status to confirm:
sudo systemctl status nginx
You should see output indicating that Nginx is active (running).
4. Allow Nginx through the firewall (if you have UFW enabled):
If you’re using UFW (Uncomplicated Firewall) on your Debian server, you’ll need to allow HTTP (and potentially HTTPS) traffic.
- List available Nginx profiles: Bash
sudo ufw app listYou’ll typically see:Nginx Full Nginx HTTP Nginx HTTPSNginx Full: Opens both HTTP (port 80) and HTTPS (port 443).Nginx HTTP: Opens only HTTP (port 80).Nginx HTTPS: Opens only HTTPS (port 443).
- Allow the desired profile (e.g., HTTP): Bash
sudo ufw allow 'Nginx HTTP'Or, if you plan to configure SSL later: Bashsudo ufw allow 'Nginx Full' - Reload UFW to apply changes: Bash
sudo ufw reload - Check UFW status: Bash
sudo ufw statusYou should see the Nginx rules listed as allowed.
5. Test Nginx in your browser:
Open a web browser on your local machine and navigate to your Debian server’s IP address (e.g., http://your_server_ip_address).
You should see the default “Welcome to nginx!” page. This confirms that Nginx is installed and serving web content.
Let’s continue to config the NGINX
Here are the steps to configure Nginx with your provided code:
Create/Edit the Configuration File:
If using conf.d:
sudo nano /etc/nginx/conf.d/taiga.conf
If using sites-available/sites-enabled (Debian/Ubuntu):
sudo nano /etc/nginx/sites-available/taiga.mycompany.com
Paste Your Code: Paste the entire server block into the file you just opened: Nginx
server {
listen 80; # Add this line for HTTP access
server_name taiga.mycompany.com;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_pass http://localhost:9000/;
}
# Events
location /events {
proxy_pass http://localhost:9000/events;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
# TLS: Configure your TLS following the best practices inside your company
# Logs and other configurations
}
Important Addition: I’ve added listen 80; inside the server block. This tells Nginx to listen for incoming HTTP requests on port 80 for this server block. If you intend to use HTTPS, you’ll also need listen 443 ssl; and the corresponding SSL certificate configurations.
Enable the Site (Debian/Ubuntu only): If you created the file in /etc/nginx/sites-available/, you need to create a symbolic link to enable it:
sudo ln -s /etc/nginx/sites-available/taiga.mycompany.com /etc/nginx/sites-enabled/
Test Nginx Configuration: Before restarting, always test your Nginx configuration for syntax errors:
sudo nginx -t
You should see output similar to this:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
If there are any errors, Nginx will tell you where they are, and you’ll need to fix them before proceeding.
Reload/Restart Nginx: Once the test is successful, reload or restart Nginx for the changes to take effect:
sudo systemctl reload nginx # ORsudo systemctl restart nginx
reload is generally preferred as it reloads the configuration without dropping active connections, whereas restart will briefly stop and then start the Nginx service.
Explanation of Your Configuration:
server { ... }: Defines a virtual host.server_name taiga.mycompany.com;: Specifies the domain name this server block will respond to.location / { ... }: Configures how Nginx handles requests for the root path (/) and any subpaths not explicitly defined.proxy_set_header ...: These lines pass various headers from the client request to the backend server (http://localhost:9000/). This is crucial for the backend application to correctly identify the client’s IP address, original host, and protocol.proxy_redirect off;: Prevents Nginx from modifying theLocationheader in redirects from the backend.proxy_pass http://localhost:9000/;: This is the core of the reverse proxy. It forwards all requests matching thislocationblock to the Taiga backend server, which is presumably listening onhttp://localhost:9000.
location /events { ... }: This is a specific location block for the/eventspath. It’s configured for WebSockets, which Taiga likely uses for real-time updates.proxy_http_version 1.1;: Essential for WebSockets.proxy_set_header Upgrade $http_upgrade;andproxy_set_header Connection "upgrade";: These headers are critical for upgrading the connection from HTTP to WebSocket.proxy_connect_timeout 7d; proxy_send_timeout 7d; proxy_read_timeout 7d;: These set very long timeouts for the connection, sending, and reading. This is common for WebSocket connections which can remain open for extended periods.