Skip to content

Deploying GoBookmarks

Introduction

GoBookmarks is a lightweight, self-hosted bookmark manager written in Go. It provides a simple way to save, organize, and access your bookmarks from any device with a web browser, without relying on browser sync services or third-party cloud providers.

Designed for speed and simplicity, GoBookmarks offers essential bookmark management features with minimal resource usage. Its clean interface makes it easy to add, categorize, and search bookmarks quickly.

Key highlights of GoBookmarks:

  • Simple Interface: Clean, intuitive web UI for bookmark management
  • Fast Performance: Written in Go for speed and efficiency
  • Tagging System: Organize bookmarks with tags
  • Search: Quick search across all bookmarks
  • Import/Export: Backup and restore your bookmarks
  • No Dependencies: Single binary with embedded database
  • Responsive Design: Works on desktop and mobile
  • Private Hosting: Your bookmarks stay on your server
  • Lightweight: Minimal memory and CPU usage
  • Open Source: Free to use and modify

This guide walks through deploying GoBookmarks on Klutch.sh using Docker.

Why Deploy GoBookmarks on Klutch.sh

Deploying GoBookmarks on Klutch.sh provides several advantages:

Cross-Device Access: Access your bookmarks from any device with internet.

Privacy: Keep your browsing habits private, unlike browser sync services.

HTTPS Security: Secure access without manual certificate setup.

Always Available: Your bookmarks are accessible 24/7.

Persistent Storage: Bookmarks survive container updates and restarts.

Prerequisites

Before deploying GoBookmarks on Klutch.sh, ensure you have:

Understanding GoBookmarks Architecture

GoBookmarks has a simple architecture:

Go Backend: Handles HTTP requests and bookmark operations.

Embedded Database: SQLite for storing bookmarks and tags.

Static Frontend: HTML/CSS/JS served by the Go binary.

File Storage: Optional storage for bookmark metadata.

Preparing Your Repository

Create a GitHub repository with your GoBookmarks configuration.

Repository Structure

gobookmarks-deploy/
├── Dockerfile
└── .dockerignore

Creating the Dockerfile

FROM golang:alpine AS builder
RUN apk add --no-cache git gcc musl-dev
WORKDIR /build
RUN git clone https://github.com/golinks/gobookmarks.git . && \
go build -o gobookmarks .
FROM alpine:latest
RUN apk add --no-cache ca-certificates
COPY --from=builder /build/gobookmarks /usr/local/bin/gobookmarks
# Create data directory
RUN mkdir -p /data
# Set environment variables
ENV GOBOOKMARKS_DB=/data/bookmarks.db
ENV GOBOOKMARKS_PORT=8080
# Expose port
EXPOSE 8080
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:8080 || exit 1
# Run application
CMD ["gobookmarks"]

Environment Variables Reference

VariableRequiredDescription
GOBOOKMARKS_DBNoDatabase file path
GOBOOKMARKS_PORTNoHTTP port (default: 8080)
GOBOOKMARKS_USERNAMENoAuthentication username
GOBOOKMARKS_PASSWORDNoAuthentication password

Deploying GoBookmarks on Klutch.sh

    Push Your Repository to GitHub

    Commit your Dockerfile to GitHub.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project named “gobookmarks” or “bookmarks”.

    Create a New App

    Create a new app and connect your GitHub repository.

    Configure HTTP Traffic

    Set up HTTP traffic:

    • Select HTTP as the traffic type
    • Set the internal port to 8080

    Set Environment Variables

    Configure authentication:

    VariableValue
    GOBOOKMARKS_USERNAMEyour-username
    GOBOOKMARKS_PASSWORDyour-secure-password

    Attach Persistent Volumes

    Mount PathSizePurpose
    /data1 GBSQLite database

    Deploy Your Application

    Click Deploy to build and launch GoBookmarks.

    Access Your Instance

    Navigate to your app URL to start managing bookmarks.

Using GoBookmarks

Adding Bookmarks

  1. Click “Add Bookmark”
  2. Enter URL
  3. Add title (auto-fetched if left blank)
  4. Add tags for organization
  5. Save bookmark

Organizing with Tags

Tags help categorize bookmarks:

  • Create tags like “work”, “personal”, “reference”
  • Filter bookmarks by clicking tags
  • Add multiple tags per bookmark

Searching Bookmarks

Use the search bar to find bookmarks by:

  • Title
  • URL
  • Tags
  • Description

Editing Bookmarks

  1. Click on a bookmark
  2. Click “Edit”
  3. Modify details
  4. Save changes

Deleting Bookmarks

  1. Click on a bookmark
  2. Click “Delete”
  3. Confirm deletion

Import and Export

Importing Bookmarks

Import bookmarks from browsers:

  1. Export bookmarks from your browser as HTML
  2. Go to Settings > Import
  3. Upload the HTML file
  4. Review imported bookmarks

Exporting Bookmarks

Backup your bookmarks:

  1. Go to Settings > Export
  2. Choose format (HTML, JSON)
  3. Download the export file

Browser Integration

Bookmarklet

Create a bookmarklet for quick saving:

  1. Go to Settings > Bookmarklet
  2. Drag the bookmarklet to your browser’s bookmark bar
  3. Click it on any page to save

Browser Extension

If available, install the browser extension for:

  • One-click bookmark saving
  • Tag suggestions
  • Quick access to recent bookmarks

Authentication

Basic Authentication

Protect your bookmarks with credentials:

GOBOOKMARKS_USERNAME=admin
GOBOOKMARKS_PASSWORD=secure-password

Session Management

GoBookmarks maintains login sessions:

  • Persistent cookies
  • Configurable session timeout
  • Secure session handling

API Access

GoBookmarks may provide an API:

Endpoints

Terminal window
# List bookmarks
GET /api/bookmarks
# Add bookmark
POST /api/bookmarks
{
"url": "https://example.com",
"title": "Example",
"tags": ["example", "demo"]
}
# Delete bookmark
DELETE /api/bookmarks/:id

Authentication

Use API key or basic auth for API requests.

Backup Strategy

Database Backup

Regularly backup the database file:

/data/bookmarks.db

Export Backup

Schedule periodic exports:

  1. Export bookmarks to HTML
  2. Store in secure location
  3. Verify backup integrity

Customization

Appearance

Configure visual settings:

  • Theme (light/dark)
  • Layout options
  • Display preferences

Default Settings

Set defaults for new bookmarks:

  • Default tags
  • Visibility settings
  • Sort order

Troubleshooting

Cannot Save Bookmarks

  • Check database file permissions
  • Verify disk space availability
  • Review application logs

Import Failures

  • Validate import file format
  • Check for encoding issues
  • Review import size limits

Performance Issues

  • Review database size
  • Consider archiving old bookmarks
  • Check server resources

Additional Resources

Conclusion

Deploying GoBookmarks on Klutch.sh provides a private, fast bookmark manager accessible from anywhere. Unlike browser sync services that may share your data, self-hosting ensures complete privacy over your browsing habits.

The combination of GoBookmarks’ simplicity and Klutch.sh’s reliable hosting creates an ideal solution for personal bookmark management.