Organize your Bookmarks with the Self Hosted Servas

Organize your bookmarks in a Self Hosted manner with the new Servas Self Hosted bookmark app!

Organize your Bookmarks with the Self Hosted Servas

It's time to dive into those browser favorites and organize them like a true self hosted champ! A new tool recently surfaced that allows you to do this and categorize your book marks by groups and tags. This is an intro to the self hosted Servas bookmark app.

Servas is a self-hosted bookmark management tool. It is based on Laravel and Inertia.js and uses Tailwind CSS and Svelte for the frontend.

Features

  • Tags: Organize your bookmarks with tags.
  • Groups: Group your bookmarks. Groups can be nested.
  • Later list: Add bookmarks to the "later list" to access them later.
  • Chrome browser extension: Add sites to Servas right from your browser.
  • Multiple users: You can create multiple user accounts.
  • Responsive design: Servas looks good on all your devices.
  • Two Factor Authentication available.

Servas is in very early stages of development still and is very basic compared to LinkDing and LinkAce but all of these have their differences. Sometimes basic is all you need though.

Install Servas using Docker Compose

Installing Servas requires a bit more than just dropping the compose script and hitting deploy. Not much though I promise. Just grab the .env file example off the Servas Github repo and copy the contents into your own .env file before deploying it. Once you have the file set, run the compose script but make sure you set the volume correctly to where the .env file is first.

version: "3"

services:
  db:
    image: mariadb:10.7.3
    restart: unless-stopped
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
    environment:
      - MARIADB_ROOT_PASSWORD=${DB_PASSWORD}
      - MARIADB_USER=${DB_USERNAME}
      - MARIADB_PASSWORD=${DB_PASSWORD}
      - MARIADB_DATABASE=${DB_DATABASE}
    volumes:
      - servas-db-data:/var/lib/mysql

  servas:
    image: beromir/servas
    container_name: servas
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "8080:80"
    volumes:
      - ./.env:/var/www/html/.env

volumes:
  servas-db-data:

Once the app and DB container are up and running we have to run 2 more commands to get the front end going.

Run the database migrations.

docker exec -it servas php artisan migrate

Generate the application key.

docker exec -it servas php artisan key:generate

If you try to launch the app before running the commands first, you will see a 500 error on the app webpage.

But once you run the migrate, it will initialize the DB. Generate the key and bingo! It will be up and running. BUT, In order to login, you have to go to the register page at localhost:8080/register and register an admin account.

Once you do this that page will be removed and no longer accessible. Registrations are no longer possible so be sure to get your username and password right or you will have to restart the installation.

Now you can log in and start adding links. You will notice right away how basic Servas is. It's very easy to figure out and learn how to use.

Begin by creating groups as categories for your bookmarks. Then add tags for additional search functionality as you add links.

Servas has a built in 2FA option if you want to use it for an additional layer of security. This is great if you decide to expose this app using reverse proxy over the internet.

Final Notes and Thoughts

Servas is nice, but to me it seems a tad unfinished. It's missing a few key features that I think would really make it shine. First, an import and export option so we can save our bookmarks to a file. Another great feature would be a browser bookmarklet so we can add links on the fly while we are browsing the web. Lastly, I want a DARK MODE! 😆 We can still have these options and keep it basic right?

Simply put, if you love basic and simplicity, Servas is a great fit for you! Give it a try and see what you think.

If you found Servas useful, be sure to swing by the Servas Github repo and give it a star!