Skip to content

mateconpizza/gmweb

Repository files navigation

Gopher logo

GoMarks Web

A simple and powerful bookmark manager built with Go.

Go Version Linux compatible SQLite database Release Go Report Card

🚧 Work in Progress

Features

  • Bookmark management
  • Tagging and filtering
  • Multiple repositories databases
  • Metadata extraction (title, description, keywords, tags)
  • QR-code generation
  • Visit tracking
  • Favorites
  • Notes
  • Mobile-friendly UI
  • Import from HTML
  • Sync with Git
    • As JSON
    • As GPG
  • Authentication β€” WIP

Run

$ go build -o gmweb .
./gmweb -vvv

Default: http://localhost:8080

Usage

$ ./gmweb -h
gmweb v0.1.0 linux/amd64

A simple web bookmark manager

Usage:
  gmweb [options]

Options:
  -p, --path <path>	Path to store data (default: $XDG_DATA_HOME/gomarks)
  -a, --addr <addr>	Address to listen on (default: :8080)
  -v, --verbose		Increase verbosity (-v, -vv, -vvv)
  -V, --version		Show version
  -h, --help		Show this help

Containers

# Build
$ docker build -t gmweb .

docker run -p 8080:8080 \
  -v $(pwd)/deploy/data:/root/.local/share/gomarks \
  -v $(pwd)/deploy/cache:/root/.cache/gomarks \
  gmweb

# or

# Compose
docker compose up --build

Screenshots

Index

Main Mobile Mobile Search
main main-mobile main-mobile-search

Record

Status QRCode Notes
record-status record-qr record-notes

Settings

Settings

Settings Themes VIM Keybinds
settings themes VIM-mode
Repository

Repository

Repository New List
repository repo-new repo-list
Routes

API Routes

Route pattern Method Handler Action
/api GET root returns app info
/api/scrape GET scrapeData scrapes data (URL, keywords, title, desc, favicon)
/api/qr POST genQR generates QR code from the given URL and size
/api/qr/png POST genQRPNG generates a PNG QR code from the given URL and size
/api/repo/list GET dbList list available repositories
/api/repo/all GET dbInfoAll returns repository info
/api/{db}/info GET dbInfo returns repository info
/api/{db}/new POST dbCreate create new repository
/api/{db}/delete DELETE dbDelete delete repository
/api/{db}/bookmarks/tags GET allTags get all tags from the current repository
/api/{db}/bookmarks/{id}/favorite PUT toggleFavorite toggle bookmark favorite status
/api/{db}/bookmarks/{id}/visit POST addVisit adds a visit to the URL
/api/{db}/bookmarks/new POST newRecord create a new record
/api/{db}/bookmarks/{id}/update PUT updateRecord update a record
/api/{db}/bookmarks/{id}/delete DELETE deleteRecord delete a record

Web Routes

Route pattern Method Handler Action
/{$} GET indexRedirect redirects to index
/web/{db}/bookmarks/all GET index show all bookmarks
/web/{db}/bookmarks/new GET newRecord new bookmark form
/web/{db}/bookmarks/detail/{id} GET recordDetail new bookmark form
/web/{db}/bookmarks/edit/{id} GET recordEdit edit bookmark form
/web/{db}/bookmarks/qr/{id} GET showQR show bookmark QRCode
/static/ GET http.FileServer static files (css, js, img)
/cache/ GET http.FileServer favicons

About

πŸ“‘ Web interface for managing bookmarks

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors