Reading the repo
Reading the repo
How to install on Windows
Self-hosted Docker backup and restore with a visual server map. Move sites between servers safely, encrypted SFTP or S3 storage, verified restores.
Saved setup from 8 h ago
The maintainers included scripts/install-updater.sh. Run it from the cloned folder after reading it.
bash scripts/install-updater.sh
Will it work on my device?
CONTRIBUTING.mdThanks for helping. DockNest protects other people's data, so changes are judged by one question first: does recovery stay correct and safe?
You need Node.js 24+ and Python 3.9+.
npm ci
npm run setup
npm run build
npm start # API and dashboard
npm run worker # backup worker, in a second terminal
npm run dev:web # frontend development server
Run these before you open a pull request:
npm run check # builds the UI, runs Node and Python tests
npm run audit:repo # privacy checks: no credentials, private addresses or workstation paths
The remote helper is edited as modules in remote/helper/ and shipped as one built helper.py; read docs/remote-helper.md before changing it.
If you change capture, restore, SSH or SFTP code, also run the Linux integration suite (needs Docker):
npm run test:integration
CI runs all of these on every pull request, plus browser tests and a Gitleaks scan of the full history. A pull request is merged only when CI passes.
example.invalid) and documentation IP ranges (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24)..env files, keys, databases, backups or real server details. See repository privacy.fix(restore): reject archives with absolute paths.A release pull request (version bump) is not complete until all of these are done:
package.json (and the lockfile) so scripts/release-manifest.js accepts the tag.docs/releases/YYYY-MM-DD-vX.Y.Z.md (a vX.Y.md file also covers the X.Y.0 release; the file-name suffix is how scripts/release-manifest.js finds the notes). Build it from the "Release note" lines of the merged pull requests: short, for dashboard users, no CI or internals. Set the four highlights in the front matter (the template explains the strict format); a malformed block fails the release before anything is built.CHANGELOG.md under the new version (Keep a Changelog format) and link the notes file. The changelog is the detailed, technical record.npm run docs:screenshots, synthetic data only). The version badge follows the latest GitHub release by itself.By contributing, you agree that your contributions are licensed under the GNU Affero General Public License v3.0.
Then run powershell -ExecutionPolicy Bypass -File .\setup.ps1. It stops at the first error and is safe to run again. Servers and tests aren't started; it lists them at the end. Read it first.
Needs Git: winget install Git.Git
git clone https://github.com/DahanItamar/DockNest.git cd DockNest
Node.js >=24.0.0
winget install CoreyButler.NVMforWindows nvm install lts nvm use lts
Fill in secrets: MASTER_KEY_FILE, SETUP_TOKEN_FILE
Copy-Item .env.example .env
npm ci
npm run dev
npm test
data/setup.token, add your authenticator app and save the recovery codes.Notes:
scripts\set-admin-password.ps1.No reports for Windows yet.
Opens a chat with this manual already filled in, for Windows. It uses your own account; gitmanual sends nothing.