Applications
An application could be any type of web application — a static site, a Node.js application, a PHP application, and more.
For complex applications, you can use Docker Compose based deployments or the one-click services.
How Deployments Work
Corelix deploys all applications as Docker containers. This means your app runs inside an isolated container on your server.
Key Concepts:
- Docker Image: A packaged version of your application with all dependencies included
- Container: A running instance of your Docker image
- Build Process: Transforms your source code into a Docker image ready for deployment
You have two options for deploying applications:
- Build on Corelix: Use build packs to automatically create Docker images from your source code
- Use Pre-built Images: Deploy existing images from registries like Docker Hub or GitHub Container Registry
Building Docker images can be resource-intensive. You can use a dedicated build server to handle builds separately from your production server.
Examples
The list is not complete. You can host almost any application that you want, not just the ones listed here.
General Configuration
Commands
You can overwrite the default commands by setting a custom value on the UI.
- Build
- Install
- Start
If you leave it empty, Nixpacks will detect which commands to run. For example, in Node.js, it will check the lock files and run npm ci or yarn install or pnpm install accordingly.
Base Directory
Useful for monorepos. You can set the base directory for all the commands that will be executed.
Public Directory
If you are building a static site, it is important to set the public directory, so the builder will know which directory to serve.
Port Exposes
Port exposes are required for Docker Engine to know which ports to expose. The first port will be the default port for health checks.
Examples:
- Node.js application on port 3000:
3000 - PHP-FPM application on port 9000:
9000 - Nginx server on port 80:
80
Port Mappings
You will lose some functionality if you map a port to the host system, like Rolling Updates.
If you would like to map a port to the host system (server), you can do it like this: 8080:80.
This will map the port 8080 on the host system to the port 80 inside the container.
Environment Variables
Persistent Storage
Health Checks
By default, all containers are checked for liveness.
Traefik Proxy won't work if the container has a health check defined but is unhealthy. If you do not know how to set up health checks, turn it off.
Rollbacks
You can rollback to a previous version of your resource. At the moment, only local images are supported.
Resource Limits
By default, the container won't have any resource limits. You can set the limits in the UI. For more details, read the Docker documentation.
Build Packs
Build packs help transform your source code into Docker images. Corelix supports several build pack options:
- Nixpacks — Automatic detection and building (recommended for most applications)
- Static — For static sites and SPAs
- Dockerfile — Use your own custom Dockerfile
- Docker Compose — For multi-service applications
- Docker Image — Deploy pre-built images from registries
Corelix adds three additional build types not available in the base Coolify platform:
- Railpack — Next-generation build system from Railway, with auto-detection
- Heroku Buildpacks — Use Heroku's Cloud Native Buildpacks (
heroku/builder:24) - Paketo Buildpacks — Use Paketo's Cloud Native Buildpacks (
paketobuildpacks/builder-jammy-base)
These are available in the Build Pack dropdown when configuring any application.
Nixpacks is used by default, which automatically detects your application type and builds it accordingly. For most applications, you won't need to configure anything.
Deployment Types
There are several types of application deployments available:
- Public Git Repository
- Private Git Repository (GitHub App)
- Private Git Repository (Deploy Key)
- Based on a Dockerfile
- Based on a Docker Compose
- Based on a Docker Image
Advanced
Static Site
This feature is only available for Nixpacks buildpacks.
If you need to serve a static site (SPA, HTML, etc), you can set this to true. It will be served by Nginx. Disabled by default.
Force HTTPS
If you would like to force HTTPS, so no HTTP connections allowed, you can set this to true. Enabled by default.
Auto Deploy
This feature is only available for GitHub App based repositories.
If you would like to deploy automatically when a new commit is pushed to the repository, you can set this to true. Enabled by default.
Preview Deployments
Preview deployments are a great way to test your application before merging it into the main branch.
URL Template
You can set up your preview URL with a custom template. Default is {{pr_id}}.{{domain}}.
This means that if you open a Pull Request with ID 123, and your resource domain is example.com, the preview URL will be 123.example.com.
Git Submodules
If you are using git submodules, you can set this to true. Enabled by default.
Git LFS
If you are using git LFS, you can set this to true. Enabled by default.