Sign inSign up

rewind4/neon-backup-console

By rewind4

Updated 6 months ago

Neon Postgres backup/restore console with a Vue UI and FastAPI backend.

Image
Integration & delivery
Developer tools
Web servers
0

1.2K

rewind4/neon-backup-console repository overview

Neon Postgres Backup & Restore Console

A Dockerized, non-destructive by default backup/restore console for Neon Postgres using pg_dump and pg_restore, with a Vue 3 UI and a FastAPI backend.

Features

  • Schema-level backups and restores
  • Full database backups (optional toggle in UI)
  • Safe restore by default (no --clean unless explicitly chosen)
  • Lists schemas and existing backups
  • Optional Neon API status (project + endpoints) and auto-wake

Requirements

  • Docker
  • Unpooled Neon connection strings for pg_dump/pg_restore (host must NOT include -pooler)

Quick Run

docker run --rm -p 8000:8000 \
  -e NEON_SOURCE_URL="postgresql://USER:PASSWORD@HOST/DB?sslmode=require&channel_binding=require" \
  -e NEON_TARGET_URL="postgresql://USER:PASSWORD@HOST/DB?sslmode=require&channel_binding=require" \
  -e NEON_API_KEY="..." \
  -e NEON_PROJECT_ID="..." \
  -e UI_PASSWORD="your-ui-password" \
  -e UI_PORT="8000" \
  -v $(pwd)/backups:/backups \
  rewind4/neon-backup-console:latest

Open the UI at: http://localhost:8000

Docker Compose

services:
  neon-backup:
    image: rewind4/neon-backup-console:latest
    ports:
      - "8000:8000"
    environment:
      NEON_SOURCE_URL: "postgresql://USER:PASSWORD@HOST/DB?sslmode=require&channel_binding=require"
      NEON_TARGET_URL: "postgresql://USER:PASSWORD@HOST/DB?sslmode=require&channel_binding=require"
      NEON_API_KEY: "..."
      NEON_PROJECT_ID: "..."
      UI_PASSWORD: "your-ui-password"
      UI_PORT: "8000"
    volumes:
      - ./backups:/backups

Environment Variables

Required:

  • NEON_SOURCE_URL
  • NEON_TARGET_URL

Optional:

  • NEON_API_KEY
  • NEON_PROJECT_ID
  • NEON_ENDPOINT_ID (auto-resolved from NEON_SOURCE_URL host if omitted)
  • NEON_API_BASE (default https://console.neon.tech/api/v2)
  • UI_PASSWORD (if set, UI sends x-ui-token)
  • UI_PORT (default 8000)
  • BACKUP_PREFIX, SCHEMAS_TO_BACKUP, SCHEMA_PATTERN

Backups

Backups are written to /backups inside the container. Mount a local folder:

-v $(pwd)/backups:/backups

Restore Notes

  • Restores are non-destructive by default.
  • Use the UI toggle for destructive restores if needed.
  • Full dumps restore without schema filtering.

Tag summary

Content type

Image

Digest

sha256:19ed84fe0

Size

74.7 MB

Last updated

6 months ago

docker pull rewind4/neon-backup-console