Skip to content

Bukuserver (WebUI)

LeXofLeviafan edited this page Jun 21, 2025 · 6 revisions

Buku includes a companion Web-application, Bukuserver (it requires additional dependencies; the package should be installed with server extra, i.e. pip install buku[server]).

Warning: Bukuserver is not meant to be exposed directly to external network (use a Web-server like nginx to reverse-proxy it instead). Any security features such as password protection need to be applied via the reverse-proxy Web-server.

Check out Bukuserver README file for more information.

Screenshots (from the same README file)

home page
home page

bookmarks page (with favicons enabled)
bookmarks page (with favicons enabled)

bookmarks page with 'slate' theme and favicon enabled
bookmarks page with 'slate' theme and favicon enabled

stats page
stats page

tags page
tags page

More screenshots (default theme)

main page
main page

main page (expanded)
main page (expanded)

bookmarks list
bookmarks list

bookmarks list (filtered, 'full' URL render mode)
bookmarks list (filtered, 'full' URL render mode)

bookmarks list (sorted)
bookmarks list (sorted)

bookmarks list (reordered)
bookmarks list (reordered)

bookmarklet popup (create bookmark)
bookmarklet popup (create bookmark)

bookmarklet popup (edit bookmark)
bookmarklet popup (edit bookmark)

bookmarklet popup (view bookmark)
bookmarklet popup (view bookmark)

bookmark create dialog
bookmark create dialog

bookmark edit dialog
bookmarklet popup (edit bookmark)

bookmark view dialog (random entry)
bookmark view dialog (random entry)

bookmark create page (accessible from bookmark view/edit page)
bookmark create page (accessible from bookmark view/edit page)

bookmark edit page (accessible from bookmark view page)
bookmark edit page (accessible from bookmark view page)

bookmark view page (accessible via link in view dialog / “bookmark saved” message)
bookmark view page (accessible via link in view dialog / “bookmark saved” message)

tags list
tags list

tag edit page
tag edit page

success message (“bookmark saved”, linked to the saved record)
success message (“bookmark saved”, linked to the saved record)

error message (“invalid filter value”)
error message (“invalid filter value”)

stats page
stats page

stats page (chart hovered)
stats page (chart hovered)

stats page (full list dialog)
stats page (full list dialog)

More screenshots (slate theme)

main page
main page

main page (expanded)
main page (expanded)

bookmarks list
bookmarks list

bookmarks list (filtered, 'full' URL render mode)
bookmarks list (filtered, 'full' URL render mode)

bookmarks list (sorted)
bookmarks list (sorted)

bookmarks list (reordered)
bookmarks list (reordered)

bookmarklet popup (create bookmark)
bookmarklet popup (create bookmark)

bookmarklet popup (edit bookmark)
bookmarklet popup (edit bookmark)

bookmarklet popup (view bookmark)
bookmarklet popup (view bookmark)

bookmark create dialog
bookmark create dialog

bookmark edit dialog
bookmarklet popup (edit bookmark)

bookmark view dialog (random entry)
bookmark view dialog (random entry)

bookmark create page (accessible from bookmark view/edit page)
bookmark create page (accessible from bookmark view/edit page)

bookmark edit page (accessible from bookmark view page)
bookmark edit page (accessible from bookmark view page)

bookmark view page (accessible via link in view dialog / “bookmark saved” message)
bookmark view page (accessible via link in view dialog / “bookmark saved” message)

tags list
tags list

tag edit page
tag edit page

success message (“bookmark saved”, linked to the saved record)
success message (“bookmark saved”, linked to the saved record)

error message (“invalid filter value”)
error message (“invalid filter value”)

stats page
stats page

stats page (chart hovered)
stats page (chart hovered)

stats page (full list dialog)
stats page (full list dialog)

HTTP API

Bukuserver includes an HTTP API (mostly JSON-based). You can find a brief description in Bukuserver README file; and more thorough documentation is available in the app itself, via the /apidocs endpoint. (The static version is located in bukuserver/apidocs/ subdirectory of the repo.)

Interactive API documentation screenshot (from the README file)

apidocs

Runner script

Since configuring Bukuserver requires setting up environment variables, and it has no builtin support for switching databases, a runner script was made. (It's quite convenient for managing multiple databases, both for normal use and during development.)

As explained in the README file, you can install it in your PATH to run from command line, or in a shortcut to run from your desktop/applications menu; and settings (both for Bukuserver and the script itself) can be defined in bukuserver.env file within your buku settings folder (incidentally, DB files will be placed there as well):

# ~/.local/share/buku/bukuserver.env or %APPDATA%\Roaming\buku\bukuserver.env
BUKUSERVER='~/Sources/buku/'  # when running from sources (nightly/developer option)
BUKUSERVER_THEME=slate
BUKUSERVER_DISABLE_FAVICON=false
BUKUSERVER_OPEN_IN_NEW_TAB=true

Note that BUKU_DEFAULT_DBDIR can be used to specify an alternative DB directory.

Screenshots

DB selection dialog
DB selection dialog – shown on startup (unless no DB files were found); initially the previous DB is selected

DB creation dialog
DB creation dialog – shown if no DB was selected (or none found)

DB exists
A confirmation dialog is shown if new DB name is taken already

DB naming error
DB name must be a valid filename, sans the .db extension (invalid chars: / on Linux, or any of <>:"/\|?* on Windows)

no-GUI mode
DB selection prompt in console shell/no-GUI mode (BUKU_NOGUI=y)

Clone this wiki locally