A modern, terminal-inspired file manager with authentication system, built entirely with vanilla JavaScript, HTML, and CSS. Uses IndexedDB for local storage.
- π Multi-User Authentication - Secure login system with user-specific data isolation
- π File Management - Upload, download, rename, delete files and folders
- π€ User Management - Admin panel for managing users
- πΎ 5GB Storage - Browser-based storage using IndexedDB
- π¨ Terminal Theme - Green-on-black CRT-inspired design
- π€ Data Export/Import - Backup and restore all data as JSON
- π Password Recovery - For regular users (not admin for security)
- π Persistent Sessions - Stay logged in across page refreshes
- π± Responsive Design - Works on desktop and mobile
- Username:
admin - Password:
admin123
-
Fork or Clone this repository
git clone <your-repo-url> cd <your-repo-name>
-
Push to GitHub
git add . git commit -m "Initial commit" git push origin main
-
Enable GitHub Pages
- Go to your repository on GitHub
- Click
SettingsβPages - Under "Source", select
mainbranch - Click
Save - Your site will be live at:
https://<username>.github.io/<repo-name>/
βββ index.html # Main HTML structure
βββ styles.css # Terminal theme styling
βββ app.js # Application logic
βββ README.md # This file
- Login with default credentials
- Change your password via
[CHANGE PASSWORD]button - Export backup regularly from Admin Panel
- Manage users from Admin Panel
- Import/Export data as needed
- Click
[REGISTER]to create an account - Login with your credentials
- Upload and manage your files
- Use forgot password if needed (generates recovery code)
- Cannot be recovered if forgotten (security by design)
- If locked out:
- Option 1: Import a previous backup
- Option 2: Clear all data (lose everything)
- Option 3: Use another admin account to reset
- Always export backups before logging out!
- All data stored in browser's IndexedDB
- Each browser has separate storage
- Incognito mode resets on close
- Use Export/Import to transfer data
- β Chrome/Edge (recommended)
- β Firefox
- β Safari
- β Opera
β οΈ Requires modern browser with IndexedDB support
- Multi-user support
- Role-based access (admin/user)
- Session persistence
- Secure password hashing (Base64)
- Upload multiple files
- Download files
- Rename files/folders
- Delete files/folders
- Create new folders
- File preview
- Storage quota tracking
- View all users
- Delete users
- Promote/demote user roles
- Reset user passwords
- Export all data
- Import data
- Clear all data
- Export backup (JSON format)
- Import backup
- Data includes: users, files, sessions, settings
- File contents stored as base64
- Browser Quota: 5 GB (configurable)
- Per User: Unlimited (within browser quota)
- File Size: Limited by available storage
This is a static web application with no backend required. All data is stored client-side in IndexedDB.
- HTML5
- CSS3 (Terminal theme with animations)
- Vanilla JavaScript (ES6+)
- IndexedDB API
- File System Access API
Just open index.html in a browser or deploy to any static hosting service.
Edit styles.css - search for color values:
- Primary:
#00ff00(green) - Error:
#ff0000(red) - Background:
#0c0c0c(black)
Edit app.js - search for storageQuota:
storageQuota: 5 * 1024 * 1024 * 1024 // 5GBEdit app.js - search for:
ADMIN_USERNAME = 'admin';
ADMIN_DEFAULT_PASSWORD = 'admin123';- If logged in: Use
[CHANGE PASSWORD] - If locked out: Import backup or clear all data
- Check browser settings (IndexedDB enabled)
- Check console for errors (F12)
- Try another browser
- Delete unnecessary files
- Export and clear old data
- Increase browser storage quota
- Data is temporary in incognito/private mode
- Export before closing window
- Import backup in new incognito session
MIT License - Feel free to use and modify!
For issues or questions, please open an issue on GitHub.
π SECURITY NOTE: This is designed for personal/local use. The password hashing is basic (Base64). For production use, implement proper backend authentication and encryption.