A simple, password-protected personal bookmark manager for your articles and links.
- Password Protection - Simple login system to keep your bookmarks private
- Add/Edit/Delete Bookmarks - Full CRUD operations for your bookmarks
- Tagging System - Organize bookmarks with tags
- Search & Filter - Find bookmarks by title, URL, or tags
- Date Tracking - Automatically tracks when bookmarks were added
- Responsive Design - Works on desktop and mobile devices
- JSON Storage - Simple file-based storage, easy to backup
- Node.js (version 14 or higher)
- npm (comes with Node.js)
-
Install dependencies:
npm install
-
Start the server:
npm start
-
Access your bookmark manager: Open your browser and go to
http://localhost:3000 -
Login:
- Default password:
password - IMPORTANT: Change the password immediately (see Security section)
- Default password:
- Enter the URL and title of the bookmark
- Optionally add tags (comma-separated)
- Click "Add Bookmark"
- Edit: Click the "Edit" button on any bookmark
- Delete: Click the "Delete" button (requires confirmation)
- Search: Use the search box to find bookmarks by title, URL, or tags
- Filter: Use the tag dropdown to filter by specific tags
- Add multiple tags separated by commas
- Tags help organize and find your bookmarks
- Use consistent naming (e.g., "tech", "article", "ai", "programming")
Method 1: Generate a new password hash
node -e "console.log(require('bcrypt').hashSync('YOUR_NEW_PASSWORD', 10))"Method 2: Use the provided script
node change-password.jsThen update the PASSWORD_HASH constant in server.js with the new hash.
- Change the session secret in
server.js(line 11) - Use HTTPS in production
- Consider adding rate limiting for the login endpoint
bookmark-bunker/
βββ server.js # Main server file
βββ package.json # Dependencies
βββ bookmarks.json # Your bookmarks (auto-created)
βββ public/
β βββ index.html # Main HTML file
β βββ style.css # Styles
β βββ script.js # Client-side JavaScript
βββ README.md # This file
Your bookmarks are stored in bookmarks.json. To backup:
cp bookmarks.json bookmarks-backup-$(date +%Y%m%d).jsonnpm run devThis uses nodemon to automatically restart the server when files change.
- Server-side code: Edit
server.js - Client-side code: Edit files in
public/ - Styles: Edit
public/style.css
To access from other devices on your network:
- Find your local IP address
- Start the server:
HOST=0.0.0.0 npm start - Access via
http://YOUR_IP:3000
This can be deployed to any Node.js hosting service:
- Railway
- Heroku
- Vercel
- DigitalOcean
- AWS
- Google Cloud
-
Cannot access from other devices
- Make sure firewall allows port 3000
- Use
HOST=0.0.0.0 npm start
-
Bookmarks not saving
- Check file permissions in the directory
- Ensure the app has write access
-
Login not working
- Verify the password hash is correct
- Check browser console for errors
-
Port already in use
- Change the port:
PORT=3001 npm start
- Change the port:
This is a personal project, but suggestions and improvements are welcome!
MIT License - Feel free to use and modify for your personal use.
Default Login: password (change this immediately!)