Cloud Driver is a single-user server file management console. The repository is organized as a small monorepo with a React web app, a Fastify API, shared contracts, and a Quark backup adapter seam.
apps/web: React + Vite + Tailwind shellapps/api: Fastify API shellpackages/shared: shared types and constantspackages/quark-adapter: backup provider interfacesdocs/: PRD, UX, and technical design
- Copy
.env.exampleto.envand adjust values. - Copy
config/roots.example.yamltoconfig/roots.yamlif needed. - Generate a password hash with
node scripts/hash-password.ts <your-password>and place it in.envasPASSWORD_HASH. - Install dependencies with
pnpm install. - Start the workspace with
pnpm dev.
The current baseline includes:
- single-password login endpoint and signed cookie session
- protected roots and file-list APIs
@relax-state/reactfront-end state shell- live root loading and current-directory file listing
Next phases cover file CRUD, text editing, export jobs, and backup jobs.
Cloud Driver can be installed as a single packaged CLI:
npm i -g @shier-art/cd-cliRequirements:
- Node.js
>= 22
After installation you get one command:
cd-clicd-cli init
cd-cli password set
cd-cli workspace add /srv/files --id files --label "Files"
cd-cli start
cd-cli openNotes:
cd-cli startlaunches the server in a detached child process, so it does not occupy the current shell.- The packaged npm module already includes the web UI and API runtime. No separate web or server install is required.
Current cd-cli --help output:
Cloud Driver CLI
Usage:
cd-cli init [--home <path>] [--password <password>] [--host <host>] [--port <port>]
cd-cli start [--home <path>]
cd-cli run [--home <path>]
cd-cli stop [--home <path>]
cd-cli restart [--home <path>]
cd-cli status [--home <path>]
cd-cli open [--home <path>] [--print-only]
cd-cli logs [--home <path>]
cd-cli doctor [--home <path>]
cd-cli password set [--home <path>] [--password <password>]
cd-cli workspace list [--home <path>]
cd-cli workspace add <path> [--home <path>] [--id <id>] [--label <label>] [--read-only]
cd-cli workspace remove <id> [--home <path>]
cd-cli workspace update <id> [--home <path>] [--label <label>] [--read-only <true|false>]
cd-cli config show [--home <path>]
cd-cli config path [--home <path>]
cd-cli config set <host|port> <value> [--home <path>]
The repository includes the publishable CLI package source at packages/cd-cli.
Useful workspace commands:
pnpm build:clipnpm pack:clipnpm smoke:clipnpm changesetpnpm version-packages
What they do:
- Build the web app first, then build the packaged CLI runtime.
- Produce an npm tarball under
output/npm/. - Pack the tarball, install it into a temporary prefix, start the packaged service, run a browser smoke flow, capture screenshots into
output/playwright/, and stop the service. - Create a release note for
@shier-art/cd-cli. - Apply queued
changesetsto package versions and changelogs.
Release automation:
CLI Verifyvalidates build and packaged smoke on pushes and pull requests.CLI Publishuseschangesetsonmainto create or update the release PR, then publishes@shier-art/cd-cliafter the release PR is merged.