Catalog / Business applications

Plane

Project management with issues, cycles, modules and Gantt views

CIS Level 1 hardened Ubuntu 24.04 LTS image by Lynxroute · unique credentials at first boot · CVE-scanned · SBOM and CIS report inside

Availability and pricing
CloudVersionSoftware priceLast build
AWS Marketplace
EC2 AMI · all commercial regions
1.4.2$0.05/hr
Recommended instance: t3.large · 5-day free trial
2026-08-26Listing ↗
Azure Marketplace
VM image · plan payg-gen2 · Gen2
1.4.2$0.028/vCPU/hr
Recommended VM: Standard_D2s_v3
2026-08-27Listing ↗

Software price only; cloud infrastructure is billed separately by the provider. Prices in USD.

Image facts
Base OSUbuntu 24.04 LTS
HardeningCIS Level 1, Ubuntu 24.04 LTS (tailored)
LicenseAGPL-3.0
UpstreamPlane
Machine-readableproduct.json · catalog.json
What is Plane

Plane is an open-source project management platform built around issues, cycles, modules, projects, and pages, delivered as a multi-service stack: a Django REST API and Celery worker / beat workers, a Next.js dashboard, a public space view, an admin god-mode UI, and a Hocuspocus WebSocket server for collaborative page editing. The community edition runs as a docker-compose deployment with bundled PostgreSQL 15, Valkey 7 for cache and Channels, RabbitMQ 3.13 as the Celery broker, and MinIO as the S3-compatible object store for attachments and avatars. Plane covers the planning surface for software and operations teams - issues with custom properties, sprint-like cycles, multi-issue modules, kanban / list / Gantt / spreadsheet views, automatic recurring schedules, GitHub / GitLab / Gitea / Slack integrations configured per workspace, and a published API for automation. Workspaces are self-contained: invite teammates, define roles, and own the data. AGPL-3.0 license, no vendor lock-in.

What the Lynxroute image adds

Security hardening:

  • Per-instance Postgres, RabbitMQ, MinIO, Django SECRET_KEY and Live HMAC secret generated at first boot - no shared defaults across instances
  • Host Nginx fronts every service on TCP 443 with a self-signed certificate; HTTP redirects to HTTPS
  • All five Plane container images (frontend, backend, space, admin, live) plus PostgreSQL, Valkey, RabbitMQ and MinIO pinned by SHA-256 digest with explicit linux/amd64 platform - reproducible builds, no surprise upgrades on rebuild
  • No admin account is baked into the image: the first signup through the /god-mode/ setup UI becomes the Instance Admin and workspace owner, and the setup wizard closes automatically once that first registration completes
  • Every Plane container binds to 127.0.0.1 only - Nginx is the sole public-facing endpoint
  • Service-level healthcheck start_period tuning prevents the cold-boot race where RabbitMQ's Erlang VM init outruns the dependency check
  • No provider keys baked in - operators configure SMTP, OAuth, and webhook integrations through the workspace settings after first login
  • UFW firewall pre-configured - only TCP 22, 80, 443 are exposed
  • fail2ban, AppArmor
  • CVE scan - every image is scanned for vulnerabilities before release

OS hardening (CIS Level 1):

  • CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown
  • auditd, SSH hardening, kernel hardening, IMDSv2 enforced

Compliance artifacts:

  • SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json
  • CIS Conformance Report at /etc/lynxroute/cis-report.html
  • CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md

ARCHITECTURE NOTES

The Plane web dashboard, public spaces view, admin UI, live collaboration WebSocket, and REST API are routed by host Nginx as /, /spaces/, /god-mode/, /live/, and /api/ respectively. Postgres data, Valkey AOF logs, RabbitMQ state and MinIO uploads persist at /opt/plane/{db,redis,rabbitmq,uploads} - operators can attach an EBS volume to any of these. Replace the self-signed certificate with a CA-signed certificate for production using Certbot or another ACME client, then update WEB_URL in /opt/plane/.env to your CA-issued HTTPS hostname so OAuth callbacks, email links and presigned S3 upload URLs use the new hostname.

Deploy

Launch in one command

Credentials are generated at first boot and written to /root/plane-credentials.txt.

# subscribe once on the AWS Marketplace listing, then:
aws ec2 run-instances \
  --image-id resolve:ssm:/aws/service/marketplace/prod-r7xgedxs644t6/latest \
  --instance-type t3.large --key-name my-key --security-group-ids sg-xxxxxxxx
# accept the plan terms once, then:
az vm image terms accept --publisher lynxroute --offer plane --plan payg-gen2
az vm create -g my-rg -n plane --size Standard_D2s_v3 \
  --image lynxroute:plane:payg-gen2:latest --admin-username azureuser --generate-ssh-keys
Release notes

Latest release

The most recent release with notes; the full release history is in product.json.

Plane v1.4.2

AWS · 2026-08-26Azure · 2026-08-27
  • Plane Community Edition updated to v1.4.2 (from v1.4.1) - AGPL-3.0 unchanged
  • Fixes a stale chunk-load failure during navigation: the web app now reloads itself instead of leaving a blank view after an upgrade
  • Corrects the container image pins. The images published under v1.4.1 were pinned to the v1.3.1 digests, so that release carried the v1.3.1 application. This release ships the v1.4.2 images, and the build now verifies every pinned digest against its published tag before the image is created
  • Rebuilt on the current CIS Level 1 hardened Ubuntu 24.04 LTS base to pick up the latest Ubuntu security updates