[{"data":1,"prerenderedAt":195},["ShallowReactive",2],{"seo-verification":3,"blog-outline-wiki-notion-self-hosted-vps-2-ma-en":6,"promo-bar-likely":194},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-outline-wiki-notion-self-hosted-vps-2-ma-en",{"id":9,"slug":10,"slugs":11,"title":14,"excerpt":15,"readTime":16,"views":17,"isPinned":18,"noindex":18,"publishedAt":19,"updatedAt":20,"category":21,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":132,"ctaBody":133,"ctaButton":134,"ctaUrl":135,"relatedPosts":136},340,"outline-wiki-notion-self-hosted-vps-2",{"fr":12,"en":10,"ar":10,"es":13},"outline-wiki-notion-self-hosted-vps","outline-wiki-auto-alojado-en-vps-alternativa-a-notion","Outline: Self-Hosted Wiki on VPS, Alternative to Notion","Outline delivers a polished wiki you can host on your own VPS, with no per-seat subscription. Qualify the BSL 1.1 licence before adopting it for your team.",11,0,false,"2026-09-08T00:00:00+00:00","2026-11-08T01:13:12+00:00",{"id":22,"name":23,"slug":24,"color":25,"icon":26},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[28],{"id":22,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Foutline-wiki-notion-self-hosted-vps-poster.svg","The deal under which Bending Spoons bought Airtable, announced in August 2026 and completed on 4 September, revived a question that technical teams and agencies keep asking: at what point does dependence on a SaaS vendor become an operational risk? Against that backdrop, Outline is back on the radar as a serious alternative to Notion and Confluence: elegant Markdown rendering, real-time editing, granular permissions. Before deploying it, two points matter: its BSL 1.1 licence, which is not open source in the OSI sense, and its installation requirements — a mandatory identity provider, PostgreSQL, Redis and storage for files.",[34,38,49,52,100,103,125,129],{"type":35,"title":36,"body":37},"h2","Why Outline rather than Notion or Confluence on a VPS","Notion and Confluence share the same structural flaw: their pricing is indexed on the number of users, and it climbs as soon as the team grows. At Notion, AI has been reserved for the Business and Enterprise plans since the announcement of 13 May 2025: its price is built into every seat, whether you use it or not. The Business plan is listed at €19.50 per member per month on annual billing on \u003Ca href=\"https:\u002F\u002Fwww.notion.com\u002Fpricing\">notion.com\u002Fpricing\u003C\u002Fa> (the price shown to a visitor in the euro area) — €390 a month for twenty people, before the Notion credits billed on top to run custom agents. All that for a wiki whose data, roadmap and next acquisition date you do not control.\n\nOutline breaks that logic. Hosted on your own VPS, the cost is fixed: you pay for the server, not for each extra collaborator. The rendering is polished — clean typography, code blocks with syntax highlighting, embedded images, tables — and simultaneous editing runs over WebSockets. Full-text search is indexed directly in PostgreSQL: no external service, no extra cost. For a technical team of 10 to 50 people, it is one of the most complete self-hosted wikis.\n\nThe Airtable buyout is not a side note. Bending Spoons has made a speciality of acquiring popular SaaS tools — Evernote, Meetup, WeTransfer — and then reshaping their economics. It says it intends to invest in Airtable, but when your company documentation relies on a third-party SaaS, a change of owner can mean higher prices, reduced free features or a pivot towards a model that no longer fits your use. Hosting Outline on your own infrastructure takes you out of that risk.",{"type":39,"title":40,"items":41},"ul","What Outline concretely brings",[42,43,44,45,46,47,48],"**Real-time Markdown rendering** — the editor feels like Notion without the proprietary blocks","**Collaborative editing** — several writers on the same document via WebSockets and Redis","**Permissions per collection and per group** — read-only, comment, edit, admin","**Full-text search** — indexed in PostgreSQL, working from the moment you install","**Attachments and images** — on the VPS disk by default, or on S3-compatible storage (MinIO, Backblaze B2, AWS S3)","**Documented API** — plugs into your CI\u002FCD pipelines or scripts; it also automates content exports","**Import from Notion and Markdown** — the Notion import goes through an integration you declare; the Confluence importer is reserved for the Business and Enterprise editions",{"type":35,"title":50,"body":51},"BSL 1.1 licence: Outline is not open source","This is the point comparisons often skip. Outline is published under the **Business Source License 1.1** (BSL 1.1). The repository's licence file says so itself: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Foutline\u002Foutline\u002Fblob\u002Fmain\u002FLICENSE\">\"not an Open Source license\"\u003C\u002Fa> — this is not an interpretation, it is the authors' own wording.\n\nIn practice, the licence grants use of the software on one condition: **do not run it as a \"Document Service\"**, meaning do not offer Outline as a documentation service to third parties. The \u003Ca href=\"https:\u002F\u002Fdocs.getoutline.com\u002Fs\u002Fhosting\u002Fdoc\u002Flicense-restrictions-f9aq6uEL3H\">official restrictions page\u003C\u002Fa> is unambiguous: selling, reselling or hosting Outline as a service is a breach, and a breach terminates the licence automatically. A software vendor wanting to offer a paid Outline wiki to its customers is therefore outside the licence; an agency hosting it for clients should ask the vendor before deploying.\n\nFor **internal team use** — knowledge base, product documentation, runbooks, onboarding — you can self-host freely.\n\nThe switch to Apache 2.0 has no single date: **each version has its own**, four years after its release. The LICENSE file of version 1.12.0, released on 23 October 2026, sets that change for **2030-10-23**. The version you deploy today will only become fully permissive in 2030, and every update pushes the date back for the new code.\n\n**Practical summary**: internal use, no problem. Resale or service to clients: read the licence and ask the vendor before deploying. To place the BSL among \"source available\" licences, see \u003Ca href=\"\u002Fen\u002Fblog\u002Fbsl-and-sspl-the-traps-of-source-available-licenses\">our BSL and SSPL analysis\u003C\u002Fa>.",{"type":53,"title":54,"headers":55,"rows":60},"comparison","Outline vs Notion vs Confluence vs Docmost",[5,56,57,58,59],"Outline","Notion","Confluence","Docmost",[61,66,70,76,80,86,90,94],[62,63,64,64,65],"Licence model","BSL 1.1 (each version → Apache 2.0 after 4 years)","Proprietary SaaS","AGPL-3.0 (core) + paid editions",[23,67,68,69,67],"Yes — Docker + VPS","No","Yes (Data Center, expensive)",[71,72,73,74,75],"Pricing","Fixed server cost","Per member\u002Fmonth","Per user","Fixed server cost (free edition)",[77,78,79,79,78],"Real-time editing","Yes (WebSockets + Redis)","Yes",[81,82,83,84,85],"Required stack","PostgreSQL + Redis + file storage","N\u002FA (SaaS)","PostgreSQL\u002FOracle + heavy infra","PostgreSQL + Redis",[87,88,89,79,88],"Full-text search","Built into PostgreSQL","Yes (SaaS)",[91,92,93,93,92],"Notion \u002F Confluence import","Notion yes; Confluence in paid edition","Export only",[95,96,97,98,99],"Sign-in","SSO required (OIDC, Google, Slack, Microsoft, Discord)","Notion account","Atlassian account","Email and password; SSO in paid edition",{"type":35,"title":101,"body":102},"Prerequisites for hosting Outline on a VPS","Outline is made of three services that must run together.\n\n**PostgreSQL** (version 14 or later) stores every document, user and permission: it carries the state of your wiki. **Redis** (version 4 or later) handles sessions, the WebSockets behind real-time editing and the background job queues; if it goes down, simultaneous editing stops. **File storage** receives attachments and images: on the VPS disk by default (`FILE_STORAGE=local`, folder `\u002Fvar\u002Flib\u002Foutline\u002Fdata`), or in an S3-compatible bucket (`FILE_STORAGE=s3`) — a MinIO on the same VPS, Backblaze B2 or AWS S3. Moving files to S3 keeps PostgreSQL backups light and lets the attachment volume grow without touching the application server.\n\nSizing: the \u003Ca href=\"https:\u002F\u002Fdocs.getoutline.com\u002Fs\u002Fhosting\u002Fdoc\u002Frequirements-ULdYnwi4wG\">official documentation\u003C\u002Fa> requires at least 512 MB of memory and recommends 1 GB or more when users are numerous. For a team of 20 to 50 people with PostgreSQL and Redis on the same machine, aim for **2 vCPU, 4 GB of RAM** and 20 GB of SSD, more if attachments stay local. A VPS Power (4 vCPU, 8 GB) leaves headroom for simultaneous editing peaks. The number of processes is set with `WEB_CONCURRENCY`: count one process per 512 MB of available memory.\n\n**Authentication is the prerequisite people discover too late.** Outline has no email-and-password sign-in: at least one provider must be configured — Slack, Google, Microsoft Entra, Discord or a generic OIDC server (Authentik, Keycloak…) — otherwise the installation offers no way to sign in. SAML is reserved for the Business and Enterprise editions. Plan an **SMTP server** too: it sends notifications (\"document updated\") and enables sign-in by email link.\n\nOn the host: Docker and Docker Compose v2, a reverse proxy (Nginx or Caddy), a valid TLS certificate and a dedicated domain name (`wiki.yourdomain.com`): the `URL` variable must match the public address exactly.",{"type":104,"title":105,"steps":106},"steps","Deploying Outline with Docker Compose",[107,110,113,116,119,122],{"title":108,"body":109},"Create the `docker-compose.yml` file","Create a dedicated directory:\n\n```bash\nmkdir -p \u002Fopt\u002Foutline && cd \u002Fopt\u002Foutline\n```\n\nThen the compose file. Pin a precise version rather than `latest`, and publish port 3000 on the loopback interface only:\n\n```yaml\nservices:\n  outline:\n    image: docker.getoutline.com\u002Foutlinewiki\u002Foutline:1.12.0\n    env_file: .env\n    ports:\n      - \"127.0.0.1:3000:3000\"\n    volumes:\n      - outline_data:\u002Fvar\u002Flib\u002Foutline\u002Fdata\n    depends_on:\n      - postgres\n      - redis\n\n  postgres:\n    image: postgres:18\n    environment:\n      POSTGRES_USER: outline\n      POSTGRES_PASSWORD: password\n      POSTGRES_DB: outline\n    volumes:\n      - postgres_data:\u002Fvar\u002Flib\u002Fpostgresql\n\n  redis:\n    image: redis:7\n    volumes:\n      - redis_data:\u002Fdata\n\nvolumes:\n  outline_data:\n  postgres_data:\n  redis_data:\n```\n\nThe Postgres image creates the user and database on first start from `POSTGRES_USER`, `POSTGRES_PASSWORD` and `POSTGRES_DB`: without a password, the container refuses to start.",{"title":111,"body":112},"Configure the `.env` file","Generate the secret key and the utility key:\n\n```bash\nopenssl rand -hex 32   # SECRET_KEY\nopenssl rand -hex 32   # UTILS_SECRET\n```\n\nEssential `.env` variables (example with an OIDC provider):\n\n```\nURL=https:\u002F\u002Fwiki.yourdomain.com\nPORT=3000\nSECRET_KEY=\u003Cgenerated key>\nUTILS_SECRET=\u003Cgenerated key>\nDATABASE_URL=postgres:\u002F\u002Foutline:password@postgres:5432\u002Foutline\nPGSSLMODE=disable\nREDIS_URL=redis:\u002F\u002Fredis:6379\nFORCE_HTTPS=true\nWEB_CONCURRENCY=2\nFILE_STORAGE=local\nFILE_STORAGE_LOCAL_ROOT_DIR=\u002Fvar\u002Flib\u002Foutline\u002Fdata\nOIDC_CLIENT_ID=\u003Cclient-id>\nOIDC_CLIENT_SECRET=\u003Cclient-secret>\nOIDC_AUTH_URI=https:\u002F\u002Fauth.yourdomain.com\u002Fapplication\u002Fo\u002Fauthorize\u002F\nOIDC_TOKEN_URI=https:\u002F\u002Fauth.yourdomain.com\u002Fapplication\u002Fo\u002Ftoken\u002F\nOIDC_USERINFO_URI=https:\u002F\u002Fauth.yourdomain.com\u002Fapplication\u002Fo\u002Fuserinfo\u002F\nSMTP_SERVICE=\u003Cservice>\nSMTP_USERNAME=\u003Cuser>\nSMTP_PASSWORD=\u003Cpassword>\nSMTP_FROM_EMAIL=wiki@yourdomain.com\n```\n\n`PGSSLMODE=disable` is needed when PostgreSQL runs on the same machine without TLS: without it, Outline attempts an encrypted connection and fails. For Google, Slack, Microsoft or Discord, replace the OIDC block with that provider's variables (`GOOGLE_CLIENT_ID`, `SLACK_CLIENT_ID`…) listed in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Foutline\u002Foutline\u002Fblob\u002Fmain\u002F.env.sample\">official sample file\u003C\u002Fa>. Back this file up off the server: losing `SECRET_KEY` makes the encrypted data in the database unreadable.",{"title":114,"body":115},"Start the stack","```bash\ndocker compose up -d\ndocker compose logs -f outline\ndocker compose ps\n```\n\nDatabase migrations run automatically when the Outline container starts: follow the logs until it reports listening on port 3000, then check that all three services are `running`.",{"title":117,"body":118},"Configure the reverse proxy","Outline listens on port 3000 locally. Example Nginx block:\n\n```\nserver {\n    listen 443 ssl;\n    server_name wiki.yourdomain.com;\n\n    ssl_certificate \u002Fetc\u002Fletsencrypt\u002Flive\u002Fwiki.yourdomain.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fwiki.yourdomain.com\u002Fprivkey.pem;\n    client_max_body_size 260m;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:3000;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection 'upgrade';\n        proxy_set_header Host $host;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_cache_bypass $http_upgrade;\n    }\n}\n```\n\nThe `Upgrade` and `Connection` headers are essential for the WebSockets behind real-time editing; `client_max_body_size` must cover the upload size Outline allows (`FILE_STORAGE_UPLOAD_MAX_SIZE`). With Caddy, two lines are enough and the Let's Encrypt certificate is obtained and renewed automatically:\n\n```\nwiki.yourdomain.com {\n    reverse_proxy 127.0.0.1:3000\n}\n```",{"title":120,"body":121},"Create the first administrator account","Open `https:\u002F\u002Fwiki.yourdomain.com` and sign in through the configured identity provider: the first authenticated account becomes the workspace administrator.\n\nTo invite colleagues, go to Settings → Members → Invite. Invitations and notifications go out through the SMTP server declared in `.env`.",{"title":123,"body":124},"Schedule backups","What to back up: the PostgreSQL database, the file volume if `FILE_STORAGE=local`, and the `.env`. Example for a daily cron job:\n\n```bash\ncd \u002Fopt\u002Foutline\ndocker compose exec -T postgres pg_dump -U outline outline | gzip > outline-$(date +%F).sql.gz\ndocker run --rm -v outline_outline_data:\u002Fdata -v \"$PWD\":\u002Fbackup alpine \\\n  tar czf \u002Fbackup\u002Foutline-files-$(date +%F).tar.gz -C \u002Fdata .\n```\n\nOutline's documentation recommends at least one backup a day, kept for about a month. In addition, Settings → Export produces an HTML, Markdown or JSON archive readable without Outline.",{"type":126,"title":127,"body":128},"tip","Updating Outline without nasty surprises","Outline publishes tagged Docker images: avoid `latest` in production and target a precise version (`outlinewiki\u002Foutline:1.12.0` as of 7 November 2026), after reading the release notes on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Foutline\u002Foutline\u002Freleases\">the releases page\u003C\u002Fa>.\n\nMigrations apply automatically when the container restarts, and the documentation warns that they are not always backward compatible: rolling back to the previous image is not always enough. A database backup before every update is therefore mandatory, not optional.\n\n```bash\ncd \u002Fopt\u002Foutline\ndocker compose exec -T postgres pg_dump -U outline outline | gzip > before-update.sql.gz\n# change the image tag in docker-compose.yml, then:\ndocker compose pull outline\ndocker compose up -d outline\ndocker compose logs -f outline\n```\n\nOn a large wiki, test the new version first on a copy of the database restored in a staging environment.",{"type":35,"title":130,"body":131},"When to choose Docmost over Outline","**Outline** is the right choice if you want polished Markdown rendering comparable to Notion, robust simultaneous editing and a connection to an existing identity provider (OIDC, Google, Microsoft). Its steady release pace — 1.11.0 and 1.12.0 in October 2026 — and its active community are solid arguments for a team planning for the long term. Comments, revision history, and Slack, GitHub and Linear integrations make it one of the most complete tools in the self-hosted segment.\n\n**Docmost** is a more recent alternative (2023) whose core is published under AGPL-3.0 — a genuine open source licence in the OSI sense, with no restriction on use as a service. Its advanced features (SAML\u002FOIDC\u002FLDAP SSO, API keys, Confluence importer, databases), however, belong to paid editions under a separate licence. Its stack is comparable — PostgreSQL and Redis — but no identity provider is imposed, since the free edition accepts email-and-password sign-in. If licence qualification is a blocking criterion — especially if you are building a product that would embed a knowledge base for your end users — Docmost is worth evaluating in parallel. This article focuses on Outline; for step-by-step installation, see \u003Ca href=\"\u002Fen\u002Fblog\u002Fhow-to-self-host-docmost-on-a-vps\">our dedicated Docmost guide\u003C\u002Fa>, and for a migration from Notion, \u003Ca href=\"\u002Fen\u002Fblog\u002Fnotion-2026-price-increase-docmost-self-hosted\">our analysis of Notion's price increase\u003C\u002Fa>.\n\nThe two coexist without cannibalising each other: Outline has more advanced features in its free edition and a more established community, Docmost a more permissive licence and sign-in without mandatory SSO. The choice depends on your legal context and technical needs.","Deploy your team wiki on a VPS","A VPS Power (4 vCPU, 8 GB) comfortably covers the full Outline stack — PostgreSQL, Redis and attachment storage — for a team of fewer than 50 people.","Configure My Outline VPS Solution","\u002Fvps-cloud",[137,158,176],{"id":138,"slug":139,"slugs":140,"title":144,"excerpt":145,"readTime":146,"views":147,"isPinned":18,"noindex":18,"publishedAt":148,"updatedAt":149,"category":150,"categories":155,"featuredImage":29,"bgImage":30,"posterImage":157,"relatedSolution":29},219,"bsl-and-sspl-the-traps-of-source-available-licenses",{"fr":141,"en":139,"ar":142,"es":143},"bsl-sspl-licences-self-hosting","bsl-وsspl-مخاطر-تراخيص-المصدر-المتاح","bsl-y-sspl-trampas-licencias-source-available","BSL and SSPL: the traps of source-available licenses","BSL, SSPL, AGPLv3: understand what each license allows or forbids before adding a tool to your stack.",12,3,"2026-08-04T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":151,"name":152,"slug":153,"color":154,"icon":153},5,"Comparison","comparatif","bg-info\u002F10 text-info",[156],{"id":151,"name":152,"slug":153,"color":154,"icon":153},"\u002Fblog\u002Fcovers\u002Fbsl-sspl-licences-self-hosting-poster.svg",{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":147,"views":17,"isPinned":18,"noindex":18,"publishedAt":167,"updatedAt":168,"category":169,"categories":170,"featuredImage":29,"bgImage":30,"posterImage":172,"relatedSolution":173},148,"how-to-self-host-docmost-on-a-vps",{"fr":162,"en":160,"ar":163,"es":164},"self-host-docmost-vps","كيفية-استضافة-docmost-ذاتيا-على-vps","como-autoalojar-docmost-en-un-vps","How to Self-Host Docmost on a VPS","Deploy Docmost on your VPS for a self-hosted team wiki with real-time collaboration. Open-source Notion and Confluence alternative — Docker Compose in 15 minutes.","2026-01-28T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":22,"name":23,"slug":24,"color":25,"icon":26},[171],{"id":22,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fself-host-docmost-vps-poster.svg",{"categorySlug":174,"appSlug":175},"collaboration-productivity","docmost",{"id":177,"slug":178,"slugs":179,"title":183,"excerpt":184,"readTime":22,"views":185,"isPinned":18,"noindex":18,"publishedAt":186,"updatedAt":187,"category":188,"categories":189,"featuredImage":29,"bgImage":30,"posterImage":191,"relatedSolution":192},79,"host-bookstack-on-your-own-vps",{"fr":180,"en":178,"ar":181,"es":182},"heberger-bookstack","استضافة-bookstack-على-خادم-vps-الخاص-بك","alojar-bookstack-en-un-vps","Host BookStack on your own VPS","Complete guide to installing BookStack on a VPS with Docker Compose, SSL, SMTP and backups. Open source wiki, ~2 GB RAM, deployed in 15 minutes.",2,"2026-04-02T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":22,"name":23,"slug":24,"color":25,"icon":26},[190],{"id":22,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-bookstack-poster.svg",{"categorySlug":174,"appSlug":193},"bookstack",true,1794270464283]