2.4 KiB
Drive v2
Drive v2 is a private, single-owner, self-hosted file suite for Unraid. Stable v1 will provide file management, sharing, OnlyOffice integration, core previews, an installable PWA, a bulk importer, and a durable API suitable for a future desktop sync client.
The approved product and architecture baseline is Drive_v2_final_plan.md. Implementation decisions that refine it are recorded in docs/adr/.
Repository status
Phase 0 established the repository, module boundaries, contracts, development environment, and CI. Phase 1 now includes embedded forward-only migrations, the core persistence schema, atomic single-owner setup, recovery-code generation, Argon2id password hashing, revocable browser sessions, CSRF-protected logout, database-backed readiness, and persistent setup status. File-product endpoints are not implemented yet.
Prerequisites
- Docker Engine with Compose v2
- Go 1.26.x for native backend development
- Node.js 24 LTS and npm for native frontend development
Docker is the canonical environment when local toolchains are unavailable.
Quick start
- Copy
.env.exampleto.envand replace the development passwords. - Run
docker compose up --build. - Open
http://localhost:8080. - Check
http://localhost:8080/health/liveandhttp://localhost:8080/health/ready.
Do not expose an uninitialized production instance through Nginx Proxy Manager. The approved open setup flow must be completed first.
Browser authentication cookies are deliberately Secure and use the __Host- prefix. Setup and login therefore require HTTPS through Nginx Proxy Manager; direct HTTP remains suitable for health checks and the development shell only.
Development
go test ./cmd/... ./internal/...runs backend tests.npm --prefix web installinstalls frontend dependencies.npm --prefix web run devstarts the frontend development server.npm --prefix web run checkruns frontend lint, type checking, and tests.docker compose run --rm verifyruns the repository checks in the pinned container environment.
See docs/development.md for structure, generated contracts, and workflow details. The approved baseline packages and update rules are in docs/dependencies.md.
Licensing
This is currently a private personal project. No license is granted for redistribution or reuse.