{
 "slug": "plane",
 "name": "Plane",
 "tagline": "Project management with issues, cycles, modules and Gantt views",
 "category": "business-apps",
 "use_cases": [
  "project-management",
  "issue-tracking",
  "jira-alternative"
 ],
 "aliases": [],
 "status": "live",
 "upstream": {
  "vendor": "Plane",
  "url": "https://plane.so",
  "license": "AGPL-3.0",
  "license_url": "https://github.com/makeplane/plane/blob/master/LICENSE.txt"
 },
 "image": {
  "os": "Ubuntu 24.04 LTS",
  "cis_level": 1,
  "ports": [
   80,
   443
  ],
  "artifacts": [
   "/etc/lynxroute/sbom.json",
   "/etc/lynxroute/cis-report.html",
   "/usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md"
  ]
 },
 "clouds": {
  "aws": {
   "status": "live",
   "version": "1.4.2",
   "last_build": "2026-08-26",
   "entity_id": "prod-r7xgedxs644t6",
   "ami_alias": "/aws/service/marketplace/prod-r7xgedxs644t6/latest",
   "listing_url": "https://aws.amazon.com/marketplace/pp/prodview-qjrpwzfydc5e4",
   "recommended_instance_type": "t3.large",
   "price_usd_per_hour": 0.05,
   "free_trial_days": 5,
   "unit": "instance-hour"
  },
  "azure": {
   "status": "live",
   "version": "1.4.2",
   "last_build": "2026-08-27",
   "offer_id": "plane",
   "plan_id": "payg-gen2",
   "image_urn": "lynxroute:plane:payg-gen2:latest",
   "listing_url": "https://azuremarketplace.microsoft.com/en-us/marketplace/apps/lynxroute.plane?tab=Overview",
   "recommended_vm_size": "Standard_D2s_v3",
   "price_usd_per_vcpu_hour": 0.028,
   "unit": "vcpu-hour"
  },
  "alicloud": {
   "status": "not_offered"
  }
 },
 "urls": {
  "page": "https://lynxroute.com/products/plane/",
  "json": "https://lynxroute.com/products/plane/product.json"
 },
 "release_notes": [
  {
   "version": "1.4.2",
   "title": "Plane v1.4.2",
   "notes": "* Plane Community Edition updated to v1.4.2 (from v1.4.1) - AGPL-3.0 unchanged\n* Fixes a stale chunk-load failure during navigation: the web app now reloads itself instead of leaving a blank view after an upgrade\n* 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\n* Rebuilt on the current CIS Level 1 hardened Ubuntu 24.04 LTS base to pick up the latest Ubuntu security updates\n",
   "source": "backfill-git",
   "live": {
    "aws": "2026-08-26",
    "azure": "2026-08-27"
   }
  },
  {
   "version": "1.4.1",
   "title": "Plane v1.4.1",
   "notes": "* Plane updated to 1.4.1\n* New reactivate_workspace_member management command lets a self-hosted administrator restore a deactivated workspace member from the command line instead of editing the database by hand; it validates the workspace, user and membership first, is safe to re-run, and reports the role the member is restored to\n* Workspace-level modules list now returns member IDs per module, so module members and member-based filters render correctly\n* Certbot pre-installed - enable HTTPS with one command: sudo certbot --nginx -d yourdomain.com\n* Rebuilt on the latest CIS Level 1 hardened Ubuntu 24.04 LTS base\n",
   "source": "backfill-aws-listing",
   "live": {
    "aws": "2026-08-18",
    "azure": "2026-08-19"
   }
  },
  {
   "version": "1.3.1",
   "title": "Plane v1.3.1",
   "notes": "* Hardening re-release of Plane 1.3.1 - upstream version unchanged\n* Certbot pre-installed - enable HTTPS with one command: sudo certbot --nginx -d yourdomain.com\n* Rebuilt on the latest CIS Level 1 hardened Ubuntu 24.04 LTS base\n",
   "source": "backfill-git",
   "live": {
    "aws": "2026-07-01",
    "azure": "2026-05-21"
   }
  }
 ],
 "release_history": [
  {
   "version": "1.4.2",
   "aws": "2026-08-26",
   "azure": "2026-08-27"
  },
  {
   "version": "1.4.1",
   "aws": "2026-08-18",
   "azure": "2026-08-19"
  },
  {
   "version": "1.3.1",
   "aws": "2026-07-01",
   "azure": "2026-05-21"
  }
 ],
 "deploy": {
  "aws_cli": "# subscribe once on the AWS Marketplace listing, then:\naws ec2 run-instances \\\n  --image-id resolve:ssm:/aws/service/marketplace/prod-r7xgedxs644t6/latest \\\n  --instance-type t3.large --key-name my-key --security-group-ids sg-xxxxxxxx",
  "azure_cli": "# accept the plan terms once, then:\naz vm image terms accept --publisher lynxroute --offer plane --plan payg-gen2\naz vm create -g my-rg -n plane --size Standard_D2s_v3 \\\n  --image lynxroute:plane:payg-gen2:latest --admin-username azureuser --generate-ssh-keys"
 },
 "description": {
  "what_is": "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.",
  "image_adds": "Security hardening:\n* Per-instance Postgres, RabbitMQ, MinIO, Django SECRET_KEY and Live HMAC secret generated at first boot - no shared defaults across instances\n* Host Nginx fronts every service on TCP 443 with a self-signed certificate; HTTP redirects to HTTPS\n* 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\n* 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\n* Every Plane container binds to 127.0.0.1 only - Nginx is the sole public-facing endpoint\n* Service-level healthcheck start_period tuning prevents the cold-boot race where RabbitMQ's Erlang VM init outruns the dependency check\n* No provider keys baked in - operators configure SMTP, OAuth, and webhook integrations through the workspace settings after first login\n* UFW firewall pre-configured - only TCP 22, 80, 443 are exposed\n* fail2ban, AppArmor\n* CVE scan - every image is scanned for vulnerabilities before release\n\nOS hardening (CIS Level 1):\n* CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown\n* auditd, SSH hardening, kernel hardening, IMDSv2 enforced\n\nCompliance artifacts:\n* SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json\n* CIS Conformance Report at /etc/lynxroute/cis-report.html\n* CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md\n\nARCHITECTURE NOTES\n\nThe 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."
 },
 "generated_at": "2026-10-31T09:36:34Z"
}
