mirror of
https://github.com/kossakovsky/n8n-install.git
synced 2026-03-07 22:33:11 +00:00
refactor: rename postgresus to databasus
rebrand backup service following upstream project rename. updates docker image to databasus/databasus:latest, adds healthcheck, and includes cleanup function for migration from old container name.
This commit is contained in:
@@ -149,6 +149,7 @@ LT_PASSWORD_HASH=
|
||||
USER_DOMAIN_NAME=
|
||||
LETSENCRYPT_EMAIL=
|
||||
COMFYUI_HOSTNAME=comfyui.yourdomain.com
|
||||
DATABASUS_HOSTNAME=databasus.yourdomain.com
|
||||
DIFY_HOSTNAME=dify.yourdomain.com
|
||||
DOCLING_HOSTNAME=docling.yourdomain.com
|
||||
FLOWISE_HOSTNAME=flowise.yourdomain.com
|
||||
@@ -162,7 +163,6 @@ NEO4J_HOSTNAME=neo4j.yourdomain.com
|
||||
NOCODB_HOSTNAME=nocodb.yourdomain.com
|
||||
PADDLEOCR_HOSTNAME=paddleocr.yourdomain.com
|
||||
PORTAINER_HOSTNAME=portainer.yourdomain.com
|
||||
POSTGRESUS_HOSTNAME=postgresus.yourdomain.com
|
||||
POSTIZ_HOSTNAME=postiz.yourdomain.com
|
||||
PROMETHEUS_HOSTNAME=prometheus.yourdomain.com
|
||||
QDRANT_HOSTNAME=qdrant.yourdomain.com
|
||||
@@ -474,7 +474,7 @@ DIFY_EXPOSE_NGINX_PORT=8080
|
||||
DIFY_EXPOSE_NGINX_SSL_PORT=9443
|
||||
|
||||
###########################################################################################
|
||||
COMPOSE_PROFILES="n8n,portainer,monitoring,postgresus"
|
||||
COMPOSE_PROFILES="n8n,portainer,monitoring,databasus"
|
||||
PROMETHEUS_PASSWORD_HASH=
|
||||
SEARXNG_PASSWORD_HASH=
|
||||
COMFYUI_PASSWORD_HASH=
|
||||
|
||||
@@ -18,6 +18,7 @@ All notable changes to this project are documented in this file.
|
||||
- **n8n 2.1.0+ compatibility** - Switch to static ffmpeg binary (apk removed upstream in n8n 2.1.0)
|
||||
|
||||
### Changed
|
||||
- **Postgresus → Databasus** - Rebrand to Databasus with new Docker image `databasus/databasus:latest`. Now supports PostgreSQL, MySQL, MariaDB, and MongoDB backups
|
||||
- **Git sync** - Replaced `git pull` with `git fetch + reset` for more reliable updates (handles accidental local commits)
|
||||
|
||||
## [November 2025]
|
||||
|
||||
@@ -81,9 +81,9 @@
|
||||
reverse_proxy postiz:5000
|
||||
}
|
||||
|
||||
# Postgresus
|
||||
{$POSTGRESUS_HOSTNAME} {
|
||||
reverse_proxy postgresus:4005
|
||||
# Databasus
|
||||
{$DATABASUS_HOSTNAME} {
|
||||
reverse_proxy databasus:4005
|
||||
}
|
||||
|
||||
# Letta
|
||||
|
||||
@@ -94,7 +94,7 @@ The installer also makes the following powerful open-source tools **available fo
|
||||
|
||||
✅ [**Portainer**](https://www.portainer.io/) - A lightweight, secure web UI to manage your Docker environment (containers, images, volumes, networks) with ease.
|
||||
|
||||
✅ [**Postgresus**](https://github.com/RostislavDugin/postgresus) - PostgreSQL monitoring and automated backups with a self-hosted UI.
|
||||
✅ [**Databasus**](https://github.com/databasus/databasus) - Database backups & monitoring with a self-hosted UI.
|
||||
|
||||
✅ [**Postiz**](https://postiz.com/) - An open-source social media scheduling and publishing platform.
|
||||
|
||||
@@ -179,20 +179,20 @@ After successful installation, your services are up and running! Here's how to g
|
||||
|
||||
- **n8n:** `n8n.yourdomain.com` (Log in with the email address you provided during installation and the initial password from the summary report. You may be prompted to change this password on first login.)
|
||||
- **ComfyUI:** `comfyui.yourdomain.com` (Node-based Stable Diffusion UI)
|
||||
- **Databasus:** `databasus.yourdomain.com`
|
||||
- **Dify:** `dify.yourdomain.com` (AI application development platform with comprehensive LLMOps capabilities)
|
||||
- **Docling:** `docling.yourdomain.com` (Universal document converter with REST API; web UI available at `/ui`)
|
||||
- **Flowise:** `flowise.yourdomain.com` (Log in with the email address you provided during installation and the initial password from the summary report.)
|
||||
- **Grafana:** `grafana.yourdomain.com`
|
||||
- **Langfuse:** `langfuse.yourdomain.com`
|
||||
- **LightRAG:** `lightrag.yourdomain.com`
|
||||
- **Letta:** `letta.yourdomain.com`
|
||||
- **LibreTranslate:** `translate.yourdomain.com`
|
||||
- **LightRAG:** `lightrag.yourdomain.com`
|
||||
- **Neo4j:** `neo4j.yourdomain.com`
|
||||
- **NocoDB:** `nocodb.yourdomain.com`
|
||||
- **Open WebUI:** `webui.yourdomain.com`
|
||||
- **PaddleOCR:** `paddleocr.yourdomain.com`
|
||||
- **Portainer:** `portainer.yourdomain.com` (Protected by Caddy basic auth; on first login, complete Portainer admin setup)
|
||||
- **Postgresus:** `postgresus.yourdomain.com`
|
||||
- **Postiz:** `postiz.yourdomain.com`
|
||||
- **Prometheus:** `prometheus.yourdomain.com` (Typically used as a data source for Grafana)
|
||||
- **Qdrant:** `qdrant.yourdomain.com`
|
||||
|
||||
@@ -34,29 +34,29 @@ After creating the tunnel, go to the **Published application routes** tab to add
|
||||
| Service | Public Hostname | Service URL | Auth Notes |
|
||||
| ------------------ | ----------------------------- | ---------------------------- | ------------------- |
|
||||
| **n8n** | n8n.yourdomain.com | `http://n8n:5678` | Built-in login |
|
||||
| **Flowise** | flowise.yourdomain.com | `http://flowise:3001` | Built-in login |
|
||||
| **Open WebUI** | webui.yourdomain.com | `http://open-webui:8080` | Built-in login |
|
||||
| **Langfuse** | langfuse.yourdomain.com | `http://langfuse-web:3000` | Built-in login |
|
||||
| **Grafana** | grafana.yourdomain.com | `http://grafana:3000` | Built-in login |
|
||||
| **Prometheus** | prometheus.yourdomain.com | `http://prometheus:9090` | ⚠️ Loses Caddy auth |
|
||||
| **Portainer** | portainer.yourdomain.com | `http://portainer:9000` | Built-in login |
|
||||
| **Neo4j** | neo4j.yourdomain.com | `http://neo4j:7474` | Built-in login |
|
||||
| **ComfyUI** | comfyui.yourdomain.com | `http://comfyui:8188` | ⚠️ Loses Caddy auth |
|
||||
| **SearXNG** | searxng.yourdomain.com | `http://searxng:8080` | ⚠️ Loses Caddy auth |
|
||||
| **Databasus** | databasus.yourdomain.com | `http://databasus:4005` | Built-in login |
|
||||
| **Dify** ¹ | dify.yourdomain.com | `http://nginx:80` | Built-in login |
|
||||
| **Docling** | docling.yourdomain.com | `http://docling:5001` | ⚠️ Loses Caddy auth |
|
||||
| **Flowise** | flowise.yourdomain.com | `http://flowise:3001` | Built-in login |
|
||||
| **Grafana** | grafana.yourdomain.com | `http://grafana:3000` | Built-in login |
|
||||
| **Langfuse** | langfuse.yourdomain.com | `http://langfuse-web:3000` | Built-in login |
|
||||
| **Letta** | letta.yourdomain.com | `http://letta:8283` | No auth |
|
||||
| **Weaviate** | weaviate.yourdomain.com | `http://weaviate:8080` | API key recommended |
|
||||
| **Qdrant** | qdrant.yourdomain.com | `http://qdrant:6333` | API key recommended |
|
||||
| **LibreTranslate** | libretranslate.yourdomain.com | `http://libretranslate:5000` | ⚠️ Loses Caddy auth |
|
||||
| **LightRAG** | lightrag.yourdomain.com | `http://lightrag:9621` | No auth |
|
||||
| **Neo4j** | neo4j.yourdomain.com | `http://neo4j:7474` | Built-in login |
|
||||
| **Open WebUI** | webui.yourdomain.com | `http://open-webui:8080` | Built-in login |
|
||||
| **PaddleOCR** | paddleocr.yourdomain.com | `http://paddleocr:8080` | ⚠️ Loses Caddy auth |
|
||||
| **Portainer** | portainer.yourdomain.com | `http://portainer:9000` | Built-in login |
|
||||
| **Postiz** | postiz.yourdomain.com | `http://postiz:5000` | Built-in login |
|
||||
| **Prometheus** | prometheus.yourdomain.com | `http://prometheus:9090` | ⚠️ Loses Caddy auth |
|
||||
| **Qdrant** | qdrant.yourdomain.com | `http://qdrant:6333` | API key recommended |
|
||||
| **RAGApp** | ragapp.yourdomain.com | `http://ragapp:8000` | ⚠️ Loses Caddy auth |
|
||||
| **RagFlow** | ragflow.yourdomain.com | `http://ragflow:80` | Built-in login |
|
||||
| **Postiz** | postiz.yourdomain.com | `http://postiz:5000` | Built-in login |
|
||||
| **PostgreSUS** | postgresus.yourdomain.com | `http://postgresus:4005` | No auth |
|
||||
| **WAHA** | waha.yourdomain.com | `http://waha:3000` | API key recommended |
|
||||
| **Docling** | docling.yourdomain.com | `http://docling:5001` | ⚠️ Loses Caddy auth |
|
||||
| **LibreTranslate** | libretranslate.yourdomain.com | `http://libretranslate:5000` | ⚠️ Loses Caddy auth |
|
||||
| **PaddleOCR** | paddleocr.yourdomain.com | `http://paddleocr:8080` | ⚠️ Loses Caddy auth |
|
||||
| **Dify** ¹ | dify.yourdomain.com | `http://nginx:80` | Built-in login |
|
||||
| **SearXNG** | searxng.yourdomain.com | `http://searxng:8080` | ⚠️ Loses Caddy auth |
|
||||
| **Supabase** ¹ | supabase.yourdomain.com | `http://kong:8000` | Built-in login |
|
||||
| **WAHA** | waha.yourdomain.com | `http://waha:3000` | API key recommended |
|
||||
| **Weaviate** | weaviate.yourdomain.com | `http://weaviate:8080` | API key recommended |
|
||||
|
||||
**⚠️ Security Warning:**
|
||||
- Services marked **"Loses Caddy auth"** have basic authentication via Caddy that is bypassed by the tunnel. Use [Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/applications/) or keep them internal.
|
||||
|
||||
@@ -22,7 +22,8 @@ volumes:
|
||||
paddleocr_cache:
|
||||
paddlex_data:
|
||||
portainer_data:
|
||||
postgresus_data:
|
||||
databasus_data:
|
||||
name: localai_postgresus_data
|
||||
postiz-config:
|
||||
postiz-uploads:
|
||||
prometheus_data:
|
||||
@@ -335,7 +336,7 @@ services:
|
||||
PADDLEOCR_PASSWORD_HASH: ${PADDLEOCR_PASSWORD_HASH}
|
||||
PADDLEOCR_USERNAME: ${PADDLEOCR_USERNAME}
|
||||
PORTAINER_HOSTNAME: ${PORTAINER_HOSTNAME}
|
||||
POSTGRESUS_HOSTNAME: ${POSTGRESUS_HOSTNAME}
|
||||
DATABASUS_HOSTNAME: ${DATABASUS_HOSTNAME}
|
||||
POSTIZ_HOSTNAME: ${POSTIZ_HOSTNAME}
|
||||
PROMETHEUS_HOSTNAME: ${PROMETHEUS_HOSTNAME}
|
||||
PROMETHEUS_PASSWORD_HASH: ${PROMETHEUS_PASSWORD_HASH}
|
||||
@@ -836,13 +837,19 @@ services:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
|
||||
postgresus:
|
||||
image: rostislavdugin/postgresus:latest
|
||||
container_name: postgresus
|
||||
profiles: ["postgresus"]
|
||||
databasus:
|
||||
image: databasus/databasus:latest
|
||||
container_name: databasus
|
||||
profiles: ["databasus"]
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- postgresus_data:/postgresus-data
|
||||
- databasus_data:/databasus-data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -qO- http://localhost:4005/ || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
|
||||
comfyui:
|
||||
image: yanwk/comfyui-boot:cu124-slim
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
# Features:
|
||||
# - Single-screen checklist for service selection
|
||||
# - Default services: n8n, portainer, monitoring, postgresus
|
||||
# - Default services: n8n, portainer, monitoring, databasus
|
||||
# - Preserves previously selected services on re-run
|
||||
# - Updates COMPOSE_PROFILES in .env file
|
||||
#
|
||||
@@ -41,15 +41,16 @@ base_services_data=(
|
||||
"cloudflare-tunnel" "Cloudflare Tunnel (Zero-Trust Secure Access)"
|
||||
"comfyui" "ComfyUI (Node-based Stable Diffusion UI)"
|
||||
"crawl4ai" "Crawl4ai (Web Crawler for AI)"
|
||||
"docling" "Docling (Universal Document Converter to Markdown/JSON)"
|
||||
"databasus" "Databasus (Database backups & monitoring)"
|
||||
"dify" "Dify (AI Application Development Platform with LLMOps)"
|
||||
"docling" "Docling (Universal Document Converter to Markdown/JSON)"
|
||||
"flowise" "Flowise (AI Agent Builder)"
|
||||
"gost" "Gost Proxy (HTTP/HTTPS proxy for AI services outbound traffic)"
|
||||
"gotenberg" "Gotenberg (Document Conversion API)"
|
||||
"langfuse" "Langfuse Suite (AI Observability - includes Clickhouse, Minio)"
|
||||
"letta" "Letta (Agent Server & SDK)"
|
||||
"lightrag" "LightRAG (Graph-based RAG with knowledge graphs)"
|
||||
"libretranslate" "LibreTranslate (Self-hosted translation API - 50+ languages)"
|
||||
"lightrag" "LightRAG (Graph-based RAG with knowledge graphs)"
|
||||
"monitoring" "Monitoring Suite (Prometheus, Grafana, cAdvisor, Node-Exporter)"
|
||||
"n8n" "n8n, n8n-worker, n8n-import (Workflow Automation)"
|
||||
"neo4j" "Neo4j (Graph Database)"
|
||||
@@ -58,7 +59,6 @@ base_services_data=(
|
||||
"open-webui" "Open WebUI (ChatGPT-like Interface)"
|
||||
"paddleocr" "PaddleOCR (OCR API Server)"
|
||||
"portainer" "Portainer (Docker management UI)"
|
||||
"postgresus" "Postgresus (PostgreSQL backups & monitoring)"
|
||||
"postiz" "Postiz (Social publishing platform)"
|
||||
"python-runner" "Python Runner (Run your custom Python code from ./python-runner)"
|
||||
"qdrant" "Qdrant (Vector Database)"
|
||||
@@ -92,7 +92,7 @@ while [ $idx -lt ${#base_services_data[@]} ]; do
|
||||
else
|
||||
# .env has no COMPOSE_PROFILES or it's empty/just quotes, use hardcoded defaults
|
||||
case "$tag" in
|
||||
"n8n"|"portainer"|"monitoring"|"postgresus") status="ON" ;;
|
||||
"n8n"|"portainer"|"monitoring"|"databasus") status="ON" ;;
|
||||
*) status="OFF" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
@@ -70,8 +70,9 @@ bash "$SCRIPT_DIR/05_configure_services.sh" || {
|
||||
}
|
||||
log_success "Service configuration completed."
|
||||
|
||||
# Clean up legacy n8n worker containers from old naming convention
|
||||
# Clean up legacy containers from old naming conventions
|
||||
cleanup_legacy_n8n_workers
|
||||
cleanup_legacy_postgresus
|
||||
|
||||
# Pull latest versions of selected containers based on updated .env
|
||||
set_telemetry_stage "update_docker_pull"
|
||||
|
||||
@@ -89,10 +89,10 @@ if is_profile_active "portainer"; then
|
||||
}")
|
||||
fi
|
||||
|
||||
# Postgresus
|
||||
if is_profile_active "postgresus"; then
|
||||
SERVICES_ARRAY+=(" \"postgresus\": {
|
||||
\"hostname\": \"$(json_escape "$POSTGRESUS_HOSTNAME")\",
|
||||
# Databasus
|
||||
if is_profile_active "databasus"; then
|
||||
SERVICES_ARRAY+=(" \"databasus\": {
|
||||
\"hostname\": \"$(json_escape "$DATABASUS_HOSTNAME")\",
|
||||
\"credentials\": {
|
||||
\"note\": \"PostgreSQL credentials are shown in the PostgreSQL card\"
|
||||
}
|
||||
@@ -495,12 +495,12 @@ if is_profile_active "n8n"; then
|
||||
((STEP_NUM++))
|
||||
fi
|
||||
|
||||
# Step 3: Configure database backups (if postgresus active)
|
||||
if is_profile_active "postgresus"; then
|
||||
# Step 3: Configure database backups (if databasus active)
|
||||
if is_profile_active "databasus"; then
|
||||
QUICK_START_ARRAY+=(" {
|
||||
\"step\": $STEP_NUM,
|
||||
\"title\": \"Configure database backups\",
|
||||
\"description\": \"Set up Postgresus for automated PostgreSQL backups\"
|
||||
\"description\": \"Set up Databasus for automated database backups\"
|
||||
}")
|
||||
((STEP_NUM++))
|
||||
fi
|
||||
|
||||
@@ -129,9 +129,9 @@ if is_profile_active "searxng"; then
|
||||
check_image_update "searxng" "searxng/searxng:latest"
|
||||
fi
|
||||
|
||||
if is_profile_active "postgresus"; then
|
||||
log_subheader "Postgresus"
|
||||
check_image_update "postgresus" "ghcr.io/postgresus/postgresus:latest"
|
||||
if is_profile_active "databasus"; then
|
||||
log_subheader "Databasus"
|
||||
check_image_update "databasus" "databasus/databasus:latest"
|
||||
fi
|
||||
|
||||
# Summary
|
||||
|
||||
@@ -638,6 +638,22 @@ cleanup_legacy_n8n_workers() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Clean up legacy postgresus container after rename to databasus
|
||||
# This function removes the old "postgresus" container if it exists,
|
||||
# allowing the new "databasus" container to take its place.
|
||||
# Usage: cleanup_legacy_postgresus
|
||||
cleanup_legacy_postgresus() {
|
||||
local container_name="postgresus"
|
||||
|
||||
# Check if container exists (running or stopped)
|
||||
if docker ps -a --format '{{.Names}}' | grep -q "^${container_name}$"; then
|
||||
log_info "Found legacy postgresus container, migrating to databasus..."
|
||||
docker stop "$container_name" 2>/dev/null || true
|
||||
docker rm -f "$container_name" 2>/dev/null || true
|
||||
log_success "Legacy postgresus container removed. Databasus will use existing data via volume alias."
|
||||
fi
|
||||
}
|
||||
|
||||
#=============================================================================
|
||||
# USER DETECTION
|
||||
#=============================================================================
|
||||
|
||||
@@ -191,13 +191,13 @@
|
||||
category: 'infra',
|
||||
docsUrl: 'https://docs.portainer.io'
|
||||
},
|
||||
'postgresus': {
|
||||
name: 'Postgresus',
|
||||
description: 'PostgreSQL Backups & Monitoring',
|
||||
icon: 'PG',
|
||||
color: 'bg-[#336791]',
|
||||
'databasus': {
|
||||
name: 'Databasus',
|
||||
description: 'Database Backups & Monitoring',
|
||||
icon: 'DB',
|
||||
color: 'bg-[#155DFC]',
|
||||
category: 'database',
|
||||
docsUrl: 'https://postgresus.com/'
|
||||
docsUrl: 'https://databasus.com/'
|
||||
},
|
||||
'langfuse': {
|
||||
name: 'Langfuse',
|
||||
|
||||
Reference in New Issue
Block a user