This commit is contained in:
Andras Bacsai
2024-09-04 10:15:31 +02:00
commit 3af5c5b487
184 changed files with 19269 additions and 0 deletions

21
.gitignore vendored Normal file
View File

@@ -0,0 +1,21 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store

4
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}

11
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}

55
README.md Normal file
View File

@@ -0,0 +1,55 @@
# Starlight Starter Kit: Basics
[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)
```
npm create astro@latest -- --template starlight
```
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/withastro/starlight&create_from_path=examples/basics)
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fwithastro%2Fstarlight%2Ftree%2Fmain%2Fexamples%2Fbasics&project-name=my-starlight-docs&repository-name=my-starlight-docs)
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
## 🚀 Project Structure
Inside of your Astro + Starlight project, you'll see the following folders and files:
```
.
├── public/
├── src/
│ ├── assets/
│ ├── content/
│ │ ├── docs/
│ │ └── config.ts
│ └── env.d.ts
├── astro.config.mjs
├── package.json
└── tsconfig.json
```
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.
Images can be added to `src/assets/` and embedded in Markdown with a relative link.
Static assets, like favicons, can be placed in the `public/` directory.
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Check out [Starlights docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).

243
astro.config.mjs Normal file
View File

@@ -0,0 +1,243 @@
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import starlightOpenAPI, { openAPISidebarGroups } from 'starlight-openapi'
import starlightImageZoom from 'starlight-image-zoom'
import starlightLinksValidator from 'starlight-links-validator'
import tailwind from '@astrojs/tailwind';
import sitemap from '@astrojs/sitemap';
// https://astro.build/config
export default defineConfig({
base: '/docs',
site: 'https://coolify.io/docs',
integrations: [tailwind({
// Disable the default base styles:
applyBaseStyles: false,
}), starlight({
customCss: [
'./src/tailwind.css',
],
favicon: '/coolify.png',
social: {
'x.com': 'https://x.com/coolifyio',
discord: 'https://discord.gg/coolify',
github: 'https://github.com/coollabsio/coolify',
twitch: 'https://twitch.tv/heyandras',
},
plugins: [
starlightLinksValidator(),
starlightImageZoom(),
starlightOpenAPI([
{
base: 'api',
label: 'API',
schema: './openapi.yaml',
},
]),
],
title: 'Coolify',
social: {
github: 'https://github.com/coollabsio/coolify-documentation',
},
sidebar: [
{
label: 'Get Started',
items: [
{ label: 'Introduction', link: '/' },
{ label: 'Screenshots', link: '/screenshots' },
{ label: 'Videos', link: '/videos' },
{ label: 'Quickstart', link: '/quickstart' },
{ label: 'Installation - Self-hosted', link: '/installation' },
{ label: 'Uninstall - Self-hosted', link: '/uninstall' },
{ label: 'Upgrade - Self-hosted', link: '/upgrade' },
{ label: 'Downgrade - Self-hosted', link: '/downgrade' },
{ label: 'Contact', link: '/contact' },
]
},
{
label: 'Knowledge Base',
collapsed: false,
items: [
{ label: 'FAQ', link: '/knowledge-base/faq' },
{
label: 'Self-hosted Instance', items: [
{ label: 'Monitoring', link: '/knowledge-base/monitoring' },
{ label: 'Notifications', link: '/knowledge-base/notifications' },
{ label: 'Self-update', link: '/knowledge-base/self-update' },
{ label: 'Commands', link: '/knowledge-base/commands' },
{ label: "Delete User", link: '/knowledge-base/delete-user' },
]
},
{
label: 'DNS & Domains', items: [
{ label: 'DNS Configuration', link: '/knowledge-base/dns-configuration' },
{ label: 'Domains', link: '/knowledge-base/domains' },
]
},
{
label: 'Resources', items: [
{ label: 'Environment Variables', link: '/knowledge-base/environment-variables' },
{ label: 'Persistent Storage', link: '/knowledge-base/persistent-storage' },
{ label: 'Drain Logs', link: '/knowledge-base/drain-logs' },
{ label: 'Health checks', link: '/knowledge-base/health-checks' },
{ label: 'Database Backups', link: '/knowledge-base/database-backups' },
{ label: 'How to add a new service', link: '/knowledge-base/add-a-service' },
{
label: 'Applications', items: [
{ label: 'Overview', link: '/knowledge-base/applications' },
{ label: 'Django', link: '/knowledge-base/applications/django' },
{ label: 'Laravel', link: '/knowledge-base/applications/laravel' },
{ label: 'Jekyll', link: '/knowledge-base/applications/jekyll' },
{ label: 'Next.js', link: '/knowledge-base/applications/nextjs' },
{ label: 'Nuxt', link: '/knowledge-base/applications/nuxt' },
{ label: 'Ruby on Rails', link: '/knowledge-base/applications/rails' },
{ label: 'SvelteKit', link: '/knowledge-base/applications/svelte-kit' },
{ label: 'Symfony', link: '/knowledge-base/applications/symfony' },
{ label: 'Vite', link: '/knowledge-base/applications/vite' },
{ label: 'Vue.js', link: '/knowledge-base/applications/vuejs' },
]
},
{
label: "Databases", items: [
{ label: "Overview", link: '/knowledge-base/databases' },
{ label: 'Backups', link: '/knowledge-base/databases/backups' },
{ label: "MySQL", link: '/knowledge-base/databases/mysql' },
{ label: "MariaDB", link: '/knowledge-base/databases/mariadb' },
{ label: "PostgreSQL", link: '/knowledge-base/databases/postgresql' },
{ label: "MongoDB", link: '/knowledge-base/databases/mongodb' },
{ label: "Redis", link: '/knowledge-base/databases/redis' },
{ label: "DragonFly", link: '/knowledge-base/databases/dragonfly' },
{ label: "KeyDB", link: '/knowledge-base/databases/keydb' },
{ label: "Clickhouse", link: '/knowledge-base/databases/clickhouse' },
]
},
{
label: "Services", items: [
{ label: "Overview", link: '/knowledge-base/services' },
{ label: "Activepieces", link: '/knowledge-base/services/activepieces' },
{ label: "Appsmith", link: '/knowledge-base/services/appsmith' },
{ label: "Appwrite", link: '/knowledge-base/services/appwrite' },
{ label: "Authentik", link: '/knowledge-base/services/authentik' },
{ label: "Baby Buddy", link: '/knowledge-base/services/babybuddy' },
{ label: "Budge", link: '/knowledge-base/services/budge' },
{ label: "Changedetection", link: '/knowledge-base/services/changedetection' },
{ label: "Classicpress", link: '/knowledge-base/services/classicpress' },
{ label: "Code Server", link: '/knowledge-base/services/code-server' },
{ label: "Dashboard", link: '/knowledge-base/services/dashboard' },
{ label: "Directus", link: '/knowledge-base/services/directus' },
{ label: "Dokuwiki", link: '/knowledge-base/services/dokuwiki' },
{ label: "Duplicati", link: '/knowledge-base/services/duplicati' },
{ label: "Emby Stat", link: '/knowledge-base/services/emby-stat' },
{ label: "Emby", link: '/knowledge-base/services/emby' },
{ label: "Fider", link: '/knowledge-base/services/fider' },
{ label: "Filebrowser", link: '/knowledge-base/services/filebrowser' },
{ label: "Firefly III", link: '/knowledge-base/services/firefly-iii' },
{ label: "Formbricks", link: '/knowledge-base/services/formbricks' },
{ label: "Ghost", link: '/knowledge-base/services/ghost' },
{ label: "Gitea", link: '/knowledge-base/services/gitea' },
{ label: "Glitchtip", link: '/knowledge-base/services/glitchtip' },
{ label: "Grafana", link: '/knowledge-base/services/grafana' },
{ label: "Grocy", link: '/knowledge-base/services/grocy' },
{ label: "Heimdall", link: '/knowledge-base/services/heimdall' },
{ label: "Jellyfin", link: '/knowledge-base/services/jellyfin' },
{ label: "Kuzzle", link: '/knowledge-base/services/kuzzle' },
{ label: "Logto", link: '/knowledge-base/services/logto' },
{ label: "Meilisearch", link: '/knowledge-base/services/meilisearch' },
{ label: "Metabase", link: '/knowledge-base/services/metabase' },
{ label: "Metube", link: '/knowledge-base/services/metube' },
{ label: "Minio", link: '/knowledge-base/services/minio' },
{ label: "Plausible", link: '/knowledge-base/services/plausible' },
{ label: "Statusnook", link: '/knowledge-base/services/statusnook' },
]
}
]
},
{
label: 'How-Tos', items: [
{ label: 'Load-balancing on Hetzner', link: '/knowledge-base/how-to/hetzner-loadbalancing' },
]
},
{
label: "Git", items: [
{
label: "GitHub", items: [
{ label: "Integration", link: '/knowledge-base/git/github/integration' },
{ label: "GitHub Actions", link: '/knowledge-base/git/github/github-actions' },
],
},
{
label: "GitLab", items: [
{ label: "Integration", link: '/knowledge-base/git/gitlab/integration' },
],
},
{
label: "Bitbucket", items: [
{ label: "Integration", link: '/knowledge-base/git/bitbucket/integration' },
],
},
{
label: "Gitea", items: [
{ label: "Integration", link: '/knowledge-base/git/gitea/integration' },
]
}
]
},
{
label: "Server", items: [
{ label: "Introduction", link: '/knowledge-base/server/introduction' },
{ label: "Automated Cleanup", link: '/knowledge-base/server/automated-cleanup' },
{ label: "Build Server", link: '/knowledge-base/server/build-server' },
{ label: "Firewall", link: '/knowledge-base/server/firewall' },
{ label: "Multiple Servers", link: '/knowledge-base/server/multiple-servers' },
{ label: "Non-root User", link: '/knowledge-base/server/non-root-user' },
{ label: "OpenSSH", link: '/knowledge-base/server/openssh' },
{ label: "Oracle Cloud", link: '/knowledge-base/server/oracle-cloud' },
{ label: "Proxies", link: '/knowledge-base/server/proxies' }
]
},
{
label: "S3", items: [
{ label: "Introduction", link: '/knowledge-base/s3' },
{ label: "AWS", link: '/knowledge-base/s3/aws' },
{ label: "R2", link: '/knowledge-base/s3/r2' },
]
},
{
label: "Docker", items: [
{ label: "Compose", link: '/knowledge-base/docker/compose' },
{ label: "Custom Commands", link: '/knowledge-base/docker/custom-commands' },
{ label: "Registry", link: '/knowledge-base/docker/registry' },
{ label: "Swarm", link: '/knowledge-base/docker/swarm' },
]
},
{
label: "Cloudflare", items: [
{ label: "Tunnels", link: '/knowledge-base/cloudflare/tunnels' },
]
}, {
label: "Traefik", items: [
{ label: "Basic Auth Middleware", link: '/knowledge-base/traefik/basic-auth' },
{ label: "Custom SSL Certificates", link: '/knowledge-base/traefik/custom-ssl-certs' },
{ label: "Dashboard", link: '/knowledge-base/traefik/dashboard' },
{ label: "Dynamic Configurations", link: '/knowledge-base/traefik/dynamic-configurations' },
{ label: "Healthcheck", link: '/knowledge-base/traefik/healthcheck' },
{ label: "Load Balancing", link: '/knowledge-base/traefik/load-balancing' },
{ label: "Redirects", link: '/knowledge-base/traefik/redirects' },
{ label: "Wildcard Certificates", link: '/knowledge-base/traefik/wildcard-certificates' },
]
}
]
},
{
label: "API Reference",
items: [
{ label: "Authorization", link: '/api-reference/authorization' },
...openAPISidebarGroups,
]
},
],
}), sitemap()],
});

4892
openapi.yaml Normal file

File diff suppressed because it is too large Load Diff

8030
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

22
package.json Normal file
View File

@@ -0,0 +1,22 @@
{
"name": "coolify-new-docs",
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"@astrojs/sitemap": "^3.1.6",
"@astrojs/starlight": "^0.26.1",
"@astrojs/starlight-tailwind": "^2.0.3",
"astro": "^4.10.2",
"sharp": "^0.32.5",
"starlight-image-zoom": "^0.8.0",
"starlight-links-validator": "^0.11.0",
"starlight-openapi": "^0.7.0"
}
}

BIN
public/coolify.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

1
public/favicon.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill-rule="evenodd" d="M81 36 64 0 47 36l-1 2-9-10a6 6 0 0 0-9 9l10 10h-2L0 64l36 17h2L28 91a6 6 0 1 0 9 9l9-10 1 2 17 36 17-36v-2l9 10a6 6 0 1 0 9-9l-9-9 2-1 36-17-36-17-2-1 9-9a6 6 0 1 0-9-9l-9 10v-2Zm-17 2-2 5c-4 8-11 15-19 19l-5 2 5 2c8 4 15 11 19 19l2 5 2-5c4-8 11-15 19-19l5-2-5-2c-8-4-15-11-19-19l-2-5Z" clip-rule="evenodd"/><path d="M118 19a6 6 0 0 0-9-9l-3 3a6 6 0 1 0 9 9l3-3Zm-96 4c-2 2-6 2-9 0l-3-3a6 6 0 1 1 9-9l3 3c3 2 3 6 0 9Zm0 82c-2-2-6-2-9 0l-3 3a6 6 0 1 0 9 9l3-3c3-2 3-6 0-9Zm96 4a6 6 0 0 1-9 9l-3-3a6 6 0 1 1 9-9l3 3Z"/><style>path{fill:#000}@media (prefers-color-scheme:dark){path{fill:#fff}}</style></svg>

After

Width:  |  Height:  |  Size: 696 B

4
public/robots.txt Normal file
View File

@@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://coolify.io/docs/sitemap-index.xml

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" width="378" height="88" viewBox="0 0 378 88" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M44 0C7.766 0 0 7.766 0 44C0 80.234 7.766 88 44 88C80.234 88 88 80.234 88 44C88 7.766 80.234 0 44 0ZM39.1171 32.53C39.6448 32.8121 40 33.4016 40 34C40 36.2091 41.7909 38 44 38C46.2091 38 48 36.2091 48 34C48 33.4016 48.3552 32.8121 48.8829 32.53C50.1428 31.8566 51 30.5284 51 29C51 26.7909 49.2091 25 47 25C46.6142 25 46.2411 25.0546 45.8881 25.1566C44.7322 25.4904 43.2678 25.4904 42.1119 25.1566C41.7589 25.0546 41.3858 25 41 25C38.7909 25 37 26.7909 37 29C37 30.5284 37.8572 31.8566 39.1171 32.53ZM40.6174 37.6822C40.4565 37.7954 40.3289 37.9561 40.2566 38.1489L39.2486 40.837C39.0877 41.266 39.079 41.7371 39.2238 42.1717L40.8506 47.0521C40.9488 47.3466 41.1133 47.6174 41.374 47.786C41.8309 48.0815 42.7062 48.5 43.9999 48.5C45.2937 48.5 46.169 48.0815 46.6259 47.786C46.8866 47.6174 47.0511 47.3466 47.1492 47.0521L48.776 42.1717C48.9209 41.7371 48.9122 41.266 48.7513 40.837L47.7433 38.1489C47.671 37.9561 47.5434 37.7954 47.3825 37.6822C46.4922 38.5005 45.3044 39 43.9999 39C42.6955 39 41.5077 38.5005 40.6174 37.6822ZM42 60L41.0211 48.7423C41.6348 49.0994 42.6312 49.5 44 49.5C45.3684 49.5 46.365 49.0996 46.979 48.7423L46 60C46 60 45.5 60.5 44 60.5C42.5 60.5 42 60 42 60ZM42.5 68L42.0111 61.1559C42.0291 61.1635 42.0474 61.171 42.0662 61.1785C42.5095 61.3558 43.1373 61.5 44 61.5C44.8628 61.5 45.4906 61.3558 45.9339 61.1785C45.9526 61.171 45.9709 61.1635 45.9888 61.156L45.5 68C45.5 68 45.25 69 44 69C42.75 69 42.5 68 42.5 68ZM18.4999 40H38.4C37.6448 41.2587 37.9828 42.1357 38.3163 43.001L38.3164 43.0012L38.3164 43.0013L38.3165 43.0014L38.3165 43.0015L38.3166 43.0017C38.3804 43.1673 38.4441 43.3326 38.4999 43.5L19.817 48.8504C18.6241 49.1865 17.3473 48.7543 16.6036 47.7628L15.4279 46.1951C14.7461 45.2861 14.6364 44.0698 15.1446 43.0535L15.8422 41.6582C16.3462 40.6501 17.3729 40.0096 18.4999 40ZM16 38.4663L38.7499 39C38.7499 39 39.1093 38.1012 39.2499 37.5C39.2981 37.294 39.349 37.0881 39.3922 36.9172C39.4529 36.6771 39.3398 36.4307 39.1124 36.3324C36.4624 35.187 21.0442 28.5249 18.4745 27.4663C17.4762 27.0394 16.3252 27.1853 15.4649 27.8476L13.17 29.6144C12.4171 30.1941 11.9975 31.0823 12 32C12.0008 32.2913 12.0441 32.5855 12.1328 32.8738L13.2451 36.4663C13.6189 37.6811 14.7301 38.4133 16 38.4663ZM69.5 40H49.6C50.3552 41.2587 50.0172 42.1357 49.6836 43.001L49.6836 43.0012L49.6835 43.0013L49.6835 43.0014C49.6196 43.1672 49.5559 43.3325 49.5 43.5L68.1829 48.8504C69.3759 49.1865 70.6527 48.7543 71.3963 47.7628L72.5721 46.1951C73.2539 45.2861 73.3636 44.0698 72.8554 43.0535L72.1578 41.6583C71.6537 40.6501 70.6271 40.0096 69.5 40ZM72 38.4663L49.25 39C49.25 39 48.8907 38.1012 48.75 37.5C48.7018 37.294 48.6509 37.0881 48.6077 36.9173C48.547 36.6771 48.6602 36.4307 48.8875 36.3325C51.5376 35.187 66.9558 28.5249 69.5255 27.4663C70.5238 27.0394 71.6748 27.1853 72.5351 27.8476L74.83 29.6144C75.5829 30.1941 76.0025 31.0823 76 32C75.9992 32.2913 75.9559 32.5855 75.8672 32.8738L74.7549 36.4663C74.3811 37.6811 73.2699 38.4133 72 38.4663Z" fill="#ffffff"/>
<path d="M317.512 19.922C317.072 21.198 316.852 22.562 316.852 24.014V29.03H311.77V34.706H316.852V63.746H323.716V34.706H330.184V29.03H323.716V24.278C323.716 23.266 323.958 22.496 324.442 21.968C324.97 21.44 325.762 21.176 326.818 21.176H330.184L331.684 16.358C331.244 16.182 330.738 16.028 330.166 15.896C329.594 15.764 328.978 15.676 328.318 15.632C327.702 15.544 327.086 15.5 326.47 15.5C324.314 15.5 321.142 15.918 319.954 16.754C318.81 17.59 317.996 18.646 317.512 19.922Z" fill="#ffffff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M137.436 61.37C134.136 62.954 130.154 63.746 125.49 63.746H108V18.47H125.49C130.154 18.47 134.136 19.284 137.436 20.912C140.736 22.496 143.266 24.96 145.026 28.304C146.83 31.604 147.732 35.872 147.732 41.108C147.732 46.3 146.83 50.568 145.026 53.912C143.266 57.256 140.736 59.742 137.436 61.37ZM131.628 25.73C129.824 25.114 127.756 24.806 125.424 24.806H115.392V57.41H125.424C127.756 57.41 129.824 57.102 131.628 56.486C133.476 55.87 135.016 54.924 136.248 53.648C137.524 52.372 138.47 50.766 139.086 48.83C139.746 46.85 140.076 44.518 140.076 41.834V40.448C140.076 37.72 139.746 35.388 139.086 33.452C138.47 31.472 137.524 29.844 136.248 28.568C135.016 27.292 133.476 26.346 131.628 25.73Z" fill="#ffffff"/>
<path d="M158.826 40.976C158.518 42.208 158.364 43.594 158.364 45.134V63.746H151.5V29.03H157.176L157.77 34.64H158.166C158.562 33.54 159.068 32.506 159.684 31.538C160.344 30.57 161.18 29.778 162.192 29.162C163.248 28.546 164.524 28.238 166.02 28.238C166.724 28.238 167.34 28.304 167.868 28.436C168.44 28.568 168.88 28.678 169.188 28.766V35.234H166.878C165.47 35.234 164.216 35.454 163.116 35.894C162.06 36.334 161.158 36.994 160.41 37.874C159.706 38.71 159.178 39.744 158.826 40.976Z" fill="#ffffff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M178.765 64.142C180.041 64.406 181.229 64.538 182.329 64.538C184.133 64.538 185.761 64.318 187.213 63.878C188.665 63.482 189.941 62.91 191.041 62.162C192.185 61.37 193.153 60.468 193.945 59.456H194.341V64.538L200.61 64.532L200.611 38.93C200.611 36.686 200.105 34.772 199.093 33.188C198.081 31.604 196.563 30.394 194.539 29.558C192.559 28.678 190.073 28.238 187.081 28.238C184.309 28.238 181.867 28.612 179.755 29.36C177.643 30.108 175.993 31.208 174.805 32.66C173.661 34.068 173.089 35.806 173.089 37.874V38.666C173.089 38.886 173.111 39.106 173.155 39.326H179.755V38.336C179.755 37.544 179.953 36.818 180.349 36.158C180.789 35.454 181.515 34.882 182.527 34.442C183.583 33.958 185.035 33.716 186.883 33.716C188.731 33.716 190.139 33.958 191.107 34.442C192.119 34.926 192.801 35.608 193.153 36.488C193.549 37.368 193.747 38.38 193.747 39.524V42.956C190.491 42.956 187.477 43.132 184.705 43.484C181.977 43.836 179.623 44.452 177.643 45.332C175.663 46.212 174.123 47.422 173.023 48.962C171.923 50.502 171.373 52.46 171.373 54.836C171.373 56.86 171.725 58.51 172.429 59.786C173.133 61.018 174.035 61.986 175.135 62.69C176.279 63.394 177.489 63.878 178.765 64.142ZM188.005 58.268C186.861 58.664 185.607 58.862 184.243 58.862C183.055 58.862 182.021 58.686 181.141 58.334C180.261 57.982 179.601 57.476 179.161 56.816C178.721 56.112 178.501 55.254 178.501 54.242C178.501 52.57 179.139 51.272 180.415 50.348C181.691 49.38 183.473 48.72 185.761 48.368C188.049 48.016 190.711 47.84 193.747 47.84V50.15C193.747 51.426 193.505 52.614 193.021 53.714C192.537 54.77 191.877 55.694 191.041 56.486C190.205 57.234 189.193 57.828 188.005 58.268Z" fill="#ffffff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M212.646 75.758C211.062 75.758 209.566 75.428 208.158 74.768C206.794 74.108 205.694 73.162 204.858 71.93C204.022 70.698 203.604 69.202 203.604 67.442C203.604 65.506 204.132 63.944 205.188 62.756C206.288 61.524 207.564 60.6 209.016 59.984C207.96 59.5 207.102 58.796 206.442 57.872C205.826 56.948 205.518 55.892 205.518 54.704C205.518 53.076 206.112 51.756 207.3 50.744C208.488 49.732 209.874 49.072 211.458 48.764C209.918 47.752 208.708 46.476 207.828 44.936C206.992 43.396 206.574 41.658 206.574 39.722C206.574 37.39 207.124 35.388 208.224 33.716C209.324 32 210.952 30.658 213.108 29.69C215.308 28.722 217.97 28.238 221.094 28.238H240L238.5 32.492H233.062C233.823 33.3426 234.41 34.3006 234.822 35.366C235.394 36.686 235.68 38.138 235.68 39.722C235.68 42.01 235.152 44.012 234.096 45.728C233.04 47.444 231.434 48.786 229.278 49.754C227.166 50.722 224.548 51.206 221.424 51.206H216.012C214.956 51.206 214.098 51.426 213.438 51.866C212.822 52.306 212.514 52.966 212.514 53.846C212.514 54.594 212.822 55.21 213.438 55.694C214.054 56.178 214.868 56.42 215.88 56.42H230.532C233.084 56.42 235.196 57.278 236.868 58.994C238.54 60.666 239.376 62.822 239.376 65.462C239.376 67.398 238.87 69.136 237.858 70.676C236.89 72.26 235.504 73.492 233.7 74.372C231.94 75.296 229.894 75.758 227.562 75.758H212.646ZM211.722 69.488C212.558 70.28 213.614 70.676 214.89 70.676H227.496C228.42 70.676 229.256 70.5 230.004 70.148C230.752 69.796 231.346 69.29 231.786 68.63C232.226 68.014 232.446 67.31 232.446 66.518C232.446 65.198 232.028 64.164 231.192 63.416C230.4 62.668 229.41 62.294 228.222 62.294H214.89C213.658 62.294 212.624 62.712 211.788 63.548C210.952 64.34 210.534 65.33 210.534 66.518C210.534 67.75 210.93 68.74 211.722 69.488ZM221.16 46.256C223.756 46.256 225.692 45.684 226.968 44.54C228.244 43.352 228.882 41.746 228.882 39.722C228.882 37.654 228.244 36.07 226.968 34.97C225.692 33.826 223.756 33.254 221.16 33.254C218.564 33.254 216.628 33.826 215.352 34.97C214.076 36.07 213.438 37.654 213.438 39.722C213.438 41.042 213.702 42.208 214.23 43.22C214.802 44.188 215.66 44.936 216.804 45.464C217.992 45.992 219.444 46.256 221.16 46.256Z" fill="#ffffff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M248.208 62.624C250.716 63.9 253.774 64.538 257.382 64.538C261.078 64.538 264.158 63.9 266.622 62.624C269.086 61.304 270.934 59.302 272.166 56.618C273.442 53.934 274.08 50.524 274.08 46.388C274.08 42.208 273.442 38.798 272.166 36.158C270.934 33.474 269.086 31.494 266.622 30.218C264.158 28.898 261.078 28.238 257.382 28.238C253.774 28.238 250.716 28.898 248.208 30.218C245.744 31.494 243.874 33.474 242.598 36.158C241.366 38.798 240.75 42.208 240.75 46.388C240.75 50.524 241.366 53.934 242.598 56.618C243.874 59.302 245.744 61.304 248.208 62.624ZM262.794 57.608C261.386 58.444 259.582 58.862 257.382 58.862C255.226 58.862 253.444 58.444 252.036 57.608C250.628 56.728 249.572 55.408 248.868 53.648C248.208 51.888 247.878 49.666 247.878 46.982V45.794C247.878 43.11 248.208 40.888 248.868 39.128C249.572 37.368 250.628 36.07 252.036 35.234C253.444 34.354 255.226 33.914 257.382 33.914C259.582 33.914 261.386 34.354 262.794 35.234C264.202 36.07 265.236 37.368 265.896 39.128C266.6 40.888 266.952 43.11 266.952 45.794V46.982C266.952 49.666 266.6 51.888 265.896 53.648C265.236 55.408 264.202 56.728 262.794 57.608Z" fill="#ffffff"/>
<path d="M287.052 38.6C286.26 39.964 285.864 41.57 285.864 43.418V63.746H279V29.03H284.676L285.27 33.98H285.732C286.568 32.704 287.558 31.648 288.702 30.812C289.846 29.976 291.1 29.338 292.464 28.898C293.872 28.458 295.412 28.238 297.084 28.238C299.284 28.238 301.22 28.634 302.892 29.426C304.564 30.174 305.862 31.406 306.786 33.122C307.754 34.838 308.238 37.148 308.238 40.052V63.746H301.374V41.108C301.374 39.788 301.198 38.688 300.846 37.808C300.538 36.928 300.076 36.224 299.46 35.696C298.844 35.168 298.118 34.794 297.282 34.574C296.446 34.354 295.522 34.244 294.51 34.244C292.926 34.244 291.474 34.64 290.154 35.432C288.878 36.18 287.844 37.236 287.052 38.6Z" fill="#ffffff"/>
<path d="M378 28.9665L362.16 75.9285H355.163C355.163 75.9285 358.53 64.9117 359.058 63.4597L345.132 28.9665H352.326L359.058 44.7585C359.366 45.5505 359.696 46.5405 360.048 47.7285C360.444 48.9165 360.818 50.1265 361.17 51.3585C361.566 52.5905 361.896 53.6905 362.16 54.6585H362.49C362.71 53.9985 362.93 53.2505 363.15 52.4145C363.414 51.5345 363.678 50.6325 363.942 49.7085C364.206 48.7845 364.47 47.9045 364.734 47.0685C364.998 46.1885 365.218 45.4405 365.394 44.8245L371.004 28.9665H378Z" fill="#ffffff"/>
<path d="M334.672 16.028V63.746H341.536V16.028H334.672Z" fill="#ffffff"/>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,12 @@
<svg width="189" height="44" viewBox="0 0 189 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M22 0C3.883 0 0 3.883 0 22C0 40.117 3.883 44 22 44C40.117 44 44 40.117 44 22C44 3.883 40.117 0 22 0ZM19.5585 16.265C19.8224 16.406 20 16.7008 20 17C20 18.1046 20.8954 19 22 19C23.1046 19 24 18.1046 24 17C24 16.7008 24.1776 16.406 24.4414 16.265C25.0714 15.9283 25.5 15.2642 25.5 14.5C25.5 13.3954 24.6046 12.5 23.5 12.5C23.3071 12.5 23.1205 12.5273 22.944 12.5783C22.3661 12.7452 21.6339 12.7452 21.056 12.5783C20.8794 12.5273 20.6929 12.5 20.5 12.5C19.3954 12.5 18.5 13.3954 18.5 14.5C18.5 15.2642 18.9286 15.9283 19.5585 16.265ZM20.3087 18.8411C20.2282 18.8977 20.1644 18.978 20.1283 19.0744L19.6243 20.4185C19.5438 20.633 19.5395 20.8686 19.6119 21.0859L20.4253 23.526C20.4744 23.6733 20.5566 23.8087 20.687 23.893C20.9154 24.0408 21.3531 24.25 22 24.25C22.6468 24.25 23.0845 24.0408 23.3129 23.893C23.4433 23.8087 23.5255 23.6733 23.5746 23.526L24.388 21.0859C24.4604 20.8686 24.4561 20.633 24.3756 20.4185L23.8716 19.0744C23.8355 18.978 23.7717 18.8977 23.6912 18.8411C23.2461 19.2502 22.6522 19.5 22 19.5C21.3477 19.5 20.7538 19.2502 20.3087 18.8411ZM21 30L20.5105 24.3712C20.8174 24.5497 21.3156 24.75 22 24.75C22.6842 24.75 23.1825 24.5498 23.4895 24.3711L23 30C23 30 22.75 30.25 22 30.25C21.25 30.25 21 30 21 30ZM21.25 34L21.0055 30.5779L21.0331 30.5892C21.2547 30.6779 21.5686 30.75 22 30.75C22.4314 30.75 22.7453 30.6779 22.967 30.5892L22.9944 30.578L22.75 34C22.75 34 22.625 34.5 22 34.5C21.375 34.5 21.25 34 21.25 34ZM9.24995 20H19.2C18.8224 20.6294 18.9914 21.0678 19.1582 21.5005L19.1582 21.5005L19.1582 21.5006L19.1582 21.5006L19.1582 21.5006L19.1582 21.5006C19.1901 21.5835 19.222 21.6662 19.25 21.75L9.90851 24.4252C9.31202 24.5932 8.67362 24.3772 8.3018 23.8814L7.71391 23.0976C7.37302 22.643 7.31818 22.0349 7.57227 21.5267L7.92108 20.8291C8.17311 20.3251 8.68641 20.0048 9.24995 20ZM7.99998 19.2331L19.375 19.5C19.375 19.5 19.5546 19.0506 19.625 18.75C19.6491 18.647 19.6745 18.5441 19.6961 18.4586C19.7264 18.3386 19.6699 18.2154 19.5562 18.1662C18.2312 17.5935 10.5221 14.2625 9.23721 13.7331C8.73807 13.5197 8.16257 13.5926 7.73242 13.9238L6.58499 14.8072C6.20854 15.097 5.99872 15.5412 5.99998 16C6.00037 16.1456 6.02204 16.2928 6.06639 16.4369L6.62254 18.2331C6.80943 18.8405 7.36503 19.2067 7.99998 19.2331ZM34.75 20H24.8C25.1776 20.6294 25.0086 21.0679 24.8418 21.5005L24.8418 21.5005L24.8418 21.5006L24.8418 21.5006C24.8098 21.5835 24.7779 21.6662 24.75 21.75L34.0914 24.4252C34.6879 24.5932 35.3263 24.3772 35.6982 23.8814L36.286 23.0976C36.6269 22.643 36.6818 22.0349 36.4277 21.5267L36.0789 20.8291C35.8268 20.3251 35.3135 20.0048 34.75 20ZM36 19.2331L24.625 19.5C24.625 19.5 24.4453 19.0506 24.375 18.75C24.3509 18.647 24.3255 18.5441 24.3039 18.4586C24.2735 18.3386 24.3301 18.2154 24.4438 18.1662C25.7688 17.5935 33.4779 14.2625 34.7627 13.7331C35.2619 13.5197 35.8374 13.5926 36.2675 13.9238L37.415 14.8072C37.7914 15.097 38.0012 15.5412 38 16C37.9996 16.1456 37.9779 16.2928 37.9336 16.4369L37.3774 18.2331C37.1905 18.8405 36.6349 19.2067 36 19.2331Z" fill="black"/>
<path d="M158.756 9.461C158.536 10.099 158.426 10.781 158.426 11.507V14.015H155.885V16.853H158.426V31.373H161.858V16.853H165.092V14.015H161.858V11.639C161.858 11.133 161.979 10.748 162.221 10.484C162.485 10.22 162.881 10.088 163.409 10.088H165.092L165.842 7.679C165.622 7.591 165.369 7.514 165.083 7.448C164.797 7.382 164.489 7.338 164.159 7.316C163.851 7.272 163.543 7.25 163.235 7.25C162.157 7.25 160.571 7.459 159.977 7.877C159.405 8.295 158.998 8.823 158.756 9.461Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M68.718 30.185C67.068 30.977 65.077 31.373 62.745 31.373H54V8.735H62.745C65.077 8.735 67.068 9.142 68.718 9.956C70.368 10.748 71.633 11.98 72.513 13.652C73.415 15.302 73.866 17.436 73.866 20.054C73.866 22.65 73.415 24.784 72.513 26.456C71.633 28.128 70.368 29.371 68.718 30.185ZM65.814 12.365C64.912 12.057 63.878 11.903 62.712 11.903H57.696V28.205H62.712C63.878 28.205 64.912 28.051 65.814 27.743C66.738 27.435 67.508 26.962 68.124 26.324C68.762 25.686 69.235 24.883 69.543 23.915C69.873 22.925 70.038 21.759 70.038 20.417V19.724C70.038 18.36 69.873 17.194 69.543 16.226C69.235 15.236 68.762 14.422 68.124 13.784C67.508 13.146 66.738 12.673 65.814 12.365Z" fill="black"/>
<path d="M79.413 19.988C79.259 20.604 79.182 21.297 79.182 22.067V31.373H75.75V14.015H78.588L78.885 16.82H79.083C79.281 16.27 79.534 15.753 79.842 15.269C80.172 14.785 80.59 14.389 81.096 14.081C81.624 13.773 82.262 13.619 83.01 13.619C83.362 13.619 83.67 13.652 83.934 13.718C84.22 13.784 84.44 13.839 84.594 13.883V17.117H83.439C82.735 17.117 82.108 17.227 81.558 17.447C81.03 17.667 80.579 17.997 80.205 18.437C79.853 18.855 79.589 19.372 79.413 19.988Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M89.3826 31.571C90.0206 31.703 90.6146 31.769 91.1646 31.769C92.0666 31.769 92.8806 31.659 93.6066 31.439C94.3326 31.241 94.9706 30.955 95.5206 30.581C96.0926 30.185 96.5766 29.734 96.9726 29.228H97.1706V31.769L100.305 31.766L100.306 18.965C100.306 17.843 100.053 16.886 99.5466 16.094C99.0406 15.302 98.2816 14.697 97.2696 14.279C96.2796 13.839 95.0366 13.619 93.5406 13.619C92.1546 13.619 90.9336 13.806 89.8776 14.18C88.8216 14.554 87.9966 15.104 87.4026 15.83C86.8306 16.534 86.5446 17.403 86.5446 18.437V18.833C86.5446 18.943 86.5556 19.053 86.5776 19.163H89.8776V18.668C89.8776 18.272 89.9766 17.909 90.1746 17.579C90.3946 17.227 90.7576 16.941 91.2636 16.721C91.7916 16.479 92.5176 16.358 93.4416 16.358C94.3656 16.358 95.0696 16.479 95.5536 16.721C96.0596 16.963 96.4006 17.304 96.5766 17.744C96.7746 18.184 96.8736 18.69 96.8736 19.262V20.978C95.2456 20.978 93.7386 21.066 92.3526 21.242C90.9886 21.418 89.8116 21.726 88.8216 22.166C87.8316 22.606 87.0616 23.211 86.5116 23.981C85.9616 24.751 85.6866 25.73 85.6866 26.918C85.6866 27.93 85.8626 28.755 86.2146 29.393C86.5666 30.009 87.0176 30.493 87.5676 30.845C88.1396 31.197 88.7446 31.439 89.3826 31.571ZM94.0026 28.634C93.4306 28.832 92.8036 28.931 92.1216 28.931C91.5276 28.931 91.0106 28.843 90.5706 28.667C90.1306 28.491 89.8006 28.238 89.5806 27.908C89.3606 27.556 89.2506 27.127 89.2506 26.621C89.2506 25.785 89.5696 25.136 90.2076 24.674C90.8456 24.19 91.7366 23.86 92.8806 23.684C94.0246 23.508 95.3556 23.42 96.8736 23.42V24.575C96.8736 25.213 96.7526 25.807 96.5106 26.357C96.2686 26.885 95.9386 27.347 95.5206 27.743C95.1026 28.117 94.5966 28.414 94.0026 28.634Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M106.323 37.379C105.531 37.379 104.783 37.214 104.079 36.884C103.397 36.554 102.847 36.081 102.429 35.465C102.011 34.849 101.802 34.101 101.802 33.221C101.802 32.253 102.066 31.472 102.594 30.878C103.144 30.262 103.782 29.8 104.508 29.492C103.98 29.25 103.551 28.898 103.221 28.436C102.913 27.974 102.759 27.446 102.759 26.852C102.759 26.038 103.056 25.378 103.65 24.872C104.244 24.366 104.937 24.036 105.729 23.882C104.959 23.376 104.354 22.738 103.914 21.968C103.496 21.198 103.287 20.329 103.287 19.361C103.287 18.195 103.562 17.194 104.112 16.358C104.662 15.5 105.476 14.829 106.554 14.345C107.654 13.861 108.985 13.619 110.547 13.619H120L119.25 15.746H116.531C116.912 16.1713 117.205 16.6503 117.411 17.183C117.697 17.843 117.84 18.569 117.84 19.361C117.84 20.505 117.576 21.506 117.048 22.364C116.52 23.222 115.717 23.893 114.639 24.377C113.583 24.861 112.274 25.103 110.712 25.103H108.006C107.478 25.103 107.049 25.213 106.719 25.433C106.411 25.653 106.257 25.983 106.257 26.423C106.257 26.797 106.411 27.105 106.719 27.347C107.027 27.589 107.434 27.71 107.94 27.71H115.266C116.542 27.71 117.598 28.139 118.434 28.997C119.27 29.833 119.688 30.911 119.688 32.231C119.688 33.199 119.435 34.068 118.929 34.838C118.445 35.63 117.752 36.246 116.85 36.686C115.97 37.148 114.947 37.379 113.781 37.379H106.323ZM105.861 34.244C106.279 34.64 106.807 34.838 107.445 34.838H113.748C114.21 34.838 114.628 34.75 115.002 34.574C115.376 34.398 115.673 34.145 115.893 33.815C116.113 33.507 116.223 33.155 116.223 32.759C116.223 32.099 116.014 31.582 115.596 31.208C115.2 30.834 114.705 30.647 114.111 30.647H107.445C106.829 30.647 106.312 30.856 105.894 31.274C105.476 31.67 105.267 32.165 105.267 32.759C105.267 33.375 105.465 33.87 105.861 34.244ZM110.58 22.628C111.878 22.628 112.846 22.342 113.484 21.77C114.122 21.176 114.441 20.373 114.441 19.361C114.441 18.327 114.122 17.535 113.484 16.985C112.846 16.413 111.878 16.127 110.58 16.127C109.282 16.127 108.314 16.413 107.676 16.985C107.038 17.535 106.719 18.327 106.719 19.361C106.719 20.021 106.851 20.604 107.115 21.11C107.401 21.594 107.83 21.968 108.402 22.232C108.996 22.496 109.722 22.628 110.58 22.628Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M124.104 30.812C125.358 31.45 126.887 31.769 128.691 31.769C130.539 31.769 132.079 31.45 133.311 30.812C134.543 30.152 135.467 29.151 136.083 27.809C136.721 26.467 137.04 24.762 137.04 22.694C137.04 20.604 136.721 18.899 136.083 17.579C135.467 16.237 134.543 15.247 133.311 14.609C132.079 13.949 130.539 13.619 128.691 13.619C126.887 13.619 125.358 13.949 124.104 14.609C122.872 15.247 121.937 16.237 121.299 17.579C120.683 18.899 120.375 20.604 120.375 22.694C120.375 24.762 120.683 26.467 121.299 27.809C121.937 29.151 122.872 30.152 124.104 30.812ZM131.397 28.304C130.693 28.722 129.791 28.931 128.691 28.931C127.613 28.931 126.722 28.722 126.018 28.304C125.314 27.864 124.786 27.204 124.434 26.324C124.104 25.444 123.939 24.333 123.939 22.991V22.397C123.939 21.055 124.104 19.944 124.434 19.064C124.786 18.184 125.314 17.535 126.018 17.117C126.722 16.677 127.613 16.457 128.691 16.457C129.791 16.457 130.693 16.677 131.397 17.117C132.101 17.535 132.618 18.184 132.948 19.064C133.3 19.944 133.476 21.055 133.476 22.397V22.991C133.476 24.333 133.3 25.444 132.948 26.324C132.618 27.204 132.101 27.864 131.397 28.304Z" fill="black"/>
<path d="M143.526 18.8C143.13 19.482 142.932 20.285 142.932 21.209V31.373H139.5V14.015H142.338L142.635 16.49H142.866C143.284 15.852 143.779 15.324 144.351 14.906C144.923 14.488 145.55 14.169 146.232 13.949C146.936 13.729 147.706 13.619 148.542 13.619C149.642 13.619 150.61 13.817 151.446 14.213C152.282 14.587 152.931 15.203 153.393 16.061C153.877 16.919 154.119 18.074 154.119 19.526V31.373H150.687V20.054C150.687 19.394 150.599 18.844 150.423 18.404C150.269 17.964 150.038 17.612 149.73 17.348C149.422 17.084 149.059 16.897 148.641 16.787C148.223 16.677 147.761 16.622 147.255 16.622C146.463 16.622 145.737 16.82 145.077 17.216C144.439 17.59 143.922 18.118 143.526 18.8Z" fill="black"/>
<path d="M189 13.9832L181.08 37.4642H177.581C177.581 37.4642 179.265 31.9559 179.529 31.2299L172.566 13.9832H176.163L179.529 21.8792C179.683 22.2752 179.848 22.7702 180.024 23.3642C180.222 23.9582 180.409 24.5632 180.585 25.1792C180.783 25.7952 180.948 26.3452 181.08 26.8292H181.245C181.355 26.4992 181.465 26.1252 181.575 25.7072C181.707 25.2672 181.839 24.8162 181.971 24.3542C182.103 23.8922 182.235 23.4522 182.367 23.0342C182.499 22.5942 182.609 22.2202 182.697 21.9122L185.502 13.9832H189Z" fill="black"/>
<path d="M167.336 7.514V31.373H170.768V7.514H167.336Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 309.88 252.72">
<defs>
<style>.cls-1{fill:#003545;}</style>
</defs>
<title>MDB-VLogo_RGB</title>
<path class="cls-1" d="M61.74,214.91,73,258.46h-8.5L57,227.09,42.86,258.46H35.68L21.62,227.27,13.9,258.46H5.58l11.16-43.55H24.1l15.2,33.72,15.14-33.72Z" transform="translate(-5.58 -6.4)"></path>
<path class="cls-1" d="M105.11,231.74v-5.07h8.21v31.79h-8.21v-5.12c-2.17,3.68-6.63,5.79-12.06,5.79-11.35,0-17.68-8-17.68-17.2,0-8.87,6-16,16.47-16C97.81,226,102.76,228,105.11,231.74Zm-21,10.62c0,5.85,3.68,10.86,10.8,10.86,6.87,0,10.61-4.89,10.61-10.68s-3.86-10.74-11-10.74C87.68,231.8,84.12,236.74,84.12,242.36Z" transform="translate(-5.58 -6.4)"></path>
<path class="cls-1" d="M131.83,258.46h-8.2V226.67h8.2v7.12A12.58,12.58,0,0,1,143.29,226a14.84,14.84,0,0,1,5.13.84l-1.75,6a18,18,0,0,0-4.34-.6c-5.92,0-10.5,4.46-10.5,11Z" transform="translate(-5.58 -6.4)"></path>
<path class="cls-1" d="M152.52,218.28a4.17,4.17,0,0,1,4.4-4.28,4.33,4.33,0,0,1,4.47,4.41,4.15,4.15,0,0,1-4.47,4.22A4.22,4.22,0,0,1,152.52,218.28Zm.36,8.39h8.21V249.9c0,1.44.3,2.47,1.5,2.47a8.85,8.85,0,0,0,1.57-.18l1.27,6a14.36,14.36,0,0,1-5.43,1c-3.44,0-7.12-1-7.12-8.81Z" transform="translate(-5.58 -6.4)"></path>
<path class="cls-1" d="M197.76,231.74v-5.07H206v31.79h-8.21v-5.12c-2.17,3.68-6.63,5.79-12.06,5.79-11.34,0-17.68-8-17.68-17.2,0-8.87,6-16,16.47-16C190.46,226,195.41,228,197.76,231.74Zm-21,10.62c0,5.85,3.68,10.86,10.8,10.86,6.88,0,10.62-4.89,10.62-10.68s-3.87-10.74-11-10.74C180.33,231.8,176.77,236.74,176.77,242.36Z" transform="translate(-5.58 -6.4)"></path>
<path class="cls-1" d="M218.57,214.91h19.67c16.53,0,24.79,9.11,24.67,21.77.12,13.16-9,21.78-23.22,21.78H218.57Zm5.43,3.86v35.89h15c13.15,0,18.16-8.87,18.16-18.1,0-10.43-6.27-17.79-18.16-17.79Z" transform="translate(-5.58 -6.4)"></path>
<path class="cls-1" d="M296.45,258.46h-25V214.91H294c8.62,0,16.83,1.62,16.71,11.28,0,6.81-4.23,8.69-8.69,9.41,6.33.54,10.14,4.58,10.14,11.1C312.2,256.47,303.63,258.46,296.45,258.46Zm-1.87-24.55c8.63,0,10.56-3.32,10.56-7.54,0-6.34-3.86-7.78-10.56-7.78H276.66v15.32Zm.24,3.68H276.66v17.19H295.6c5.31,0,10.92-1.75,10.92-8.44C306.52,238.62,300.07,237.59,294.82,237.59Z" transform="translate(-5.58 -6.4)"></path>
<path class="cls-1" d="M314.08,7.35a4.18,4.18,0,0,0-2.84-.95c-2.83,0-6.49,1.92-8.46,2.95l-.78.4a26.86,26.86,0,0,1-10.57,2.66c-3.76.12-7,.34-11.22.78-25,2.57-36.15,21.73-46.89,40.26C227.47,63.53,221.43,74,213.15,82a54.4,54.4,0,0,1-5.45,4.63C199.13,93,188.37,97.55,180,100.77c-8.06,3.08-16.86,5.85-25.36,8.53-7.79,2.45-15.14,4.77-21.9,7.28-3.05,1.13-5.64,2-7.93,2.76-6.16,2-10.6,3.53-17.09,8-2.53,1.73-5.07,3.6-6.79,5a71.62,71.62,0,0,0-13.55,14.27A84.25,84.25,0,0,1,76,160.27c-1.37,1.34-3.8,2-7.44,2-4.26,0-9.43-.88-14.9-1.81-5.64-1-11.47-1.95-16.47-1.95-4.06,0-7.17.66-9.49,2,0,0-3.91,2.28-5.56,5.23l1.62.73a33.21,33.21,0,0,1,6.92,5,34.72,34.72,0,0,0,7.2,5.12A6.18,6.18,0,0,1,40.1,178c-.68,1-1.68,2.29-2.73,3.67-5.77,7.55-9.14,12.32-7.21,14.92a6.07,6.07,0,0,0,3,.68c12.58,0,19.34-3.27,27.89-7.41,2.48-1.2,5-2.43,8-3.7,5-2.17,10.38-5.63,16.09-9.29C92.61,172,100.42,167,108,164.59a62.3,62.3,0,0,1,19.23-2.7c8,0,16.42,1.07,24.54,2.11,6.05.78,12.32,1.58,18.47,1.95,2.39.14,4.6.21,6.75.21a78.21,78.21,0,0,0,8.61-.45l.69-.24c4.31-2.65,6.33-8.34,8.29-13.84,1.26-3.54,2.32-6.72,4-8.74a2.55,2.55,0,0,1,.32-.27.4.4,0,0,1,.49.08s0,.05,0,.16c-1,21.51-9.66,35.17-18.42,47.31l-5.85,6.27s8.19,0,12.85-1.8c17-5.08,29.83-16.28,39.17-34.14a145.7,145.7,0,0,0,6.17-14.09c.16-.4,1.63-1.14,1.49.93-.05.61-.09,1.29-.14,2h0c0,.42,0,.85-.08,1.28-.24,3-.95,9.34-.95,9.34l5.25-2.81c12.66-8,22.42-24.14,29.82-49.25,3.08-10.46,5.34-20.85,7.33-30,2.38-11,4.43-20.43,6.78-24.09,3.69-5.74,9.32-9.62,14.77-13.39.74-.51,1.49-1,2.22-1.54,6.85-4.81,13.66-10.36,15.16-20.71l0-.23C316.05,10.22,315.13,8.25,314.08,7.35Z" transform="translate(-5.58 -6.4)"></path>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -0,0 +1,10 @@
<svg width="85" height="27" viewBox="0 0 85 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1878_297)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M75.2909 13.8125C75.2909 10.8448 77.4892 9.12284 80.2371 9.12284C82.2888 9.12284 84.1207 10.1121 85 12.5668C84.7435 13.8125 83.2047 15.2047 82.5453 15.4246C81.9957 14.2522 81.3728 13.556 80.7866 13.556C80.0539 13.556 80.0172 14.069 80.0172 14.7284C80.0172 15.1955 80.151 15.8834 80.3119 16.7112C80.5549 17.9615 80.8599 19.5309 80.8599 21.1401C80.8599 24.0711 78.8082 26.2328 75.6573 26.2328C72.7721 26.2328 71.1778 24.3414 70.4665 21.3198C68.5818 24.6972 65.8257 26.2328 63.7134 26.2328C60.411 26.2328 59.6338 23.7919 59.7121 21.3161C58.3852 23.6612 55.831 26.2328 53.3815 26.2328C50.8809 26.2328 49.9976 24.0563 50.2002 21.5215C48.702 24.3122 45.9919 26.2328 43.3793 26.2328C40.5442 26.2328 39.141 23.9806 39.5951 21.189C37.6878 23.5333 34.1374 26.2328 30.4461 26.2328C26.2373 26.2328 24.4053 23.9632 24.1882 21.1193C22.1568 24.375 19.4187 26.3427 16.1573 26.3427C11.4493 26.3427 9.76537 22.1561 9.52032 18.7315C7.77547 21.0681 5.81377 23.4923 3.40733 26.1961C3.15086 26.4526 2.93103 26.5991 2.67457 26.5991C1.8319 26.5991 0.109914 22.8621 0 21.4698C0.723099 20.3478 5.28119 15.3398 8.95093 11.3079C10.2409 9.89066 11.4211 8.594 12.2863 7.6291C10.0389 8.30726 7.72169 9.65975 4.79957 11.7608C4.28664 12.1272 2.85776 8.7931 2.8944 6.22845C6.26509 3.73707 11.3944 2.16164 15.5345 2.16164C21.3233 2.16164 24.6573 5.38578 24.6573 9.8556C24.6573 13.5927 21.5431 17.6961 17 17.8427C14.6377 17.904 13.1237 16.578 12.3494 14.9405C12.4419 17.473 13.7587 20.5905 17.2931 20.5905C21.1462 20.5905 22.9965 18.2646 25.7559 14.7958C25.9352 14.5704 26.1183 14.3403 26.306 14.1056C28.6509 11.2112 31.3621 8.64655 35.319 8.64655C37.7371 8.64655 39.3858 10.1487 39.3858 12.4203C39.3858 15.1681 36.1616 18.9784 31.6552 18.9784C30.8855 18.9784 30.1839 18.877 29.5917 18.6766C29.5768 18.7921 29.5668 18.9058 29.5668 19.0151C29.5668 20.2974 30.0431 21.0668 32.1315 21.0668C35.2091 21.0668 38.1034 19.2349 41.6207 14.9483C45.0647 10.7349 47.6659 8.90302 50.4138 8.90302C52.2687 8.90302 53.6765 9.90832 54.2969 11.6014C57.9796 6.28253 61.1038 2.51388 63.75 0C66.3513 1.09914 68.2198 3.26078 67.7069 3.70043C65.7651 5.45905 59.2802 12.5302 56.7155 16.7435C56.056 17.8427 55.4332 19.0517 55.4332 19.6379C55.4332 20.1875 55.7629 20.3707 56.1293 20.3707C57.8898 20.3707 61.4176 16.2147 64.4645 12.6253C65.6026 11.2845 66.6736 10.0228 67.5603 9.08621C69.6121 9.92888 71.7004 11.7241 71.1875 12.347C68.4763 15.5711 66.4246 18.2091 66.4246 19.7112C66.4246 20.1142 66.5711 20.3707 67.1207 20.3707C68.1466 20.3707 69.0991 19.4547 70.6746 17.5129C71.0043 17.1099 71.4073 17.1099 71.6638 17.7328C72.3599 19.4181 73.3858 20.3341 74.1918 20.3341C75.1444 20.3341 75.6207 19.4914 75.6207 18.2091C75.6207 17.3327 75.5137 16.3138 75.4217 15.4365C75.3521 14.7733 75.2909 14.191 75.2909 13.8125ZM16.194 13.3362C18.1358 13.3362 20.2608 12.2737 20.2608 10.1121C20.2608 8.80024 19.4466 7.59084 17.2708 7.22257C17.156 7.40192 17.042 7.58017 16.9287 7.75739C15.8231 9.4858 14.7804 11.116 13.7281 12.7095C14.3586 13.0636 15.156 13.3362 16.194 13.3362ZM35.8319 13.9957C35.8319 13.4095 35.4655 13.0065 34.8793 13.0065C33.4094 13.0065 31.1923 15.0693 30.149 17.0613C30.5341 17.2101 30.9862 17.2931 31.472 17.2931C34.0733 17.2931 35.8319 15.3147 35.8319 13.9957ZM45.4677 19.3082C45.4677 19.9677 45.834 20.4073 46.6034 20.4073C48.9849 20.4073 51.9526 16.0841 51.9526 14.3254C51.9526 13.5927 51.5496 13.153 50.8901 13.153C48.7285 13.153 45.4677 17.2565 45.4677 19.3082ZM76.0599 6.08207C75.2172 7.47431 73.9349 9.04974 73.4586 9.52603C71.2603 8.61008 69.2086 6.77819 69.5017 6.26525C70.3077 4.83638 71.6267 3.29758 72.103 2.82129C74.3012 3.73724 76.353 5.60577 76.0599 6.08207Z" fill="#FF4438"/>
</g>
<defs>
<clipPath id="clip0_1878_297">
<rect width="85" height="26.5991" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

6
src/content/config.ts Normal file
View File

@@ -0,0 +1,6 @@
import { defineCollection } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';
export const collections = {
docs: defineCollection({ schema: docsSchema() }),
};

View File

@@ -0,0 +1,52 @@
---
title: Authorization
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to authorize API requests in Coolify"
description: "Learn how to authorize your API requests."
---
import { Aside } from '@astrojs/starlight/components';
API request requires a `Bearer` token in `Authorization` header, which could be generated from the UI.
## Generate
1. Go to `Keys & Tokens` / `API tokens`.
2. Define a name for your token and click `Create New Token`.
<Aside type="tip">
You will see the token once, so make sure to copy it and store it in a safe
place.
</Aside>
## Scope
The token will only be able to access resources that are owned by the team that the token is scoped to.
```php
# Sample token
3|WaobqX9tJQshKPuQFHsyApxuOOggg4wOfvGc9xa233c376d7
```
## Permissions
Currently there are three types of permissions:
- read-only `(default)`
- view:sensitive
- `*` (all permissions)
### `read-only`
With this permission, you can only read data from the API, but you can't create, update, or delete any resources. Also you can't see sensitive data.
### `view:sensitive`
Without this permission, passwords, api keys, and other sensitive data will be redacted from the API response.
### `*`
Full access to all resources and sensitive data.

View File

@@ -0,0 +1,17 @@
---
title: Contact
head:
- tag: "meta"
attrs:
property: "og:title"
content: Contact us
description: "Ways to contact us."
---
The preferred way to contact us by email at hi@coollabs.io.
But you can reach us over:
- Twitter/X: [@heyandras](https://twitter.com/heyandras) or [@coolifyio](https://twitter.com/coolifyio)
- Mastodon: [@andrasbacsai](https://fosstodon.org/@andrasbacsai)
- Discord: [Invitation](https://coollabs.io/discord)

View File

@@ -0,0 +1,35 @@
---
title: Downgrade - Self-hosted
head:
- tag: "meta"
attrs:
property: "og:title"
content: How to downgrade the self-hosted version of Coolify
description: "A guide on how to downgrade the self-hosted version of Coolify."
sidebar:
order: 8
---
import { Steps, Aside } from '@astrojs/starlight/components';
If you have any issues with the latest version, you can simple downgrade to the previous version. Here is how you can do it:
<Steps>
1. Disable Auto Update
Login as the `root` user (or any user that is in the `root` (initial) team),
go to your `Settings` menu and disable the `Auto Update` feature.
2. Login to your server via SSH
Login to your server via SSH and execute the following command:
```bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash -s 4.0.0-beta.277
```
Where `4.0.0-beta.277` is the version you want to downgrade to.
</Steps>
<Aside type="caution" title="Watch out!">
Please note that downgrading could cause weird issues, as the database schema
is not backward compatible. Some features might not work as expected.
</Aside>

View File

@@ -0,0 +1,81 @@
---
title: Introduction
head:
- tag: "meta"
attrs:
property: "og:title"
content: What is exactly Coolify and what are the core features?
description: "What is Coolify?"
sidebar:
order: 1
---
import { Card, CardGrid } from '@astrojs/starlight/components';
Coolify is an all-in one PaaS that helps you to self-host your own applications, databases or services (like Wordpress, Plausible Analytics, Ghost) without managing your servers, also known as an **open-source & self-hostable Heroku / Netlify / Vercel alternative**.
## Features
<CardGrid >
<Card title="Any Language">
Coolify is compatible with a wide range of programming languages and
frameworks, enabling you to launch static websites, APIs, backends,
databases, services, and other types of applications.
</Card>
<Card title="Any Server">
You can deploy your resources to any server, including your own servers,
VPS, Raspberry Pi, EC2, DigitalOcean, Linode, Hetzner
(<a class="underline" href="https://coolify.io/hetzner" target="_blank">referral link</a>),
and more. All you need is an SSH connection.
</Card>
<Card title="Any Use Case">
You can deploy your resources to a single server, multiple servers, or
Docker Swarm clusters according to your requirements.
<br />
<br />
(Support for Kubernetes is on the way!)
</Card>
<Card title="Push to Deploy">
Nowadays, Git integration is considered the norm. We provide integration
with both hosted and self-hosted platforms like GitHub, GitLab, Bitbucket,
Gitea, and others.
</Card>
<Card title="Free SSL Certificates">
Coolify takes care of automatically setting up and renewing Let's Encrypt
SSL certificates for your custom domains, so you can relax and not have to
deal with it.
</Card>
<Card title="Automatic DB Backups">
Your data is automatically backed up to any S3 compatible solution, allowing
you to easily restore it with just a few clicks if any problems occur.
</Card>
<Card title="Webhooks">
Integrate into your CI/CD pipelines or create custom integrations using
GitHub Actions, Gitlab CI, Bitbucket Pipelines, or any other CI/CD tool of
your choice.
</Card>
<Card title="Powerful API">
Coolify offers a robust API that enables you to automate deployments, manage
resources, and integrate with your current tools, providing limitless
possibilities.
</Card>
<Card title="Collaborative">
Share your projects with your team members and work together on them. You
can also control permissions and roles for each member.
</Card>
<Card title="Pull Request Deployments">
Automagically deploy new commits and pull requests separately to quickly
review contributions and speed up your teamwork!
</Card>
<Card title="Server Automations">
Once your server is connected, Coolify will handle numerous tasks
automatically, allowing you to concentrate on your code.
</Card>
<Card title="Monitoring">
Coolify will keep an eye on your deployments, servers, disk usage, and other
aspects, and notify you if any issues arise.
</Card>
<Card title="Notifications">
Coolify will notify you through your chosen channels like Discord, Telegram,
and email in case of any events on your server or with your deployments.
</Card>
</CardGrid>

View File

@@ -0,0 +1,234 @@
---
title: Installation - Self-hosted
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to install self-hosted version of Coolify"
description: "A guide to install self-hosted version of Coolify on your server."
sidebar:
order: 5
---
import { Aside, Steps } from '@astrojs/starlight/components';
To get started, you need a server, it can be a VPS, a Raspberry Pi, or any other server that you have SSH access to.
<Aside>
It is strongly recommended to use a fresh, newly created server for installing Coolify. Installing on an existing server with other applications may lead to conflicts or unexpected behavior.
</Aside>
<Aside type="tip">
If you don't have a server or server provider yet, we prefer to use Hetzner.
You can use our [referral link](https://coolify.io/hetzner). It will helps us to keep the project alive.
</Aside>
<Aside>
TLDR for installation:
```bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
```
</Aside>
## Requirements
### Supported Operating Systems
- Debian based Linux distributions (Debian, Ubuntu, etc.)
- Redhat based Linux distributions (CentOS, Fedora, Redhat, AlmaLinux, Rocky etc.)
- SUSE based Linux distributions (SLES, SUSE, openSUSE, etc.)
- Arch Linux
- Raspberry Pi OS (Raspbian)
### Supported Architectures
- AMD64
- ARM64
### Minimum Required Server
#### For Coolify
- 2 CPUs
- 2 GBs memory
- 30+ GB of storage for the images.
#### For Your Resources
Choosing your server resources depends on your usage. If you are planning to run a lot of things, you should consider buying a server with more resources.
Hosting `Supabase`, `Appwrite` or `Posthog` requires more resources than hosting a static site (waay more).
<Aside type="tip">
Here is an example. I'm hosting most of my production stuffs on a server with:
```
- 8GB of memory (average usage 3.5GB)
- 4 CPUs (average usage ~20-30%)
- 150GB disk (usage 40GB)
```
For the following things:
```
- 3 NodeJS apps
- 4 Static sites
- Plausible Analytics (for visitor analytics)
- Fider (feedback tool)
- UptimeKuma (uptime monitoring)
- Ghost (my newsletters)
- 3 Redis databases
- 2 PostgreSQL databases
```
</Aside>
## Installation
### Automated
This works with Docker Engine **(not Docker Desktop, for that, go [here](#docker-desktop))** on any supported Linux distribution.
<Steps>
1. SSH Enabled
Make sure SSH is enabled and you can connect to your server with SSH from your local machine with root user: [more details here](/docs/knowledge-base/server/openssh).
<Aside type="tip">
If you would like to use a custom SSH port, you can set it on the `localhost` server after you installed Coolify.
</Aside>
2. Curl Installed
Make sure `curl` command is available on your server.
3. Install
Execute the following command on your server with `root` user.
```bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
```
> You can find the source code of this script [here](https://github.com/coollabsio/coolify/blob/main/scripts/install.sh).
4. Open Coolify's UI
Now you can access Coolify on port `http://<ip>:8000` of your server.
</Steps>
**What it does?**
The script will do the following on your operating system.
- Install basic commands: `curl wget git jq`
- `Docker Engine` (24+).
- Configures proper logging for `Docker Engine`.
- Creates directory structure at `/data/coolify` for all the configuration files.
- Creates an SSH key for Coolify to be able to manage this server from itself at `/data/coolify/ssh/keys/id.root@host.docker.internal`.
- Install and start dockerized `Coolify`.
### Manually
<Steps>
1. SSH Enabled
Make sure SSH is enabled and you can connect to your server with SSH from your local machine with root user: [more details here](/docs/knowledge-base/server/openssh).
2. Curl Installed
Make sure `curl` command is available on your server.
3. Install Docker Engine (24+)
Follow the official documentation to install Docker Engine on your server: [Docker Engine Installation](https://docs.docker.com/engine/install/#server).
4. Create Directories
Create the base configuration directories under `/data/coolify`.
```bash
mkdir -p /data/coolify/{source,ssh,applications,databases,backups,services,proxy,webhooks-during-maintenance}
mkdir -p /data/coolify/ssh/{keys,mux}
mkdir -p /data/coolify/proxy/dynamic
```
5. Generate SSH Key
Generate an SSH key for Coolify to be able to manage this server from itself.
```bash
ssh-keygen -f /data/coolify/ssh/keys/id.root@host.docker.internal -t ed25519 -N '' -C root@coolify
```
6. Setup Your SSH Key
Add your public SSH key to `~/.ssh/authorized_keys`. This will allow Coolify to connect to this server from itself.
```bash
cat /data/coolify/ssh/keys/id.root@host.docker.internal.pub >>~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
```
<Aside type="tip">
You can skip this step if you already have an SSH key. But you need to add this key to your Coolify instance after installation.
</Aside>
7. Setup Configuration Files
Copy the `docker-compose.yml`, `docker-compose.prod.yml`, `.env.production` & `upgrade.sh` files from Coolify's CDN to `/data/coolify/source`.
```bash
curl -fsSL https://cdn.coollabs.io/coolify/docker-compose.yml -o /data/coolify/source/docker-compose.yml
curl -fsSL https://cdn.coollabs.io/coolify/docker-compose.prod.yml -o /data/coolify/source/docker-compose.prod.yml
curl -fsSL https://cdn.coollabs.io/coolify/.env.production -o /data/coolify/source/.env
curl -fsSL https://cdn.coollabs.io/coolify/upgrade.sh -o /data/coolify/source/upgrade.sh
```
8. Set Permissions
Set permissions for all the files and directories.
```bash
chown -R 9999:root /data/coolify
chmod -R 700 /data/coolify
```
9. Generate Values
Generate values for the following variables in `/data/coolify/source/.env`.
```bash
sed -i "s|APP_ID=.*|APP_ID=$(openssl rand -hex 16)|g" /data/coolify/source/.env
sed -i "s|APP_KEY=.*|APP_KEY=base64:$(openssl rand -base64 32)|g" /data/coolify/source/.env
sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=$(openssl rand -base64 32)|g" /data/coolify/source/.env
sed -i "s|REDIS_PASSWORD=.*|REDIS_PASSWORD=$(openssl rand -base64 32)|g" /data/coolify/source/.env
sed -i "s|PUSHER_APP_ID=.*|PUSHER_APP_ID=$(openssl rand -hex 32)|g" /data/coolify/source/.env
sed -i "s|PUSHER_APP_KEY=.*|PUSHER_APP_KEY=$(openssl rand -hex 32)|g" /data/coolify/source/.env
sed -i "s|PUSHER_APP_SECRET=.*|PUSHER_APP_SECRET=$(openssl rand -hex 32)|g" /data/coolify/source/.env
```
<Aside type="caution">
This only needs to be done once, when you install Coolify for the first time. If you do it after Coolify has been started, it will break your installation.
Make sure you save the values somewhere. If you lose them, you will lose access to your Coolify installation and all your data.
</Aside>
10. Default Docker Network
Make sure the default `coolify` Docker network is available.
```bash
docker network create --attachable coolify
```
11. Start Coolify
```bash
docker compose --env-file /data/coolify/source/.env -f /data/coolify/source/docker-compose.yml -f /data/coolify/source/docker-compose.prod.yml up -d --pull always --remove-orphans --force-recreate
```
12. Open Coolify's UI
Now you can access Coolify on port `http://<ip>:8000` of your server.
</Steps>
### Docker Desktop
<Aside type="caution">
This is not recommended for production usage. This is only for testing
purposes.
</Aside>
- Install [Docker Desktop](https://www.docker.com/products/docker-desktop) for Windows.
- Create a directory that will hold all your Coolify related data. For example in your User directory: `C:\Users\yourusername\coolify`.
- Copy `docker-compose.windows.yml` and `.env.windows-docker-desktop.example` to the directory you created in the previous step.
- Rename `docker-compose.windows.yml` to `docker-compose.yml`.
- Rename `.env.windows-docker-desktop.example` to `.env`.
- Create a `coolify` docker network with `docker network create coolify`.
- Optional: Change the values in `.env` file.
- Start Coolify with `docker compose up` command.
- You can access Coolify on port `localhost:8000` of your machine.
> Coolify Proxy is still not working on Windows.

View File

@@ -0,0 +1,61 @@
---
title: "Add a service"
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to add a new service to Coolify"
description: "Here you can find the documentation for adding new services to Coolify."
---
import { Aside } from '@astrojs/starlight/components';
Services in Coolify are templates made from normal [docker-compose](https://docs.docker.com/reference/compose-file/) files + a bit of magic.
See [Coolify's docker-compose specs](/docs/knowledge-base/docker/compose) to learn how to benefit from generated variables and storage handling.
## Metadata
You need to add extra metadata to the top of the `docker-compose` file, like:
- documentation link
- a slogan
- additional tags (for better searching)
- logo (local icon, could be svg, png, etc)
- port (always use the port which is the main entrypoint - like frontend - of the service)
<Aside type="caution">
Always add a port, because Caddy Proxy cannot determine the port of the
service automatically.
</Aside>
Example:
```
# documentation: https://docs.n8n.io/hosting/
# slogan: n8n is an extendable workflow automation tool which enables you to connect anything to everything via its open, fair-code model.
# tags: n8n,workflow,automation,open,source,low,code
# logo: svgs/n8n.svg
# port: 5678
... rest of the compose file ...
```
## Add a new service
Official templates stored [here](https://github.com/coollabsio/coolify/blob/main/templates/compose). They are just normal docker-compose files with a bit of magic.
To add a new service, you can easily test your templates with `Docker Compose` deployments inside Coolify. It uses the same process to parse, generate and deploy as the one-click services.
If you are done with tests and everything works, open a [PR](https://github.com/coollabsio/coolify/compare), that have the new `<service>.yaml` compose file under `/templates/compose`.
<Aside type="tip">
Coolify will use a [parsed
version](https://github.com/coollabsio/coolify/blob/main/templates/service-templates.json).
</Aside>
### Request a new service
If there is a service template you'd like to see:
1. Search GitHub discussions [here](https://github.com/coollabsio/coolify/discussions/categories/new-service-integrations).
2. If it has already been requested, upvote it. If not, create a new request.

View File

@@ -0,0 +1,22 @@
---
title: Django
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy Django application with Coolify"
description: "A guide on how to deploy Django application with Coolify."
---
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
## Requirements
1. Set the base directory where your `requirements.txt` and `manage.py` files are located.
> In the example repository, it is `/coolify`.
2. Add `gunicorn` to the `requirements.txt` file, [official docs](https://docs.gunicorn.org/en/stable/install.html).
3. Add `localhost` and your `domain` to `ALLOWED_HOSTS` in `settings.py` file, [ official docs](https://docs.djangoproject.com/en/4.2/ref/settings/#allowed-hosts).
> `Localhost` is required for health checks to work properly.

View File

@@ -0,0 +1,216 @@
---
title: Applications
head:
- tag: "meta"
attrs:
property: "og:title"
content: "General Application Configurations with Coolify"
description: "A general guide to configure your application with Coolify."
---
import { Aside } from '@astrojs/starlight/components';
Application could be any type of web application. It could be a static site, a NodeJS application, a PHP application, etc.
For complex applications, you can use Docker Compose based deployments or the one-click services.
## Examples
<Aside type="tip">
The list is not complete.
You can host almost any application that you want, not just the ones listed here.
</Aside>
- [Vite](/docs/knowledge-base/applications/vite)
- [Django](/docs/knowledge-base/applications/django)
- [Jekyll](/docs/knowledge-base/applications/jekyll)
- [Vue.js](/docs/knowledge-base/applications/vuejs)
- [Next.js](/docs/knowledge-base/applications/nextjs)
- [Nuxt](/docs/knowledge-base/applications/nuxt)
- [Laravel](/docs/knowledge-base/applications/laravel)
- [Symfony](/docs/knowledge-base/applications/symfony)
- [Ruby on Rails](/docs/knowledge-base/applications/rails)
- [SvelteKit](/docs/knowledge-base/applications/svelte-kit)
## General Configuration
### Commands
You can overwrite the default commands by setting a custom value on the UI.
- Build
- Install
- Start
<Aside type="tip">
If you leave it empty, Nixpacks will detect which commands to run. For
example, in Nodejs, it will check the lock files and run `npm ci` or `yarn
install` or `pnpm install` accordingly.
</Aside>
### Base Directory
It is useful for monorepos. You can set the base directory for all the commands that will be executed by Coolify.
### Public Directory
If you are building a static site, it is important to set the public directory, so the builder will know which directory to serve.
### Port Exposes
Port exposes are required for Docker Engine to know which ports to expose. The first port will be the default port for health checks.
Examples:
If you have a NodeJS application that listens on port 3000, you can set it like this: `3000`.
If you have a PHP-FPM application that listens on port 9000, you can set it like this: `9000`.
If you have a Nginx server that listens on port 80, you can set it like this: `80`.
### Port Mappings
<Aside type="caution">
You will lose some functionality if you map a port to the host system, like
`Rolling Updates`.
</Aside>
If you would like to map a port to the host system (server), you can do it here like this: `8080:80`.
This will map the port 8080 on the host system to the port 80 inside the container.
<Aside type="tip">
If you would like to get performance boost and you do not need any domain
(websocket server with VERY high traffic), you can map its port to the host,
so the request will not go through the proxy.
</Aside>
## Advanced
### Static Site (Is it a static site?)
> This feature is only available for Nixpacks buildpacks.
If you need to serve a static site (SPA, HTML, etc), you can set this to `true`. It will be served by Nginx. `Disabled by default`.
### Force HTTPS
If you would like to force HTTPS, so no HTTP connections allowed, you can set this to `true`. `Enabled by default`.
### Auto Deploy
> This feature is only available for GitHub App based repositories.
If you would like to deploy automatically when a new commit is pushed to the repository, you can set this to `true`. `Enabled by default`.
### Preview Deployments
Preview deployments are a great way to test your application before merging it into the main branch. Imagine it like a staging environment.
#### URL Template
You can setup your preview URL with a custom template. Default is <span v-pre>`{{pr_id}}.{{domain}}`</span>.
This means that if you open a Pull Request with the ID `123`, and you resource domain is `example.com` the preview URL will be `123.example.com`.
<Aside type="tip">
If you have several domains for your resource, the first will be used as the{" "}
<span v-pre>`{{ domain }}`</span> part.
</Aside>
#### Automated Preview Deployments
> This feature is only available for GitHub App based repositories.
If you would like to deploy a preview version of your application (based on a Pull Requests), you can set this to `true`. `Disabled by default`.
If set to `true`, all PR's that are opened against the resource's configured branch, will be deployed to a unique URL.
#### Manually Triggered Preview Deployments
You can manually deploy a Pull Request to a unique URL by clicking on the `Deploy` button on the Pull Request page.
### Git Submodules
If you are using git submodules, you can set this to `true`. `Enabled by default`.
### Git LFS
If you are using git lfs, you can set this to `true`. `Enabled by default`.
### Environment Variables
[Read here](/docs/knowledge-base/environment-variables)
### Persistent Storage
[Read here](/docs/knowledge-base/persistent-storage)
### Health Checks
By default, all containers are checked for liveness.
<Aside type="caution">
Traefik Proxy won't work if the container has health check defined, but it is
`unhealthy`. If you do not know how to set up health checks, turn it off.
</Aside>
### Rollbacks
You can rollback to a previous version of your resource. At the moment, only local images are supported, so you can only rollback to a locally available docker image.
### Resource Limits
By default, the container won't have any resource limits. You can set the limits here. For more details, read the [Docker documentation](https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu_count-cpu_percent-cpu_shares-cpu_period-cpu_quota-cpus-cpuset-domainname-hostname-ipc-mac_address-mem_limit-memswap_limit-mem_swappiness-mem_reservation-oom_kill_disable-oom_score_adj-privileged-read_only-shm_size-stdin_open-tty-user-working_dir).
## Deployment Types
There are several types of application deployments available.
- Public Git Repository
- Private Git Repository ([GitHub App](https://docs.github.com/en/apps/using-github-apps/about-using-github-apps))
- Private Git Repository ([Deploy Key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/managing-deploy-keys))
- Based on a Dockerfile
- Based on a Docker Compose
- Based on a Docker Image
## Build Packs
These are the supported build packs:
- Nixpacks
- Dockerfile
- Docker Image
- Docker Compose
### Nixpacks
Coolify uses [Nixpacks](https://nixpacks.com) as build pack by default. Nixpacks detect what kind of application are you trying to deploy and builds it accordingly.
But if needed, you can customize it by adding a `nixpacks.toml` file to your repository or setting the right environment variables.
For example, if you are using a NodeJS application, you can set the `NIXPACKS_NODE_VERSION` to control the NodeJS version.
<Aside type="tip">
Worth reading their [documentation](https://nixpacks.com/docs) to understand
how it works.
</Aside>
### Dockerfile
Dockerfile based build packs are useful if you have a custom dockerfile inside your Git repository.
#### Custom Dockerfile Location
You can always set your custom dockerfile location. By default, it is set to `/Dockerfile`.
### Docker Image
You can deploy any docker images from any Docker compatible repository. For example, you can deploy images from Docker Hub, GitHub Container Registry, etc.
### Docker Compose
Docker Compose based deployments are useful for complex applications. You can define multiple services in a single `docker-compose.yml` file and deploy them together.
- [Languages/Frameworks](/docs/knowledge-base/applications/)
- [Services](/docs/knowledge-base/services/)

View File

@@ -0,0 +1,43 @@
---
title: Jekyll
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy Jekyll site with Coolify"
description: "A guide on how to deploy Jekyll site with Coolify"
---
Jekyll is a simple, blog-aware, static site generator for personal, project, or organization sites.
## Deploy with Nixpacks
Nixpacks needs a few prerequisites in your source code to deploy your Jekyll application. More info [here](https://nixpacks.com/docs/providers/ruby).
## Deploy with Dockerfile
If you want simplicity, you can use a Dockerfile to deploy your Jekyll application.
### Prerequisites
1. Set `Ports Exposes` field to `80`.
2. Create a `Dockerfile` in the root of your project with the following content:
```Dockerfile
FROM ruby:3.1.1 AS builder
RUN apt-get update -qq && apt-get install -y build-essential nodejs
WORKDIR /srv/jekyll
COPY Gemfile Gemfile.lock ./
RUN bundle install
COPY . .
RUN chown 1000:1000 -R /srv/jekyll
RUN bundle exec jekyll build -d /srv/jekyll/_site
FROM nginx:alpine
COPY --from=builder /srv/jekyll/_site /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
```
3. Make sure you have a `Gemfile` and `Gemfile.lock` in the root of your project.
4. Set the buildpack to `Dockerfile`.

View File

@@ -0,0 +1,46 @@
---
title: Laravel
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy Laravel with Coolify"
description: "A guide on how to deploy Laravel with Coolify"
---
import { Aside } from '@astrojs/starlight/components';
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling.
Example repository [here](https://github.com/coollabsio/coolify-examples/tree/main/laravel).
## Requirements
- Set `Build Pack` to `nixpacks`
- Set `APP_KEY`
- Set `Ports Exposes` to `80`
<Aside type="tip">
If you configured your application before version beta.184 and set the
`NIXPACKS_PHP_ROOT_DIR` and `NIXPACKS_PHP_FALLBACK_PATH` environment
variables, you need to remove them.
</Aside>
### Other components
If your application needs a database or Redis, you can simply create them beforehand in the Coolify dashboard.
You will receive the connection strings which you can use in your application and set them as environment variables:
```bash
DB_CONNECTION=mysql
DB_HOST=<DB_HOST>
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
REDIS_HOST=<REDIS_HOST>
REDIS_PASSWORD=null
REDIS_PORT=6379
```

View File

@@ -0,0 +1,23 @@
---
title: NextJS
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy a NextJS app with Coolify"
description: "A guide on how to deploy a NextJS app with Coolify."
---
NextJS is a React framework that enables functionality such as server-side rendering and generating static websites.
[Example repository.](https://github.com/coollabsio/coolify-examples/tree/main/nextjs)
## Server build (NodeJS)
- Set `Build Pack` to `nixpacks`.
## Static build (SPA)
- Set `Build Pack` to `nixpacks`.
- Enable `Is it a static site?`.
- Set `Output Directory` to `out`.

View File

@@ -0,0 +1,34 @@
---
title: Nuxt
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy a Nuxt app with Coolify"
description: "A guide on how to deploy a Nuxt app with Coolify."
---
Nuxt is an open source framework that makes web development intuitive and powerful.
Create performant and production-grade full-stack web apps and websites with confidence.
[Example repository.](https://github.com/coollabsio/coolify-examples/tree/main/nuxt)
## Server build (Nuxt, using `nuxt build`)
- Set `Build Pack` to `nixpacks`.
- Set Start Command to `node .output/server/index.mjs`
Alternatively, you can set the `start` script inside package.json to `node .output/server/index.mjs`. Then Nixpacks will automatically use it as the start command.
## Static build (Nuxt, using `nuxt generate`)
- Set `Build Pack` to `nixpacks`.
- Enable `Is it a static site?`.
- Set `Output Directory` to `dist`.
## Nitro server build (Nitro, using `nitro build`)
- Set `Build Pack` to `nixpacks`.
- Set Start Command to `node .output/server/index.mjs`
Alternatively, you can set the `start` script inside package.json to `node .output/server/index.mjs`. Then Nixpacks will automatically use it as the start command.

View File

@@ -0,0 +1,19 @@
---
title: Ruby on Rails
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy Ruby on Rails apps with Coolify"
description: "A guide on how to deploy Ruby on Rails apps with Coolify"
---
Ruby on Rails is a web-application framework that includes everything needed to create database-backend web applications according to the Model-View-Controller (MVC) pattern.
## Requirements
If you would like to migrate the database during the deployment with `NIXPACKS` build pack, you need to set the following `Start Command`:
```bash
bundle exec rake db:migrate && bundle exec bin/rails server -b 0.0.0.0 -p ${PORT:-3000} -e $RAILS_ENV
```

View File

@@ -0,0 +1,25 @@
---
title: SvelteKit
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy SvelteKit app with Coolify"
description: "A guide on how to deploy SvelteKit app with Coolify."
---
Svelte Kit is a framework for building web applications of all sizes, with a beautiful development experience and flexible filesystem-based routing.
## Static build (`adapter-static`)
You need to use `@sveltejs/adapter-static` ([docs](https://kit.svelte.dev/docs/adapter-static)) adapter to build a static site.
1. Set your site to static `on` (under `Build Pack` section).
2. Set your `Publish Directory` to `/build`
## Node server (`adapter-node`)
You need to use `@sveltejs/adapter-node` ([docs](https://kit.svelte.dev/docs/adapter-node)) adapter to build a node server based SvelteKit app.
1. Set your site to static to `off` (under `Build Pack` section).
2. Set your `Start Command` to `node build`.

View File

@@ -0,0 +1,55 @@
---
title: Symfony
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy Symfony with Coolify"
description: "A guide on how to deploy Symfony with Coolify"
---
Symfony is the leading PHP framework to create websites and web applications. Built on top of the Symfony Components.
## Requirements
- Set `Build Pack` to `nixpacks`
- Set `APP_ENV`
- Set `APP_SECRET`
- Set `NIXPACKS_PHP_FALLBACK_PATH` to `/index.php`
- Set `NIXPACKS_PHP_ROOT_DIR` to `/app/public`
- Set `Ports Exposes` to `80`
### Database migrations
If you use Doctrine, you can add the following `Post-deployment script` :
`php bin/console doctrine:migrations:migrate --all-or-nothing --no-interaction`
### Other components
If your application needs a database or Redis, you can simply create them beforehand in the Coolify dashboard.
You will receive the connection strings which you can use in your application and set them as environment variables:
```bash
DATABASE_URL=postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8
REDIS_HOST=<REDIS_HOST>
REDIS_PASSWORD=null
REDIS_PORT=6379
```
### Trusted proxy
You might need to configure the [trusted proxy](https://symfony.com/doc/current/deployment/proxies.html) :
- Set the environment variable `TRUSTED_PROXIES` with the IP of your server
- Add the following Symfony configuration :
```yaml
# config/packages/framework.yaml
framework:
trusted_proxies: "%env(TRUSTED_PROXIES)%"
trusted_headers: ['x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto', 'x-forwarded-port', 'x-forwarded-prefix']
```

View File

@@ -0,0 +1,26 @@
---
title: Vite
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy a Vite app with Coolify"
description: "A guide on how to deploy a Vite app with Coolify."
---
Vite is a is a build tool that aims to provide a faster and leaner development experience for modern web projects.
[Example repository.](https://github.com/coollabsio/coolify-examples/tree/main/vite)
## Vanilla TypeScript build (Static)
- Set `Build Pack` to `nixpacks`.
- Enable `Is it a static site?`.
- Set `Output Directory` to `dist`.
## Vanilla JavaScript build (Static)
- Set `Build Pack` to `nixpacks`.
- Enable `Is it a static site?`.
- Set `Output Directory` to `dist`.

View File

@@ -0,0 +1,30 @@
---
title: Vue
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to deploy a Vue app with Coolify"
description: "A guide on how to deploy a Vue app with Coolify."
---
Vue.js is an approachable, performant and versatile framework for building web user interfaces.
[Example repository.](https://github.com/coollabsio/coolify-examples/tree/main/vue)
## Server build (NodeJS|Express)
- Set `Build Pack` to `nixpacks`.
- Set 'Start Command` to `node server.js`.
## Static build (SPA)
- Set `Build Pack` to `nixpacks`.
- Enable `Is it a static site?`.
- Set `Output Directory` to `dist`.
## Static build with Router (SPA)
- Set `Build Pack` to `nixpacks`.
- Enable `Is it a static site?`.
- Set `Output Directory` to `dist`.

View File

@@ -0,0 +1,190 @@
---
title: "Cloudflare Tunnels"
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to use Cloudflare Tunnels with Coolify."
description: "A guide on how to use Cloudflare Tunnels with Coolify."
---
import { Aside, Steps } from '@astrojs/starlight/components';
You can run Coolify on your local machine (like old laptop/Raspberry PI) and expose it to the internet without opening any ports on your router with Cloudflare Tunnels.
> For more details about CF Tunnels, please visit [this page](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/).
## Setup Cloudflared
You have at least two ways to setup Cloudflare Tunnels with Coolify.
- [Automated](#automated)
- [Manual](#manual)
### Automated
<Steps>
1. Setup Tunnels on Cloudflare
1. Go to `https://one.dash.cloudflare.com/`.
2. Select your account.
3. Open `Networks`-> `Tunnels`-> `Create a Tunnel`
4. Connector: `Cloudflared`
![connector](../../../../assets/images/cloudflare/cf-tunnels-connector.png)
5. Choose any name you like.
![notice](../../../../assets/images/cloudflare/cf-tunnels-notice-me.png)
6. Copy your `Cloudflare Tunnel Token` from any of the commands.
<Aside type="caution">
The token starts with `eyJ...`.
</Aside>
![token](../../../../assets/images/cloudflare/cf-tunnels-token.png)
7. On the `Route Tunnel` tab, add the following tunnels:
<Aside type="caution">
You can use any domains/subdomains. This will make sure you can reach your server through Cloudflare Tunnels.
</Aside>
![ssh](../../../../assets/images/cloudflare/cf-tunnels-ssh.png)
2. Setup Tunnels on Coolify
1. Add a new server with your server's `IP Address` - it will be reconfigured later on.
![addserver](../../../../assets/images/cloudflare/coolify-add-server.png)
2. Validate the server.
2. After the server is validated, click on `Configure` in the `Cloudflare Tunnels` section.
3. Paste `Cloudflare Tunnel Token` from the previous step and set the `SSH Domain` to the domain you set in the previous step.
![setcftoken](../../../../assets/images/cloudflare/coolify-set-cf-token.png)
</Steps>
### Manual
WIP
## Setup Resources in Coolify
You have several options to use Cloudflare Tunnels with Coolify.
1. One domain -> One resource.
2. Wildcard subdomain -> All resources.
### One domain -> One resource
In this case, you need to add a public domain every time you would like to expose a new resource through Cloudflare Tunnels.
<Aside type="caution">
You can stop `Coolify Proxy` and set it to `None`, it is not needed in this
case.
</Aside>
1. Go to your tunnel settings on Cloudflare. (https://one.dash.cloudflare.com/ -> Networks -> Tunnels -> Select your tunnel)
2. Switch to `Public Hostname` tab.
3. Add a new `Public Hostname`.
![onepublic](../../../../assets/images/cloudflare/cf-one-public-hostname.png)
4. Go to Coolify and to your resource settings: - Remove any `Domains` settings. - Set `Port Mappings` to the same port that you set in the `Public Hostname` settings.
<Aside type="caution">
As an example, I'm deploying a static site, that listens in port `80`
inside the container and I'm mapping it to the port `8888` on the host. So,
I need to set the `Port Mappings` to `8888:80`.
![portmappings](../../../../assets/images/cloudflare/coolify-set-port-mappings.png)
</Aside>
5. Deploy & enjoy.
### Wildcard subdomain -> All resources
In this case, you only need to setup a wildcard domain once and you can expose all your resources through it.
<Aside type="caution">
You will need to use `Coolify's Proxy` to route the traffic to the correct
resource.
</Aside>
1. Go to your tunnel settings on Cloudflare. (https://one.dash.cloudflare.com/ -> Networks -> Tunnels -> Select your tunnel)
2. Switch to `Public Hostname` tab.
3. Add a new wildcard `Public Hostname`.
![wildcard-cf](../../../../assets/images/cloudflare/cf-wildcard-public-hostname.png)
4. In Cloudflare go to ` Networks -> Tunnels` and click on your tunnel name. From the sidebar copy the `Tunnel ID`.
![cf-tunnel-id](../../../../assets/images/cloudflare/cf-tunnel-id.png)
5. In Cloudflare go to your `DNS` settings and add a new `CNAME` record with the following settings:
- `Name`: `*`
- `Target`: `<Tunnel ID>.cfargotunnel.com`
- `TTL`: `Auto`
6. Go to Coolify and to your resource settings.
Set the `Domains` to any subdomain of the wildcard domain you set in the previous step.
![wildcard-coolify](../../../../assets/images/cloudflare/coolify-set-domains.png)
<Aside type="caution">
You need to use `http://` in the `Domains` settings. Cloudflare will take care of the `https` part.
For this you need to set `SSL/TLS` to `Full` in the `SSL/TLS` menu on Cloudflare.
![ssl-full](../../../../assets/images/cloudflare/cf-ssl-full.png)
</Aside>
7. Deploy & enjoy.
<Aside type="caution">
If you would like to add a new resource, you only need to do point 6 and 7.
</Aside>
## Post Setup
After everything is setup, you can fully disable direct access to your server by disabling all the ports (except `SSH (port:22 by default)`) on your firewall.
## Setup self-hosted Coolify
You can use the [one domain](/docs/knowledge-base/cloudflare/tunnels/#one-domain---one-resource) without `Coolify Proxy` or [wildcard](/docs/knowledge-base/cloudflare/tunnels/#wildcard-subdomain---all-resources) setup with `Coolify Proxy` to expose your self-hosted Coolify instance to the internet.
With the `wildcard` setup, you have nothing to do.
With the `one domain` setup, you need a bit more setup with Coolify to make it work.
Let's say you configured the following `Public Hostnames` in Cloudflare:
- `app.coolify.io` mapped to `localhost:8000`
- `realtime.coolify.io` mapped to `localhost:6001`
After you installed Coolify, you need to add 3 lines your `.env` file, located in `/data/coolify/source` folder.
```bash
APP_ID=<random string>
APP_KEY=<random string>
APP_NAME=Coolify
DB_PASSWORD=<random string>
PUSHER_APP_ID=<random string>
PUSHER_APP_KEY=<random string>
PUSHER_APP_SECRET=<random string>
REDIS_PASSWORD=<random string>
###########
# Add these lines
PUSHER_HOST=realtime.coolify.io
PUSHER_PORT=443
###########
```
This tells Coolify how to connect to it's realtime server through Cloudflare Tunnels.
Restart Coolify with the installation script.
```bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
```
> If you have a firewall, you also need to allow the [following ports](/docs/knowledge-base/server/firewall).
### Verify
1. Navigate to your Coolify instance, as in the example: `https://app.coolify.io`.
2. Login with the root user (the first user you created after installation).
3. Open another tab/window and navigate to `https://app.coolify.io/realtime`. On the other tab (opened in point 2), you should see a notification about the test event.
4. If you know what are you doing, you can check the network tab as well. Search for a websocket connection.

View File

@@ -0,0 +1,38 @@
---
title: Commands
head:
- tag: "meta"
attrs:
property: "og:title"
content: "What commands are available to manage my Coolify server"
description: A list of commands that you can use to manage your Coolify server.
---
## Root password reset without SMTP
You can use the following method to reset the root user's password, in case you forgot and do not have an SMTP server set, so you cannot request a forgot password.
Login to your server through SSH and execute the following command:
```bash
docker exec -ti coolify bash -c "php artisan root:reset-password"
```
## Root email change
You can change root user's email.
Login to your server through SSH and execute the following command:
```bash
docker exec -ti coolify bash -c "php artisan root:change-email"
```
## Delete a stuck service
You can easily delete a stucked service.
Login to your server through SSH and execute the following command:
```bash
docker exec -ti coolify bash -c "php artisan services:delete"
```

View File

@@ -0,0 +1,75 @@
---
title: "Backups"
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to configure database backups in Coolify"
description: "A guide how backups work in Coolify."
---
import { Aside } from '@astrojs/starlight/components';
Scheduled database backups could be configured for PostgreSQL and for Coolify itself.
This schedules are based on cron expressions, so you can configure them to run as often as you want.
You can also use simple cron expressions like:
```js
const VALID_CRON_STRINGS = [
'every_minute' => '* * * * *',
'hourly' => '0 * * * *',
'daily' => '0 0 * * *',
'weekly' => '0 0 * * 0',
'monthly' => '0 0 1 * *',
'yearly' => '0 0 1 1 *',
];
```
## PostgreSQL
Coolify creates a full backup of your PostgreSQL databases. You can specify which database to backup, with a comma separated list.
<Aside type="tip">Coolify own database is also backed up using this method.</Aside>
### Backup command
```bash
pg_dump --format=custom --no-acl --no-owner --username <username> <databaseName>
```
### Restore command
The backup has custom format, so you can restore it using the following command (or with any equivalent tool):
```bash
pg_restore --verbose --clean -h localhost -U postgres -d postgres pg-dump-postgres-1697207547.dmp
```
## MySQL
```bash
mysqldump -u root -p <password> <datatabaseName>
```
## MariaDB
```bash
mariadb-dump -u root -p <password> <datatabaseName>
```
## MongoDB
```bash
mongodump --authenticationDatabase=admin --uri=<uri> --gzip --archive=<archive>
```
Or if you exclude some collections:
```bash
mongodump --authenticationDatabase=admin --uri=<uri> --gzip --archive=<archive> --excludeCollection=<collectionName> --excludeCollection=<collectionName>
```
## S3 Backups
You can also define your own [S3 compatible](/docs/knowledge-base/s3) storage to store your backups.

View File

@@ -0,0 +1,26 @@
---
title: ClickHouse
head:
- tag: "meta"
attrs:
property: "og:title"
content: "ClickHouse with Coolify"
description: "Here you find an introduction to ClickHouse"
---
import { Badge } from '@astrojs/starlight/components';
<Badge text="One-click setup." variant="note" size="large" />
![clickhouse](../../../../assets/images/database-logos/clickhouse.png)
## What is ClickHouse
ClickHouse is an open-source column-oriented database management system designed for online analytical processing (OLAP). It's known for its exceptional query performance on large datasets, making it ideal for real-time analytics and data warehousing applications.
ClickHouse uses a column-oriented storage format and employs various optimizations like vectorized query execution to achieve high performance. It supports SQL with extensions and can handle both batch and stream data ingestion, making it versatile for various analytical workloads.
## Links
- [The official website ](https://clickhouse.com/)
- [GitHub ](https://github.com/ClickHouse/ClickHouse)

View File

@@ -0,0 +1,27 @@
---
title: DragonFly
head:
- tag: "meta"
attrs:
property: "og:title"
content: "DragonFly with Coolify"
description: "Here you find an introduction to DragonFly"
---
import { Badge } from '@astrojs/starlight/components';
<Badge text="One-click setup." variant="note" size="large" />
![dragonfly](../../../../assets/images/database-logos/dragonfly-dark.svg)
## What is DragonFly
DragonFly is a modern in-memory datastore, designed as a Redis alternative with better scalability and resource efficiency. It offers a Redis-compatible API while providing improved performance on multi-core systems. DragonFly is built to handle high-throughput scenarios and large datasets more efficiently than traditional in-memory datastores.
With its multi-threaded architecture and advanced data structures, DragonFly aims to provide enhanced scalability and performance for applications that require Redis-like functionality on modern hardware.
## Links
- [The official website ](https://dragonflydb.io/)
- [GitHub ](https://github.com/dragonflydb/dragonfly)

View File

@@ -0,0 +1,66 @@
---
title: Introduction
head:
- tag: "meta"
attrs:
property: "og:title"
content: "Databases you can host with Coolify"
description: "An overview of the databases supported by Coolify and their characteristics."
---
import { Aside } from '@astrojs/starlight/components';
Coolify supports a variety of databases to suit different application needs. Even if you don't see your favorite database here, you can still host it with Coolify, using Docker.
Coolify offers one-click setup for the following databases:
- [PostgreSQL](/docs/knowledge-base/databases/postgresql)
- [Redis](/docs/knowledge-base/databases/redis)
- [DragonFly](/docs/knowledge-base/databases/dragonfly)
- [KeyDB](/docs/knowledge-base/databases/keydb)
- [Clickhouse](/docs/knowledge-base/databases/clickhouse)
- [MongoDB](/docs/knowledge-base/databases/mongodb)
- [MySQL](/docs/knowledge-base/databases/mysql)
- [MariaDB](/docs/knowledge-base/databases/mariadb)
Each database has its own strengths and use cases. Click on a database to learn more about it.
# Deploy a database
When selecting a New Resource, you can select a database from the list.
![New Resource](../../../../assets/images/screenshots/How-to-add-a-database.png)
You can configure a database with a simple click. Coolify supports the following databases:
- PostgreSQL
- MySQL
- MariaDB
- MongoDB
- Redis
- DragonFly
- KeyDB
- Clickhouse
## Ports Mapping vs Public Port
### Ports Mapping
Ports mapping is using the Docker [port mapping](https://docs.docker.com/network/#published-ports) feature. It is used to map the container port to the host port. For example, if you set the port mapping to `8080:80`, the container port `80` will be mapped to the host port `8080`.
### Public Port
Public port is used to expose the container port to the internet, by starting an Nginx TCP proxy.
### Which one should I use?
- Port mappings makes the connection/port permanent (you need to restart your database to change it).
- The public port makes the connection/port dynamic (you can change it without restarting the database, Coolify will restart the Nginx TCP proxy for you).
## Access database during builds
If you are using `Nixpacks` build pack, you have two ways to access your database during builds:
1. Database & your application are `in the same network`: You can reach it using the `internal URL` provided by Coolify.
2. Database & your application `are not in the same network`: You need to set your database to be `Accessible over the internet` and use the `public URL` provided by Coolify.

View File

@@ -0,0 +1,26 @@
---
title: KeyDB
head:
- tag: "meta"
attrs:
property: "og:title"
content: "KeyDB with Coolify"
description: "Here you find an introduction to KeyDB"
---
import { Badge } from '@astrojs/starlight/components';
<Badge text="One-click setup." variant="note" size="large" />
![KeyDB](../../../../assets/images/database-logos/keydb.png)
## What is KeyDB
KeyDB is a high-performance fork of Redis, focusing on multithreading, memory efficiency, and high availability. It maintains API compatibility with Redis while offering improved performance, especially on multi-core systems. KeyDB introduces features like active replication, FLASH storage support, and subkey expires to enhance the capabilities of the traditional Redis model.
Designed to be a drop-in replacement for Redis, KeyDB aims to provide better resource utilization and scalability for applications requiring high-throughput in-memory data storage and processing.
## Links
- [The official website ](https://keydb.dev/)
- [GitHub ](https://github.com/EQ-Alpha/KeyDB)

View File

@@ -0,0 +1,26 @@
---
title: MariaDB
head:
- tag: "meta"
attrs:
property: "og:title"
content: "MariaDB with Coolify"
description: "Here you find an introduction to MariaDB"
---
import { Badge } from '@astrojs/starlight/components';
<Badge text="One-click setup." variant="note" size="large" />
![Mariadb](../../../../assets/images/database-logos/mariadb.svg)
## What is MariaDB
MariaDB is an open-source fork of MySQL, designed to remain free and open-source. It aims to be a drop-in replacement for MySQL with enhanced features and performance. MariaDB maintains high compatibility with MySQL while offering additional storage engines, performance improvements, and features.
Started by core members of MySQL, MariaDB provides a robust and scalable database solution suitable for a wide range of applications.
## Links
- [The official website ](https://mariadb.org/)
- [GitHub ](https://github.com/MariaDB/server)

View File

@@ -0,0 +1,26 @@
---
title: MongoDB
head:
- tag: "meta"
attrs:
property: "og:title"
content: "MongoDB with Coolify"
description: "Here you find an introduction to MongoDB"
---
import { Badge } from '@astrojs/starlight/components';
<Badge text="One-click setup." variant="note" size="large" />
![MongoDB](../../../../assets/images/database-logos/mongodb.png)
## What is MongoDB
MongoDB is a popular, open-source document-oriented NoSQL database designed for scalability and flexibility. It stores data in flexible, JSON-like documents, meaning fields can vary from document to document and data structure can be changed over time.
MongoDB is known for its horizontal scalability, powerful query language, and ability to handle large volumes of unstructured or semi-structured data. It's widely used in modern web applications, content management systems, and other scenarios where flexible data models and scalability are crucial.
## Links
- [The official website ](https://www.mongodb.com/)
- [GitHub ](https://github.com/mongodb/mongo)

View File

@@ -0,0 +1,26 @@
---
title: MySQL
head:
- tag: "meta"
attrs:
property: "og:title"
content: "MySQL with Coolify"
description: "Here you find an introduction to MySQL"
---
import { Badge } from '@astrojs/starlight/components';
<Badge text="One-click setup." variant="note" size="large" />
![MySQL](../../../../assets/images/database-logos/mysql.png)
## What is MySQL
MySQL is a widely-used, open-source relational database management system (RDBMS) known for its reliability, ease of use, and performance. It's an essential component of the popular LAMP (Linux, Apache, MySQL, PHP/Python/Perl) stack used for web development.
MySQL provides a robust, ACID-compliant database solution suitable for a wide range of applications, from small websites to large-scale enterprise systems. It offers features like replication, partitioning, and full-text indexing, making it versatile for various use cases.
## Links
- [The official website ](https://www.mysql.com/)
- [GitHub ](https://github.com/mysql/mysql-server)

View File

@@ -0,0 +1,26 @@
---
title: PostgreSQL
head:
- tag: "meta"
attrs:
property: "og:title"
content: "PostgreSQL with Coolify"
description: "Here you find an introduction to PostgreSQL"
---
import { Badge } from '@astrojs/starlight/components';
<Badge text="One-click setup." variant="note" size="large" />
![PostgreSQL](../../../../assets/images/database-logos/postgresql.png)
## What is PostgreSQL
PostgreSQL is an advanced, open-source object-relational database system known for its reliability, feature robustness, and performance. It has more than 30 years of development and is widely used in the industry.
PostgreSQL, often simply "Postgres", uses and extends the SQL language combined with many features that safely store and scale the most complicated data workloads.
## Links
- [The official website ](https://www.postgresql.org/)
- [GitHub ](https://github.com/postgres/postgres)

View File

@@ -0,0 +1,24 @@
---
title: Redis
head:
- tag: "meta"
attrs:
property: "og:title"
content: "Redis with Coolify"
description: "Here you find an introduction to Redis"
---
import { Badge } from '@astrojs/starlight/components';
<Badge text="One-click setup." variant="note" size="large" />
![Redis](../../../../assets/images/database-logos/redis.svg)
## What is Redis
Redis is an in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and message broker. Redis has built-in replication and different levels of on-disk persistence. It supports complex data types (for example, strings, hashes, lists, sets, sorted sets, and JSON), with atomic operations defined on those data types.
## Links
- [The official website ](https://redis.io/)
- [GitHub ](https://github.com/redis/redis)

View File

@@ -0,0 +1,48 @@
---
title: Delete User
head:
- tag: "meta"
attrs:
property: "og:title"
content: "Delete User"
description: "How to delete a user from the self-hosted Coolify instance."
---
import { Aside } from '@astrojs/starlight/components';
This guide will show you how to delete a user from the self-hosted Coolify instance.
<Aside type="caution">
If you delete a user, and Coolify still has connection to the servers, it will
delete all the resources on the servers as well, not just from Coolify's
database.
</Aside>
Only users who are in the `root` team can delete users from the UI.
- Go to the `Team` page.
- Switch to `Admin View` tab.
Here you can see all the users registered in Coolify. Click on the `Delete` button next to the user you want to delete.
## Deletion process
<Aside type="tip">The root team or root user cannot be deleted.</Aside>
Coolify iterate over all the teams of a user and decide of the followings:
### The user is alone in the team
The team and all resources from the server and from Coolify's database are deleted.
### The user is not alone in the team
1. The user is the owner/admin of the team and no other owners/admins found, but the team **has members**:
- The ownership is transferred to the first user in the team who is not the owner/admin.
- The user is removed from the team. No resources are deleted.
2. The user is the owner/admin of the team and no other owners/admins found, but the team has **no members**:
- The team and all resources from the server and from Coolify's database are deleted.
3. The user is not the owner/admin of the team:
- The user is removed from the team. No resources are deleted.

View File

@@ -0,0 +1,59 @@
---
title: "DNS Configuration"
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to configure DNS for your domains with Coolify."
description: "A guide on how to configure DNS for your domains with Coolify."
---
import { Aside } from '@astrojs/starlight/components';
In general you need an `A` record for all the domains or subdomains you want to use, pointing to the IP address of your server where you would like to deploy your application.
Note that you can use the same IP address for multiple domains and subdomains.
**In the examples, `1.1.1.1` is your server's IP address.**
## Single Domain
Let's say you want deploy your resource to `example.com` with the IP address `1.1.1.1`.
- You need to set an `A` record for `example.com` pointing to `1.1.1.1`.
<Aside type="tip">
You can also add `www.example.com` as an `A` record and redirect it inside
Coolify with the chosen reverse proxy.
</Aside>
Then you can use `https://example.com` as a FQDN (Fully Qualified Domain Name) for any of your resources, even for your Coolify instance.
## Wildcard Domains
Let's say you want deploy your resource to `*.example.com` with the IP address `1.1.1.1`.
- You need to set an `A` record for `*.example.com` pointing to `1.1.1.1`.
This allows you to use any subdomain of `example.com` as a FQDN (Fully Qualified Domain Name) for any of your resources, even for your Coolify instance.
For example, you can use `https://app.example.com` or `https://api.example.com` as a FQDN.
## Autogenerated Domains
If you set a wildcard domain in your DNS settings, you can also use Coolify to autogenerate domains for your resources.
You just need to go to the `Server` settings and set the `Wildcard Domain` field to your domain, for example `https://example.com`.
Then if you create a new resource:
- You will get a random subdomain for your application, for example `https://random.example.com`.
- Also for your Preview Deployments, for example `https://<PRId>.random.example.com`.
<Aside type="tip">
The Preview URL template could be modified in the application's page /
`Preview Deployments` tab.
</Aside>
## Instance Domain
If you self-host Coolify, you can set your Coolify instance a custom domain in the `/settings` page.

View File

@@ -0,0 +1,156 @@
---
title: "Docker Compose"
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to use Docker Compose deployments with Coolify."
description: "A guide on how to use Docker Compose deployments with Coolify."
---
import { Aside, Steps } from '@astrojs/starlight/components';
If you are using `Docker Compose` based deployments, you need to understand how Docker Compose works with Coolify.
In all cases the Docker Compose (`docker-compose.y[a]ml`) file is the single source of truth.
## Defining environment variables
Coolify will notice the environment variables you mention in your compose file and will display it in its UI.
```yaml
services:
myservice:
environment:
- SOME_HARDCODED_VALUE=hello # Gets passed to the container but will not be visible in Coolify's UI
- SOME_VARIABLE=${SOME_VARIABLE_IN_COOLIFY_UI} # Creates an uninitialized environment variable editable in Coolify's UI
- SOME_DEFAULT_VARIABLE=${OTHER_NAME_IN_COOLIFY:-hello} # Creates an environment variable of value "hello" editable in Coolify's UI
```
![Coolify's UI for environment variables](../../../../assets/images/screenshots/Docker-compose-environment-variables-UI.png)
Additionally, Coolify can generate some dynamic variables for you.
The syntax is `SERVICE_<TYPE>_<IDENTIFIER>`.
Type may be one of:
- **FQDN**: This will [generate](/docs/knowledge-base/server/introduction#wildcard-domain) an FQDN for the service. The example below shows how you can add paths and ports.
- **URL**: Generates an URL based on the FQDN you have defined.
- **USER**: Generates a random string using `Str::random(16)`. You might want to use it as a username in your service.
- **PASSWORD**: Generates a password using `Str::password(symbols: false)`. Use `PASSWORD_64` to generate a 64 bit long password with `Str::password(length: 64, symbols: false)`.
- **BASE64**: Generates a random string using `Str::random(32)`. For longer strings, use `BASE64_64` or `BASE64_128`.
- **REALBASE64**: Encodes a randomly generated string using `base64_encode(Str::random(32))`. For longer strings, use `REALBASE64_64` or `REALBASE64_128`.
Every generated variable can be reused and will always have the same value for every service.
All generated variables are displayed in Coolify's UI for environment variables and can be edited there (except FQDN and URl).
As an example, imagine an application with UUID `vgsco4o` (generated by Coolify on creation).
It uses a compose file deploying Appwrite on the [wildcard](/docs/knowledge-base/server/introduction#wildcard-domain) domain `http://example.com` .
```yaml
services:
appwrite:
environment:
# http://appwrite-vgsco4o.example.com/v1/realtime
- SERVICE_FQDN_APPWRITE=/v1/realtime
# _APP_URL will have the FQDN because SERVICE_FQDN_APPWRITE is just a simple environment variable
- _APP_URL=$SERVICE_FQDN_APPWRITE
# http://appwrite-vgsco4o.example.com/ will be proxied to port 3000
- SERVICE_FQDN_APPWRITE_3000
# http://api-vgsco4o.example.com/api will be proxied to port 2000
- SERVICE_FQDN_API_2000=/api
# Coolify generates password and injects it as SERVICE_SPECIFIC_PASSWORD into the container
- SERVICE_SPECIFIC_PASSWORD=${SERVICE_PASSWORD_APPWRITE}
not-appwrite:
environment:
# Same value as in Appwrite service
- APPWRITE_PASSWORD=${SERVICE_PASSWORD_APPWRITE}
# As SERVICE_FQDN_API is not the same as SERVICE_FQDN_APPWRITE
# Coolify will generate a new FQDN
# http://not-appwrite-vgsco4o.example.com/api
- SERVICE_FQDN_API=/api
```
---
## Storage
You can predefine storage normally in your compose file, but there are a few extra options that you can set to tell Coolify what to do with the storage.
### Create an empty directory
```yaml
# Predefine directories with host binding
services:
filebrowser:
image: filebrowser/filebrowser:latest
volumes:
- type: bind
source: ./srv
target: /srv
is_directory: true # This will tell Coolify to create the directory (this is not available in a normal docker-compose)
```
### Create a file with content
Here you can see how to add a file with content and a dynamic value that is coming from an environment variable.
```yaml
services:
filebrowser:
image: filebrowser/filebrowser:latest
environment:
- POSTGRES_PASSWORD=password
volumes:
- type: bind
source: ./srv/99-roles.sql
target: /docker-entrypoint-initdb.d/init-scripts/99-roles.sql
content: |
-- NOTE: change to your own passwords for production environments
\set pgpass `echo "$POSTGRES_PASSWORD"`
ALTER USER authenticator WITH PASSWORD :'pgpass';
ALTER USER pgbouncer WITH PASSWORD :'pgpass';
```
## Connect to Predefined Networks
By default, each compose stack is deployed to a separate network, with the name of your resource uuid. This will allow to each service in your stack to communicate with each other.
But in some cases, you would like to communicate with other resources in your account. For example, you would like to connect your application to a database, which is deployed in another stack.
To do this you need to enable `Connect to Predefined Network` option on your `Service Stack` page, but this will make the internal Docker DNS not work as expected.
Here is an example. You have a stack with a `postgres` database and a `laravel` application. Coolify will rename your `postgres` stack to `postgres-<uuid>` and your `laravel` stack to `laravel-<uuid>` to prevent name collisions.
If you set `Connect to Predefined Network` option on your `laravel` stack, your `laravel` application will be able to connect to your `postgres` database, but you need to use the `postgres-<uuid>` as your database host.
## Raw Docker Compose Deployment
You can set with docker compose build pack to deploy your compose file directly without most of Coolify's magic. It is called `Raw Compose Deployment`.
<Aside type="tip">
This is for advanced users. If you are not familiar with Docker Compose, we do
not recommend this method.
</Aside>
### Labels
Coolify will still add the following labels (if they are not set) to your application:
```yaml
labels:
- coolify.managed=true
- coolify.applicationId=5
- coolify.type=application
```
To use Coolify's Proxy (Traefik), you need to set the following labels to your application:
```yaml
labels:
- traefik.enable=true
- "traefik.http.routers.<unique_router_name>.rule=Host(`coolify.io`) && PathPrefix(`/`)"
- traefik.http.routers.<unique_router_name>.entryPoints=http
```

View File

@@ -0,0 +1,41 @@
---
title: "Custom Commands"
head:
- tag: "meta"
attrs:
property: "og:title"
content: "How to use custom commands for your Docker deployments with Coolify."
description: "A guide on how to use custom commands for your Docker deployments with Coolify."
---
import { Aside, Steps } from '@astrojs/starlight/components';
For deploying your resources, you can add custom options to the final docker command, which is used to run your container.
<Aside type="caution">
Some of the docker native options are not supported, because it could break
the Coolify's functionality. If you need any of the unsupported options,
please [contact us](/docs/contact)**.**
</Aside>
## Supported Options
- `--ip`
- `--ip6`
- `--shm-size`
- `--cap-add`
- `--cap-drop`
- `--security-opt`
- `--sysctl`
- `--device`
- `--ulimit`
- `--init`
- `--ulimit`
- `--privileged`
## Usage
You can simply add the options to the `Custom Docker Options` field on the `General` tab of your resource.
Example: `--cap-add SYS_ADMIN --privileged`

Some files were not shown because too many files have changed in this diff Show More