No applications yet
Deploy your first app in seconds.
Toggle behavioral flags. Changes save instantly.
Automatic deployment on git push
When enabled, pushes to auto-deploy via the registered webhook.
Deploy strategy
Bot application toggle moved to the Configuration tab. Need to rebuild the image fresh once? Use Force Redeploy at the top of this page.
No deployments.
CPU
Memory
Network I/O
CPU history (last 5 min)
Memory history (MB, last 5 min)
Point your GitHub / GitLab repository at the URL below. CoolifyGo verifies the signature on every call (GitHub X-Hub-Signature-256 / GitLab X-Gitlab-Token). Failed signatures are logged but do not deploy.
| When | Source | Event | Status | Result |
|---|---|---|---|---|
Stops the container, removes the image, and drops the database row.
To revert a deploy, push a git revert commit — the auto-deploy webhook will rebuild from the reverted code.
No services yet
Launch Redis, Grafana, Gitea and more.
Brings the compose project down and drops the row.
Edit this to change exposed ports, images, volumes, etc. Take effect on the next Restart.
Auto-add restart policy
Inject restart: unless-stopped into every service that doesn't declare one — services come back after a host reboot. User-set values are never overridden.
Substituted into the compose YAML at deploy time (e.g. ${ADMIN_PASS}).
CPU
Memory
Network I/O
No databases yet
PostgreSQL, MySQL, MongoDB, Redis — one click.
Password rotation runs ALTER USER inside the cluster — the connection URL stays valid the moment you save.
Created automatically when the container boots for the first time.
Logical name pinned at creation — derives the actual datname inside the shared cluster.
Root user (initial container env)
Expose publicly
When off, only apps on the coolify network can reach this DB.
Anyone with the password and the host port can connect. Allocator picks from Settings → Network range; toggle off + on to reallocate.
Logical databases live inside the shared cluster container — they can't bind their own host port. To expose this DB externally, open the cluster and toggle Expose publicly there; the public URL below will appear automatically.
Append-only file (AOF)
Persist every write before ack. Without AOF, a crash loses anything since the last RDB snapshot. Stop the database to change.
Apps on the coolify network can use this DSN to reach the logical database directly through the shared cluster.
External clients can reach this logical via the shared cluster's bound host port. Toggle the cluster's public exposure off to make this URL go away.
Changing user/password applies to the DB record only. The running container keeps its current credentials until restarted with a wiped volume.
VACUUM FULL rewrites tables to reclaim disk space and return it to the OS. Holds an exclusive lock on each table — reads and writes block until it finishes. Can take minutes to hours for large databases.
Stops the container and drops the row. Volume is removed too.
Scheduled backups
When enabled, the schedule below dumps the DB and ships a gzipped file via Telegram.
Evaluated in . Change globally under Settings → Updates.
| Started | Status | Trigger | Size |
|---|---|---|---|
| Started | Status | Source | File | Size |
|---|---|---|---|---|
CPU
Memory
Network I/O
CPU history (last 5 min)
Memory history (MB, last 5 min)
Expose cluster publicly
When off, only apps on the coolify network can reach the cluster.
Anyone with the password and the host port can connect. Allocator picks from Settings → Network range.
PostgreSQL version
Changing the version recreates the container. All logical databases briefly become unreachable during the recreate.
The shared cluster acts as a host for many logical databases. Each logical gets its own user + password + database name on the same PostgreSQL server, so apps see isolated DSNs. The cluster's own admin credentials are not exposed in the UI — connect from a logical instead.
Lifecycle & data safety
Stop / Restart / Start — recreates the container but reuses the same data volume, so every logical role, datname, and table survives across the bounce. There is a brief connection blip (≈2–5 s) while the new container becomes healthy.
Public exposure toggle — also triggers a container recreate to bind the host port. Same brief blip, no data loss.
Version upgrade — minor bumps (e.g. 15.3 → 15.5) recreate cleanly. Major bumps (e.g. 15 → 16) will refuse to start because PG's data files are version-locked — repair requires manual pg_upgrade or dump-restore.
Delete cluster — refused while any logical exists (409). Once empty, delete removes the container AND the data volume. Take a backup of every logical first if you want a recovery path.
CPU
Memory
Network I/O
CPU history (last 5 min)
Memory history (MB, last 5 min)
These metrics are cluster-wide — every logical database shares this container, so their workloads are summed here.
No logical databases yet.
Click + Add database to create one. Each gets its own user, password, and database name on the same cluster.
No git sources yet
Connect GitHub, GitLab, or Gitea to deploy private repos. GitHub App is one-click; GitLab and Gitea need a pre-created OAuth Application (the wizard walks you through it).
The machine running CoolifyGo is registered as local automatically. Add a remote server only to deploy to another host.
Servers Online
/
Docker Up
/
Total CPUs
Memory Used
GB
of GB
Disk Used
GB
of GB
Avg CPU Load
%
Total Memory
MB
Total CPU
Total Disk
GB
Used Memory
MB
CPU Usage
%
Used Disk
GB
Free Memory
%
Load Average (1, 5, 15m)
Free Disk
%
Local server not provisioned yet
Restart CoolifyGo — the machine it runs on is auto-registered on boot. Check the server logs if this persists.
Refreshes every 5 s. Goroutines = concurrent in-process tasks (deploy worker, backup scheduler, auto-update loop, SSH pool, log streamers).
Goroutines
Heap (MB)
Sys mem (MB)
GC count
Queue pending
Queue active
Queue scheduled
Queue retry
Open
Idle
In Use
Size
Keys
Save this token now (won't be shown again):
| Name | Created | Last Used | Expires | |
|---|---|---|---|---|
Periodic prune that runs automatically. Running app images are always preserved.
Auto-cleanup
Runs every 15 minutes when enabled.
Set via the DOCKER_CLEANUP_THRESHOLD env var.
Drops apps / databases / services that were created more than 1 hour ago and never received a container — abandoned wizard runs.
Flushes the asynq queue (critical / default / low) — useful when a deploy is wedged. Running deploys are NOT killed; only pending / scheduled jobs are dropped.
Telegram bot for deploy + backup alerts.
Auto-allocated host port range. Applications walk DOWN from max; databases & services walk UP from min — natural collision avoidance. Defaults match Coolify v3 (9000 → 9100).
Shared PostgreSQL mode
When on, every new PostgreSQL database lives as a logical database inside one shared cluster container. Saves dozens of GB of RAM when running many small workloads. Toggle is allowed only when zero PostgreSQL databases exist (either direction).
Current version
Latest on GitHub
Update Now spawns a one-shot helper container that pulls the latest image, swaps the running coolifygo container, and self-cleans (the previous image is pruned automatically). Restart recreates the current container — useful after editing env vars on the host. Both reconnect within ~10 s.
Auto-update (daily)
Background goroutine pulls the latest image once a day so the next manual Update Now is instant. Does NOT restart the running container on its own — that stays a deliberate click.
Timezone
Applied to every backup cron (user databases + system backup). Default is Asia/Kolkata (IST). Change takes effect within 60 s — no restart needed.
Self-backup (coolifygo DB)
Dumps the entire coolifygo Postgres — users, apps, servers, settings, encrypted credentials. Same pipeline as user-DB backups (Telegram or local fallback).
)
Global Telegram not configured — falls back to local /data/coolifygo/backups/_system/
Dedicated Telegram (chat )
Dedicated Telegram not set — falls back to local /data/coolifygo/backups/_system/
Evaluated in
Last:
| Started | Status | Size |
|---|---|---|
| Started | Status | Source |
|---|---|---|
Every state-changing request (POST/PUT/PATCH/DELETE) made in the last 25 hours. Stored in Redis with rolling expiry — older entries are dropped automatically. Useful for spotting unfamiliar IPs or unexpected actions.
| When | Method | Path | Status | IP | User-Agent |
|---|---|---|---|---|---|
No integrated Git sources yet — add one in Git Sources to skip the URL input.
Showing first of matches. Type more to narrow.
Type to search across all visible repos.
Loading branches…
Built as-is at deploy time — edit later in Configuration tab.
repo/name:tag — public Docker Hub or any registry the host can pull from.
Bind a host port so the app is reachable at . Off = bots / workers reachable only on the coolify Docker network.
Created automatically when the container boots for the first time.
Create one at your provider's token settings
Recommended for GitHub
Coolify will generate a GitHub App manifest, then redirect you to GitHub to confirm creation. After approval you'll be returned here, then you can install the app on the repos you want to deploy.
Leave empty to install under your personal account.
For another machine reachable over SSH. Your local machine is already registered.
No local backups saved yet for this database.
SHUTDOWN NOSAVE, then auto-restarts (~2 s downtime). All current keys will be replaced.