FileBase is a minimalist, self-hosted file storage service. It lets users securely log in, create folders, upload files, and access/download them from anywhere.
- Authenticated users can upload and download files
- Users can create, rename, and delete folders for file organization
- View file metadata (name, size, mimetype, upload time)
- Anonymous posting where non-members can read stories, but only members can see who posted them
- Members can create titled posts with timestamps and content
- Shareable public links for folders with expiration support (e.g. valid for 1d, 10d, etc.)
- No authentication required for file downloads via publicly shared links
- Distinct icons for different filetypes
- JavaScript - core programming language
- Node - backend runtime
- Express - web server framework
- Prisma - ORM for PostgreSQL
- PostgreSQL - relational database engine
- Multer - file upload middleware
- Supabase - cloud storage for files
- Passport - auth strategy provider
- bcrypt - hash and compare passwords
- Express Validator - data validation library
- EJS - templating engine for views
- CSS - UI styling
Below is a list of the project directories and files:
auth-config/
- contains config files for authsession-config.js
- prisma session store setupstrategy.js
- passport local-strategy setuptransformers.js
- cookie serializer and deserializer
controllers/
- contains auth- and folders-controllersmiddlewares/
authenticators.js
- authorization middlewares for route protectionfile-uploader.js
- multer config and middlewareprevent-back.js
- cache and navigation control middlewares
prism-config/prima-client.js
- instantiate prisma clientprisma/schema.prisma
- database schema definitionpublic/
scripts/
- JS filesstyles/
- CSS files
routes/
- contains auth- and folders-routerssupabse-config/storage-client.js
- instantiate Supabase storage clientutils/
data-formatter.js
- formatting functions for date and timeicon-provider.js
- icons map with mimetypedata-formatter.js
- generate nested folder-structure
validators/
- contains data validation middlewaresviews/
- contains EJS page templatesapp.js
- server setup and entrypoint