# Coollabs > ## Documentation Index --- # Source: https://docs.coollabs.io/coolify/v3/architecture.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Coolify consist of : * [User Interface](#ui) * [API](#api) * [HTTP/TCP Proxy](#http-proxy) * [TCP Proxies](#tcp-proxies) for databases. * [SSL certificates](#ssl-certs) are handled by Let's Encrypt. ## User Interface The UI you could use to configure your instance and all resources, see their status, usage, etc. It is a static SPA site, based on [SvelteKit](https://kit.svelte.dev). ## API The backend part of Coolify, that communicates with remote resources, with the database, with the Docker Engines, etc. It is a backend service, based on [Fastify](https://fastify.io). ## HTTP Proxy Coolify dynamically configures an instance of [Traefik](https://traefik.io) to generate reverse proxy configurations, generate SSL certs and route all incoming traffic to the right container. ## TCP Proxies Databases deployed with Coolify could be reachable from over the internet. For that Coolify starts a separate instance of Traefik, to configure and proxy the TCP connections from the internet. ### Why a separate proxy needed for this? You can start as many databases as your server could handle, so to bind for example 100 ports to a single process could be CPU intensive task and does not make sense if you were only would like to use 10 of it. With this method you can dynamically bind ports on the host server, one-by-one. ### So 10 databases will create 10 Traefik instances? Yes. Traefik is written in a way, that it use only \~10MB of memory, so it is not resource heavy. ## SSL Certs Coolify would generate SSL certificates for your resources if you defined an URL starting with `https`. ### Let's Encrypt Coolify using [Let's Encrypt](https://letsencrypt.org/) helper to request, generate and store SSL certificates. ### www vs non-www Certificates are only generated for the `defined URL`. If you specify a non-www URL, only the non-www will have a certificate. You cannot reach the www URL. > Usually, you need to redirect www to non-www on the DNS layer. If you would like to generate SSL certificates for both, there is an option called `Generate SSL for www and non-www?` for applications and services. --- # Source: https://docs.coollabs.io/contact.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # Contact > Ways to contact us. The prefered way to contact us by email at [hi@coollabs.io](mailto:hi@coollabs.io). But you can reach us over: * Twitter/X: [@heyandras](https://twitter.com/heyandras) * Mastodon: [@andrasbacsai](https://fosstodon.org/@andrasbacsai) * Telegram: [@andrasbacsai](https://t.me/andrasbacsai) * Discord: [Invitation](https://coollabs.io/discord) --- # Source: https://docs.coollabs.io/coolify/v3/databases.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Quickly deploy databases with a few clicks. * [MongoDB](https://mongodb.com) - [AMD64](https://hub.docker.com/r/bitnami/mongodb/)/[ARM](https://hub.docker.com/_/mongo/) * [MariaDB](https://mariadb.org/) - [AMD64](https://hub.docker.com/r/bitnami/mariadb/)/[ARM](https://hub.docker.com/_/mariadb/) * [MySQL](https://www.mysql.com/) - [AMD64](https://hub.docker.com/r/bitnami/mysql/)/[ARM](https://hub.docker.com/_/mysql/) * [PostgreSQL](https://www.postgresql.org/) - [AMD64](https://hub.docker.com/r/bitnami/postgresql/)/[ARM](https://hub.docker.com/_/postgres/) * [CouchDB](https://couchdb.apache.org/) - [AMD64](https://hub.docker.com/r/bitnami/couchdb/)/[ARM](https://hub.docker.com/_/couchdb/) * [Redis](https://redis.io/) - [AMD64](https://hub.docker.com/r/bitnami/redis/)/[ARM](https://hub.docker.com/_/redis/) To see all the features you could set with environment variables, check the base image links! If you have a new database you would like to add, raise an idea [here](https://github.com/orgs/coollabsio/discussions) to get feedback from the community! ## Features ### Change default random passwords You can change all your passwords from the UI (the database should run). ### Set it public You can make your database public. Default: `off` > Useful for backup and restore, or to reach your database outside of your > server. --- # Source: https://docs.coollabs.io/coolify/v3/applications/deno.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null # Deno Base docker image: [denoland/deno:latest](https://registry.hub.docker.com/r/denoland/deno) --- # Source: https://docs.coollabs.io/coolify/v3/destinations.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Destinations define where to deploy your application, database, or service. Destinations are helpful to create `network separation from different applications`. Applications, databases, and services within the same network could communicate with each other. ## Supported Destinations * [Local Docker Engine](#local-docker-engine) * [Remote Docker Engine](#remote-docker-engine) ## Local Docker Engine It means all resources are deployed to the same server as Coolify is running on. ### Configuration 1. **Engine** - `/var/run/docker.sock` - You cannot modify this. 2. **Network** - Used to create docker networks within the defined Docker Engine. 3. **Coolify Proxy** - This is a special proxy based on [Traefik](https://traefik.io/traefik/), configured automatically by Coolify. ## Remote Docker Engine Allows you to use any kind of server as a destination endpoint. You can have one Coolify instance as a control-plane/dashboard and deploy to unlimited number of remote servers. ### Requirements The server needs to have: 1. Install Docker Engine (20.11+) - [instructions](https://docs.docker.com/engine/install/). 2. Add SSH `public key` to `.ssh/authorized_keys` file in the proper user's home directory, recommended `root`, but it can be [any user who have access to `Docker Engine`](https://docs.docker.com/engine/install/linux-postinstall/). 3. Add the `private key` of the same SSH key added to the remote server in the `Settings/SSH Keys` menu. --- # Source: https://docs.coollabs.io/coolify/v3/applications/docker-compose.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null The `Docker Compose` build pack is a powerful one. You can use your docker-compose.yaml files to build & serve your applications. It means you can deploy any unsupported (natively with build packs) applications, services, anything, where a simple docker-compose file is enough! --- # Source: https://docs.coollabs.io/coolify/v3/applications/docker.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null The Docker build pack is a powerful one. You can use your Dockerfile to build & serve your applications. It means you can deploy any unsupported (natively with build packs) applications, services, anything, where a simple Docker file is enough! ## Sample with [Baserow](https://baserow.io/) [docker tutorial](https://baserow.io/docs/installation%2Finstall-with-docker) I choose Baserow as an example application because the config can be tweaked to allow for different ways of running the application. You can for example try using a postgres and redis deployed with coolify and pass their urls as variables to Baserow application. * Create a repository on GitHub where you will keep only the Dockerfile. * Create and push a simple dockerfile, than only mentions the image you want to use, like so: ```docker theme={null} FROM baserow/baserow:1.10.2 ``` * Create an application in Coolify: 1. Click on `Create New Resource` button and select `Application` 2. Select a GitSource that has access to the repository or specify a Public Repository URL. With Public Repository, you won't get the auto-commit builds. You need to initiate rebuild manually. 3. Select `Docker` as build pack. 4. Make sure the `port` field is set, otherwise Coolify won't know which port to expose (for example in the case of baserow it will be 80 instead of 3000). 5. Add any env variables that are required to start the container in the top right `Secrets` panel - in case of Baserow the only thing you need to add is `BASEROW_PUBLIC_URL` which should correspond to the url you've set for the application. 6. If your application needs volumes mounted / to persist data between runs safely add persistent storage in the bottom right `Persistent Storage` panel. In the case of Baserow you need to add only `/baserow/data` as a volume. 7. Optionally switch on debug logs - should be the law option in the app settings panel. * Deploy your application. * Enjoy. --- # Source: https://docs.coollabs.io/coolify/v3/faq.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null ## Run Coolify with existing Traefik instance Here is a [detailed blog](https://beaussan.io/blog/coolify-into-existing-traefik) post from [Nicolas Beaussart](https://twitter.com/beaussan) on how to use Coolify with your existing Traefik instance! ## Rollback to a specific version You can always roll back to a specific Coolify version (for example 3.11.1) with the following command: ```bash theme={null} wget -q https://get.coollabs.io/coolify/install.sh -O install.sh; sudo bash ./install.sh -fx 3.11.1 ``` As database schema changes sometimes, there could be a potential problem where the UI/API is looking for old schema that does not exists anymore and throws an error. Then you should revert the rollback. ## Reset Root password This will tag the root user with a password reset flag. Then if you login in the next 10 minutes, your password will be changed to the password you are using to login. > If expires, just execute this script again. ```bash theme={null} docker exec coolify bash -c "sqlite3 /app/db/prod.db 'update User set password=\"RESETME\", updatedAt=`date +%s%N|cut -b1-13` where id=0'" ``` --- # Source: https://docs.coollabs.io/coolify/v3/firewall.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null You need to allow the following ports in your firewall: * Coolify: `3000` (required) * Reverse Proxy: `80, 443` (optional) * [Public Port Range](./settings.md#public-port-range): `9000-9100` (optional) If you are using `Oracle Cloud free ARM server`, you need to allow these ports inside Oracle's Dashboard, otherwise you cannot reach your instance from the internet after installation. --- # Source: https://docs.coollabs.io/coolify/v3/applications/gatsby.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [webdevops/nginx:alpine](https://hub.docker.com/r/webdevops/nginx) What is the difference between these and the `static` build pack? The main difference is the predefined configurations. You do not need to set the proper install/build commands, publish directories, etc. Coolify will handle it for you. You can customize this image with environment variables, see the [docs](https://dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/nginx.html). --- # Source: https://docs.coollabs.io/coolify/v3/applications/heroku.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Based on [heroku builder](https://github.com/heroku/builder). You can easily migrate your Heroku applications with this build pack. --- # Source: https://docs.coollabs.io/fonts/how-to-use.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # How to use > How to get started with Fonts Change the domain name from `fonts.googleapis.com` to `api.fonts.coollabs.io` in your `` tag; that's it! Example: Original `` content: ```html theme={null} ``` Replaced `` content: ```html theme={null} ``` Or with `@import`: From: ```css theme={null} ``` To: ```css theme={null} ``` Currently, it only supports the css2 [API endpoint](https://developers.google.com/fonts/docs/css2). ## Icons Currently, [Material Icons](https://fonts.google.com/icons) is supported. Original `` content: ```html theme={null} ``` Replaced `` content: ```html theme={null} ``` --- # Source: https://docs.coollabs.io/coolify/v3/iam.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # Identity & Access Management ## Users After you successfully installed Coolify, you can start configuring it via the provided UI. ### Registration The first registered user will be the `root/admin` user (with id 0) of your Coolify instance. This user will see and change all resources deployed, access system-wide configurations, initiate the one-click update process, etc. After the first user is registered successfully, `registration is disabled` to prevent unwanted registrations. You can enable registration in the `Settings` menu. Every other user won't access system-wide configurations and only see their own team's resources. ### Authentication Methods `Email/password` registration is supported. ### Reset Password Admins can reset the passwords of team members in the `Settings` menu. If a password reset is requested, the user has 10 minutes to do it. Password reset is done through the login process. The user's new password will be the one used on the login form. After 10 minutes, the old password can be used to log in, and the password reset process is stopped. ## Teams Each registered user has its own team automatically. Each team only has access to its own resources. You can register any number of teams and invite any number of users to it. You can only access other team's resources if someone with an `admin` privilege invites you to that team. ### Privileges Team members could have two kinds of privileges: * `admin` has the same privileges as the `owner` of the team. Admin can check, modify, delete any resources that are owned by the team. * `read` can only read things. ### Root Team With the first user, a `root team` is also created with id `0`. Users in this team have the same privileges as the first user so that they see and change all resources deployed, access system-wide configurations, initiate one-click update process, etc. --- # Source: https://docs.coollabs.io/coolify/v3/installation.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null This section provide details on how to install Coolify. Before running the install script, please ensure your server has the following packages installed: * `sudo` * `wget` * `curl` ## Scripted Prompts for answers: ```bash theme={null} wget -q https://get.coollabs.io/coolify/install.sh \ -O install.sh; sudo bash ./install.sh ``` No question asked (force): ```bash theme={null} wget -q https://get.coollabs.io/coolify/install.sh \ -O install.sh; sudo bash ./install.sh -f ``` Opt-out from telemetry (count installed instances on the [landing page](https://coolify.io)) ```bash theme={null} wget -q https://get.coollabs.io/coolify/install.sh \ -O install.sh; sudo bash ./install.sh -n ``` You can review the script [here](https://github.com/coollabsio/get.coollabs.io/blob/main/static/coolify/install.sh). ## Manually 1. Need to set the required environment variables in a `.env` file (see [below](./installation.md#environment-variables)) 2. Need to have [Docker Engine v20.10+](https://docs.docker.com/engine/install/) installed on your server. ### Environment Variables Coolify needs to have the following environment variables to be set in advance. > This is done automatically with the automated installation script. ```text theme={null} COOLIFY_APP_ID= COOLIFY_SECRET_KEY= COOLIFY_DATABASE_URL=file:../db/prod.db COOLIFY_IS_ON=docker COOLIFY_WHITE_LABELED=false COOLIFY_WHITE_LABELED_ICON= COOLIFY_AUTO_UPDATE=false ``` | Variable | Explanation | | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | COOLIFY\_APP\_ID | A random UUID. Used to differentiate between installed instances. Also used to enable/disable telemetry (empty = disabled). | | COOLIFY\_SECRET\_KEY | Used to encrypt all kinds of private data. **Must be `32` characters long**. | | COOLIFY\_DATABASE\_URL | SQLite database URL. **Must be under `../db`** . | | COOLIFY\_IS\_ON | Where Coolify is deployed to. Currently, only **`docker`** is supported. | | COOLIFY\_WHITE\_LABELED | It removes the "branding" of your Coolify instance. Please get in touch with me before using this. | | COOLIFY\_WHITE\_LABELED\_ICON | A remote icon to be replaced on the login/registration page. | | COOLIFY\_AUTO\_UPDATE | It updates your Coolify instance automatically behind the scenes. | ## Options ```sh theme={null} Usage: install.sh [options...] -h, --help Show this help menu. -v, --version Show script version. -d, --debug Show debug logs during installation. -f, --force Force installation. -r, --restart Only restarts Coolify. -n, --do-not-track Opt-out of telemetry. # You can set export DO_NOT_TRACK=1 in advance. -a, --auto-update Enable auto update feature of Coolify. -w, --white-labeled Install white-labeled version. # Contact me before using it: https://docs.coollabs.io/contact -i, --white-labeled-logo Custom logo for white-labeled. # Should be a http/https URL. ``` ## Change Configuration You can always execute the installation script with different options to reconfigure Coolify. For example: * If you want to opt-out of tracking, execute the install script with `--do-not-track`. * If you want to use the white-labeled version, execute the install script with `--white-labeled`. Some configurations are not preserved if you would like to change them on an already configured instance. These options are the following: `--white-labeled`, `--do-no-track`, `--white-labeled-icon`. So if you installed Coolify with `--do-no-track` before, and you want to also use `--white-labeled` option, you need execute the install script with `--do-not-track` and `--white-labeled`! ## Restart If for some reason, your instance crashes, you can restart it with the following command: ```bash theme={null} wget -q https://get.coollabs.io/coolify/install.sh \ -O install.sh; sudo bash ./install.sh -r ``` ## Uninstall You can easily uninstall Coolify by stopping the following containers, `coolify`, `coolify-proxy` and `coolify-fluentbit`, or execute the following script: ```bash theme={null} docker stop -t 0 coolify coolify-proxy coolify-fluentbit; docker rm coolify coolify-proxy coolify-fluentbit ``` You also need to cleanup all the docker volumes as well. ```bash theme={null} docker volume rm coolify-db coolify-letsencrypt coolify-local-backup coolify-logs coolify-ssl-certs coolify-traefik-letsencrypt ``` And delete all configurations in `~/coolify`: ```bash theme={null} rm -f ~/coolify ``` --- # Source: https://docs.coollabs.io/safetyper/introduction.md # Source: https://docs.coollabs.io/introduction.md # Source: https://docs.coollabs.io/fonts/introduction.md # Source: https://docs.coollabs.io/coolify/v3/services/introduction.md # Source: https://docs.coollabs.io/coolify/v3/introduction.md # Source: https://docs.coollabs.io/coolify/v3/applications/introduction.md # Source: https://docs.coollabs.io/coolify/introduction.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # Introduction You can find the documentation [here](https://coolify.io/docs). --- # Source: https://docs.coollabs.io/coolify/v3/applications/laravel.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [webdevops/php-apache:8.0-alpine](https://hub.docker.com/r/webdevops/php-apache/) You can customize this image with environment variables. See the [docs](https://dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/php-apache.html). --- # Source: https://docs.coollabs.io/coolify/v3/applications/nestjs.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [node:lts](https://hub.docker.com/_/node) Your application will be served as a NodeJS application. --- # Source: https://docs.coollabs.io/coolify/v3/applications/nextjs.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [node:lts](https://hub.docker.com/_/node) Your application will be served as a NextJS application. You can define if you would like to deploy your application with SSR or SPA. --- # Source: https://docs.coollabs.io/coolify/v3/applications/nodejs.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [node:lts](https://hub.docker.com/_/node) Your application will be served as a NodeJS application. --- # Source: https://docs.coollabs.io/coolify/v3/applications/nuxtjs.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [node:lts](https://hub.docker.com/_/node) Your application will be served as a NuxtJS application. You can define if you would like to deploy your application with SSR or SPA. --- # Source: https://docs.coollabs.io/coolify/v3/applications/php.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [webdevops/php-nginx](https://hub.docker.com/r/webdevops/php-nginx/) or [webdevops/php-apache](https://hub.docker.com/r/webdevops/php-nginx/) PHP build pack contains almost every module necessary for your applications. By default, Nginx is used to serve your application, but if you have a `.htaccess` file in the root directory of your repository, `apache` is used to take advantage of the customs rules defined. Composer will install all dependencies if `composer.json` is detected. You can customize this image with environment variables, see the [docs](https://dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/php-nginx.html). --- # Source: https://docs.coollabs.io/coolify/v3/applications/python.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [python](https://hub.docker.com/_/python) --- # Source: https://docs.coollabs.io/coolify/v3/applications/react-preact.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # React / Preact Base docker image: [webdevops/nginx:alpine](https://hub.docker.com/r/webdevops/nginx) What is the difference between these and the `static` build pack? The main difference is the predefined configurations. You do not need to set the proper install/build commands, publish directories, etc. Coolify will handle it for you. You can customize this image with environment variables, see the [docs](https://dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/nginx.html). --- # Source: https://docs.coollabs.io/coolify/v3/requirements.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null ## Supported Architectures `AMD64` and `ARM` architecture are supported. ## Supported Operating Systems `Debian` based servers are supported, due to the installation script (Coolify itself supports every OS that could run a Docker Engine). If you would like to have other, please consider [open an issue on GitHub](https://github.com/coollabsio/coolify/issues/new). ## Resources Minimum required resources for Coolify: * 2 CPUs * 2 GBs memory * 30+ GB of storage for the images. ## Additional Resources Based on what you would like to run with Coolify, additional resources (CPU, memory, disk) are needed. Self-hosting could be heavy if you would like to run a lot of things. For 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) Hosting 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 > All static sites and one of the NodeJS applications are cached on > [BunnyCDN](https://bunny.net), so the usage is super low on my server. ## Resources for building images Coolify builds images in two places. * `Local server` with Local Docker Engine (the server you installed Coolify on). * `Remote Server` with Remote Docker Engine (the server you added as a Destination). These servers have higher CPU usage on build time, so if you have 1 CPU, it will be a bottleneck! --- # Source: https://docs.coollabs.io/coolify/v3/rollsecretkey.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null In `v3.12.33` a new feature has been added. You can now roll your secret key. This is useful if you think your secret key has been compromised. It is introduced because there was a security issue with the secret key. If you are using a version below v3.12.33, please update your Coolify instance. Technical details: The secret key was generated with the installation date used as a random seed. This means that if someone knows the installation date, they can generate the secret key. This is not a problem if you are using a recent version of Coolify, because the installation date is not used anymore since 2023.07.14. ## How to roll the secret key If you are upgrading form a version below `v3.12.33`, you will be automatically rolled to a new secret key. If you are just installing Coolify, you do not need to do anything. ## Rollback to old secret key (It also solve this [issue](https://github.com/coollabsio/coolify/issues/1148) related to **secretOrPrivateKey must be an asymmetric key when using RS256** or **Getting 500 error when accessing running services**). If you want to rollback to the old secret key, you need to do the followings: 1. Login to your Coolify instance via SSH. 2. Switch to root user (`sudo su -`) and locate your `~/coolify/.env` file. 3. In `~/coolify/.env` file there should be a `COOLIFY_SECRET_KEY` environment variable. 4. Create a `COOLIFY_SECRET_KEY_BETTER` with the same value as `COOLIFY_SECRET_KEY`. 5. Check your database files with `docker exec coolify ls -l /app/db` command. 6. There should be at least on with the name of `prod.db` and a few with `prod.db_`. 7. Locate the oldest one. For example: ``` -rw-r--r-- 1 root root 7901184 Aug 23 09:30 prod.db -rw-r--r-- 1 root root 7901184 Jul 18 10:09 prod.db_1689674942980 <- THIS (date could be different) ``` 8. Make a copy of your `prod.db` file: `docker exec coolify cp /app/db/prod.db /app/db/prod.db_$(date +"%Y%m%d%H%M%S")` 9. Overwrite `prod.db` with the old database file: `docker exec coolify cp /app/db/prod.db_1689674942980 /app/db/prod.db` `app/db/prod.db_1689674942980` will be different in your case 10. Reinstall Coolify with: `cd ~ && wget -q https://get.coollabs.io/coolify/install.sh -O install.sh; sudo bash ./install.sh -f` If you have any questions, please [contact us](../contact.md). ## Force roll secret key 1. Login to your Coolify instance via SSH. 2. Run the following command: `docker exec -ti coolify bash`. Now you are in the Coolify container. 3. You will work in the `/app/.env` file. You can edit it with `vi .env`. 4. Delete `COOLIFY_SECRET_KEY_BETTER`. 5. Login to your Coolify instance on the web interface. 6. Go to `Settings` and fill the `Rollback` input field with `3.12.33` (or the latest version - you can check it [here](https://get.coollabs.io/versions.json)) and click on `Rollback`. If you have any questions, please [contact us](../contact.md). --- # Source: https://docs.coollabs.io/coolify/v3/applications/rust.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [rust](https://hub.docker.com/_/rust) Rust build pack leverages `cargo-chef` to create a cache layer. The following builds will be significantly faster after the first build is successfully done. --- # Source: https://docs.coollabs.io/coolify/v3/secrets.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null You can add secrets (aka environment variables) to your application and to your previews. They are saved encrypted into Coolify's database. If you would like to change one, you need to stop/start or restart (there is a separate button for it) your application. ## Preview Secrets (applications) Preview secrets are different from normal secrets. They only used for PR deployments. With this, you can setup databases for PR deployments, like a staging environment. --- # Source: https://docs.coollabs.io/coolify/v3/settings.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Only users in the `root team` could configure system-wide settings. ## URL Instance Domain > optional You can specify a Fully Qualified Domain Name (FQDN, eg: [https://example.com](https://example.com)) for your Coolify instance. Without this configuration you need to use `:3000` to reach your Coolify instance and all webhooks will be going to the ip address. If you change the domain name and you already have an existing integration with any Git provider, the webhooks (for autobuild and PR deployments, etc...) will fail. You need to reconfigure the URL manually in the GitHub/GitLab App. ## Default Redirect URL > optional Redirect not configured services to this page. Like if you set a DNS entry for `example.com`, but you do not have anything running on this domain, Coolify Proxy will redirect any requests to this `Default Redirect URL`. ## Rollback Coolify to a specific version You can rollback Coolify to any previous version if something is broken on the latest one. Example: 3.11.13 ## Number of Docker Images kept locally > default: 3 You can specify how many Docker images are kept locally for your applications. It helps you to revert to a previous state blazingly fast. ## Preview Domain Separator > default: . The separator used in the PR/MR previews. With the default you get: `PRMRNumber.yourdomain.com` If you set it to: `-` the preview domain will be: `PRMRNumber-yourdomain.com` ## Generate SSL for www and non-www > default: off You can specify if you would like to reach your Coolify instance on www & non-www as well, or just the defined FQDN ([https://example.com](https://example.com) -> non-www). ## Public Port Range > default: 9000-9100 Port rage for on-demand TCP proxies (public databases), services (if need additional proxies). Allow these ports in your [firewall settings](./firewall.md). ## DNS Check > default: on By default, all DNS settings would be resolvable by Let's Encrypt servers and Coolify. If you are using behind a reverse proxy or tunnel, you can disable this check to prevent unnecessary errors. ## Custom DNS Servers > optional > default: the OS configured DNS servers will be used If you have an internal DNS server, you can specify them here with comma separated a list, for example: `1.1.1.1,8.8.8.8`. ## Registration allowed > default: on, but after the first registration, off. After the first registration, this option is enabled to prevent unwanted registrations. ## Auto Update Coolify > default: off If enabled, Coolify checks for update every \~10 minutes and apply them automatically if there is a new version available. All resources (applications, databases, services) are keep running and available. Coolify does not required to run them. Only Git webhooks will fail during the update. ## Do Not Track Set Do Not Track after installation. ## SSH Keys You can add SSH Keys (private keys) to your Coolify instance, which can be used to connect to a [Remote Docker Engine](./destinations.md#remote-docker-engine). ## SSL Certificates You can add custom SSL certificates to Coolify Proxy, even self-signed. ## Docker Registries You can add custom Docker registries and set authentication for it to be able to: * pull/push private images * prevent to be rate limited --- # Source: https://docs.coollabs.io/coolify/v3/sources.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null ## Git Sources Git Sources defines where to fetch/pull your application code. These sources are used to: * Setup helper apps (such as GitHub App, GitLab App) at your Git providers. * Provides access through tokens/ssh keys to your repositories. * Clone your application's code. * Set up webhooks for automated deployments. ## Supported Git Sources * GitHub * GitLab You can use self-hosted or enterprise version of these Git providers as well. ## How to Integrate with Gitlab 1. (in Coolify) If you haven't already, in **Settings**, specify a URL (FQDN) like `coolify.yourdomain.com`. This is not required, but it makes the setup easier. 2. Once that's complete, close the page, navigate to `coolify.yourdomain.com`, and log back in. 3. (in Coolify) In `Git Sources`, add a new GitLab source. 4. In a new browser tab, navigate to your GitLab instance and find the UI to add a new application. 5. (in GitLab) Enter the `Callback URL` as `https://coolify.yourdomain.com/webhooks/gitlab`. 6. (in GitLab) check the following scopes: `api`, `read_repository`, `email`. 7. (in GitLab) Save the application and copy the `Application ID` . 8. (in Coolify) In your new source, paste the `Application ID`. 9. (in GitLab) In the newly created application, copy the `Secret`. 10. (in Coolify) Paste the `Secret`. 11. (in Coolify) Enter the OAuth ID. It will be the located at the end of the url of your GitLab application: `https://yourgitlabdomain.com/oauth/applications/123456`. 12. (in Coolify) Hit save. 13. (in Coolify) In `Applications` add a new application with GitLab as the source. 14. If you're still logged into GitLab, an authorization popup will appear. Click authorize. ## Import Public Git Repositories You can import any public git repositories from [Github](https://github.com) or [Gitlab](https://gitlab.com) with a simple URL Examples GitHub: * [https://github.com/coollabsio/coolify-examples](https://github.com/coollabsio/coolify-examples) -> You can select the branch afterwards. * [https://github.com/coollabsio/coolify-examples/tree/static](https://github.com/coollabsio/coolify-examples/tree/static) -> Preselect `static` branch. Example GitLab: * [https://gitlab.com/aleveha/fastify-example](https://gitlab.com/aleveha/fastify-example) -> You can select the branch afterwards. * [https://gitlab.com/aleveha/fastify-example/-/tree/master](https://gitlab.com/aleveha/fastify-example/-/tree/master) -> Preselect `main` branch. --- # Source: https://docs.coollabs.io/sponsorship.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # Sponsorship > Learn how to sponsor coolLabs All of our projects are backed by community over [OpenCollective](https://opencollective.com/coollabsio) and [GitHub Sponsors](https://github.com/sponsors/coollabsio). ## No Venture Capital? Yes. We are not backed by any VC, because we would like to be a bootstrapped business. The truth is, we already said no to 30+ inquiries, because we believe we can achieve our dreams without it. ## How to be financially sustainable? All of our projects will be open-source & self-hostable, no matter what. But to be financially sustainable: * We have some products that will have a hosted, but paid version. --- # Source: https://docs.coollabs.io/coolify/v3/applications/static.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [webdevops/nginx:alpine](https://hub.docker.com/r/webdevops/nginx) Your application will be served as a static site. You can define install or build commands, so it will build it before serving your static site. Think of the following frameworks: React, Astro, Nuxt, SvelteKit, Gatsby, etc. You can customize the base image with environment variables, see the [docs](https://dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/nginx.html). --- # Source: https://docs.coollabs.io/coolify/v3/applications/svelte.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [webdevops/nginx:alpine](https://hub.docker.com/r/webdevops/nginx) What is the difference between these and the `static` build pack? The main difference is the predefined configurations. You do not need to set the proper install/build commands, publish directories, etc. Coolify will handle it for you. You can customize this image with environment variables, see the [docs](https://dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/nginx.html). If you are using SvelteKit then you should the [NodeJS](https://docs.coollabs.io/coolify/applications/nodejs) application instead. --- # Source: https://docs.coollabs.io/coolify/v3/applications/vuejs.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.coollabs.io/llms.txt > Use this file to discover all available pages before exploring further. # null Base docker image: [webdevops/nginx:alpine](https://hub.docker.com/r/webdevops/nginx) What is the difference between these and the `static` build pack? The main difference is the predefined configurations. You do not need to set the proper install/build commands, publish directories, etc. Coolify will handle it for you. You can customize this image with environment variables, see the [docs](https://dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/nginx.html).