gobookmark
gobookmark copied to clipboard
Shaarli "clone" in Golang.
Gobookmark
Inspired by Shaarli (Delicious clone), easier to install (only one standalone executable).
Built with Go - GoBookmark runs without installation on multiple platforms.
Overview
GoBookmark is a personnal web bookmark web service with :
- tags support
- plain text search engine
- no dependencies, only based on filesystem (SQLite + Bleve)
Getting started
- Download the latest release of GoBookmark for your platform
- Configure GoBookmark, or use the default settings
$ ./gobookmark web
[negroni] listening on localhost:8000
Default password is password.
More info :
$ bin/gobookmark --help
NAME:
gobookmark - A personnal bookmark service
USAGE:
gobookmark [global options] command [command options] [arguments...]
VERSION:
0.1.0
COMMANDS:
web Start Gobookmark web server
import Import bookmark HTML file
reindex Execute plain text search indexation
help, h Shows a list of commands or help for specific command
GLOBAL OPTIONS:
--data, -d "gobookmark" Database filename [$GOBOOKMARK_DATABASE]
--help, -h show help
--version, -v print the version
Screenshots


Contributions
Build
On OSX :
$ brew install go
$ go --version
go version go1.6 darwin/amd64
Download source :
$ git clone [email protected]:stephane-klein/gobookmark.git
Build and execute :
$ cd gobookmark
$ make install
$ make serve
[negroni] listening on :8080
Test
$ make test
Build Docker image
$ docker build -t gobookmark .
Next push image :
$ docker tag gobookmark:latest harobed/gobookmark
$ docker push harobed/gobookmark
Why I did this project ?
It's my second Golang project, my first Golang web application, it's also a training project.
What I've learned in this project :
- how to use go-bindata to include all assets in a standalone binary
- how to use migrate, a database migration tool, it's very simple to apply, very KISS
- how to use bleve, a modern text indexing library, it's less powerful than ElasticSearch but Bleve is embeded in gobookmark standalone executable
- how to use glide to handle dependencies (after played with govendor, godeps…)
- how to use the httptreemux High-speed, flexible tree-based HTTP router
- how to use gorilla/context a golang registry for global request variables
- how to use default golang template engine and database api