Secure Document Storage

PRIVATE STORAGE.
TOTAL CONTROL.
INVITE ONLY.

A self-hosted file and software locker built from scratch with Spring Boot, Spring Security and PostgreSQL. Every account sees only its own files.

Try the read-only demo

demo@hopeconnect.dev N3wl@ndz@#P12345 Browse the folder structure and file list. Uploading, downloading, editing and deleting are disabled on this account.

Built in

Security decisions, not defaults

Every protection below was chosen and implemented deliberately, not inherited from a framework preset.

Hashed credentials

Passwords stored as salted BCrypt hashes. The plain text never touches the database.

Per-user isolation

Ownership is enforced inside the database query, not as a separate check that can be forgotten.

Path traversal defence

Uploaded filenames are never used as disk paths. Every file is stored under a generated UUID.

CSRF protection

Tokens on every state-changing form, backed by SameSite and HttpOnly session cookies.

Rate limiting

Five failed sign-ins locks the account for fifteen minutes, blocking automated guessing.

Allow-list validation

Only approved file types are accepted. Web-executable formats are refused outright.

Role-based access

Admin, standard and read-only demo roles, enforced server side rather than hidden in the UI.

Invite only

No public registration. Accounts are created by an administrator and activated by email.

Stack

Java 21 · Spring Boot · PostgreSQL

Spring Boot with Spring Security for authentication and authorisation, Spring Data JPA over PostgreSQL for persistence, and Thymeleaf for server-rendered views. Deployed on Railway with HTTPS and a persistent volume.

View the source on GitHub