Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
12a1c90
docs(service): add langflow service docs (#492)
viktoravelino Jan 20, 2026
376024a
[docs] fixed alot of small spelling errors (#496)
luojiyin1987 Jan 22, 2026
80d6e3d
[docs] [integration] fixed broken links on cloudflare integrations ov…
pinnheads Jan 26, 2026
5da9e10
[ui] [table] fixed some two column tables having empty spacing betwee…
ShadowArcanist Jan 26, 2026
c4efe58
[docs] [apps] left aligned nixpacks Node.js Version Reference SHA col…
ShadowArcanist Jan 26, 2026
cbca3bd
[docs] [service] added service deprecated callout
ShadowArcanist Jan 29, 2026
5df0a5f
[docs] [api] Fixed typo in authorization guide (#510)
dazeb Feb 3, 2026
1884faa
[docs] [s3] Fixed typo in aws s3 guide (#507)
voulkon Feb 3, 2026
97ce82b
[docs] [installation] added TencentOS to supported distro list
ShadowArcanist Feb 3, 2026
5997c7c
[docs] [service] added Mautic deprecated callout (#506)
ShadowArcanist Feb 4, 2026
16f1af3
[docs] [service] added bento-pdf service (#508)
RxDx Feb 4, 2026
a4650da
[docs] [service] added utm parameters to bento-pdf service links
ShadowArcanist Feb 4, 2026
08d6053
[docs] [service] added goatcounter (#498)
maxibenner Feb 4, 2026
64d6769
[docs] [service] added utm parameters to goatcounter service links
ShadowArcanist Feb 4, 2026
dfc5849
[docs] [service] added goatcounter to the service discovery list
ShadowArcanist Feb 4, 2026
c82b2fb
[docs] [service] added satisfactory game server (#505)
Terule Feb 4, 2026
f6fa494
[docs] [service] fixed typo and table alignment for satisfactory docs
ShadowArcanist Feb 4, 2026
ac09d4c
[docs] [service] added satisfactory to the service discovery list
ShadowArcanist Feb 4, 2026
f6e3edd
[docs] [service] added satisfactory to the one click service list
ShadowArcanist Feb 4, 2026
629475b
[docs] [service] added alexandrie (#497)
Smaug6739 Feb 4, 2026
971e2af
[core] [build] fixed build error caused by alexandrie service (missin…
ShadowArcanist Feb 4, 2026
b5d353b
[docs] [proxy] removed sentences duplication for traefik custom SSL c…
denlukia Feb 4, 2026
8176957
[docs] [proxy] fixed traefik dns provider link pointing to wrong page
ShadowArcanist Feb 4, 2026
fe3fce6
[docs] [proxy] fixed traefik wildcard cert guide using deprecated HET…
ShadowArcanist Feb 4, 2026
681bf6d
[docs] [proxy] updated traefik version from v2.10 to v3.6 ontraefik w…
ShadowArcanist Feb 4, 2026
9e990a7
[docs] [apps] fixed incorrect webhook url on github app manual setup
ShadowArcanist Feb 4, 2026
3a33549
docs(domains): add path-based routing documentation
Cinzya Feb 7, 2026
05f4730
docs: update service documentation process to include all services di…
andrasbacsai Feb 9, 2026
e77b72a
docs(services): add OpenClaw AI-powered coding assistant with detaile…
andrasbacsai Feb 9, 2026
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
27 changes: 26 additions & 1 deletion .claude/skills/adding-service-documentation/CATALOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,34 @@ const services = [
- Keep entries alphabetically sorted
- Use an existing category when possible

## All Services Directory (`docs/services/all.md`)

In addition to List.vue, add the service to `docs/services/all.md`. This is a manually maintained, categorized list of all services.

### Entry Format

```markdown
- [ServiceName](/services/service-slug) - Brief description
```

### Placement

- Find the correct **category heading** (e.g., `## AI`, `## Development`)
- Insert **alphabetically by name** within that category
- Use the same description as the List.vue entry

### Example

Under `## AI`:
```markdown
- [Ollama](/services/ollama) - A lightweight and efficient server for running LLMs
- [OpenClaw](/services/openclaw) - AI-powered coding assistant with multi-provider support and browser automation
- [Open WebUI](/services/open-webui) - User-friendly WebUI for LLMs
```

## Testing

After adding a service to List.vue:
After adding a service to List.vue and all.md:

```bash
# Start dev server
Expand Down
9 changes: 6 additions & 3 deletions .claude/skills/adding-service-documentation/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ This skill guides you through documenting a new service in the Coolify documenta
3. **Download the logo** from GitHub and save to `docs/public/images/services/`
4. **Create documentation** at `docs/services/{service-slug}.md`
5. **Update services list** in `docs/.vitepress/theme/components/Services/List.vue`
6. **Test locally** with `bun run dev`
6. **Update all services directory** in `docs/services/all.md`
7. **Test locally** with `bun run dev`

## File Structure

Expand All @@ -39,7 +40,8 @@ https://github.com/coollabsio/coolify/tree/main/public/svgs
Documentation Repository:
├── docs/
│ ├── services/
│ │ └── service-name.md # Service documentation page
│ │ ├── service-name.md # Service documentation page
│ │ └── all.md # All services directory (categorized list)
│ ├── public/images/services/
│ │ └── service-logo.svg # Copied logo
│ └── .vitepress/theme/components/Services/
Expand All @@ -48,11 +50,12 @@ Documentation Repository:

## Required Files

Every service requires these 3 files:
Every service requires these 4 updates:

1. **Service documentation** (`docs/services/{slug}.md`)
2. **Service logo** (`docs/public/images/services/{name}-logo.{ext}`)
3. **List entry** (in `docs/.vitepress/theme/components/Services/List.vue`)
4. **All services directory** (`docs/services/all.md`) — add entry alphabetically under the correct category

## Detailed Instructions

Expand Down
6 changes: 6 additions & 0 deletions .claude/skills/disabling-services/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,14 +123,20 @@ If you were using this service, please [migration instructions or alternative].
:::
```

### 5. Remove from All Services Directory

Edit `docs/services/all.md` and remove the service entry from its category section.

## Verification Checklist

After disabling, verify:

- [ ] `disabled: true` added to service entry in List.vue
- [ ] Warning callout added to markdown file
- [ ] Entry removed from `docs/services/all.md`
- [ ] Documentation file still exists (NOT deleted)
- [ ] Service no longer appears in listing at http://localhost:5173/docs/services/
- [ ] Service no longer appears at http://localhost:5173/docs/services/all
- [ ] Direct URL still works: http://localhost:5173/docs/services/service-name
- [ ] Warning is visible at top of page

Expand Down
22 changes: 16 additions & 6 deletions .claude/skills/renaming-services/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,16 @@ This skill guides you through renaming a service in the Coolify documentation, e
- Consolidating duplicate service documentation
- Correcting typos in service slugs

## Critical: Three Locations Must Be Updated
## Critical: Four Locations Must Be Updated

When renaming a service, you **MUST** update all three locations:
When renaming a service, you **MUST** update all four locations:

1. **Documentation file** (`docs/services/`)
2. **Services list** (`docs/.vitepress/theme/components/Services/List.vue`)
3. **Nginx redirects** (`nginx/redirects.conf`)
3. **All services directory** (`docs/services/all.md`)
4. **Nginx redirects** (`nginx/redirects.conf`)

Failing to update all three will cause broken links or 404 errors.
Failing to update all four will cause broken links or 404 errors.

## Step-by-Step Process

Expand Down Expand Up @@ -69,7 +70,15 @@ location = /knowledge-base/services/old-name { return 301 /docs/services/new-nam

**Important:** Keep redirects even for deleted pages to prevent 404 errors from search engines and bookmarks.

### 4. Update Internal Links
### 4. Update All Services Directory

Edit `docs/services/all.md` and update the service entry under its category:

```markdown
- [New Service Name](/services/new-name) - Service description
```

### 5. Update Internal Links

Search for any internal links referencing the old name:

Expand All @@ -80,7 +89,7 @@ grep -r "old-name" docs/

Update any found references in other documentation files.

### 5. Rename Logo File (If Needed)
### 6. Rename Logo File (If Needed)

If the logo filename also needs updating:

Expand All @@ -99,6 +108,7 @@ After renaming, verify:
- [ ] Old file removed or redirected
- [ ] List.vue `slug` matches new filename
- [ ] List.vue `icon` path is correct
- [ ] Entry updated in `docs/services/all.md`
- [ ] Redirect added to `nginx/redirects.conf`
- [ ] No broken internal links (run `grep -r "old-name" docs/`)
- [ ] Service appears correctly at http://localhost:5173/docs/services/new-name
Expand Down
43 changes: 43 additions & 0 deletions docs/.vitepress/theme/components/Services/List.vue
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,13 @@ const services = [
description: 'Open-source knowledge base and workspace combining docs, whiteboards, and databases.',
category: 'Productivity'
},
{
name: 'Alexandrie',
slug: 'alexandrie',
icon: '/docs/images/services/alexandrie-logo.svg',
description: 'Markdown note-taking app focused on performance, local data, and knowledge graph navigation.',
category: 'Productivity'
},
{
name: 'AppFlowy',
slug: 'appflowy',
Expand Down Expand Up @@ -379,6 +386,13 @@ const services = [
description: 'It helps parents track their baby\'s daily activities, growth, and health with ease.',
category: 'Health'
},
{
name: 'BentoPDF',
slug: 'bento-pdf',
icon: '/docs/images/services/bento-pdf.png',
description: 'Process PDFs entirely in your browser. No uploads. No servers. Complete privacy.',
category: 'Productivity'
},
{
name: 'Beszel',
slug: 'beszel',
Expand Down Expand Up @@ -877,6 +891,13 @@ const services = [
description: 'DevOps lifecycle tool.',
category: 'Development'
},
{
name: 'GoatCounter',
slug: 'goatcounter',
icon: '/docs/images/services/goatcounter.svg',
description: 'Web analytics platform offering easy to use and meaningful privacy-friendly web analytics.',
category: 'Analytics'
},
{
name: 'Gotify',
slug: 'gotify',
Expand Down Expand Up @@ -1116,6 +1137,13 @@ const services = [
description: 'Open source LLM engineering platform.',
category: 'AI'
},
{
name: 'Langflow',
slug: 'langflow',
icon: '/docs/images/services/langflow.svg',
description: 'Open source Python-based framework for building AI applications.',
category: 'AI'
},
{
name: 'Linkding',
slug: 'linkding',
Expand Down Expand Up @@ -1453,6 +1481,13 @@ const services = [
category: 'Development',
disabled: true
},
{
name: 'OpenClaw',
slug: 'openclaw',
icon: '/docs/images/services/openclaw-logo.svg',
description: 'AI-powered coding assistant with multi-provider support and browser automation.',
category: 'AI'
},
{
name: 'Organizr',
slug: 'organizr',
Expand Down Expand Up @@ -1721,6 +1756,13 @@ const services = [
description: 'Open source team chat software.',
category: 'Communication'
},
{
name: 'Satisfactory',
slug: 'satisfactory',
// No icon available on the codebase yet.
description: 'Game server for Satisfactory open-world factory building game with a dash of exploration and combat.',
category: 'Search'
},
{
name: 'SearXNG',
slug: 'searxng',
Expand Down Expand Up @@ -2526,3 +2568,4 @@ const { preloadServices, handleImageError, hasImageError, isImageLoading, getFal
</div>
</div>
</template>

5 changes: 3 additions & 2 deletions docs/.vitepress/theme/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -1075,7 +1075,8 @@ pre[class*='language-'] *:hover {
.vp-doc table {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
width: fit-content;
max-width: 100%;
margin: 1.5rem 0;
font-size: 0.875rem;
line-height: 1.5;
Expand All @@ -1102,7 +1103,7 @@ pre[class*='language-'] *:hover {

.vp-doc th:first-child,
.vp-doc td:first-child {
width: 200px;
width: 240px;
min-width: 200px;
vertical-align: middle;
}
Expand Down
4 changes: 2 additions & 2 deletions docs/api-reference/authorization.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ API request requires a `Bearer` token in `Authorization` header, which could be

## Access

The API can be accesed through `http://<ip>:8000/api`.
The API can be accessed through `http://<ip>:8000/api`.

With the exception of `/health` and `/feedback`, all routes are additionally prefixed with `/v1` resulting in the base rouce `http://<ip>:8000/api/v1`.
With the exception of `/health` and `/feedback`, all routes are additionally prefixed with `/v1` resulting in the base route `http://<ip>:8000/api/v1`.

## Generate

Expand Down
4 changes: 2 additions & 2 deletions docs/applications/build-packs/nixpacks.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ First, follow the previous section in this documentation: [How to use Nixpacks](

<ZoomableImage src="/docs/images/builds/packs/nixpacks/5.webp" alt="Coolify dashboard screenshot" />

1. **Branch:** Coolify will automatically detect the branch from your Repostiory.
1. **Branch:** Coolify will automatically detect the branch from your Repository.

2. **Base Directory:** Enter the directory Nixpacks should use as the root (for example, `/` if your files are at the root, or a subfolder if applicable).

Expand Down Expand Up @@ -100,7 +100,7 @@ First, follow the previous section in this documentation: [How to use Nixpacks](

<ZoomableImage src="/docs/images/builds/packs/nixpacks/8.webp" alt="Coolify dashboard screenshot" />

1. **Branch:** Coolify will automatically detect the branch from your Repostiory.
1. **Branch:** Coolify will automatically detect the branch from your Repository.

2. **Base Directory:** Enter the directory Nixpacks should use as the root (for example, `/` if your files are at the root, or a subfolder if applicable).

Expand Down
8 changes: 4 additions & 4 deletions docs/applications/build-packs/nixpacks/node-versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ These hashes are provided for reference only. They have not been verified for ac
### Node.js 20.x

| Version | SHA256 |
| ------- | ------------------------------------------------------------------ |
| ------- | :------------------------------------------------------------------ |
| 20.0.0 | `sha256-dFDnV5Vo99HLOYGFz85HLaKDeyqjbFliCyLOS5d7XLU=` |
| 20.1.0 | `sha256-YA+eEYYJlYFLkSKxrFMY9q1WQnR4Te7ZjYqSBmSUNrU=` |
| 20.2.0 | `sha256-IlI98jFsNVaXFP8fabBTwuKGztRgiYQX3uRpRe/N+Yk=` |
Expand Down Expand Up @@ -105,7 +105,7 @@ These hashes are provided for reference only. They have not been verified for ac
### Node.js 22.x

| Version | SHA256 |
| ------- | ------------------------------------------------------------------ |
| ------- | :------------------------------------------------------------------ |
| 22.0.0 | `sha256-IuKPv/MfaQc7gCTLQnReUQX4QEHzR1smC5fVoUEDnRo=` |
| 22.1.0 | `sha256-nX1fQNnb1iYMmbXklLX5vHVejw/6xw4SGtzl+0QvI8s=` |
| 22.2.0 | `sha256-iJkIqIKNFISRDX5lm2qlet6NUo/w45Dpp372WadihHQ=` |
Expand Down Expand Up @@ -135,7 +135,7 @@ These hashes are provided for reference only. They have not been verified for ac
### Node.js 24.x

| Version | SHA256 |
| ----------- | ------------------------------------------------------------------ |
| ----------- | :------------------------------------------------------------------ |
| 24.0.0-rc.2 | `729fca42bb7266031dd020f3935423ea8d4b4e2d119b34b608f1d079e5c1621a` |
| 24.0.0-rc.3 | `9bbca08fba05f075a20f734ea80b195a4a39218476b60b32db79e1d393fda20b` |
| 24.0.0 | `914f3f1b03f84a0994d7357f190ff13c038800c693b6c06da2290eb588c82761` |
Expand All @@ -159,5 +159,5 @@ These hashes are provided for reference only. They have not been verified for ac
### Node.js 25.x

| Version | SHA256 |
| ------- | ------------------------------------------------------------------ |
| ------- | :------------------------------------------------------------------ |
| 25.2.1 | `aa7c4ac1076dc299a8949b8d834263659b2408ec0e5bba484673a8ce0766c8b9` |
4 changes: 2 additions & 2 deletions docs/applications/ci-cd/github/setup-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Set up a GitHub App in Coolify to access and deploy from private G
---

# GitHub App
Github app allows you to grant access to a single or mulitple private repositories from your either personal github account or your organization on github.
Github app allows you to grant access to a single or multiple private repositories from your either personal github account or your organization on github.


### Why use github app with Coolify?
Expand Down Expand Up @@ -183,7 +183,7 @@ Creating apps on github slightly varies for personal accounts and organizations
4. Enter Setup URL: `https://coolboxy.shadowarcanist.internal/webhooks/source/github/install?source=a8000cg0g0ogcc0ggkk8ow4k`

5. Enable the option `Redirect on Update`
6. Enter Webhook URL: `https://coolboxy.shadowarcanist.internal/source/github/events`
6. Enter Webhook URL: `https://coolboxy.shadowarcanist.internal/webhooks/source/github/events`

::: info
You have to replace `https://coolboxy.shadowarcanist.internal` with your Coolify dashboard url and replace `a8000cg0g0ogcc0ggkk8ow4k` with the Source ID [Step 1](#_1-create-a-github-app-on-coolify-1)
Expand Down
2 changes: 1 addition & 1 deletion docs/get-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ If you haven't picked a server provider yet, consider using [Hetzner](https://co
Coolify supports several Linux distributions:

- Debian-based (e.g., Debian, Ubuntu - all versions supported, but non-LTS Ubuntu requires manual installation)
- Redhat-based (e.g., CentOS, Fedora, Redhat, AlmaLinux, Rocky, Asahi)
- Redhat-based (e.g., CentOS, TencentOS, Fedora, Redhat, AlmaLinux, Rocky, Asahi)
- SUSE-based (e.g., SLES, SUSE, openSUSE)
- Arch Linux (Note: Not all Arch derivatives are supported)
- Alpine Linux
Expand Down
10 changes: 5 additions & 5 deletions docs/integrations/cloudflare/tunnels/all-resource.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Accessing All Resource deployed on Coolify using a Cloudflare Tunnel allows you

This setup is ideal for people who:

- Don't have a public IP for their server (could be a laptop, rasberry pi etc..).
- Don't have a public IP for their server (could be a laptop, raspberry pi etc..).
- Are unable to port forward (e.g., using home internet or on a private network).
- Want to keep their server’s IP address private and avoid exposing it to the public internet.
- Have an resource already deployed on Coolify and need an external method to access it securely.
Expand All @@ -26,7 +26,7 @@ To follow this guide, you'll need:
## Before We Start

- We assume you have Coolify running on your server.
- If your app requires HTTPS for functionality like cookies or login, then you need to follow the [Full TLS HTTPS guide](/knowledge-base/cloudflare/tunnels/full-tls) after following this guide. This is because in this guide, Cloudflare will manage HTTPS externally, while your app will run over HTTP within Coolify.
- If your app requires HTTPS for functionality like cookies or login, then you need to follow the [Full TLS HTTPS guide](/integrations/cloudflare/tunnels/full-tls) after following this guide. This is because in this guide, Cloudflare will manage HTTPS externally, while your app will run over HTTP within Coolify.

## How It Works?

Expand All @@ -43,7 +43,7 @@ A simple high-level overview diagram to give you a visual idea of how this works
- [Setup Cloudflare Tunnel on Coolify](#_3-setup-cloudflare-tunnel-on-coolify)
- [Start Coolify Proxy](#_4-start-coolify-proxy)
- [Configure Your Resource to Use the Tunnel Domain](#_5-configure-your-resource-to-use-the-tunnel-domain)
- [How to use Mutiple Different Domains](#how-to-use-mutiple-different-domains)
- [How to use Multiple Different Domains](#how-to-use-multiple-different-domains)
- [Known issues and Solutions](#known-issues-and-solutions)

---
Expand Down Expand Up @@ -149,12 +149,12 @@ Enter the domain you want to use for your resource/app and deploy your resource.
::: warning HEADS UP!
You should enter the domain as **HTTP** because Cloudflare handles **HTTPS** and TLS terminations. If you use **HTTPS** for your resource, you may encounter a **TOO_MANY_REDIRECTS** error.

If your app requires **HTTPS** for features like cookies or login, follow the [Full TLS HTTPS Guide](/knowledge-base/cloudflare/tunnels/full-tls) after completing this guide.
If your app requires **HTTPS** for features like cookies or login, follow the [Full TLS HTTPS Guide](/integrations/cloudflare/tunnels/full-tls) after completing this guide.
:::

**Congratulations**! You've successfully set up a resource that can be accessed by anyone on the internet your domain.

## How to use Mutiple Different Domains?
## How to use Multiple Different Domains?

You don't need to create new tunnels for each domain, just create a new hostname with the new domain and point it to the `localhost:80`.

Expand Down
Loading