Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
846ca48
New Build Docs
ShadowArcanist Mar 15, 2025
203b3b8
Added builds introduction page content & Fixed the wrong file path on…
ShadowArcanist Mar 16, 2025
85169aa
Added Build packs page content
ShadowArcanist Mar 16, 2025
842036e
Added packs md files - no content yet..
ShadowArcanist Mar 16, 2025
fd6cbdd
Moved Build packs introduction page to it's own directory
ShadowArcanist Mar 16, 2025
4938817
Added build pack subpages to sidebar
ShadowArcanist Mar 16, 2025
8257479
Renamed Build pack introduction.md to overview.md
ShadowArcanist Mar 16, 2025
8fcdd8c
Renamed docker-file to dockerfile for build packs
ShadowArcanist Mar 16, 2025
4364eaf
Nixpacks build pack WIP - only started
ShadowArcanist Mar 24, 2025
998d9d5
Added hyperlink to build servers page on intro page
ShadowArcanist Apr 1, 2025
8343023
Added static build pack guide - WIP
ShadowArcanist Apr 1, 2025
c78c1c8
Added screenshot images for static build pack
ShadowArcanist Apr 2, 2025
f8a4a53
Added hyperlink to static build pack
ShadowArcanist Apr 2, 2025
5ae268e
Added content for Nixpacks build packs - WIP
ShadowArcanist Apr 3, 2025
058f07d
Added solution to fix nixpack issue of outdated packages - closes #248
ShadowArcanist Apr 3, 2025
80c8a7b
Added hyperlinks to nixpacks docs
ShadowArcanist Apr 4, 2025
c7734a8
Added images for nixpacks build pack docs
ShadowArcanist Apr 4, 2025
79e2c25
Removed Build commands page
ShadowArcanist Apr 5, 2025
5da7ffb
Added build server guide - WIP
ShadowArcanist Apr 5, 2025
859c454
Added content for Dockerfile build pack - WIP
ShadowArcanist Apr 15, 2025
4520112
Added Images for Dockerfile build pack
ShadowArcanist Apr 16, 2025
e0c7b22
Updated wordings on Dockerfile build pack
ShadowArcanist Apr 16, 2025
0636571
Added Docker compose build pack content - WIP
ShadowArcanist Apr 16, 2025
0fa9942
Fixed wordings on docker compose build pack
ShadowArcanist Apr 16, 2025
c3983d9
Added Images for Docker compose build pack
ShadowArcanist Apr 16, 2025
2f3003c
Added Known Issues and Solutions on Docker compose build pack
ShadowArcanist Apr 16, 2025
d1f1826
Fixed spacing between texts on Dockerfile build pack page
ShadowArcanist Apr 16, 2025
24b54a4
Added images for build server page
ShadowArcanist Apr 16, 2025
4c925e1
Changed few words on build server page
ShadowArcanist Apr 16, 2025
4e97cc8
Added coolify version to build server callout
ShadowArcanist Apr 16, 2025
2a08663
Updated banner image name + src path on img components
ShadowArcanist Apr 16, 2025
5236df6
Merge pull request #222 from coollabsio/shadow/builds-docs
ShadowArcanist Apr 16, 2025
e88573d
Update GitHub Actions workflow to use actions/checkout@v4 and set Doc…
andrasbacsai Apr 16, 2025
652ba1c
Update production build workflow to use actions/checkout@v4 and speci…
andrasbacsai Apr 16, 2025
bcbe68e
Fix indentation in production build workflow for Docker Buildx setup
andrasbacsai Apr 16, 2025
3e471c8
Update sponsors list: remove Stream, add Darweb, WZ-IT, and Supadata;…
andrasbacsai Apr 19, 2025
82289e4
Update sponsor avatar image for Coollabs
andrasbacsai Apr 19, 2025
9cd3a1a
Fully rewritten AWS S3 Backup guide
ShadowArcanist Apr 19, 2025
4eb3785
Updated Sponsor images
ShadowArcanist Apr 19, 2025
0a17b45
Replaced wrong image on builds > docker compose > connect to predefin…
ShadowArcanist Apr 19, 2025
4f67af8
Enhance Vitepress config by loading environment variables for analyti…
andrasbacsai Apr 19, 2025
1134000
Add VITE_ANALYTICS_DOMAIN environment variable to staging build workflow
andrasbacsai Apr 19, 2025
0eb3265
Add ARG VITE_ANALYTICS_DOMAIN to Dockerfile for build configuration
andrasbacsai Apr 19, 2025
0e12dae
Update Dockerfile to set VITE_ANALYTICS_DOMAIN as an environment vari…
andrasbacsai Apr 19, 2025
45cafd0
fix:#257: adjusted bg color of code blocks in light mode to reflect t…
justserdar Apr 19, 2025
47bc8d4
fix:#258: modified backtick css in light mode
justserdar Apr 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/production-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@ jobs:
build:
runs-on: [self-hosted, arm64]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: latest
buildkitd-flags: --debug

- uses: actions/cache@v4.2.0
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/staging-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@ jobs:
build:
runs-on: [self-hosted, arm64]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: latest
buildkitd-flags: --debug

- uses: actions/cache@v4.2.0
Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Stage 1: Build Stage (oven/bun:1.1.44-alpine, ARM64)
FROM oven/bun:1.1.44-alpine AS builder

ENV VITE_ANALYTICS_DOMAIN=next.coolify.io/docs
RUN apk add --no-cache nodejs npm

# Set working directory and copy necessary files
Expand Down
39 changes: 31 additions & 8 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ import { bundledLanguages } from 'shiki'
import { join, dirname } from 'node:path'
import { tabsMarkdownPlugin } from 'vitepress-plugin-tabs'
import { groupIconVitePlugin } from 'vitepress-plugin-group-icons'

import { loadEnv } from 'vitepress'
const env = loadEnv('', process.cwd())
const sidebar = useSidebar({ spec, collapsible: true })

// Add SSH to bundled languages
Expand All @@ -19,6 +20,8 @@ bundledLanguages['ssh'] = {
path: join(dirname(fileURLToPath(import.meta.url)), '../../node_modules/shiki/languages/ssh-config.tmLanguage.json')
}

console.log(env)

// https://vitepress.dev/reference/site-config
export default defineConfig({
lang: 'en-US',
Expand Down Expand Up @@ -48,7 +51,7 @@ export default defineConfig({
['meta', { property: 'twitter:image', content: 'https://coolcdn.b-cdn.net/assets/coolify/og-image-docs.png' }],
['link', { rel: 'icon', href: '/docs/coolify-logo-transparent.png' }],
['link', { rel: 'icon', type: 'image/x-icon', href: '/docs/public/favicon.ico' }],
['script', { defer: 'true', src: 'https://analytics.coollabs.io/js/script.tagged-events.js', 'data-domain': 'coolify.io/docs' }],
['script', { defer: 'true', src: 'https://analytics.coollabs.io/js/script.tagged-events.js', 'data-domain': env.VITE_ANALYTICS_DOMAIN ?? 'coolify.io/docs' }],
['script', { async: 'true', src: '/docs/trieve-user-script.js' }],
],
themeConfig: {
Expand Down Expand Up @@ -91,24 +94,25 @@ export default defineConfig({
collapsed: false,
items: [
{ text: 'Introduction', link: '/get-started/introduction' },
{
text: 'Installation',
{
text: 'Installation',
link: '/get-started/installation',
collapsed: false,
collapsed: false,
items: [
{ text: 'Upgrade', link: '/get-started/upgrade' },
{ text: 'Downgrade', link: '/get-started/downgrade' },
{ text: 'Uninstallation', link: '/get-started/uninstallation' },
]
},
{ text: 'Usage', link: '/get-started/usage' },
{ text: 'Concepts', link: '/get-started/concepts',
{
text: 'Concepts', link: '/get-started/concepts',
collapsed: true,
items: [
{ text: 'Screenshots', link: '/get-started/screenshots' },
{ text: 'Videos', link: '/get-started/videos' },
]
},
},
{ text: 'Team', link: '/get-started/team' },
{ text: 'Support', link: '/get-started/support' },
{ text: 'Sponsors', link: '/get-started/sponsors' },
Expand All @@ -124,6 +128,25 @@ export default defineConfig({

],
},
{
text: 'Builds',
collapsed: true,
items: [
{ text: 'Introduction', link: '/builds/introduction' },
{
text: 'Build Packs',
collapsed: true,
items: [
{ text: 'Overview', link: '/builds/packs/overview' },
{ text: 'Static', link: '/builds/packs/static' },
{ text: 'Nixpacks', link: '/builds/packs/nixpacks' },
{ text: 'Dockerfile', link: '/builds/packs/dockerfile' },
{ text: 'Docker Compose', link: '/builds/packs/docker-compose' },
]
},
{ text: 'Build Servers', link: '/builds/servers' },
],
},
{
text: 'Applications',
collapsed: true,
Expand Down Expand Up @@ -601,7 +624,7 @@ export default defineConfig({
plugins: [
yaml as any,
llmstxt({
ignoreFiles: [
ignoreFiles: [
'/docs/api-reference/api/**/*',
'**/api-reference/api/**/*'
],
Expand Down
91 changes: 41 additions & 50 deletions docs/.vitepress/theme/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -168,10 +168,11 @@
--vp-font-family-mono: 'JetBrains Mono', 'Fira Code', Consolas, 'Courier New', monospace;

/* Enhanced code highlighting, especially for Safari */
--vp-code-color: #f8f8f8;
--vp-code-link-color: #42b883;
--vp-code-link-hover-color: #35495e;
--vp-code-bg: #292d3e; /* Darker background for better contrast */
--vp-code-color: #24292f;
--vp-code-link-color: #0969da;
--vp-code-link-hover-color: #0969da;
--vp-code-bg: #f6f8fa !important;
--vp-c-text-dark-1: #24292f;
}

/**
Expand Down Expand Up @@ -242,13 +243,13 @@
--vp-c-bg: #0D0B0F;
--vp-c-bg-alt: #0D0B0F;
--vp-c-bg-elv: #202127;
--vp-c-bg-soft: #202127;
--vp-c-bg-soft: #161b22 !important;
--vp-c-text-1: #F2F2F2;
--vp-c-text-2: #9A989D;
--vp-c-text-3: #9A989D;

/* Lighter code background in dark mode */
--vp-code-bg: #1a1a1f; /* Darker background in dark mode */
--vp-code-bg: #161b22 !important; /* Darker background in dark mode */

--vp-custom-block-tip-border: #0C4C69;
--vp-custom-block-tip-text: #A7D2E8;
Expand Down Expand Up @@ -311,7 +312,7 @@

/* Enhanced code highlighting, especially for Safari */
--vp-code-color: #F2F2F2;
--vp-code-bg: #1a1a1f; /* Darker background in dark mode */
--vp-code-bg: #161b22 !important; /* Darker background in dark mode */
}

/* Container padding override */
Expand Down Expand Up @@ -391,7 +392,7 @@ code:hover {
.vp-doc div[class*='language-'] {
position: relative;
margin: 0;
background-color: var(--vp-c-bg-soft);
background-color: var(--vp-code-bg);
border-radius: 10px;
overflow-x: visible;
}
Expand Down Expand Up @@ -574,6 +575,7 @@ code:hover {

/* Reset webkit styles for code blocks */
.vp-doc [class*='language-'] code {

-webkit-text-fill-color: initial !important;
}

Expand Down Expand Up @@ -683,16 +685,16 @@ code:hover {

/* Markdown Labels like NODE_ENV */
:not(pre) > code {
background-color: rgba(40, 44, 52, 0.95) !important;
color: #f0f0f0 !important;
-webkit-text-fill-color: #f0f0f0 !important;
font-weight: 500 !important;
padding: 4px 8px !important;
background-color: rgba(40, 44, 52, 0) !important;
color: rgba(185, 185, 185, 0.795) !important;
-webkit-text-fill-color: rgba(95, 95, 95, 0.795) !important;
font-weight: 600 !important;
padding: 4px 4px !important;
border-radius: 6px !important;
font-size: 0.7em !important;
border: 1px solid rgba(255, 255, 255, 0.15) !important;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2),
0 0 2px rgba(255, 255, 255, 0.05) !important;
border: 1px solid rgba(185, 185, 185, 0.795) !important;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1),
0 0 1px rgba(255, 255, 255, 0.05) !important;
margin: 0 3px !important;
/* text-transform: uppercase !important; */
letter-spacing: 0.02em !important;
Expand All @@ -701,7 +703,7 @@ code:hover {

/* Dark mode adjustments */
.dark :not(pre) > code {
background-color: rgba(50, 50, 60, 0.95) !important;
background-color: rgb(50, 50, 60) !important;
color: #ffffff !important;
-webkit-text-fill-color: #ffffff !important;
border-color: rgba(255, 255, 255, 0.2) !important;
Expand All @@ -720,47 +722,25 @@ code:hover {
}
}

/* Explicitly prevent hover color change for ALL code blocks with higher specificity */
.vp-doc [class*='language-'] code:hover,
div[class*='language-'] code:hover,
pre[class*='language-'] code:hover {
background-color: transparent !important;
/* Disable ALL hover effects for code blocks */
.vp-doc [class*='language-'] *:hover,
.vp-doc div[class*='language-'] *:hover,
.vp-doc pre[class*='language-'] *:hover,
.shiki *:hover,
.vp-code *:hover,
.vp-doc code *:hover,
div[class*='language-'] *:hover,
pre[class*='language-'] *:hover {
color: inherit !important;
-webkit-text-fill-color: inherit !important;
transform: none !important;
box-shadow: none !important;
border-color: transparent !important;
}

/* Additional specific prevention with maximum specificity for shell/bash/ssh code blocks */
.vp-doc .language-bash code:hover,
.vp-doc .language-ssh code:hover,
.vp-doc .language-sh code:hover,
div.language-bash code:hover,
div.language-ssh code:hover,
div.language-sh code:hover,
pre.language-bash code:hover,
pre.language-ssh code:hover,
pre.language-sh code:hover,
.language-sh code:hover,
.language-sh .line:hover,
.language-sh span:hover {
background-color: transparent !important;
color: inherit !important;
-webkit-text-fill-color: inherit !important;
transform: none !important;
box-shadow: none !important;
border-color: transparent !important;
text-decoration: none !important;
}

/* Override any other hover effects for code blocks */
.vp-doc pre *:hover,
.shiki *:hover,
.vp-code *:hover {
background-color: inherit !important;
color: inherit !important;
-webkit-text-fill-color: inherit !important;
}
/* Remove all the other hover prevention blocks since they're now consolidated above */

@media (prefers-color-scheme: dark) {
p code:hover, li code:hover,
Expand All @@ -776,4 +756,15 @@ pre.language-sh code:hover,
border-radius: 8px;
overflow-x: auto;
}
}

/* Override Shiki theme colors for light mode */
.shiki.github-light {
--shiki-light-keyword: #cf222e !important; /* red */
--shiki-light-string: #0a3069 !important; /* dark blue for strings */
--shiki-light-function: #8250df !important; /* purple */
--shiki-light-number: #0550ae !important; /* blue */
--shiki-light-boolean: #0550ae !important; /* blue */
--shiki-light-comment: #6e7781 !important; /* gray */
--shiki-light-property: #953800 !important; /* brown */
}
42 changes: 42 additions & 0 deletions docs/builds/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: Introduction to Builds
---

<ZoomableImage src="/docs/images/builds/introduction/builds-banner.webp" />

<br />

Coolify deploys all applications as Docker containers. This means your app, database, or website runs inside a container.

No matter what you deploy or which build pack you use, it is always run as a Docker container.


## How Docker Containers Work
- **Docker Image:** To run a container, you need a Docker image.
- **Dockerfile:** The image is built using a Dockerfile, just a file with step-by-step instructions to build the docker image.
- **Build Process:** If you're building your own application, you'll need to create your docker image using a Dockerfile.
- Coolify helps with this build process by letting you use different build packs. A commonly used build pack is [Nixpacks ↗](https://nixpacks.com?utm_source=coolify.io), which automatically prepares a Dockerfile and builds the docker image for you.


## Build Packs in Coolify
Coolify offers build packs like [Nixpack ↗](https://nixpacks.com?utm_source=coolify.io) and **Static Build Pack** that automatically create your Docker image.

If you need more control over the process, you can write your own Dockerfile and Docker Compose file. In that case, Coolify will use your file to build the image on the server and deploy it as a container.


## Using Pre-built Images
If you already have a Docker image stored in a registry (for example, [Docker Hub ↗](https://hub.docker.com/?utm_source=coolify.io) or [GitHub Container Registry ↗](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry?utm_source=coolify.io)), you can use that image directly in Coolify. This means you do not have to rebuild the image on your server.


## Managing Build Resources
Building Docker images can consume a lot of resources on your server, potentially causing it to crash.

To reduce the load on your main server, Coolify allows you to connect additional servers to manage the build process.

You can set up a separate [build server ↗](/builds/servers) to handle the builds, or use external tools like [GitHub Actions ↗](https://github.com/features/actions?utm_source=coolify.io) to build your images and push them to any container registry.

Once the images are pushed, you can easily use them on Coolify.


## What's Next?
Check the pages in the sidebar to learn more about build packs, build commands, and build servers.
Loading
Loading