diff --git a/svgs/portabase.svg b/svgs/portabase.svg new file mode 100644 index 0000000000..d35bc45ad1 --- /dev/null +++ b/svgs/portabase.svg @@ -0,0 +1,4 @@ + + + + diff --git a/templates/compose/portabase.yaml b/templates/compose/portabase.yaml new file mode 100644 index 0000000000..099ff12301 --- /dev/null +++ b/templates/compose/portabase.yaml @@ -0,0 +1,61 @@ +# documentation: https://portabase.io/docs +# slogan: Self-hosted database backup & monitoring platform +# tags: backup, database, monitoring,open-source +# logo: svgs/portabase.svg +# port: 80 + +services: + portabase: + image: portabase/portabase:1.28.1 + restart: always + environment: + - SERVICE_URL_PORTABASE_80 + - 'PROJECT_URL=$SERVICE_URL_PORTABASE' + - PROJECT_SECRET=$SERVICE_PASSWORD_64_PORTABASE + - 'DATABASE_URL=postgresql://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgres:5432/${POSTGRES_DB:-portabase}?schema=public' + - PROJECT_NAME=${PROJECT_NAME:-Portabase} + - TZ=${TZ:-Europe/Paris} + - LOG_LEVEL=${LOG_LEVEL:-info} + - RETENTION_CRON=${RETENTION_CRON:-0 7 * * *} + - STALE_BACKUP_THRESHOLD_HOURS=${STALE_BACKUP_THRESHOLD_HOURS:-6} + - BACKUP_FOLDER_NAME=${BACKUP_FOLDER_NAME:-backups} + - TELEMETRY=${TELEMETRY:-true} + - SKIP_ONBOARDING=${SKIP_ONBOARDING:-false} + - API_ENABLED=${API_ENABLED:-false} + - OPENAPI_ENABLED=${OPENAPI_ENABLED:-false} + - MCP_ENABLED=${MCP_ENABLED:-false} + - SMTP_HOST=${SMTP_HOST} + - SMTP_PORT=${SMTP_PORT} + - SMTP_USER=${SMTP_USER} + - SMTP_PASSWORD=${SMTP_PASSWORD} + - SMTP_FROM=${SMTP_FROM} + - SMTP_SECURE=${SMTP_SECURE:-false} + volumes: + - portabase-data:/data + depends_on: + postgres: + condition: service_healthy + healthcheck: + test: + - CMD-SHELL + - 'curl -f http://localhost/api/health' + interval: 30s + timeout: 5s + retries: 3 + start_period: 60s + + postgres: + image: 'postgres:18-alpine' + volumes: + - 'postgres-data:/var/lib/postgresql' + environment: + - POSTGRES_DB=${POSTGRES_DB:-portabase} + - POSTGRES_USER=$SERVICE_USER_POSTGRES + - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES + healthcheck: + test: + - CMD-SHELL + - 'pg_isready -U $POSTGRES_USER -d ${POSTGRES_DB}' + interval: 10s + timeout: 5s + retries: 5