feat: add dark mode UI and SQLite as alternate database backend
Release Please / release-please (push) Has been cancelled
Docker Build and Push (Development) / build-and-push-dev (push) Has been cancelled

Dark mode: CSS custom properties + .dark class toggled via Redux/localStorage,
with a theme toggle in the Header and Settings page. Foundation didn't exist
yet despite prior assumption, so it was built from scratch.

SQLite: new DB_ENGINE=mongo|sqlite env var selects the metadata backend at
runtime (Mongo stays default, no behavior change unless opted in). File/thumbnail
bytes continue to use the existing fs/S3 storage path. Implemented via a shared
DB interface (dbTypes.ts) with parallel mongoDB/ and sqliteDB/ implementations,
selected through dbFactory.ts, with JWT/encryption logic extracted into
userCrypto.ts so both engines share it.
This commit is contained in:
2026-07-05 04:18:33 -07:00
parent bae5dbbd53
commit ecc340e7b1
74 changed files with 2233 additions and 487 deletions
+11 -1
View File
@@ -1,10 +1,20 @@
# If you are using Docker, set DOCKER=true
DOCKER=true
# MongoDB URL: Connection string for your MongoDB database
# Database Engine: Choose between "mongo" and "sqlite", this specifies where file/folder/user METADATA is stored.
# This is separate from DB_TYPE below, which controls where the raw file BYTES are stored.
# mongo = MongoDB (default)
# sqlite = embedded SQLite file, no separate database server needed
DB_ENGINE=mongo
# MongoDB URL: Connection string for your MongoDB database (only used when DB_ENGINE=mongo)
# Note: if using the compose file provided, the connection string should be as follows:
MONGODB_URL=mongodb://username:password@mongo:27017/mydrive?authSource=admin
# SQLite DB Path (only used when DB_ENGINE=sqlite): path to the SQLite database file.
# Should live inside a persisted volume (e.g. the same one used for FS_DIRECTORY) so it survives restarts.
SQLITE_DB_PATH=/data/mydrive.db
# Database Type: Choose between "fs" and "s3", this specifies where the files will be stored.
# fs = Filesystem
# s3 = Amazon S3