2.4 KiB
🔧 Fixes Applied
Issues Fixed
1. Database Directory Creation Error ✅
Problem: SQLITE_CANTOPEN: unable to open database file
Root Cause: The db/ directory didn't exist and wasn't automatically created
Solution: Modified scripts to create directory if missing
2. Session Directory Management ✅
Problem: Session directory might not exist at runtime Root Cause: Directory wasn't being created Solution: Now created automatically when server starts
3. Missing .env File ✅
Problem: Configuration not available
Solution: Default .env file provided with sensible defaults
Files Modified
src/db.js
Added directory creation logic:
const dir = path.dirname(dbPath);
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
scripts/initDb.js
Added explicit directory creation and better error messages
scripts/seedDb.js
Added directory creation before database initialization
Files Added
.env (Default Configuration)
- PORT=3000
- NODE_ENV=development
- Default admin credentials
- OIDC settings
.gitkeep Files
db/.gitkeep- Ensures db/ directory is tracked by gitsessions/.gitkeep- Ensures sessions/ directory is tracked by git
Setup Scripts
setup.sh- Automated setup for Linux/Macsetup.bat- Automated setup for Windowsverify.sh- Verify installation is complete
Documentation
LINUX-QUICKSTART.md- Quick start guide for Linux users
Testing
To verify all fixes are working:
# Clean start
rm -rf db/ sessions/ node_modules/
# Reinstall
npm install
# Initialize (should now work!)
npm run init-db
# Verify
npm run dev
What Changed in Summary
| Component | Before | After |
|---|---|---|
| Directory Creation | Manual | Automatic |
| Error Handling | Basic | Detailed |
| Configuration | Manual setup | .env provided |
| Verification | None | verify.sh script |
| Setup Process | Multi-step | setup.sh script |
Backward Compatibility
All changes are backward compatible. Existing setups will continue to work, and the automatic directory creation only triggers if directories don't exist.
Next Steps
For users encountering the original issue:
- ✅ Pull latest changes
- ✅ Run
npm run init-db(should now work) - ✅ Run
npm run dev - ✅ Visit http://localhost:3000
No more manual directory creation needed! 🎉