Fortress is an enterprise-grade orchestration dashboard designed for modern infrastructure management. It provides a unified, secure interface for managing disparate backup engines including BorgBackup, Restic, Rsync, and Rclone.
Featuring an automatic SSH Deployment Service, an AI-powered job architect, and a zero-trust cryptographic vault, Fortress simplifies complex CLI-based backup workflows into a high-visibility, professional experience.
- Multi-Engine Orchestration: Native support for:
- BorgBackup: High-efficiency deduplication and compression.
- Restic: Modern, secure cloud-native backups.
- Rsync over SSH: Reliable 1:1 file mirroring.
- Rclone: Cloud storage synchronization (S3, B2, Google Drive, etc.).
- 🚀 SSH Deployment Service: Automatically detect remote OS and install required backup tools (Borg, Restic, Rsync) with one click. Rsync & Rclone are not tested yet.
- AI Backup Architect: Leverages Google Gemini and OpenAI COMPATIBLE to translate natural language requirements into optimized cron schedules and retention policies. - Not tested yet
- Zero-Trust Identity Vault: Local-first AES-256-GCM encryption for SSH private keys. Keys are only decrypted at the last possible moment for connection.
- Universal Health Monitoring: Real-time "Vitality Index" for all managed systems with live log streaming.
- Visual Analytics: Interactive Recharts-powered dashboard for storage growth and deduplication tracking.
- Framework: React 19 + TypeScript
- Build Tool: Vite 6
- Styling: Tailwind CSS
- Charts: Recharts
- Icons: Lucide React
- Runtime: Bun (native TypeScript execution)
- Framework: Express 5
- SSH:
ssh2for remote orchestration - Auth: JWT + bcryptjs
- Primary: PostgreSQL (via
pg) - Local/Embedded: bun:sqlite (built-in, 3-6x faster than better-sqlite3)
- Bun: v1.0 or higher (install)
- PostgreSQL: A running instance (optional - SQLite works out of the box)
- (Optional) Gemini API Key: For natural language backup configuration
-
Clone and Install:
git clone https://github.com/InSelfControll/FortressBackup.git cd FortressBackup bun install -
Running the System:
# Start both API and Web UI (using concurrently) bun run dev # Or run separately bun run dev:server # Backend only bun run dev:frontend # Frontend only
-
Initialize Setup:
- Open your browser to
http://localhost:3001 - Follow the on-screen setup wizard to configure your database, admin user, and master password
- The
.envfile is automatically generated after completing setup
- Open your browser to
# Build the container
docker build -t fortressbackup .
# Run with SQLite (default)
docker run -p 9001:9001 -v fortress-data:/app/data fortressbackup
# Run with volume mount (ensure directory is owned by UID 1001)
mkdir -p ./data && sudo chown 1001:1001 ./data
docker run -p 9001:9001 -v ./data:/app/data fortressbackupFortress implements several layers of security:
- At-Rest Encryption: Sensitive credentials and SSH keys are encrypted in the database.
- Path Isolation: Backup processes are executed with minimum required privileges on remote systems.
- Session Management: Secure JWT-based authentication with automatic expiration handling.
- Non-Root Container: Production container runs as non-root user (UID 1001) for enhanced security.
Built with ❤️ by the Fortress Engineering Team