Skip to content

Deploying Servas

Introduction

Servas is a self-hosted bookmark manager that helps you organize and access your saved links efficiently. With support for tags, groups, and a clean modern interface, Servas provides a simple yet powerful solution for managing your bookmarks without relying on browser sync or third-party services.

Built with Laravel and Vue.js, Servas offers a responsive web interface that works well on both desktop and mobile devices. The application focuses on ease of use while providing the organizational features power users need to manage large bookmark collections.

Key highlights of Servas:

  • Tag-Based Organization: Flexible tagging system for bookmark categorization
  • Groups: Organize bookmarks into hierarchical groups
  • Search: Fast full-text search across all bookmarks
  • Browser Extension: Quick bookmark saving from your browser
  • Multi-User Support: Support for multiple user accounts
  • Import/Export: OPML and browser bookmark import
  • Dark Mode: Built-in dark theme support
  • Mobile Friendly: Responsive design for all devices
  • Later List: Save bookmarks for later reading
  • 100% Open Source: Licensed under MIT

This guide walks through deploying Servas on Klutch.sh using Docker, setting up your bookmark library, and organizing your saved links.

Why Deploy Servas on Klutch.sh

Deploying Servas on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh handles PHP and database configuration automatically.

Persistent Storage: Attach persistent volumes for your bookmark database and configuration.

HTTPS by Default: Klutch.sh provides automatic SSL certificates for secure access.

Custom Domains: Use your own domain for a personalized bookmark manager.

Always-On Access: Your bookmarks remain accessible from anywhere 24/7.

Prerequisites

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

  • A Klutch.sh account
  • A GitHub account with a repository for your Servas configuration
  • Basic familiarity with Docker and containerization concepts
  • A MySQL/MariaDB or PostgreSQL database

Preparing Your Repository

Create a GitHub repository with your Servas configuration.

Repository Structure

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

Creating the Dockerfile

Create a Dockerfile in the root of your repository:

FROM ghcr.io/beromir/servas:latest
# Environment variables
ENV APP_KEY=${APP_KEY}
ENV APP_URL=${APP_URL}
ENV APP_ENV=production
ENV APP_DEBUG=false
# Database configuration
ENV DB_CONNECTION=${DB_CONNECTION:-mysql}
ENV DB_HOST=${DB_HOST}
ENV DB_PORT=${DB_PORT:-3306}
ENV DB_DATABASE=${DB_DATABASE}
ENV DB_USERNAME=${DB_USERNAME}
ENV DB_PASSWORD=${DB_PASSWORD}
# Mail configuration (optional)
ENV MAIL_MAILER=${MAIL_MAILER:-smtp}
ENV MAIL_HOST=${MAIL_HOST:-}
ENV MAIL_PORT=${MAIL_PORT:-587}
# Expose the web interface port
EXPOSE 80

Environment Variables Reference

VariableRequiredDefaultDescription
APP_KEYYes-Laravel application key (generate with php artisan key:generate --show)
APP_URLYes-Public URL of your Servas instance
DB_CONNECTIONNomysqlDatabase driver (mysql, pgsql, sqlite)
DB_HOSTYes-Database server hostname
DB_PORTNo3306Database server port
DB_DATABASEYes-Database name
DB_USERNAMEYes-Database username
DB_PASSWORDYes-Database password
MAIL_HOSTNo-SMTP server for notifications

Deploying Servas on Klutch.sh

    Set Up Database

    Servas requires a MySQL/MariaDB or PostgreSQL database. Deploy a database instance or use a managed service.

    Generate Application Key

    Generate a Laravel application key:

    Terminal window
    # Use a PHP environment or online generator
    # The key should be base64 encoded, 32 characters

    Or use an online Laravel key generator.

    Push Your Repository to GitHub

    Initialize and push your repository:

    Terminal window
    git init
    git add Dockerfile .dockerignore
    git commit -m "Initial Servas deployment configuration"
    git remote add origin https://github.com/yourusername/servas-deploy.git
    git push -u origin main

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project with a descriptive name like “servas” or “bookmarks”.

    Create a New App

    Within your project, create a new app. Connect your GitHub account and select your Servas repository.

    Configure HTTP Traffic

    In the deployment settings:

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

    Set Environment Variables

    Add the following environment variables:

    VariableValue
    APP_KEYYour generated application key
    APP_URLhttps://your-app-name.klutch.sh
    DB_HOSTYour database host
    DB_DATABASEYour database name
    DB_USERNAMEYour database username
    DB_PASSWORDYour database password

    Attach Persistent Volumes

    Add the following volume:

    Mount PathRecommended SizePurpose
    /var/www/html/storage5 GBApplication storage and cache

    Deploy Your Application

    Click Deploy to start the build process.

    Access Servas

    Once deployment completes, access your Servas instance at https://your-app-name.klutch.sh.

Initial Configuration

Creating Your Account

  1. Navigate to your Servas instance
  2. Click Register to create an account
  3. Enter your email, username, and password
  4. Verify your email if configured

Adding Bookmarks

  1. Log in to Servas
  2. Click Add Bookmark
  3. Enter the URL
  4. Add title, description, tags, and groups
  5. Save the bookmark

Creating Groups

  1. Go to Groups in the sidebar
  2. Click Create Group
  3. Enter a group name
  4. Optionally set a parent group for hierarchy
  5. Assign bookmarks to groups

Using Tags

  • Add tags when creating or editing bookmarks
  • Click tags in the sidebar to filter bookmarks
  • Combine multiple tags for refined filtering

Browser Extension

Installing the Extension

  1. Go to Settings > Browser Extension
  2. Download the extension for your browser
  3. Configure the extension with your Servas URL
  4. Generate and enter an API token

Using the Extension

  1. Navigate to a page you want to bookmark
  2. Click the Servas extension icon
  3. Edit title, tags, and groups
  4. Click Save

Importing Bookmarks

From Browser

  1. Export bookmarks from your browser as HTML
  2. Go to Settings > Import
  3. Select the HTML file
  4. Map folders to groups
  5. Import

From Other Services

Servas supports importing from various formats. Check the documentation for specific import procedures.

Troubleshooting

Database Connection Error

Symptoms: Application shows database error.

Solutions:

  • Verify database credentials
  • Ensure database server is accessible
  • Check database user permissions
  • Run database migrations if needed

Bookmarks Not Saving

Symptoms: Adding bookmarks fails silently.

Solutions:

  • Check browser console for errors
  • Verify storage volume is mounted
  • Review Laravel logs for errors
  • Ensure APP_KEY is set correctly

Additional Resources

Conclusion

Deploying Servas on Klutch.sh gives you a clean, efficient bookmark manager that keeps your saved links organized and accessible. With tags, groups, and a browser extension, you can build a personal knowledge base of useful links without relying on third-party services.