A more compact home page dashboard style view for browsing your KaraKeep bookmarks. All Karakeep bookmarks are shown on one single page, organized by lists. This is meant to be a very simple and uncluttered dashboard to your bookmarks, all bookmark management capabilities are done through the full (and awesome) KaraKeep app.
- 📚 Masonry Layout - Efficient use of screen space with Pinterest-style columns
- 🔍 Real-time Search - Instantly filter bookmarks as you type
- 🖱️ Drag & Drop - Reorder lists to your preference
- 📱 Responsive - Works beautifully on desktop, tablet, and mobile
- 🚀 Fast - SQLite WASM runs entirely in your browser
- 🔒 Privacy-First - Your data never leaves your device
- Docker and Docker Compose installed
- Access to your KaraKeep
db.db
file through a docker volume
- Create a
docker-compose.yml
file:
version: '3.8'
services:
karakeep-homedash:
image: ghcr.io/codejawn/karakeep-homedash:latest
container_name: karakeep-homedash
ports:
- "8595:8595"
volumes:
# Update path to your KaraKeep database
- /path/to/karakeep/db.db:/app/db.db:ro
# Config directory for persistence
- ./config:/app/config
restart: unless-stopped
- Start the container:
docker-compose up -d
- Open http://localhost:8595 in your browser
- Python 3.7+ (for the server)
- Your KaraKeep
db.db
file
- Clone the repository:
git clone https://github.com/codejawn/karakeep-homedash.git
cd karakeep-homedash
- Copy your KaraKeep database:
cp /path/to/karakeep/db.db .
- Start the server:
python server.py
- Open http://localhost:8595 in your browser
The application uses a config/config.json
file for settings. If it doesn't exist, it will be created automatically with defaults.
{
"karakeepUrl": "http://localhost:3000",
"bookmarkTarget": "_self",
"preferences": {
"columnOrder": []
}
}
Option | Description | Default |
---|---|---|
karakeepUrl |
URL to your KaraKeep instance | http://localhost:3000 |
bookmarkTarget |
Where to open bookmarks: _self (same tab) or _blank (new tab) |
_self |
preferences.columnOrder |
Saved order of bookmark lists (managed automatically) | [] |
For development without Docker:
# Install dependencies (none required!)
# Start the development server
python server.py
# Or use any static file server if you don't need preference persistence
python -m http.server 8595
- Edit the HTML, CSS, or JavaScript files
- Refresh your browser to see changes
- Submit a pull request with your improvements!
To create a screenshot for documentation:
- Open
mockup.html
in your browser - Resize window to 1440px width
- Take a screenshot
- Save as
screenshot.png
The mockup includes sample bookmarks tailored for self-hosting enthusiasts!
Make sure your KaraKeep database is in the correct location:
- For Docker: Check your volume mount path in docker-compose.yml
- For manual installation: Copy db.db to the project directory
- Verify your db.db file is from KaraKeep
- Check browser console for errors
- Ensure the database contains bookmarks
- The config directory must be writable
- For Docker: Ensure the ./config volume is properly mounted
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the GNU V3 license - see the LICENSE file for details.
- Built to complement the amazing KaraKeep
- Uses SQLite WASM for browser-based database access