-
Notifications
You must be signed in to change notification settings - Fork 56
Create a new guide for Outline, team knowledge base and wiki #766
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Create a new guide for Outline, team knowledge base and wiki #766
Conversation
✅ Review app deployedCheck how your changes look like!
|
f7cc6f8 to
731d3ea
Compare
731d3ea to
0a38abb
Compare
0a38abb to
f1464c2
Compare
c32c7d6 to
9aaf735
Compare
9aaf735 to
9ced034
Compare
9ced034 to
c94165b
Compare
c94165b to
8308d30
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Adds a new deployment guide for Outline on Clever Cloud, plus the supporting navigation entry and icon.
Changes:
- Add an Outline deployment guide covering app/add-ons setup, S3 (Cellar) configuration, and OAuth providers.
- Register a new
outlineicon indata/icons.yamlfor use in cards. - Add Outline to the guides index cards list.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 14 comments.
| File | Description |
|---|---|
data/icons.yaml |
Adds an outline SVG icon for use in guide cards. |
content/guides/outline.md |
Introduces a full Outline deployment guide (Node.js + Postgres + Redis + Cellar + OAuth). |
content/guides/_index.md |
Adds Outline to the guides landing page cards. |
Comments suppressed due to low confidence (1)
content/guides/outline.md:235
- In the “Further Help” cards, the PostgreSQL card uses
icon="mysql", which will render the wrong icon. Use the PostgreSQL icon key (e.g.pg) to match the title/link.
| ``` | ||
|
|
||
| ### Choose a S3 bucket name | ||
|
|
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In Markdown headings, <secret_key> / <utils_secret> can be interpreted as HTML tags and may not render as intended. Use backticks (e.g. SECRET_KEY / UTILS_SECRET) or plain text instead of angle brackets.
|
|
||
| ```xml | ||
| <CORSConfiguration> | ||
| <CORSRule> |
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The S3 region guidance is inconsistent: this section suggests us-east-1, but earlier the env example sets AWS_REGION="us". Align the region values (and the wording) so users don’t end up with mismatched configuration.
| <AllowedMethod>DELETE</AllowedMethod> | ||
| <AllowedHeader>*</AllowedHeader> | ||
| <ExposeHeader>ETag</ExposeHeader> |
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The s3cmd setpolicy command is missing the closing > in s3://<bucket_name>, which makes the placeholder unclear/incorrect. Fix to a consistent placeholder form (e.g. s3://<bucket-name>).
|
|
||
| ```bash | ||
| s3cmd setcors cors.xml s3://<bucket_name> | ||
| ``` | ||
|
|
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The CORS example allows PUT/POST/DELETE from any origin (<AllowedOrigin>*</AllowedOrigin>). This is much more permissive than the Cellar docs example and can enable unwanted cross-origin writes. Restrict AllowedOrigin for write methods to the Outline domain (and keep * only if you intentionally want public cross-origin access).
| UTILS_SECRET=$( openssl rand -hex 32 ) | ||
| echo "<secret_key>: $SECRET_KEY \n<utils_secret>: $UTILS_SECRET" | ||
| ``` | ||
|
|
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Grammar: use "a URL" (not "an URL").
|
|
||
| ```env | ||
| GOOGLE_CLIENT_ID="<your_google_client_id>" |
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The s3cmd setcors command is missing the closing > in s3://<bucket_name>. Fix the placeholder so the command can be copied reliably (e.g. s3://<bucket-name>).
| meteor: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="m2.8 3l16.87 15.82s.33.45-.09.89c-.41.44-.95.06-.95.06L2.8 3m5.01 1.59l13.1 12.05s.32.44-.09.86c-.42.47-.96.09-.96.09l-12.05-13M4.29 8l13.1 12.03s.32.44-.09.88c-.42.45-.96.09-.96.09L4.29 8m7.76-2.04l9.15 8.41s.22.31-.07.63c-.28.3-.66.03-.66.03l-8.42-9.07m-6.6 5.95l9.15 8.42s.22.31-.06.62c-.29.31-.67.05-.67.05l-8.42-9.09m10.93-3.99l4.17 3.82s.11.14-.05.29c-.12.14-.31.02-.31.02l-3.81-4.13M7.56 16.1l4.18 3.81s.11.15-.04.29c-.14.15-.33.02-.33.02L7.56 16.1Z"/></svg> | ||
| maven: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M4.237.001c-.312-.013-.665.072-.828.457c-.158.374-.283 1.188-.34 2.276l1.223.591c-.02-.737.007-1.43.076-2.066c-.026.299-.056.96.006 2.039c.019.342.049.725.088 1.15c.002.024.002.047.007.069a45.485 45.485 0 0 0 .309 2.412c.057.368.126.752.195 1.16l-.01.01c.014.01.015.018.014.023l.03.16c.03.162.06.328.093.494l.108.553l.056.289a61.72 61.72 0 0 0 .457 2.068c.09.382.186.78.287 1.186c.098.386.199.783.309 1.193c.096.362.199.735.303 1.117c.003.018.012.036.015.055a145.826 145.826 0 0 0 .34 1.185l.049.174c.078.261.158.533.242.805a4.2 4.2 0 0 1-.293-.135l-.19-.654c-.02-.077-.042-.148-.062-.225l-.002-.004l-.004-.002c-.087-.3-.17-.607-.257-.916c-.023-.087-.044-.173-.069-.263l-.314-1.178c-.1-.381-.194-.765-.29-1.154c-.094-.39-.185-.78-.277-1.172c-.093-.401-.181-.8-.265-1.203c-.085-.396-.161-.798-.24-1.193a50.315 50.315 0 0 1-.211-1.17c-.004-.013-.006-.03-.01-.041l.004-.002c-.057-.386-.116-.77-.174-1.15a60.905 60.905 0 0 1-.154-1.204a27.447 27.447 0 0 1-.172-2.41l-1.22-.59c-.004.074-.01.15-.013.23c-.012.294-.02.605-.023.93a45.3 45.3 0 0 0 .006 1.157c.009.37.025.755.045 1.148c.02.336.042.675.07 1.022l.002.039l.006.004c.003.023.007.05.006.076c.033.368.064.739.107 1.115a34.493 34.493 0 0 0 .303 2.125c.01.064.024.131.035.195a23.418 23.418 0 0 0 .547 2.32c.07.237.14.464.21.68c.063.182.13.365.194.545c.155.422.327.832.512 1.232l.006.004a.318.318 0 0 0 .02.05c.225.485.475.95.755 1.395c.01.013.02.033.03.047c-.455-.183-1.259-.098-1.253-.097c.83.288 1.557.64 2.016 1.175c-.183.2-.523.352-.953.477c.594.064.924-.039 1.045-.092c-.31.26-.483.732-.635 1.24c.35-.57.696-.949 1.033-1.094c.078.258.162.524.244.788A147.532 147.532 0 0 0 5.157 24a.56.56 0 0 0 .43-.312c.13-.282.83-1.775 1.908-3.875c.413 1.303.88 2.679 1.386 4.109a.494.494 0 0 0 .076-.465a103.735 103.735 0 0 1-1.308-3.945c.154-.299.316-.612.484-.932c.125.04.255.094.389.155c.203.186.352.491.482.84a1.515 1.515 0 0 0-.334-1.098c1.335.258 2.547.09 3.287-.81a3.97 3.97 0 0 0 .192-.258c-.325.304-.682.404-1.313.273c.996-.281 1.523-.617 2.035-1.22c.12-.145.244-.303.371-.48c-.943.722-1.927.822-2.9.493l-.045-.018c.914.02 2.203-.474 3.092-1.189c.41-.33.796-.73 1.17-1.21c.28-.359.55-.76.82-1.216c.234-.393.468-.824.7-1.293a2.83 2.83 0 0 1-.74.137l-.144.008c-.048.002-.093 0-.146.002c.885-.198 1.5-.74 1.994-1.447c-.24.117-.628.262-1.07.297c-.058.006-.12.006-.182.006c-.013-.002-.028 0-.047-.002c.306-.078.574-.178.81-.309a3.363 3.363 0 0 0 .358-.236c.044-.037.088-.07.13-.106c.099-.086.193-.18.28-.287c.028-.034.056-.063.08-.098c.036-.05.073-.098.104-.146a8.388 8.388 0 0 0 .51-.828c.015-.031.032-.057.046-.088c.04-.084.08-.16.11-.227c.042-.099.074-.179.092-.238a.515.515 0 0 1-.108.051c-.273.112-.727.187-1.086.201c-.004 0-.008 0-.013.004h-.067c.72-.214 1.067-.45 1.422-.818a13.883 13.883 0 0 0 1.154-1.428c.264-.37.505-.738.692-1.072a6.5 6.5 0 0 0 .298-.592c.066-.157.122-.305.172-.45c-.466.01-.986.011-1.48 0c.495.01 1.015.007 1.484-.005c.5-1.485.063-2.262.063-2.262s-.526-1.212-1.4-.851c-.426.175-1.172.73-2.083 1.56l.514 1.45a17.561 17.561 0 0 1 1.703-1.602c-.257.22-.807.726-1.615 1.644c-.256.29-.537.624-.844.997c-.017.02-.035.038-.047.06a51.435 51.435 0 0 0-1.666 2.187c-.248.34-.498.704-.765 1.088h-.016c.002.02-.004.028-.01.032l-.101.152c-.104.155-.213.31-.318.47l-.352.534c-.061.09-.124.181-.186.277c-.184.282-.367.573-.558.873a97.351 97.351 0 0 0-1.428 2.338a96.866 96.866 0 0 0-1.341 2.343c-.012.017-.02.04-.034.057a197.256 197.256 0 0 0-.668 1.223l-.097.181c-.17.318-.346.642-.52.979c0 .004-.005.008-.006.013c-.026.048-.05.093-.072.141c-.117.222-.218.424-.45.87a1.352 1.352 0 0 0-.233-.182l.345-.65c.047-.089.096-.177.143-.27l.04-.077l.546-1.001l.13-.233v-.006l-.001-.006c.169-.31.345-.62.52-.94c.051-.087.102-.173.153-.265c.224-.395.454-.794.684-1.197a91.685 91.685 0 0 1 2.135-3.504c.247-.386.503-.77.754-1.152c.092-.138.182-.272.279-.41a72.9 72.9 0 0 1 .48-.701c.007-.012.019-.024.026-.037h.006c.26-.356.517-.713.773-1.065c.278-.373.554-.735.83-1.09a31.075 31.075 0 0 1 1.777-2.075l-.515-1.446c-.06.057-.126.116-.192.178a32.37 32.37 0 0 0-.758.729c-.295.294-.597.606-.912.935a46.032 46.032 0 0 0-1.632 1.838l-.03.033l.002.008c-.017.02-.033.044-.054.064c-.266.323-.538.649-.801.985a39.105 39.105 0 0 0-1.445 1.95c-.043.06-.085.126-.127.186a26.458 26.458 0 0 0-1.403 2.303c-.13.247-.256.485-.37.715c-.096.195-.187.395-.278.591c-.21.463-.398.93-.566 1.399l.002.006a.36.36 0 0 0-.026.058c-.108.303-.203.608-.29.914c-.14.174-.302.325-.483.46a3.505 3.505 0 0 0-.131-.153a5.148 5.148 0 0 0 .824-2.211a6.4 6.4 0 0 0-.016-1.488c-.046-.4-.126-.82-.238-1.274c-.097-.393-.217-.81-.363-1.248c-.091.185-.22.367-.379.545l-.086.094c-.029.032-.06.06-.092.094c.434-.674.486-1.397.358-2.148a2.722 2.722 0 0 1-.49.85c-.033.038-.072.077-.11.116c-.01.007-.019.018-.033.028c.144-.24.25-.467.318-.698a1.29 1.29 0 0 0 .04-.146a2.85 2.85 0 0 0 .038-.225l.018-.146a2.11 2.11 0 0 0-.002-.354c-.003-.04-.004-.076-.01-.113c-.01-.055-.016-.105-.027-.154a7.416 7.416 0 0 0-.193-.84c-.01-.028-.015-.056-.026-.084c-.027-.079-.048-.149-.072-.209a2.1 2.1 0 0 0-.09-.209a.455.455 0 0 1-.035.1c-.102.24-.34.57-.557.8c-.003.003-.007.005-.007.01l-.04.043c.318-.58.39-.946.385-1.398a12.274 12.274 0 0 0-.16-1.615a10.68 10.68 0 0 0-.232-1.104a5.853 5.853 0 0 0-.18-.558a6.337 6.337 0 0 0-.172-.391a26.18 26.18 0 0 0 .002-.004C5.576.341 4.82.124 4.82.124s-.27-.11-.582-.123zm3.38 15.783l.032.082v.002c-.06.033-.116.067-.178.097c-.012.004-.024.012-.039.018a2.41 2.41 0 0 0 .186-.2zm-.603 1.626c.13.136.25.242.354.32l.07.227a1.866 1.866 0 0 0-.246.053l-.03-.098c-.024-.084-.048-.17-.076-.257l-.021-.073zm.26.875a2.34 2.34 0 0 1 .271.01l.07.229a.778.778 0 0 1 .247-.004l-.326.627a127.643 127.643 0 0 1-.262-.862z"/></svg> | ||
| moodle: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512"><path fill="currentColor" d="M337.179 86.713C195.049 104.138 130.417 116.483 8 187.447l1.136 3.223l9.729.099c-.892 9.798-2.447 34.016-.461 70.433c-13.583 39.31-.345 66.015 12.087 95.065c1.97-30.216 1.768-63.31-7.512-96.246c-1.943-36.172-.347-59.956.53-69.207l81.152.775a371.222 371.222 0 0 0 2.403 47.57l.006.002c-1.134 6.657-1.703 13.71-1.703 21.161v164.964h79.367V269.517c-.013-8.703.945-16.233 2.858-22.611c20.455-3.355 39.75-10.883 56.958-22.184c13.423 6.674 20.14 21.6 20.14 44.795v155.77h79.353v-155.77c.058-32.575 13.514-48.857 40.373-48.847c26.858.01 40.287 16.291 40.287 48.847v155.77H504V260.322c-.01-33.995-11.815-59.715-35.412-77.164c-20.758-15.587-48.833-23.38-84.229-23.38c-38.714 0-65.392 9.202-80.03 27.61c-3.877-4.202-8.25-7.917-13.113-11.16c-10.753-12.04-31.792-28.45-31.792-28.45l78.763-57.555z"/></svg> | ||
| outline: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path fill="currentColor" d="M32 57.6v1.56a4 4 0 0 1-5.961 3.487l-24-13.5A4 4 0 0 1 0 45.66V18.339a4 4 0 0 1 2.039-3.486l24-13.5A4 4 0 0 1 32 4.84V6.4l2.85-.855A4 4 0 0 1 40 9.376V11l3.504-.438A4 4 0 0 1 48 14.532v34.937a4 4 0 0 1-4.496 3.969L40 53v1.624a4 4 0 0 1-5.15 3.831L32 57.6Zm0-4.176 4 1.2V9.376l-4 1.2v42.848Zm8-38.393V48.97l4 .5V14.53l-4 .5ZM0 44.47V19.53 44.47Zm4-26.13v27.322l24 13.5V4.839L4 18.34ZM8 21l4-2v26l-4-2V21Z"/></svg> |
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new outline icon SVG path doesn’t set fill="currentColor" (unlike neighbouring icons such as meteor/moodle), so it may render with a default fill and not follow theme colours. Add fill="currentColor" (or equivalent) to keep icon rendering consistent.
| linkTitle: Outline | ||
| title: Outline Knowledge Base on Clever Cloud |
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The page front matter still uses "Moodle" for both linkTitle and title, so this guide will be listed/rendered as Moodle instead of Outline. Update these fields to "Outline" (and ensure they match the file’s purpose).
|
|
||
| Select at least an `S` plan. Smaller instances can make the build to fail. | ||
|
|
||
| ### Create a PostgreSQL add-on |
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Markdown link is reversed: the visible text is the URL and the link target is "GitHub". Swap them so the link text is "GitHub" (or "Outline releases") and the href is https://github.com/outline/outline/releases.
| s3cmd --configure | ||
| ``` | ||
|
|
||
| When prompted, use the following values: | ||
| - Access Key: Your `CELLAR_ADDON_KEY_ID` |
Copilot
AI
Jan 28, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Configuring the S3 bucket policy with Principal: "*", Effect: "Allow", and Action: ["s3:GetObject"] on arn:aws:s3:::$BUCKET/* makes every object in the Outline storage bucket world-readable. For a private team knowledge base, this bypasses application-level access controls and allows anyone who learns or intercepts an object URL to retrieve potentially sensitive documents without authentication. Instead, keep the bucket private and grant access only to the Outline service identity (or use pre-signed URLs) so that S3 enforces the same access boundaries as the application.
2777e17 to
97c9ebe
Compare
davlgd
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this!
I've updated title (it was Moodle), icon color, remove some extra lines. Here are some comments & nitpicks, I let you update and check copilot comments. I'll rebase and merge after that.
|
|
||
| ### Choose a S3 bucket name | ||
|
|
||
| As explained in the [Cellar S3 doc](https://www.clever.cloud/developers/doc/addons/cellar/), Buckets' names are global for every region. You can’t give the same name to two different buckets in the same region, because the URL already exists in the Cellar cluster on this region. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| As explained in the [Cellar S3 doc](https://www.clever.cloud/developers/doc/addons/cellar/), Buckets' names are global for every region. You can’t give the same name to two different buckets in the same region, because the URL already exists in the Cellar cluster on this region. | |
| As explained in the [Cellar Object Storage documentation](https://www.clever.cloud/developers/doc/addons/cellar/), Buckets' names are global for every region. You can’t give the same name to two different buckets in the same region, because the URL already exists in the Cellar cluster on this region. |
Maybe too much "region" and we can make this sentence simpler/less repetitive
|
|
||
| ### Set Up Domain | ||
|
|
||
| Outline needs an URL declared in variables to work properly. You can set it up in **Domains names**, from your application menu. If you don't have a domain name yet, you can use a `cleverapp.io` subdomain provided by Clever Cloud for test purposes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Outline needs an URL declared in variables to work properly. You can set it up in **Domains names**, from your application menu. If you don't have a domain name yet, you can use a `cleverapp.io` subdomain provided by Clever Cloud for test purposes. | |
| Outline needs its public URL to be declared in an environment variables to work properly. You can set it up in **Domains names**, from your application menu. If you don't have a domain name yet, you can use a `cleverapps.io` subdomain provided by Clever Cloud for test purposes. |
|
|
||
| Using for example [OpenSSL](https://openssl-library.org/). | ||
|
|
||
| In a Linux/Mac shell: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| In a Linux/Mac shell: | |
| In a Linux/macOS shell: |
|
|
||
| As explained in the [Cellar S3 doc](https://www.clever.cloud/developers/doc/addons/cellar/), Buckets' names are global for every region. You can’t give the same name to two different buckets in the same region, because the URL already exists in the Cellar cluster on this region. | ||
|
|
||
| Unless you have a better option, use the Outline domain as bucket name. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this needs more explanations
| ```env | ||
| URL="<outline_domain>" | ||
| NODE_ENV="production" | ||
| PORT="8080" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
unnecessary (all apps have this env var by default)
| NODE_ENV="production" | ||
| PORT="8080" | ||
| CC_NODE_DEV_DEPENDENCIES="install" | ||
| CC_POST_BUILD_HOOK="NODE_ENV=production && yarn build" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NODE_ENV="production" is already set?
| CC_POST_BUILD_HOOK="NODE_ENV=production && yarn build" | |
| CC_POST_BUILD_HOOK="yarn build" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You use yarn build, but not yarn berry to install dependencies ? (see https://www.clever.cloud/developers/doc/applications/nodejs/#supported-package-managers)
| AWS_S3_FORCE_PATH_STYLE="true" | ||
| AWS_S3_ACL="private" | ||
| AWS_REGION="us" | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Better to link add-ons and to have a pre-run binding script for that (see oTree guide example). If credentials change, there is nothing to do. With fixed env var, you need to update them.
Maybe add comments to last three AWS_ env vars to explain why these values.
|
|
||
| ### Setting the S3 policies | ||
|
|
||
| For Outline to use Cellar S3 as storage for its content files, you need to configure specific S3 bucket policies. These policies ensure that Outline can properly read, write, and manage files in your Cellar bucket. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Policy allows only read, not write?
|
|
||
| ### Initialize repository and download Outline | ||
|
|
||
| Create a new `outline` folder for Outline and, inside it, initialize a Git repository with `git init`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not just git clone ?
|
|
||
| ### Deploy | ||
|
|
||
| Get the remote in your application menu > **Information** > **Deployment URL** and add it to Git with `git remote add clever <clever-remote-url>`. Then, push your code with `git push clever -u master` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe clever deploy is a better option here and it will work great with git clone. We can also talk about GitHub fork if GitHub account is linked to Clever Cloud account. A push on the fork and its deployed.
This PR introduces a deployment guide for Outline, anopen-source team knowledge base and wiki platform that enables organizations to create, organize, and collaborate on documentation.
The guide walks users through the complete deployment process on Clever Cloud, including setting up the necessary infrastructure (Node.js application, PostgreSQL database, Redis cache, and Cellar S3 storage), configuring S3 bucket policies and CORS settings, and establishing OAuth authentication with popular providers like Google, Slack, Discord, and Microsoft.
This addition expands our platform's documentation coverage for modern collaborative tools and provides users with a clear path to deploy their own knowledge management system.