[{"data":1,"prerenderedAt":180},["ShallowReactive",2],{"seo-verification":3,"blog-migrate-from-linear-to-plane-or-vikunja-on-a-vps-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":23,"featuredImage":25,"bgImage":26,"posterImage":27,"relatedSolution":25,"intro":28,"sections":29,"ctaTitle":125,"ctaBody":126,"ctaButton":127,"ctaUrl":128,"relatedPosts":129},283,"migrate-from-linear-to-plane-or-vikunja-on-a-vps",{"fr":10,"en":8,"ar":11},"migrer-linear-plan-gratuit-plane-vikunja-vps","الانتقال-من-linear-إلى-plane-أو-vikunja-على-vps","Migrate from Linear to Plane or Vikunja on a VPS","Linear capped its free plan at 10 members. Migrate to self-hosted Plane or Vikunja on a VPS — issues, members and history preserved.",9,0,false,"2026-08-19T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},2,"Automation","automatisation","bg-brand-action\u002F10 text-brand-action",[24],{"id":19,"name":20,"slug":21,"color":22,"icon":21},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fmigrer-linear-plan-gratuit-plane-vikunja-vps-poster.svg","In February 2026, Linear reduced its free plan from 250 to 10 members. Teams exceeding that threshold must either migrate to a paid plan or find an alternative. Plane and Vikunja are two open-source project management tools you can host on your own VPS: the same data model, full ownership, no member limits. This guide shows you how to export your data from Linear, choose the right tool for your team, and complete the migration without losing your history.",[30,34,44,47,87,90,115,119,122],{"type":31,"title":32,"body":33},"h2","Linear 250 → 10 members: why migrate now","In February 2026, Linear changed the terms of its free plan: the member limit dropped from 250 to 10. Teams already above that threshold received a notification and a grace period before the change took effect. Moving to Linear's paid plan, billed per seat.\n\nThe restriction is not limited to member count: cycles (sprints), some advanced integrations and analytics reports are gated behind a paid subscription. For a mid-sized team using Linear solely for issue tracking and sprints, the paid features do not always add value compared to what a well-configured self-hosted tool provides for free.",{"type":35,"title":36,"items":37},"ul","What self-hosting changes in practice",[38,39,40,41,42,43],"**No member limit** — add as many collaborators as your infrastructure can handle, without touching your billing.","**Data under your control** — tickets, comments, status history and attachments stay in your own database, on your own disk.","**Updates on your schedule** — you decide when to apply a new version; no vendor modifies your production environment without your consent.","**Open integrations** — connect your own tools (CI, webhooks, scripts) without going through a paid marketplace.","**Predictable cost** — a correctly sized VPS covers the entire team; cost does not scale with headcount.","**Easier internal compliance** — hosting data in your own infrastructure simplifies audits and internal security policies.",{"type":31,"title":45,"body":46},"Plane or Vikunja? Choosing based on your needs","Both tools cover issue tracking and sprints, but their profiles differ. Plane is the natural successor to Linear for teams that want to find the same concepts — cycles, modules, inbox, wiki pages — in a familiar interface. Vikunja is lighter, task- and list-oriented, with a very low system footprint that makes it well suited to entry-level VPS instances or teams that do not need formal sprint management.",{"type":48,"title":49,"headers":50,"rows":54},"comparison","Plane vs Vikunja: comparison table",[51,52,53],"Criterion","Plane","Vikunja",[55,59,63,67,71,75,79,83],[56,57,58],"Minimum RAM","4 GB (AIO community)","\u003C 512 MB",[60,61,62],"Licence","AGPL-3.0","GPL-3.0",[64,65,66],"Backlog management","Issues, custom statuses, priorities, labels","Tasks, lists, buckets, priorities",[68,69,70],"Sprints \u002F cycles","Native cycles (start date, end date, progress)","No native sprints — simulate with lists",[72,73,74],"Integrations","GitHub, GitLab, Slack, Jira (import), REST API","REST API, webhooks, CSV\u002FJSON import",[76,77,78],"Learning curve","Medium — rich interface, several concepts to master","Low — up and running in minutes",[80,81,82],"Import from Linear","CSV imported manually via Issues","CSV or JSON via the import interface",[84,85,86],"Recommended use case","Tech teams of 5–50, formal sprint management","Small teams, personal use or lightweight projects",{"type":31,"title":88,"body":89},"Exporting from Linear: exact procedure","Linear lets you export your issues as CSV from the workspace settings. The export covers active and archived issues, their statuses, priorities, labels, assignees and comments as plain text. Attachments (files uploaded directly to Linear) are not included in the CSV export — download them manually if they are critical.",{"type":91,"title":92,"steps":93},"steps","Migrate from Linear to Plane or Vikunja in seven steps",[94,97,100,103,106,109,112],{"title":95,"body":96},"Export your issues from Linear","In Linear, open **Settings** (gear icon bottom left) → **Workspace** → **Export**. Select the **CSV** format and trigger the export. Linear sends an email with the download link within a few minutes. The CSV file contains: `title`, `description`, `status`, `priority`, `assignee`, `labels`, `created_at`, `updated_at`, `completed_at`, `cycle`, `project`, and comments in a dedicated column. Keep this file — it is your migration source.",{"title":98,"body":99},"Deploy Plane or Vikunja on your VPS","**For Plane**: a VPS with 2 vCPU and 4 GB of RAM is the minimum required by the official documentation for the AIO image. Start the container with `docker run -d --name plane --restart unless-stopped --env-file \u002Fopt\u002Fplane\u002F.env -v plane-data:\u002Fapp\u002Fplane-data -p 127.0.0.1:8080:8080 makeplane\u002Fplane-aio-community:stable`. See the full Plane VPS deployment guide for HTTPS reverse proxy details.\n\n**For Vikunja**: a VPS with 1 vCPU and 512 MB of RAM is sufficient. Create a `docker-compose.yml` file with the `vikunja` service (image `vikunja\u002Fvikunja:latest`) and a database (MariaDB or PostgreSQL). Expose port `3456` behind your reverse proxy. Vikunja starts in under thirty seconds on a minimal host.",{"title":101,"body":102},"Prepare the CSV file for import","Before importing, open the CSV in a spreadsheet and check the status column: Linear uses its own status names (`Backlog`, `Todo`, `In Progress`, `Done`, `Cancelled`). Plane and Vikunja have their own default statuses. Either rename them in the CSV to match the target statuses, or create the corresponding statuses in your new tool before importing. An unrecognised status is typically ignored or assigned the default status — verify after the import.",{"title":104,"body":105},"Import issues into Plane or Vikunja","**In Plane**: open your project → **Settings** → **Imports** → **CSV**. Upload the file and map the columns: `title` → Name, `description` → Description, `status` → State, `priority` → Priority, `assignee` → Assignee, `labels` → Labels. Plane creates issues in bulk and preserves creation dates if the `created_at` column is mapped.\n\n**In Vikunja**: open your list → import icon → **CSV**. Vikunja expects the columns `Title`, `Description`, `Done` (boolean), `Due Date`, `Priority`. If your Linear CSV uses different names, rename the column headers before importing. Vikunja also offers a JSON import for a more precise migration via the API.",{"title":107,"body":108},"Verify integrity after import","After the import, compare the number of imported issues to the number in your CSV export. If issues are missing, they likely had an unrecognised status or priority. Filter issues by status in your new tool to spot anomalies. Also verify that issues assigned to members have an assignee — members must exist in the target tool before the import, otherwise the field is silently left empty.",{"title":110,"body":111},"Invite team members","**In Plane**: open **Settings** → **Members** of your workspace → **Invite Members**. Send invitations by email. Members accept the invitation and create their account on your instance. Assign them the appropriate roles (Admin, Member, Viewer) at the project level.\n\n**In Vikunja**: open **Settings** → **Users** (from the admin interface) → **New User**, or let members register directly if you have enabled open registration. Then share lists or projects with each member from the sharing settings.",{"title":113,"body":114},"Configure integrations and test","If your team used Linear's GitHub integration, connect the equivalent in your new tool: Plane offers a GitHub integration under **Settings** → **Integrations** → **GitHub**. Vikunja exposes a REST API and webhooks — connect your CI pipeline via incoming webhooks. Run an end-to-end test: create an issue from your CI pipeline, verify it appears in the tool, change its status, and verify the notification (email or webhook) arrives correctly.",{"type":116,"title":117,"body":118},"tip","Start with a pilot project","Do not migrate the entire team at once. Choose a secondary project or a volunteer team to test the import, validate the status mapping and onboard a first group of users. Once the pilot project is stable — one to two weeks — migrate the remaining projects. This progressive approach lets you catch mapping or integration issues without blocking production.",{"type":31,"title":120,"body":121},"Troubleshooting: common migration issues","**Plane does not start with less than 4 GB of RAM.** The AIO image groups Django, Celery, PostgreSQL and Redis into a single container. Below 4 GB, the Celery worker competes with PostgreSQL for available memory and the container restarts in a loop. Check with `docker stats plane`: if RSS memory exceeds 90% of available RAM at startup, increase the VPS size before investigating further.\n\n**The CSV import in Plane completes without error but issues do not appear.** Plane validates the CSV silently: if a required column (`title`) is empty on a row, the entire row is skipped. Open the CSV in a spreadsheet and filter rows with an empty title — these are typically Linear sub-task rows that have no title of their own in the export.\n\n**Vikunja resets priorities to zero after import.** Vikunja expects numeric values for priority (0 = none, 1 = low, 2 = medium, 3 = high, 4 = urgent). The Linear export uses text labels (`Low`, `Medium`, `High`, `Urgent`, `No priority`). Replace these labels with the corresponding numeric values in the CSV before importing — a simple find-and-replace in a spreadsheet is sufficient.\n\n**Invited members do not receive the invitation email.** Verify that the outgoing email variables are correctly set in your `.env` file (`EMAIL_HOST`, `EMAIL_PORT`, `EMAIL_HOST_USER`, `EMAIL_HOST_PASSWORD`). On Plane, test with `docker exec plane python manage.py sendtestemail your@email.com`. On Vikunja, the SMTP configuration is in `config.yml` under the `mailer` key.",{"type":31,"title":123,"body":124},"Managing your project management on your own infrastructure","Linear's free plan reduction illustrates a structural risk of SaaS tools: terms change, limits drop, and teams that have built their workflow around a third-party tool find themselves having to pay or migrate under pressure. Plane and Vikunja both offer a stable alternative, with a data model comparable to Linear and open-source licences that guarantee data longevity. The choice between the two depends primarily on the RAM available on your VPS and the need for formal sprint management — Plane for workflows close to Linear, Vikunja for a lighter setup. To go further in consolidating your management tools, see the guide on Huly (issues, docs and chat in one tool) and the guide on migrating from SaaS to self-hosting.","Host your project management tools on your own infrastructure","Plane and Vikunja run on a Linux VPS with Docker. ServOrbit offers VPS instances with full root access, sized from 2 vCPU and 4 GB RAM — the recommended baseline for Plane AIO. Your data stays in your infrastructure, with no member limits.","Deploy my stack on VPS","\u002Fvps-cloud",[130,147,162],{"id":131,"slug":132,"slugs":133,"title":136,"excerpt":137,"readTime":138,"views":15,"isPinned":16,"publishedAt":139,"category":140,"categories":141,"featuredImage":25,"bgImage":26,"posterImage":143,"relatedSolution":144},252,"deploy-plane-self-hosted-on-a-linux-vps",{"fr":134,"en":132,"ar":135},"deployer-plane-vps","نشر-plane-كاستضافة-ذاتية-على-خادم-vps-لينكس","Deploy Plane on a VPS: guide and post-2.3.7 regressions","Install Plane AIO on your VPS with Docker. Complete guide including known regressions in versions 2.3.7 to 2.4.1, the safe update procedure and troubleshooting.",12,"2026-08-13T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[142],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fdeployer-plane-vps-poster.svg",{"categorySlug":145,"appSlug":146},"collaboration-productivity","plane",{"id":148,"slug":149,"slugs":150,"title":153,"excerpt":154,"readTime":155,"views":156,"isPinned":16,"publishedAt":157,"category":158,"categories":159,"featuredImage":25,"bgImage":26,"posterImage":161,"relatedSolution":25},221,"huly-replace-linear-notion-and-slack-on-your-vps",{"fr":151,"en":149,"ar":152},"huly-gestion-projet-self-hosted-vps","huly-استبدل-linear-وnotion-وslack-على-خادمك-الافتراضي","Huly: replace Linear, Notion and Slack on your VPS","Deploy Huly on your VPS to centralise issues, docs and chat in one open-source tool — no per-seat subscription required.",3,1,"2026-08-04T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[160],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fhuly-gestion-projet-self-hosted-vps-poster.svg",{"id":163,"slug":164,"slugs":165,"title":168,"excerpt":169,"readTime":14,"views":15,"isPinned":16,"publishedAt":170,"category":171,"categories":177,"featuredImage":25,"bgImage":26,"posterImage":179,"relatedSolution":25},261,"when-saas-vendors-bundle-ai-migrating-to-self-hosting",{"fr":166,"en":164,"ar":167},"migrer-saas-self-hosting-bundling-ia","ارتفاع-تكاليف-saas-46-متى-تستضيف-بنفسك","When SaaS vendors bundle AI: migrating to self-hosting","PricePulse H1 2026: +46% SaaS costs for 50-person teams. Mattermost, Nextcloud, Plane and Forgejo self-host on a VPS. Migration guide.","2026-08-14T00:00:00+00:00",{"id":172,"name":173,"slug":174,"color":175,"icon":176},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[178],{"id":172,"name":173,"slug":174,"color":175,"icon":176},"\u002Fblog\u002Fcovers\u002Fmigrer-saas-self-hosting-bundling-ia-poster.svg",1787581007817]