Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions content/guides/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ llmsTxtOptional: true
{{< card link="/developers/guides/node-js-mongo-db" title="Node.js + MongoDB starter" subtitle= "Starter tutorial to deploy a Node.js + MongoDB application on Clever Cloud" icon="node" >}}
{{< card link="/developers/guides/node-statsd-nodejs-metrics" title="node-statsd" subtitle= "Configure node-statsd package on your Node.js application to push custom metrics" icon="node" >}}
{{< card link="/developers/guides/nuxt" title="Nuxt" subtitle= "Build and deploy a Nuxt application on Clever Cloud" icon="nuxt" >}}
{{< card link="/developers/guides/outline" title="Outline" subtitle= "Outline install and configuration guide" icon="outline" >}}
{{< card link="/developers/guides/pgpool" title="Pgpool-II" subtitle= "How to configure and use Pgpool-II for PostgreSQL add-ons" icon="pg" >}}
{{< card link="/developers/guides/play-framework-1" title="Play 1 x Scala" subtitle= "Set up your Play 1 + Scala application to run on Clever Cloud" icon="play" >}}
{{< card link="/developers/guides/play-framework-2" title="Play 2 x Scala" subtitle= "Set up your Play 2 + Scala application to run on Clever Cloud" icon="play" >}}
Expand Down
237 changes: 237 additions & 0 deletions content/guides/outline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,237 @@
---
type: docs
linkTitle: Moodle
title: Moodle
description: Deploy Outline team knowledge base and wiki on Clever Cloud with detailed tutorials and best practices
keywords:
- outline
- knowledge base
- wiki
- collaborative
- Node.js
- postgresql
aliases:
- /outline
---

{{< hextra/hero-subtitle >}}
[Outline](https://getoutline.com) is an open source team knowledge base and wiki that helps teams organize, share, and collaborate on documentation. Built for modern teams, it offers a clean, fast interface with powerful features for creating and maintaining company knowledge.
{{< /hextra/hero-subtitle >}}


This doc explains how to configure Outline from source, using the Clever Cloud console. For an alternative using the [Clever Cloud CLI](https://github.com/CleverCloud/clever-tools) there is a complete example in [this repository](https://github.com/CleverCloud/outline-example).




## How to Configure and Deploy Outline on Clever Cloud

{{% steps %}}

### Initialize repository and download Outline

Create a new `outline` folder for Outline and, inside it, initialize a Git repository with `git init`.

Download the latest release of Outline from [https://github.com/outline/outline/releases](GitHub) and expand it in `outline` folder.


### Create a Node application

On Clever Cloud Console, click **Create** > **An application** and choose a [Node.js](/developers/doc/applications/nodejs) application with Git deployment.

Select at least an `S` plan. Smaller instances can make the build to fail.


### Create a PostgreSQL add-on

On Clever Cloud Console, click **Create** > **An add-on** and choose a [PostgreSQL](/developers/doc/addons/postgresql/) add-on.

Select at least an `XSS` plan.

Link the add-on to the application previously created.


### Create a Redis add-on

On Clever Cloud Console, click **Create** > **An add-on** and choose a [Redis](/developers/doc/addons/redis/) add-on.

Link the add-on to the application previously created.


### Create a Cellar S3 Object Storage add-on

On Clever Cloud Console, click **Create** > **An add-on** and choose a [Cellar S3 Object Storage](/developers/doc/addons/cellar/) add-on.

Link the add-on to the application previously created.


### 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.

### Generate a <secret_key> and an <utils_secret>

Using for example [OpenSSL](https://openssl-library.org/).

In a Linux/Mac shell:

```bash
SECRET_KEY=$( openssl rand -hex 32 )
UTILS_SECRET=$( openssl rand -hex 32 )
echo "<secret_key>: $SECRET_KEY \n<utils_secret>: $UTILS_SECRET"
```

### 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.

Unless you have a better option, use the Outline domain as bucket name.

### Configure environment variables

In the Clever Cloud console, go to the Outline Node.js application you've created and, in the **Environment variables** section, inject the following environment variables into the application:

```env
URL="<outline_domain>"
NODE_ENV="production"
PORT="8080"
CC_NODE_DEV_DEPENDENCIES="install"
CC_POST_BUILD_HOOK="NODE_ENV=production && yarn build"
WEB_CONCURRENCY="2"
DEFAULT_LANGUAGE="en_US"
SECRET_KEY="<secret_key>
UTILS_SECRET="<utils_secret>"
```

Now inject the add-ons credentials:

```env
DATABASE_URL "<POSTGRESQL_ADDON_URI value>"
REDIS_URL "<REDIS_URL value>"
FILE_STORAGE="s3"
AWS_S3_UPLOAD_BUCKET_URL="https://<CELLAR_ADDON_HOST value>"
AWS_S3_UPLOAD_BUCKET_NAME=<bucket_name>
AWS_ACCESS_KEY_ID="<CELLAR_ADDON_KEY_ID value>"
AWS_SECRET_ACCESS_KEY="<CELLAR_ADDON_KEY_SECRET value>"
AWS_S3_FORCE_PATH_STYLE="true"
AWS_S3_ACL="private"
AWS_REGION="us"
```

### 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.

Unless you have a better option, use [s3cmd](https://s3tools.org/s3cmd) to apply these policies to your bucket. Here are the required policies:

```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::$BUCKET/*"]
}
]
}
```

First, configure s3cmd with your Cellar credentials:

```bash
s3cmd --configure
```

When prompted, use the following values:
- Access Key: Your `CELLAR_ADDON_KEY_ID`
- Secret Key: Your `CELLAR_ADDON_KEY_SECRET`
- Default Region: `us-east-1`
- S3 Endpoint: Your `CELLAR_ADDON_HOST`
- DNS-style bucket: Yes

Then apply the policy using s3cmd:

```bash
s3cmd setpolicy policy.json s3://<bucket_name>
```

You also need to configure CORS (Cross-Origin Resource Sharing) for your bucket. Create a `cors.xml` file with the following configuration:

```xml
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>ETag</ExposeHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
</CORSRule>
</CORSConfiguration>
```

Apply the CORS configuration using s3cmd:

```bash
s3cmd setcors cors.xml s3://<bucket_name>
```

### Configure Authentication

<!-- vale off -->
At least **one of either** Google, Slack, Discord, or Microsoft is required for a working installation or you'll have no sign-in options.
<!-- vale on -->

Choose one or more of the following authentication providers and add the corresponding environment variables to your Clever Cloud application:

#### Google OAuth

```env
GOOGLE_CLIENT_ID="<your_google_client_id>"
GOOGLE_CLIENT_SECRET="<your_google_client_secret>"
```

#### Slack OAuth

```env
SLACK_CLIENT_ID="<your_slack_client_id>"
SLACK_CLIENT_SECRET="<your_slack_client_secret>"
```

#### Discord OAuth

```env
DISCORD_CLIENT_ID="<your_discord_client_id>"
DISCORD_CLIENT_SECRET="<your_discord_client_secret>"
```

#### Microsoft OAuth

```env
AZURE_CLIENT_ID="<your_azure_client_id>"
AZURE_CLIENT_SECRET="<your_azure_client_secret>"
```


### 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`

💡 If you get a reference error when pushing, try this: `git push clever main:master`.

{{% /steps %}}


## 🎓 Further Help

{{< cards >}}
{{< card link="/developers/doc/applications/nodejs" title="Node.js" subtitle="Deploy a Node.js application on Clever Cloud" icon="node" >}}
{{< card link="/developers/doc/addons/cellar" title="Cellar S3 Object Storage" subtitle="Object Storage for your apps" icon="fsbucket" >}}
{{< card link="/developers/doc/addons/postgresql" title="PostgreSQL" icon="mysql" subtitle="Your self-hosted managed relational database" >}}
{{< card link="https://docs.getoutline.com/s/hosting/doc/from-source-BlBxrNzMIP" title="Installing Outline from source" subtitle="Check Outline installation guide" icon="outline" >}}
{{< /cards >}}
1 change: 1 addition & 0 deletions data/icons.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ metabase: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox
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 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>
docs-suite: <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 32 33" aria-label="Logo Docs" width="32"><path fill="currentColor" d="M21.63 29.581c1.168-.327 2.287-.925 3.02-1.98.725-1.035.929-2.346.929-3.608V5.5q0-.492-.057-.98.87.344 1.34 1.131.556.898.556 2.362v18.782q0 1.983-.972 2.969-.973.984-2.93.985H16.42l.505-.091a54 54 0 0 0 4.693-1.074z"></path><path fill="currentColor" fill-rule="evenodd" d="M4.582 26.405V7.598q0-1.718.922-2.602.934-.885 2.476-.973a77 77 0 0 0 4.307-.379 77 77 0 0 0 7.528-1.313q1.819-.43 2.791.43.973.858.973 2.74v18.492q0 1.654-.569 2.463-.569.82-1.92 1.2-2.4.656-4.521 1.035a51 51 0 0 1-4.143.594q-2.021.202-4.143.316-1.755.1-2.728-.733-.973-.82-.973-2.463m4.627-15.393q2.781-.177 5.099-.544a84 84 0 0 0 1.121-.19.816.816 0 0 0 .672-.805.826.826 0 0 0-.966-.811q-.434.074-.871.144a54 54 0 0 1-5.069.542c-.277.018-.497.104-.639.276a.9.9 0 0 0-.2.581q0 .342.23.587l.002.002a.76.76 0 0 0 .62.218m-.001 4.194q2.783-.178 5.1-.544a82 82 0 0 0 4.603-.885c.308-.069.539-.177.654-.344a.93.93 0 0 0 .17-.55q-.001-.347-.259-.59c-.184-.174-.441-.215-.746-.152h-.002a70 70 0 0 1-4.465.858 54 54 0 0 1-5.068.542c-.277.018-.497.104-.639.277a.87.87 0 0 0-.2.568q0 .353.23.6l.004.004a.82.82 0 0 0 .616.216zm0 4.193a58 58 0 0 0 5.1-.556 75 75 0 0 0 4.603-.873c.309-.069.54-.18.655-.357a.9.9 0 0 0 .169-.536c0-.23-.088-.43-.259-.59-.184-.175-.441-.215-.746-.152h-.001q-2.17.48-4.465.845a57 57 0 0 1-5.069.555c-.277.018-.497.104-.639.276a.87.87 0 0 0-.2.569q0 .353.23.599l.004.004a.82.82 0 0 0 .616.217zm5.1 3.608a55 55 0 0 1-5.1.544.76.76 0 0 1-.62-.218l-.002-.002a.83.83 0 0 1-.23-.587q0-.336.2-.581c.142-.172.362-.259.64-.277a54 54 0 0 0 5.939-.685c.503-.086.966.3.966.811a.816.816 0 0 1-.672.804q-.56.1-1.122.191" clip-rule="evenodd"></path></svg>

drupal: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-3 -2 24 24"><path fill="currentColor" d="M13.134 3.711c-1.022-.635-1.989-.884-2.953-1.52C9.583 1.788 8.754.827 8.058 0c-.134 1.327-.54 1.866-1.003 2.251c-.982.768-1.6.998-2.45 1.46c-.714.366-4.592 2.673-4.592 7.634S4.201 19.96 8.85 19.96c4.65 0 8.683-3.365 8.683-8.46c0-5.096-3.782-7.403-4.4-7.788zm.078 14.308c-.097.096-.984.711-2.026.808c-1.042.096-2.45.153-3.299-.616c-.135-.135-.097-.326 0-.402c.096-.079.173-.136.29-.136c.116 0 .095 0 .154.038c.386.308.964.557 2.198.557c1.236 0 2.105-.344 2.49-.634c.174-.134.25-.019.27.058c.02.077.058.193-.077.327zm-3.344-1.618c.213-.193.56-.501.89-.635c.327-.135.499-.116.809-.116c.308 0 .637.02.868.174c.231.154.367.5.442.69c.078.194 0 .309-.153.386c-.134.076-.154.038-.289-.211c-.134-.25-.25-.5-.926-.5c-.675 0-.887.23-1.215.5c-.328.269-.444.365-.56.211c-.116-.153-.077-.308.134-.5zm6.964-3.666c0 .596-.192 1.672-.656 2.345c-.462.674-.75.925-1.293.886c-.695-.059-2.084-2.212-2.971-2.252c-1.118-.037-3.55 2.33-5.46 2.33c-1.159 0-1.505-.174-1.89-.425c-.58-.404-.87-1.019-.85-1.865c.02-1.5 1.427-2.903 3.203-2.922c2.256-.02 3.821 2.229 4.958 2.21c.965-.017 2.818-1.903 3.725-1.903c.964 0 1.234.998 1.234 1.596z"/></svg>
Expand Down
Loading