Merge branch 'main' into main

This commit is contained in:
skeptrune
2025-03-19 00:34:06 -07:00
committed by GitHub
68 changed files with 780 additions and 161 deletions
+5 -1
View File
@@ -16,4 +16,8 @@ node_modules
pnpm-global
TODOs.md
*.timestamp-*.mjs
.env
.env
package-lock.json
-1
View File
@@ -19,7 +19,6 @@ RUN --mount=type=cache,target=/root/.bun \
# Copy only necessary files for build
COPY docs/ ./docs/
COPY nginx/ ./nginx/
COPY llms/ ./llms/
COPY tailwind.config.js .
COPY env.d.ts .
COPY tsconfig*.json ./
+41 -40
View File
@@ -26,7 +26,6 @@ export default defineConfig({
base: '/docs/',
cleanUrls: true,
lastUpdated: true,
// Added ignoreDeadLinks to temporarily fix build error
ignoreDeadLinks: true,
sitemap: {
hostname: 'https://coolify.io/docs/'
@@ -271,40 +270,6 @@ export default defineConfig({
text: 'Overview',
link: '/knowledge-base/overview',
items: [
{
text: 'Common Issues',
collapsed: true,
items: [
// {
// text: 'Applications',
// link: '/knowledge-base/common-issues/applications'
// },
// {
// text: 'Backup',
// link: '/knowledge-base/common-issues/backup'
// },
{
text: 'Docker',
link: '/knowledge-base/common-issues/docker'
},
// {
// text: 'Databases',
// link: '/knowledge-base/common-issues/databases'
// },
// {
// text: 'Services',
// link: '/knowledge-base/common-issues/services'
// },
{
text: 'Servers',
link: '/knowledge-base/common-issues/servers'
},
// {
// text: 'Proxy',
// link: '/knowledge-base/common-issues/proxy'
// }
]
},
{
text: 'Internal',
collapsed: true,
@@ -330,6 +295,7 @@ export default defineConfig({
{ text: 'Delete User', link: '/knowledge-base/delete-user' },
{ text: 'OAuth', link: '/knowledge-base/oauth' },
{ text: 'Create Root User using ENV', link: '/knowledge-base/create-root-user-with-env' },
{ text: 'Define Custom Docker Network with ENV', link: '/knowledge-base/define-custom-docker-network-with-env' },
{ text: 'Change Localhost Key', link: '/knowledge-base/change-localhost-key' },
]
},
@@ -369,6 +335,7 @@ export default defineConfig({
items: [
{
text: 'Github', collapsed: true, items: [
{ text: 'Manually Setup GitHub App', link: '/knowledge-base/git/github/github-app' },
{ text: 'Integrations', link: '/knowledge-base/git/github/integration' },
{ text: 'Github Actions', link: '/knowledge-base/git/github/github-actions' },
]
@@ -518,19 +485,46 @@ export default defineConfig({
collapsed: true,
items: [
{ text: 'Overview', link: '/troubleshoot/overview' },
{
text: 'Applications',
collapsed: true,
items: [
{ text: 'Bad Gateway', link: '/troubleshoot/applications/bad-gateway.md' },
{ text: 'Failed To Get Access Token During Deployment', link: '/troubleshoot/applications/failed-to-get-token' },
]
},
{
text: 'Dashboard',
collapsed: true,
items: [
{ text: 'Dashboard Inaccessible ', link: '/troubleshoot/dashboard/dashboard-inaccessible' },
{ text: 'Dashboard Very Slow ', link: '/troubleshoot/dashboard/dashboard-slow-performance' },
{ text: 'Inaccessible ', link: '/troubleshoot/dashboard/dashboard-inaccessible' },
{ text: 'Very Slow ', link: '/troubleshoot/dashboard/dashboard-slow-performance' },
]
},
{
text: 'Docker',
collapsed: true,
items: [
{ text: 'Expired GitHub Personal Access Token (PAT)', link: '/troubleshoot/docker/expired-github-personal-access-token' },
]
},
{
text: 'Server',
collapsed: true,
items: [
{ text: 'Crash During Build ', link: '/troubleshoot/server/crash-during-build' },
{ text: 'Connection Unstable', link: '/troubleshoot/server/connection-issues' },
{ text: 'Crash During Build', link: '/troubleshoot/server/crash-during-build' },
{ text: '2FA Stopped Working', link: '/troubleshoot/server/two-factor-stopped-working' },
{ text: 'Raspberry Pi Crashes', link: '/troubleshoot/server/raspberry-crashes' },
{ text: 'Server Validation Issues', link: '/troubleshoot/server/validation-issues' },
]
},
{
text: 'DNS & Domains',
collapsed: true,
items: [
{ text: 'Wildcard SSL not working', link: '/troubleshoot/dns-and-domains/wildcard-ssl-certs' },
{ text: "Let's Encrypt not working", link: '/troubleshoot/dns-and-domains/lets-encrypt-not-working' },
]
},
],
@@ -539,8 +533,13 @@ export default defineConfig({
text: 'Resources',
collapsed: true,
items: [
{ text: 'Team', link: '/resource/team' },
{ text: 'Sponsors', link: '/resource/sponsors' },
{
text: 'Integrations',
collapsed: true,
items: [
{ text: 'Webstudio', link: '/resource/integrations/webstudio.md' },
],
},
{
text: 'Contribute',
collapsed: true,
@@ -550,6 +549,8 @@ export default defineConfig({
{ text: 'Documentation', link: '/resource/contribute/documentation' },
],
},
{ text: 'Sponsors', link: '/resource/sponsors' },
{ text: 'Team', link: '/resource/team' },
// {
// text: 'Changelog',
// collapsed: true,
+4 -4
View File
@@ -133,11 +133,11 @@ If you are using git lfs, you can set this to `true`. `Enabled by default`.
### Environment Variables
[Read here](/docs/knowledge-base/environment-variables)
[Read here](/knowledge-base/environment-variables)
### Persistent Storage
[Read here](/docs/knowledge-base/persistent-storage)
[Read here](/knowledge-base/persistent-storage)
### Health Checks
@@ -205,5 +205,5 @@ You can deploy any docker images from any Docker compatible repository. For exam
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/applications/)
- [Services](/docs/services/)
- [Languages/Frameworks](/applications/)
- [Services](/services/overview)
+109 -1
View File
@@ -8,7 +8,9 @@ Laravel is a web application framework with expressive, elegant syntax. We belie
Example repository [here](https://github.com/coollabsio/coolify-examples/tree/main/laravel).
## Requirements
## Deploy with Nixpacks
### Requirements
- Set `Build Pack` to `nixpacks`
- Set the required [environment variables](#environment-variables)
@@ -265,3 +267,109 @@ stderr_logfile=/var/log/worker-inertia-ssr.log
stdout_logfile=/var/log/worker-inertia-ssr.log
'''
```
## Deploy with Dockerfile and Nginx Unit
### Prerequisites
1. Create a new resource from a private or public repository.
2. Set the `Ports Exposes` field to `8000`, for exemple.
3. Set default environnement variables using `Developer view` in `Environment Variables` :
```Environnement variables
APP_DEBUG=false
APP_ENV=staging
APP_KEY= #YourAppKey
APP_MAINTENANCE_DRIVER=file
APP_NAME=Laravel
CACHE_STORE=file
DB_CONNECTION= #YourDbConnection
DB_DATABASE= #YourDb
DB_HOST= #YourDbHost
DB_PASSWORD= #YourDbPassword
DB_PORT= #YourDbPort
DB_USERNAME= #YourDbUsername
FILESYSTEM_DISK=public
MAIL_MAILER=log
SESSION_DRIVER=file
```
4. Create a `Dockerfile` in the root of your project with the following content:
```Dockerfile
FROM unit:1.34.1-php8.3
RUN apt update && apt install -y \
curl unzip git libicu-dev libzip-dev libpng-dev libjpeg-dev libfreetype6-dev libssl-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) pcntl opcache pdo pdo_mysql intl zip gd exif ftp bcmath \
&& pecl install redis \
&& docker-php-ext-enable redis
RUN echo "opcache.enable=1" > /usr/local/etc/php/conf.d/custom.ini \
&& echo "opcache.jit=tracing" >> /usr/local/etc/php/conf.d/custom.ini \
&& echo "opcache.jit_buffer_size=256M" >> /usr/local/etc/php/conf.d/custom.ini \
&& echo "memory_limit=512M" > /usr/local/etc/php/conf.d/custom.ini \
&& echo "upload_max_filesize=64M" >> /usr/local/etc/php/conf.d/custom.ini \
&& echo "post_max_size=64M" >> /usr/local/etc/php/conf.d/custom.ini
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
WORKDIR /var/www/html
RUN mkdir -p /var/www/html/storage /var/www/html/bootstrap/cache
RUN chown -R unit:unit /var/www/html/storage bootstrap/cache && chmod -R 775 /var/www/html/storage
COPY . .
RUN chown -R unit:unit storage bootstrap/cache && chmod -R 775 storage bootstrap/cache
RUN composer install --prefer-dist --optimize-autoloader --no-interaction
COPY unit.json /docker-entrypoint.d/unit.json
EXPOSE 8000
CMD ["unitd", "--no-daemon"]
```
3. Create a `unit.json` file (lowercase) at the root of your project with the following content:
```unit.json
{
"listeners": {
"*:8000": {
"pass": "routes"
}
},
"routes": [
{
"match": {
"uri": "!/index.php"
},
"action": {
"share": "/var/www/html/public$uri",
"fallback": {
"pass": "applications/laravel"
}
}
}
],
"applications": {
"laravel": {
"type": "php",
"root": "/var/www/html/public/",
"script": "index.php"
}
}
}
```
4. Set Post-deployment to :
```
php artisan optimize:clear && php artisan config:clear && php artisan route:clear && php artisan view:clear && php artisan optimize
+14 -2
View File
@@ -8,12 +8,24 @@ NextJS is a React framework that enables functionality such as server-side rende
[Example repository.](https://github.com/coollabsio/coolify-examples/tree/main/nextjs)
## Server build (NodeJS)
## Deploy with Nixpacks
### Server build (NodeJS)
- Set `Build Pack` to `nixpacks`.
## Static build (SPA)
### Static build (SPA)
- Set `Build Pack` to `nixpacks`.
- Enable `Is it a static site?`.
- Set `Output Directory` to `out`.
## Deploy with Dockerfile
If you are having problems with Nixpacks or want more control over the building stage, you can use a Dockerfile to deploy your NextJS application.
### Prerequisites
1. Set `Ports Exposes` field to `3000`.
2. Create a `Dockerfile` in the root of your project and copy the content from the official [NextJS Repository](https://github.com/vercel/next.js/blob/canary/examples/with-docker/Dockerfile).
3. Set the Build Pack to `Dockerfile`.
+32 -1
View File
@@ -15,4 +15,35 @@ PostgreSQL, often simply "Postgres", uses and extends the SQL language combined
## Links
- [The official website ](https://www.postgresql.org/)
- [GitHub ](https://github.com/postgres/postgres)
- [GitHub ](https://github.com/postgres/postgres)
## Import Backups
Coolify can import a database dump into a running PostgreSQL instance using the
**Import Backups** section of the Configuration for the instance.
The database dump can either be a file uploaded to the server, or dragged and
dropped into the Configuration screen directly.
The import command can be customized, but by default it expects a database dump
created using the `pg_dump` command with the `-Fc` flag passed in (custom
format).
For example, the following command connects to a PostgreSQL database running in
a local Docker container named `pg-db` as the database user `postgres` and
writes a dump of the `postgres` database to the file `example-database.sql.gz`:
```bash
docker exec pg-db pg_dump -U postgres -d postgres -Fc >example-database.sql.gz
```
### Note on upgrading PostgreSQL
The __custom__ dump format is sensitive to version differences between the dump and
restore commands.
Use the plain (default) or __tar__ dump formats to migrate from an older version
of PostgreSQL to a newer version. When using plain format dumps, use `psql` as
the custom import command instead of `pg_restore`.
See the PostgreSQL documentation for `pg_dump` and `pg_restore` for more information.
+5
View File
@@ -134,6 +134,11 @@ View the [Script's Source Code ↗](https://github.com/coollabsio/coolify/blob/m
You can also set up the first admin account directly during the installation. For details, see: [Create Root User with Environment Variables ↗](/knowledge-base/create-root-user-with-env)
:::
There are several environment variables that you can set to customize your Coolify installation.
For example, you can setup a default root user or define the default docker network pool.
See the [Define Custom Docker Network with ENV ↗](/knowledge-base/define-custom-docker-network-with-env) or the [Create Root User with ENV ↗](/knowledge-base/create-root-user-with-env) for more details.
#### 3. Access Coolify
After installation, the script will display your Coolify URL (e.g., `http://203.0.113.1:8000`). Visit this URL, and you'll be redirected to a registration page to create your first admin account.
+5 -5
View File
@@ -7,15 +7,15 @@ title: Introduction to Coolify
<br />
## What is Coolify?
Coolify is a software that makes self-hosting simple and powerful. It lets you run your applications, databases, and services on your own server, whether thats an old laptop, a Raspberry Pi, or a rented server from a provider like [Hetzner↗](https://coolify.io/hetzner).
Coolify is a software that makes self-hosting simple and powerful. It lets you run your applications, databases, and services on your own server, whether thats an old laptop, a Raspberry Pi, or a rented server from a provider like [Hetzner ](https://coolify.io/hetzner).
With Coolify, you get full control over your projects, your data, and your costs. Its completely free to use, open-source, and has no features locked behind a paywall.
Think of Coolify as your personal alternative to cloud platforms like [Vercel↗](https://vercel.com?utm_source=coolify.io), [Railway↗](https://railway.com/?utm_source=coolify.io), or [Heroku↗](https://www.heroku.com/?utm_source=coolify.io), but without the huge bills or privacy trade-offs.
Think of Coolify as your personal alternative to cloud platforms like [Vercel ](https://vercel.com?utm_source=coolify.io), [Railway ](https://railway.com/?utm_source=coolify.io), or [Heroku ](https://www.heroku.com/?utm_source=coolify.io), but without the huge bills or privacy trade-offs.
## What Coolify Is Not
Coolify isnt a cloud service that hosts everything for you, you need your own server. That could be your old laptop, a Raspberry Pi, or a rented server from a hosting provider like [Hetzner↗](https://coolify.io/hetzner), and youll need SSH access to use it.
Coolify isnt a cloud service that hosts everything for you, you need your own server. That could be your old laptop, a Raspberry Pi, or a rented server from a hosting provider like [Hetzner ](https://coolify.io/hetzner), and youll need SSH access to use it.
Its not a zero-effort solution either, if you choose to self-host, youll need to set up your server and install Coolify. But once its running, managing your projects becomes very easy.
@@ -56,13 +56,13 @@ Coolify delivers unbeatable advantages for developers who want to self-host. Her
| **Quick Setup** | Start hosting in minutes with minimal maintenance required. |
| **User-Friendly Interface** | Manage your infrastructure through a clean, simple dashboard designed for developers. |
| **100% Open Source** | Review the code, contribute to development, and help shape the platforms future. |
| **Active Community** | Join over 13,000 people on Discord and 140,000+ servers running Coolify worldwide. |
| **Active Community** | Join over 13,000 people on Discord and 145,000+ servers running Coolify worldwide. |
## Getting Started with Coolify
Before you jump into using Coolify, its worth understanding a few key concepts to make your journey smoother.
Learn about servers, SSH access, and how Coolify manages your projects by checking out our [concepts guide↗](/get-started/concepts).
Learn about servers, SSH access, and how Coolify manages your projects by checking out our [concepts guide ](/get-started/concepts).
You have two ways to use Coolify:
- [Self-Host Coolify](#self-host-coolify)
@@ -129,7 +129,7 @@ To start the Coolify proxy, follow these steps:
<ZoomableImage src="/docs/images/knowledge-base/cf-tunnel/all-resource/10.webp" />
1. In the Coolify dashboard, go to the **Servers** page from the sidebar.
2. Click on the **Proxy** tab.
2. Select the server where coolify is running, then Click on the **Proxy** tab.
3. Open the **General** tab.
4. Click the **Start Proxy** button.
@@ -1,5 +0,0 @@
---
title: "Introduction"
---
# Server go brrr
@@ -1,5 +0,0 @@
---
title: "Introduction"
---
# Server go brrr
@@ -1,5 +0,0 @@
---
title: "Introduction"
---
# Server go brrr
@@ -1,5 +0,0 @@
---
title: "Introduction"
---
# Server go brrr
@@ -1,5 +0,0 @@
---
title: "Introduction"
---
# Server go brrr
@@ -56,7 +56,7 @@ The following requirements must be met for the root user credentials in a produc
:::
3. **Complete Setup**
After configuring the root user credentials, continue with the [installation steps](/installation#quick-installation-recommended) to complete your Coolify setup.
After configuring the root user credentials, continue with the [installation steps](/get-started/installation#quick-installation-recommended) to complete your Coolify setup.
@@ -87,5 +87,5 @@ The following requirements must be met for the root user credentials in a produc
:::
3. **Complete Setup**
After configuring the root user credentials, continue with the [installation steps](/installation#manual-installation) to complete your Coolify setup.
After configuring the root user credentials, continue with the [installation steps](/get-started/installation#quick-installation-recommended) to complete your Coolify setup.
@@ -0,0 +1,72 @@
---
title: "Define Custom Docker Network with Environment Variables"
description: "How to define a custom docker network with environment variables"
---
# Define Custom Docker Network with Environment Variables
## Validation Requirements
The following requirements must be met for the custom docker network in a production environment.
### Network Name (`DOCKER_ADDRESS_POOL_BASE`)
- Must be a valid CIDR block, like `10.0.0.0/8`.
### Address Pool Size (`DOCKER_ADDRESS_POOL_SIZE`)
- Must be a valid number, like `10`.
### Force Override (`DOCKER_POOL_FORCE_OVERRIDE`)
- This only needed if you already have a docker address pool on the host and you want to override it.
## Automated Installation Method
1. **Prepare Your Credentials**
Create your root user credentials according to the validation requirements above.
2. **Run Installation Command**
Execute the automated installation script with your prepared credentials:
```bash
env DOCKER_ADDRESS_POOL_BASE=10.0.0.0/8 DOCKER_ADDRESS_POOL_SIZE=10 bash -c 'curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash'
```
> View the [Scripts Source Code](https://github.com/coollabsio/coolify/blob/main/scripts/install.sh)
::: info
The installation script must be run as `root`. If you're not logged in as `root`, the script will use `sudo` to elevate privileges.
```bash
sudo -E env DOCKER_ADDRESS_POOL_BASE=10.0.0.0/8 DOCKER_ADDRESS_POOL_SIZE=10 bash -c 'curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash'
```
:::
3. **Complete Setup**
After configuring the root user credentials, continue with the [installation steps](/get-started/installation#quick-installation-recommended) to complete your Coolify setup.
## Manual Installation Method
1. **Prepare Your Credentials**
Create your root user credentials according to the validation requirements above.
2. **Configure Environment Variables**
Edit the environment variables file:
```bash
nano /data/coolify/source/.env
```
Add the following variables with your prepared credentials:
```bash
DOCKER_ADDRESS_POOL_BASE=10.0.0.0/8
DOCKER_ADDRESS_POOL_SIZE=10
DOCKER_POOL_FORCE_OVERRIDE=false
```
3. **Complete Setup**
After configuring the root user credentials, continue with the [installation steps](/get-started/installation#manual-installation) to complete your Coolify setup.
@@ -7,7 +7,7 @@ description: "A guide on how to use custom commands for your Docker deployments
For deploying your resources, you can add custom options to the final docker command, which is used to run your container.
::: warning 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](/support)
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](/get-started/support)
:::
## Supported Options
+1 -1
View File
@@ -50,4 +50,4 @@ Documentation: https://developers.cloudflare.com/ssl/origin-configuration/ssl-mo
## Applications
### How to map a port the server?
If you want to map a port the host system (server), you need to use [Ports Mappings](/docs/applications#port-mappings) feature.
If you want to map a port the host system (server), you need to use [Ports Mappings](/applications/#port-mappings) feature.
@@ -0,0 +1,36 @@
---
title: "Manually Setup GitHub App"
---
# GitHub App
This guide will show you how to use manually setup an existing Github App or how to change a currently configured one.
Since `4.0.0-beta.399` you are able to change all the Github App details inside Coolify.
## On Github
1. You will need the `App ID`, `Client ID`, a `Client Secret (generated)`, `Github App Name`, `Webhook Secret`. You can find these on your Github App configuration page.
2. Generate a Private Key on your Github App configuration page (if you already have one, ignore this).
3. Set the `Homepage URL` to `https://app.coolify.io`.
4. Set the `Setup URL` to the following: `https://app.coolify.io/webhooks/source/github/install?source=<source_uuid>` where `source_uuid` will be the newly created source in Coolify.
5. Activate `Webhook` and set the `Webhook URL` to `https://app.coolify.io/webhooks/source/github/events`
6. Set the `Webhook Secret`.
7. In the `Install App` section, Install the app to the organization you want to use.
8. Copy the `Installation ID` from the URL of the page after you installed the Github App.
9. In the `Permissions & Events` section, set the following permissions:
Repository permissions:
- Contents: read
- Metadata: read
- Email: read
- Pull Request: read & write (optional, if you want to use the pull request feature)
## On Coolify
0. Add the `Private Key` generated in the previous step as a new `Private Key` in the `Keys & Tokens` section.
1. Go to the `Sources` page and click on the `+` button or edit the existing one.
2. Fill the name and the organization name (optional). Press `Continue`.
3. Click on the `Continue` button on the `Manual Installation` section.
4. Enter the `Github App Name`, `App ID`, `Installation ID`, `Client ID`, `Client Secret` , `Webhook Secret`, select the `Private Key` you added in step 0 and `Save`.
5. If you filled everything correctly, click on the `Sync Name` button. If no errors, then you are done.
+7
View File
@@ -15,3 +15,10 @@ The integrated proxy only forwards the request to your application if the health
You get a warning next to your application's status. It is not mandatory, but it is recommended to set a health check.
The integrated proxy will forward the request to your application without checking the health.
::: warning Caution!
Health checks run inside your container, so you need to have either `curl` or `wget` installed on your container. You can use an docker image that already includes `curl/wget` or add it to your Dockerfile yourself.
Without one of these packages, health checks will always fail and mark your container as unhealthy, which will cause the deployment to fail due to the failing health check.
:::
@@ -28,7 +28,7 @@ To run Coolify on a Raspberry Pi, you will need one of the following Raspberry P
- Navigate to `Raspberry Pi OS (other)`
- Select `Raspberry Pi OS Lite (64-bit)`
::: warning Caution
::: warning Caution
You must select one of the 64-bit OS versions as Coolify is not compatible with 32-bit versions.
:::
@@ -43,10 +43,15 @@ To run Coolify on a Raspberry Pi, you will need one of the following Raspberry P
6. Click `Next` and select `Edit settings` for OS Customization.
- Navigate to `Services` and enable SSH with a public key.
::: warning Caution
The SSH key must not have a passphrase or 2FA enabled, otherwise you will not be able to complete the onboarding process.
:::
- Configure other options as needed
7. Finish the installation onto the SD card.
8. Once complete, insert the microSD card into your Raspberry Pi and power it on.
9. After your Raspberry Pi boots up, proceed with the [Coolify installation](/installation#quick-installation-recommended).
9. After your Raspberry Pi boots up, proceed with the [Coolify installation](/get-started/installation#quick-installation-recommended).
+28 -14
View File
@@ -7,38 +7,52 @@ By default, the Traefik dashboard is enabled in secure mode, but not configured
To enable access from the internet, you need to add a dynamic configuration and secure it with a username and password.
## Secure mode (with Dynamic Configuration)
::: info Tip
How to configure Traefik's dynamic configuration? [Read
more](/docs/knowledge-base/traefik/dynamic-configurations)
How to configure Traefik's dynamic configuration? [Read more](/knowledge-base/proxy/traefik/dynamic-config)
:::
You can enable Traefik's dashboard by adding the following dynamic configuration:
```yaml
http:
routers:
dashboard:
rule: Host(`<DOMAIN_FOR_TRAEFIK>`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
service: api@internal
tls:
certResolver: letsencrypt
middlewares:
- auth
middlewares:
auth:
basicAuth:
users:
- "<GENERATED_USERNAME>:<GENERATED_PASSWORD>"
redirect-to-https:
redirectScheme:
scheme: https
routers:
dashboard-http:
rule: Host(`<DOMAIN_FOR_TRAEFIK>`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
entryPoints:
- http
service: api@internal
middlewares:
- redirect-to-https
dashboard-https:
rule: Host(`<DOMAIN_FOR_TRAEFIK>`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
entryPoints:
- https
service: api@internal
tls:
certResolver: letsencrypt
middlewares:
- auth
```
Replace `<DOMAIN_FOR_TRAEFIK>`, `<GENERATED_USERNAME>`, and `<GENERATED_PASSWORD>` with your own values.
You can reach the dashboard by visiting `http://<DOMAIN_FOR_TRAEFIK>/dashboard/#/`.
You can reach the dashboard by visiting `https://<DOMAIN_FOR_TRAEFIK>/dashboard/#/`.
### How to generate user/password?
You can generate one with the [htpasswd](https://httpd.apache.org/docs/current/programs/htpasswd.html) command:
```bash
@@ -51,10 +65,10 @@ Example output:
test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/
```
## Insecure Mode (Not Recommended)
## Insecure Mode (Not Recommended)
If you want to enable the dashboard in insecure mode (without a password), all you need to do is go to the proxy configurations view and change the `insecure` setting to `true`, then restart the proxy..
```yaml
- '--api.insecure=true'
- '--api.insecure=true'
```
@@ -13,7 +13,7 @@ You can easily use Traefik to loadbalance an application between:
### Prerequisites
1. Make sure you set the right DNS record for your domain. Your loadbalanced domain should point to the server's IP address where you are setting up the loadbalancer.
2. You must deploy your application to more than one servers: read more [here](/docs/knowledge-base/server/multiple-servers).
2. You must deploy your application to more than one servers: read more [here](/knowledge-base/server/multiple-servers).
3. Make sure Traefik is running on all servers.
4. Set your `fqdn` to the fqdn you would like to use to reach your application.
5. After your application are deployed on all servers, you need to make a dynamic configuration for Traefik to loadbalance between your servers in the `/data/coolify/proxy/dynamic` directory.
@@ -100,16 +100,17 @@ It is useful, because Traefik do not need to generate a new certificate for ever
```bash
traefik.enable=true
traefik.http.routers.<unique_router_name>.rule=Host(`example.coolify.io`) && PathPrefix(`/`)
traefik.http.routers.<unique_router_name>.entryPoints=https
traefik.http.routers.<unique_router_name>.middlewares=gzip
traefik.http.routers.<unique_router_name>.service=<unique_service_name>
traefik.http.routers.<unique_router_name_https>.rule=Host(`example.coolify.io`) && PathPrefix(`/`)
traefik.http.routers.<unique_router_name_https>.entryPoints=https
traefik.http.routers.<unique_router_name_https>.middlewares=gzip
traefik.http.routers.<unique_router_name_https>.service=<unique_service_name>
traefik.http.routers.<unique_router_name_https>.tls=true
traefik.http.services.<unique_service_name>.loadbalancer.server.port=80
traefik.http.routers.<unique_router_name>.tls=true
traefik.http.routers.<unique_router_name>.tls.certresolver=letsencrypt
traefik.http.routers.<unique_router_name>.rule=Host(`example.coolify.io`) && PathPrefix(`/`)
traefik.http.routers.<unique_router_name>.entryPoints=http
traefik.http.routers.<unique_router_name>.middlewares=redirect-to-https
traefik.http.routers.<unique_router_name_https>.tls.certresolver=letsencrypt
traefik.http.routers.<unique_router_name_http>.rule=Host(`example.coolify.io`) && PathPrefix(`/`)
traefik.http.routers.<unique_router_name_http>.entryPoints=http
traefik.http.routers.<unique_router_name_http>.middlewares=redirect-to-https
```
### SaaS
Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

+8
View File
@@ -199,6 +199,14 @@
## Troubleshooting
- [Overview](https://coolify.io/docs/troubleshoot/overview)
- [Failed To Get Access Token During Deployment](https://coolify.io/docs/troubleshoot/applications/failed-to-get-token)
- [Bad Gateway Error](https://coolify.io/docs/troubleshoot/applications/bad-gateway-error)
- [Connection Unstable](https://coolify.io/docs/troubleshoot/server/connection-issues)
- [Expired GitHub Personal Access Token (PAT)](https://coolify.io/docs/troubleshoot/docker/expired-github-personal-access-token)
- [DNS & Domains](https://coolify.io/docs/troubleshoot/dns-and-domains)
- [Two Factor Stopped Working](https://coolify.io/docs/troubleshoot/server/two-factor-stopped-working)
- [Server Validation Issues](https://coolify.io/docs/troubleshoot/server/validation-issues)
- [Raspberry Pi Crashes](https://coolify.io/docs/troubleshoot/server/raspberry-crashes)
- [Server Crash During Build](https://coolify.io/docs/troubleshoot/server-crash-during-build)
- [SSL Certificate Not Generating](https://coolify.io/docs/troubleshoot/ssl-cert-not-generating)
- [Wildcard SSL Certificates](https://coolify.io/docs/troubleshoot/wildcard-ssl-certs)
+1 -1
View File
@@ -5,7 +5,7 @@ title: Changelogs
# Coolify v4 Beta-383 is now available!
This release of Coolify introduces several exciting updates, including a new method to set the initial root user in the installation script, the ability to import full database backups, enhanced deployment logs, Docker cleanup logs, and much more.
To upgrade your Coolify instance, follow the [upgrade guide](/upgrade)
To upgrade your Coolify instance, follow the [upgrade guide](/get-started/upgrade)
---
+129
View File
@@ -0,0 +1,129 @@
---
title: Deploy Webstudio Projects to Hetzner with Coolify
---
# Deploy Webstudio Projects using Coolify
Coolify makes deploying your Webstudio projects to Hetzner as simple as it is powerful.
In this guide, youll learn how to set up your project, deploy it on a Hetzner server, and keep your infrastructure fully under your control, all with a few straightforward steps.
::: warning HEADS UP!
In this guide, we are using servers from Hetzner.
However, if you're using a different hosting provider, you can still follow this guide with their servers as well.
If you prefer watching a video instead of reading, you can check out the [tutorial video ↗](https://youtu.be/OnHLO2Plt2E?si=yDM77oK7Xd5UsRSP)
:::
## What Youll Need
Before you start, make sure you have:
- A [GitHub account ↗](https://github.com?utm_source=coolify.io) to host your code.
- A [Hetzner account ↗](https://coolify.io/hetzner) to provision your server (or an account with any other hosting provider).
- The [Webstudio CLI ↗](https://docs.webstudio.is/university/self-hosting/cli?utm_source=coolify.io) installed locally to manage your project exports.
## 1. Create Your GitHub Repository
Start by [creating a new repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository) on GitHub where youll store your Webstudio project code.
Once the repository is created, [clone the repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) to your local machine to start developing locally.
## 2. Export Your Webstudio Project
Using the Webstudio [CLI ↗](https://docs.webstudio.is/university/self-hosting/cli), export your project and select the "**Docker**" option.
This prepares your project for deployment via Coolify without the need for additional dependency installations.
## 3. Push Your Code to GitHub
With your project exported locally, [push your code](https://docs.github.com/en/get-started/using-git/pushing-commits-to-a-remote-repository) to the GitHub repository you created. This makes your project accessible for deployment.
## 4. Set Up Your Hetzner Server
::: warning HEADS UP!
If you already have a server, you don't need to purchase a new one.
**Webstudio recommends** that your server should have at least **1 CPU and 2GB of RAM** for smooth operation.
Skip to [Step 6 ↗](#_6-configure-your-project-on-coolify) if your server is already connected to Coolify.
:::
Follow these steps to prepare your Hetzner server:
1. **Create a New Server:** Log into [Hetzner Cloud Dashboard ↗](https://console.hetzner.cloud/) and create a new server.
<ZoomableImage src="/docs/images/resources/integrations/1.webp" />
1. **Choose Your Region:** Select the region that best suits your needs.
<ZoomableImage src="/docs/images/resources/integrations/2.webp" />
1. **Select Ubuntu:** Pick an Ubuntu image (make sure its a Docker-supported version, check the [Docker Ubuntu requirements](https://docs.docker.com/engine/install/ubuntu/#os-requirements)).
<ZoomableImage src="/docs/images/resources/integrations/3.webp" />
1. **Configure Resources:** A shared CPU with at least 2 GB RAM is recommended.
<ZoomableImage src="/docs/images/resources/integrations/4.webp" />
1. **Allocate an IPv4 Address:** Make sure your server has a dedicated IPv4 address.
<ZoomableImage src="/docs/images/resources/integrations/5.webp" />
1. **Finalize Setup:** Click **Create and Buy Now** and wait until your server is provisioned.
2. **Save the IP:** Copy your servers IPv4 address, it will be needed shortly.
## 5. Connect Coolify to Your Server
::: warning HEADS UP!
If your server is already connected to Coolify, skip to the [next step ↗](#_6-configure-your-project-on-coolify).
:::
1. **Add Private Key:** Login to your Coolify account (or create one if youre new) and Add a new private key
<ZoomableImage src="/docs/images/resources/integrations/6.webp" />
<br />
<ZoomableImage src="/docs/images/resources/integrations/7.webp" />
2. **Add a Server:** Navigate to the **Servers** tab and add a new server by entering your Hetzner servers IPv4 address.
<ZoomableImage src="/docs/images/resources/integrations/8.webp" />
<br />
<ZoomableImage src="/docs/images/resources/integrations/9.webp" />
3. **Validate Server:** Click **Validate Server & Install Docker Engine**. Coolify will automatically install all necessary components on your server.
<ZoomableImage src="/docs/images/resources/integrations/10.webp" />
4. **Check Status:** Once finished, you should see a green **Proxy Running** status indicating everything is set up.
<ZoomableImage src="/docs/images/resources/integrations/11.webp" />
## 6. Configure Your Project on Coolify
1. **Create a New Project:** Head to the **Projects** section and create a new project.
2. **Add a Resource:** Add a new resource, selecting your GitHub repository as the source.
3. **Connect Your Repository:** Use the GitHub app integration to grant access to your repository.
<ZoomableImage src="/docs/images/resources/integrations/12.webp" />
4. **Select Build Pack:** Change the Build Pack to **Dockerfile** and click on continue button.
<ZoomableImage src="/docs/images/resources/integrations/13.webp" />
5. **Configure Domains & Deploy:** Enter your domain in the domains field and Click **Deploy** and wait as Coolify builds and deploys your project.
<ZoomableImage src="/docs/images/resources/integrations/14.webp" />
6. **Successful Deployment:** When deployment is complete, youll see a “Deployment is Finished” message.
7. **Access Your Site:** Use the **links** button at the top of the project dashboard to visit your live site.
<ZoomableImage src="/docs/images/resources/integrations/15.webp" />
8. **Optional Third-Party Domains:** If your project loads images from external sources, add those domains as a comma-separated list under the environment variable `DOMAINS`. (make sure to restart the application after adding the variable)
<ZoomableImage src="/docs/images/resources/integrations/16.webp" />
## 7. Update Your Webstudio Site
To publish updates and keep your site up to date, follow these steps:
1. **Publish Changes:** In the Webstudio builder, click **Publish** to generate the latest build data.
2. **Sync and Build:** Run the following commands in your terminal:
```bash
webstudio sync
webstudio build --template docker
```
3. **Push Updates:** Commit and push your changes to GitHub. Coolify will detect the update and automatically trigger a new deployment.
Now youre all set!
+1 -1
View File
@@ -91,7 +91,7 @@ You can host ANY service with Coolify that could be containerized.
- [Mosquitto](/services/mosquitto) - Open-source MQTT broker.
- [N8N](/services/n8n) - Workflow automation tool.
- [Nextcloud](/services/nextcloud) - A safe home for all your data.
- [Nexus](/services/sonatype-nexus) - A repository manager that allows you to store, manage, and distribute your software artifacts.
- [Nexus](/services/nexus) - A repository manager that allows you to store, manage, and distribute your software artifacts.
- [Nitropage](/services/nitropage) - Nitropage is an extensible, drag-and-drop website builder based on SolidStart, completely free and open source.
- [NocoDB](/services/nocodb) - Open Source Airtable Alternative.
- [Odoo](/services/odoo) - Open source ERP and CRM.
+2
View File
@@ -53,6 +53,8 @@ supabase-db:
And Restart
> NOTE if you are changing the port to a different port altogether to update the POSTGRES_PORT in the Environment Variables
## Links
- [Official Website ](https://supabase.io)
@@ -0,0 +1,46 @@
---
title: Bad Gateway Error
---
# Bad Gateway Error
If your deployed application **maybe** works when you access it via your servers IP address and port but shows a **Bad Gateway** error on your domain, the issue is most often due to misconfigured port settings, incorrect host mapping, or your app listening only on localhost.
## Symptoms
- The application is accessible via the server IP with a port but not via the domain.
- You might also run into a **No Available Server** error.
## Diagnosis
- **Port Configuration:** Check the port your application is listening on and see if the correct port is entered in the **Port Exposes** field on the Coolify dashboard.
- **Host Mapping:** Check if the applications port is mapped to the host system.
- **Listening Address:** Check if the app is only listening to `localhost` inside the container.
- **Domain Port Inclusion:** Check your domain URL has a port number at the end.
- **Container Status:** Check the status of the container where your app is running (Is it unhealthy? Stuck at Starting?).
## Solution
- **Update Port Settings:** Enter the correct port number in the **Port Exposes** field on the Coolify dashboard and restart your app.
<ZoomableImage src="/docs/images/troubleshoot/applications/bad-gateway/1.webp" />
- **Remove Host Port Mapping:** If the port is mapped to the host system, remove the mapping so the proxy can route traffic correctly, then restart your app.
<ZoomableImage src="/docs/images/troubleshoot/applications/bad-gateway/2.webp" />
- **Adjust Listening Address:** Change your application so it listens on all network interfaces (`0.0.0.0`) instead of just `localhost`.
<ZoomableImage src="/docs/images/troubleshoot/applications/bad-gateway/3.webp" />
- **Correct Domain URL:** Add the correct port number at the end of your domain URL if needed, and restart your application.
<ZoomableImage src="/docs/images/troubleshoot/applications/bad-gateway/4.webp" />
- **Restart Container / Check Logs:** Try restarting the container to see if it fixes the issue, or check the container logs to find out what's causing it to be unhealthy.
- Often, a failing health check might be the problem, and removing the health check could fix it.
<ZoomableImage src="/docs/images/troubleshoot/applications/bad-gateway/5.webp" />
## Support
If these steps dont solve the issue, consider reaching out for further assistance by joining our [Discord community ↗](https://coolify.io/discord) and sharing your app logs, coolify proxy logs, configuration screenshots, and details of the troubleshooting steps youve already tried.
@@ -0,0 +1,18 @@
---
title: Failed To Get Access Token During Deployment
description: Here are some common issues for fixing failed to get access token during deployment.
---
# Failed To Get Access Token
Your deployment failed because it cannot get the access token from GitHub.
The error is usually related to NTP time synchronization issue.
## Error
`'Issued at' claim (iat) must be an Integer representing the time that assertation issued.`
## Solution
You must do the same as the [2FA Stopped Working](/troubleshoot/server/two-factor-stopped-working) solution.
@@ -0,0 +1,69 @@
---
title: Let's Encrypt Not Generating SSL Certificates on Coolify
---
# Let's Encrypt Not Generating SSL Certificates
If you are using the default settings for the Coolify proxy and your website suddenly shows a warning about an insecure connection, it is most likely that your website is using a self-signed certificate from the Coolify proxy. This guide will help you fix the issue.
## 1. Understand the HTTP Challenge
Coolify uses [Let's Encrypt ↗](https://letsencrypt.org?utm_source=coolify.io) under the hood to generate SSL certificates for your websites. By default, Let's Encrypt uses an HTTP challenge to verify domain ownership.
Let's Encrypt sends an HTTP request to your server that includes a unique token embedded in the URL. When your server returns the correct token, it confirms that you control the domain.
## 2. Check Port 80 Accessibility
Make sure your servers port 80 is open and accessible from the internet. If port 80 is blocked, Let's Encrypt cannot complete the HTTP challenge. Unblocking port 80 should fix this issue.
## 3. Usage of Third-Party Proxy
If you are proxying your website through a third-party service like [Cloudflare ↗](https://www.cloudflare.com?utm_source=coolify.io), Let's Encrypt may not be able to verify your domain. In that case, you must either use a DNS challenge or stop proxying your domain through the third-party service.
## 4. Note on Certificate Validity
Let's Encrypt certificates are valid for 90 days. If the certificate stored on your server is valid, your domain may appear to work fine even if port 80 is closed or your domain is being proxied, because Coolify continues to use that valid certificate till it expires.
## 5. Check Let's Encrypt Service Status
Sometimes, Let's Encrypt might be having issues on their end. Check the Let's Encrypt status from [here ↗](https://letsencrypt.status.io?utm_source=coolify.io). If there is an issue, wait for them to fix it and try again once the issue is fixed.
## 6. Force Regenerate Certificates
If the certificates stored on your server are corrupted or outdated, you can delete them and force Coolify generate new ones.
- Open your server terminal and run:
```bash
rm /data/coolify/proxy/acme.json
```
- Then, restart the Coolify proxy from the dashboard by clicking the Restart Proxy button.
::: details Guide: How to Restart Proxy from Dashboard?
1. Select your server on the Coolify Dashboard
<ZoomableImage src="/docs/images/troubleshoot/dns-and-domains/lets-encrypt-not-working/1.webp" />
2. Click on Restart Proxy button
<ZoomableImage src="/docs/images/troubleshoot/dns-and-domains/lets-encrypt-not-working/2.webp" />
:::
## 7. Check Your WAF Settings
If you are using a Web Application Firewall (WAF), make sure it is not blocking Let's Encrypt requests.
## 8. Check Coolify Proxy logs
On the Coolify proxy logs if you see an error message with a 429 status code, it means that Let's Encrypt has rate-limited your server's IP address.
In this case, wait for a while and check your domain again. Most users won't encounter this, but it can happen if you are using a shared IP address.
::: details Guide: How to check Coolify proxy logs?
1. Select your server on the Coolify Dashboard
<ZoomableImage src="/docs/images/troubleshoot/dns-and-domains/lets-encrypt-not-working/1.webp" />
2. Go to the proxy section and click the refresh button
<ZoomableImage src="/docs/images/troubleshoot/dns-and-domains/lets-encrypt-not-working/3.webp" />
:::
## Support
If none of the above steps work, try these additional options:
- **Community Help:** Join our [Discord community ↗](https://coolify.io/discord) and post in the support forum channel.
- **What to Share:** Include a description of your issue, any error messages, and the steps you have already tried.
@@ -0,0 +1,45 @@
---
title: Coolify not using Wildcard SSL Certificates
---
# Coolify not using Wildcard SSL Certificates
If your wildcard SSL certificate isn't working with your domain, it may be due to configuration problems. Here's how you can check and fix it.
## 1. Check the SSL Certificate Validity
- **Verify the Certificate:** Make sure the SSL certificate is valid for the domain.
- Confirm the Common Name (CN) matches your domain.
- Double-check that your wildcard certificate is not expired.
## 2. Verify Certificate Installation
- **File Extensions:** Make sure the SSL certificate file ends with `.cert` and the key file ends with `.key`.
- Some providers give files in `.pem` format, which must be converted to `.cert` and `.key` before adding them to your server (simply rename the files to `.cert` for the certificate and `.key` for the key)
- **File Location:** Make sure your `.cert` and `.key` files are located in the `/data/coolify/proxy/certs` directory.
## 3. Check the Coolify Proxy Configuration
- **Add Certificate in Dashboard:** Make sure you have added the SSL certificate configuration in the Coolify proxy via the dashboard. More details can be found [here](/knowledge-base/proxy/traefik/custom-ssl-certs).
- **Check File Mounts:** If you have modified the proxy configuration, verify that the `/data/coolify/proxy` directory is mounted correctly.
## 4. Remove Old Certificates
- **Old Certificate Issue:** The Coolify proxy may be using an old certificate stored in the `acme.json` file.
- **Action:** Delete the `acme.json` file from the `/data/coolify/proxy` directory and restart the Coolify proxy from the dashboard by clicking the restart proxy button.
## 5. Clear Your Browser Cache
- **Cache Issue:** Your browser might be caching an old SSL certificate.
- **Action:** Check your website using a different browser or network.
- You can also use sandbox tools like [Browserling ↗](https://www.browserling.com?utm_source=coolify.io) to test your site.
## 6. Verify DNS Challenge Configuration
- **DNS Challenge Check:** If you are using a DNS challenge, confirm that it is set up correctly.
- **Action:** Verify that you have selected the correct DNS provider, API Keys and check the challenge settings are properly configured.
## Support
If none of the above steps work, try these additional options:
- **Community Help:** Join our [Discord community ↗](https://coolify.io/discord) and post in the support forum channel.
- **What to Share:** Include a description of your issue, screenshots of your configuration, any error messages, and the steps you have already tried.
@@ -1,22 +1,25 @@
---
title: "Introduction"
title: "Expired GitHub Personal Access Token (PAT)"
description: "Here are some common issues for fixing expired GitHub Personal Access Token (PAT)."
---
# Expired GitHub Personal Access Token (PAT)
#### 1. Expired GitHub Personal Access Token (PAT)
If you encounter the following errors, it means Docker cannot authenticate with the GitHub Container Registry (ghcr.io):
**Error 1:**
## Error
```sh
Error response from daemon: Head "https://ghcr.io/v2/coollabsio/coolify-helper/manifests/1.0.1": unauthorized: authentication required
```
> or
**Error 2:**
```sh
Unable to find image 'ghcr.io/coollabsio/coolify-helper:latest' locally
docker: Error response from daemon: Head "https://ghcr.io/v2/coollabsio/coolify-helper/manifests/latest": denied: denied
```
To resolve this issue, you have two options:
## Solution
You have two options:
- Log out of GitHub Container Registry (ghcr.io) by running:
```sh
docker logout ghcr.io
@@ -1,6 +0,0 @@
---
title: Server crashing during build
---
# Server crashing or freezing during build
- https://github.com/ShadowArcanist/coolify-new-docs/issues/13
@@ -0,0 +1,34 @@
---
title: Connection Unstable
description: Here are some common issues for fixing connection unstable.
---
# Connection Unstable
If you're experiencing unstable connections, most of the times (90% of the cases) a firewall issue, ufw, iptables or some configuration on your server or between your Coolify instance (or Coolify Cloud) and your server.
## Symptoms
- Server is sometimes reachable, sometimes not.
- You receive a lot of failed connection lost emails.
## Diagnosis
- Check your UFW rules with `ufw status numbered` and see if you have a `LIMIT` rule for port 22.
- Check your iptables rules with `iptables -L -v -n` and see if you have a `LIMIT` rule for port 22.
- Check your server logs (`/var/log/ufw.log`, `/var/log/iptables.log`, `/var/log/auth.log`, `/var/log/kern.log`) for any firewall related errors.
## Solution
- UFW
- `ufw status numbered` - if you have port 22 open, but with a `LIMIT` rule, this is the problem.
- `ufw delete <rule_number>` - delete the rule - you probably have IPV4 and IPV6 rules, so you need to delete both.
- After you deleted the rule, you need to check the status with `ufw status numbered` and see that the rule is deleted and which rule number is next.
- `ufw allow 22/tcp` - add the rule without a limit.
OR
- `ufw limit 22/tcp 100/minute` - add a higher limit.
In case of Coolify Cloud, you can enable connection from Coolify Cloud IP addresses by adding the following to the UFW rules:
```sh
ufw insert 1 allow from <ipv4>/22 to any port 22
ufw insert 2 allow from <ipv6>/22 to any port 22
```
> You can find the IP addresses in the Coolify Cloud here: https://coolify.io/ipv4.txt and https://coolify.io/ipv6.txt
@@ -1,19 +1,18 @@
---
title: "Introduction"
title: Raspberry Pi Crashes
description: Here are some common issues for fixing Raspberry Pi crashes.
---
#### 1. Raspberry Pi Crashes
# Raspberry Pi Crashes
If you're using a Raspberry Pi with only 2GB of RAM, you may experience system crashes even with swap space enabled.
This is likely due to the slower SD cards often used in Raspberry Pis, which can be unstable.
To resolve this, you can:
## Solution
- Upgrade to a Raspberry Pi with 4GB+ of RAM for better stability.
- Or, limit Dockers memory usage by adding the following configuration to your `/etc/docker/daemon.json` file:
```json
{
"memory": "1.8g"
}
```
```
@@ -0,0 +1,17 @@
---
title: 2FA Stopped Working
description: Here are some common issues for fixing 2FA stopped working.
---
# 2FA Stopped Working
It is usually a time synchronization issue.
## Diagnosis
- Check your server's time with `date` - if the time is off, you need to synchronize it.
- Check your NTP configuration with `cat /etc/ntp.conf`.
- Check with `systemctl status systemd-timesyncd.service` if your operating system is using systemd to synchronize time.
- Check your firewall (`ufw`, `iptables`) rules to see if you have any rules that block time synchronization ports (`123/udp, 123/tcp`).
## Solution
- If your operating system is using systemd, you can synchronize the time with `sudo timedatectl set-ntp true`.
- If your operating system is not using systemd, you can synchronize the time with `sudo ntpdate ntp.ubuntu.com`.
@@ -0,0 +1,14 @@
---
title: Server Validation Issues
description: Here are some common issues for fixing server validation issues.
---
# Server Validation Issues
You cannot validate your server because of a validation error.
## Symptoms
- During validation you receive a `error in libcrypto` error.
## Solution
Check your private key added to Coolify if it is correct, it is probably missing a few things, like `-----BEGIN OPENSSH PRIVATE KEY-----` and `-----END OPENSSH PRIVATE KEY-----`.
@@ -1,6 +0,0 @@
---
title: LetsEncrypt not generating new certificate
---
# LetsEncrypt not generating new SSL certificate
- https://github.com/ShadowArcanist/coolify-new-docs/issues/12
-6
View File
@@ -1,6 +0,0 @@
---
title: Wildcard SSL
---
# Coolify not using Wildcard SSL Certificates
- https://github.com/ShadowArcanist/coolify-new-docs/issues/15
-19
View File
@@ -1,19 +0,0 @@
# Project Name
> Project description goes here
## Documentation
- [What is Coolify](docs/get-started/introduction.md): Introduction to Coolify
# API Reference
- [Cloud vs Self-host](docs/troubleshoot/cloud-vs-selfhost.md)
- [Development](docs/troubleshoot/dev.md)
- [Downgrade](docs/troubleshoot/downgrade.md)
- [Installation](docs/troubleshoot/installation.md)
- [Support](docs/troubleshoot/support.md)
- [Uninstallation](docs/troubleshoot/uninstallation.md)
- [Upgrade](docs/troubleshoot/upgrade.md)
- [What is Coolify](docs/troubleshoot/what-is-coolify.md)
+2
View File
@@ -36,6 +36,8 @@ http {
location / {
root /usr/share/nginx/html/docs;
index index.html;
# # Add rewrite rule to handle URLs without trailing slash
# rewrite ^([^.]*[^/])$ $1/ permanent;
try_files $uri $uri/ $uri.html =404;
}
# non existent pages are redirected to 404.html