Plane.so on AlmaLinux 9 (Docker Compose + PostgreSQL + Redis + SSL)

Plane.so is an open-source project management and issue tracking platform designed for modern software teams. It offers a clean, developer-focused interface for managing sprints, issues, roadmaps, and releases, similar to tools like Jira, Linear, and ClickUp — but with one key advantage: it’s self-hosted, giving you complete control over your data, privacy, and infrastructure.

Running Plane on AlmaLinux 9, a RHEL-compatible enterprise Linux distribution, ensures a stable, secure, and long-term supported foundation for production environments. With SELinux enforcement, systemd 252, OpenSSL 3, and modern Docker support, AlmaLinux 9 is an excellent choice for deploying Plane using Docker Compose, with integrated SSL and reverse proxy capabilities.


Architecture Overview

LayerComponentRole
OSAlmaLinux 9Enterprise-grade RHEL-compatible base with SELinux enabled
Container RuntimeDocker Engine + ComposeOrchestrates Plane and its dependent services
DatabasePostgreSQL 15Stores issues, projects, users, and configuration data
Cache QueueRedisHandles caching, real-time updates, and background tasks
BackendDjango (Python)Powers API, business logic, and authentication
FrontendNext.js (React)Provides the user-facing web interface for managing projects
Reverse ProxyNginx (optional)TLS termination, request routing, and compression
TLSLet’s Encrypt / PKIProvides secure HTTPS for all user traffic

Why Use Plane.so?

  • Self-hosted alternative to Jira, Linear, or ClickUp.
  • Full data ownership – no SaaS dependency or vendor lock-in.
  • Agile-ready features – sprints, epics, roadmaps, and issue tracking.
  • Modern tech stack – built with React, Django, and PostgreSQL.
  • Free and open-source – perfect for startups, agencies, and enterprises.

Plane.so vs Other Project Management Tools

Feature/CapabilityPlane.so (Self-hosted)Jira (Cloud)Linear (Cloud)ClickUp (Cloud)
HostingSelf-hosted (Docker)SaaS onlySaaS onlySaaS only
CostFree, open-sourceSubscription-basedSubscription-basedSubscription-based
DatabasePostgreSQLProprietaryProprietaryProprietary
Real-time updatesYes (Redis backend)YesYesYes
CustomizationHigh (source access)LimitedModerateLimited

Plane is perfect for teams that need enterprise-grade project management without relying on cloud platforms or expensive licensing.


Security & Best Practices

  • Deploy behind Nginx with HTTPS enabled.
  • Use Docker secrets or environment variables to store credentials securely.
  • Restrict PostgreSQL and Redis to the internal Docker network.
  • Run Plane under a dedicated non-root system user.
  • Apply SELinux policies and AlmaLinux firewall rules for hardening.
  • Schedule automatic PostgreSQL backups for data protection.
  • Keep Docker images and AlmaLinux packages updated regularly.

Typical Use Cases

  • Software teams managing tasks, issues, and releases.
  • Startups replacing Jira or Linear with a free, self-hosted solution.
  • Agencies coordinating projects across multiple clients.
  • Enterprises deploying project management tools under compliance frameworks.
  • Open-source projects managing bugs, milestones, and contributions.

Deploying Plane.so on AlmaLinux 9 with Docker Compose gives you a secure, enterprise-grade, self-hosted project management platform — powerful, scalable, and built entirely on open-source technologies.


Step 1: Create a Server Instance on Shape.Host

Before beginning, set up your AlmaLinux server:

Log in to your Shape.Host dashboard.

Click Create → Instance.

Shape.host Resources dashboard with Create > Instance highlighted.

Choose your preferred data center location.

Shape.host instance form with the data center location selector highlighted.

Select a plan with at least 4 CPUs, 8 GB RAM, and 40 GB SSD (recommended for Plane).

Pick AlmaLinux 9 (64-bit) as your operating system.

Shape.host instance form with the operating system image selector highlighted.

Click Create Instance.

Shape.host instance form with the Create Instance button highlighted.

Copy your instance’s IP address from the Resources section once it’s active.

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to Your Server

  • Linux/macOS: ssh root@your_server_ip
  • Windows (PuTTY):
    1. Open PuTTY.
    2. Enter your server’s IP address.
    3. Select SSH, click Open, and log in with your Shape.Host credentials.

Step 3: Install Docker and Docker Compose

Update your packages:

dnf update
Terminal showing DNF/YUM package management commands and output.

Install required dependencies:

dnf install ca-certificates curl gnupg lsb-release
Terminal showing DNF/YUM package management commands and output.

Add Docker’s official GPG key:

curl -fsSL https://download.docker.com/linux/centos/gpg | gpg --dearmor -o /etc/pki/rpm-gpg/docker.gpg

Add Docker’s stable repository:

tee /etc/yum.repos.d/docker.repo > /dev/null <<EOF
[docker-ce-stable]
name=Docker CE Stable - \$basearch
baseurl=https://download.docker.com/linux/centos/\$releasever/\$basearch/stable
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/docker.gpg
EOF
Terminal showing DNF/YUM package management commands and output.

Update repository cache and install Docker Engine with Compose plugin:

dnf update
dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Terminal showing DNF/YUM package management commands and output.

Enable and start Docker:

systemctl enable --now docker

Verify that Docker Compose is installed:

docker compose version

If you see version details, Docker Compose is ready.

Terminal showing systemd service management commands or output.

Step 4: Install Plane.so Using the Official Installer

Download and run the Plane installer script:

curl -fsSL https://prime.plane.so/install/ | sh -

This script automatically downloads Plane’s Docker Compose configuration, required images, and supporting services such as PostgreSQL, Redis, and the Plane backend/frontend containers.

Terminal showing curl commands or output during Install Plane.so Using the Official Installer.

Step 5: Complete the Interactive Setup

During installation, you’ll be prompted for a few configuration details:

  • Domain name: Enter your domain (e.g., plane.example.com).
  • Installation type:
    • Choose Express for quick local testing.
    • Choose Advanced for production environments, which allows more customization.

Once you confirm, the installer will automatically:

  • Pull all necessary Docker images.
  • Configure the environment.
  • Start the Plane services using Docker Compose.
Plane self-hosted installer welcome prompt.
Terminal showing ip commands or output.
Plane installer edition selection prompt.
Terminal displaying Plane container image download progress.
Terminal showing curl commands or output.

Step 6: Access the Plane.so Dashboard

After installation, open your browser and visit:

https://YOUR_DOMAIN

You’ll see the Plane setup interface, where you can create your first workspace and account.

Plane initial instance and administrator setup form.
Plane administration interface with instance configuration controls.

You’ve successfully installed Plane.so on AlmaLinux 9 using Docker Compose. Your self-hosted Plane instance is now up and running, ready for collaborative project management and issue tracking.

For maximum performance and uptime, host your Plane installation on Shape.Host Cloud VPS — optimized for Docker-based applications and high-availability workloads.