version, completions, config precedence, JSON, JSONL, golden tests
sealport.cc
Encrypted backup CLI.
SealPort is an all-Rust backup command being built for owned, inspectable, scriptable backups with client-side encryption and boring restore paths.
- Command
- sealport
- Mode
- CLI only
- Backends
- Local + S3 target
$ sealport init s3://company-backups/laptops
$ sealport backup ~/Documents --tag laptop --jsonl
{"event":"backup.started","repository":"redacted"}
{"event":"backup.finished","snapshot":"planned"}
$ sealport restore latest ~/restore-testCurrent status
Pre-v1 foundation, honest by default.
The Rust workspace, CLI shell, config/output contracts, initial crypto primitives, storage abstractions, and this public homepage exist. The backup and restore engine is still under construction.
master keys, passphrase unlock, subkeys, authenticated envelopes
local backend, S3-compatible backend, fake store, capability model
snapshot creation, restore pipeline, check, forget, prune, v1 release artifacts
Command contract
Built for shells, logs, runbooks, and restore drills.
Stdout is data
Human progress and diagnostics stay on stderr so scripts can trust stdout.
JSON and JSONL surfaces
Single-document output for state, event streams for long operations.
Dry-run destructive work
Forget, prune, and other destructive commands are planned around explicit dry runs.
Exit codes are part of the API
Failure families are documented before v1 and treated as automation contracts.
Operator priorities
The design is narrow on purpose.
SealPort is not trying to become a dashboard, daemon, scheduler, server, mount layer, or compatibility shim. The product center is encrypted backup and reliable restore from a local or S3-compatible repository.
Restore first
Backup features are judged by whether they make restore safer, clearer, and easier to verify.
Client-side encryption
Contents, names, directory shape, manifests, indexes, and sensitive config are designed to stay encrypted.
Evidence before claims
Platform support waits for CI, tests, release artifacts, and observed behavior.
Original repository format
SealPort does not read or write restic, rustic, Borg, Kopia, or rclone-native repositories.
Object-store discipline
Immutable objects, retry-safe writes, explicit commit markers, and no required rename assumptions.
Inspectability
Typed docs, structured events, and small crate boundaries keep behavior auditable as the system grows.
Design boundaries
The next work is the backup pipeline, then restore.
The current foundation is useful only if it leads to boring recovery. The public roadmap keeps that pressure visible.
- NowPhase 5 - backup pipeline
source walking, exclusions, metadata capture, chunking, compression, encryption, manifests
- NextPhase 6 - restore pipeline
snapshot selection, path-scoped restore, destination safety, metadata restore, verification
- ThenPhase 7+ - listing, check, retention, release
snapshots, ls, find, diff, integrity checks, forget, prune, signing, SBOMs
Self-hosting shape
The website is separate marketing infrastructure.
This site is served by an Axum binary rendering Leptos views on the server. It has no database, no client-side app bundle, and a simple health endpoint for reverse proxies.
sealport-webDefault bind0.0.0.0:8080OverrideSEALPORT_WEB_ADDR=127.0.0.1:8080