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

