How to Install Homebranch on Your Synology NAS

How to Install Homebranch on Your Synology NAS

Homebranch is a self-hosted web application for managing and reading your E-Book collection. It provides a user-friendly interface to organize, search, and read your eBooks across devices. In this step by step guide I will show you how to install Homebranch on your Synology NAS using Docker and Portainer.

šŸ’”Note: This guide works perfectly with the latest Homebranch v1.2.0 release.

  • STEP 1

Please Support My work by Making a Donation.

  • STEP 2

InstallĀ Portainer using my step by step guide. If you already have Portainer installed on your UGREEN NAS, skip this STEP. Attention: Make sure you have installed the latest Portainer version.

  • STEP 3

Go toĀ Files and open the docker folder. Inside the docker folder, create one new folder and name it homebranch. Follow the instructions in the image below.
Note: Be careful to enter only lowercase, not uppercase letters.

HomeBranch Synology NAS Set up 1

  • STEP 4

Now create three new folders inside the homebranchĀ folder that you have previously created at STEP 3 and name them auth-db, db, uploads. Follow the instructions in the image below.
Note: Be careful to enter only lowercase, not uppercase letters.

HomeBranch Synology NAS Set up 2

  • STEP 5

Log into Portainer using your username and password. On the left sidebar in Portainer, click onĀ HomeĀ thenĀ Live connect. Follow the instructions in the image below.

Portainer Add Stack NAS 1

On the left sidebar in Portainer, click on StacksĀ thenĀ + Add stack. Follow the instructions in the image below.

Portainer Add Stack NAS 2

  • STEP 6

In the Name field type in homebranch. Follow the instructions in the image below.

Note: Copy Paste the code below in the Portainer Stacks Web editor.

services:
  db:
    image: postgres:18
    container_name: Homebranch-DB
    hostname: homebranch-db
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "homebranch", "-U", "homebranchuser"]
      timeout: 45s
      interval: 10s
      retries: 10
    environment:
      POSTGRES_USER: homebranchuser
      POSTGRES_PASSWORD: homebranchpass
      POSTGRES_DB: homebranch
    volumes:
      - /volume1/docker/homebranch/db:/var/lib/postgresql:rw
    restart: on-failure:5

  auth-db:
    image: postgres:18
    container_name: Homebranch-Auth-DB
    hostname: auth-db
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "authentication", "-U", "auth"]
      timeout: 45s
      interval: 10s
      retries: 10
    environment:
      POSTGRES_USER: auth
      POSTGRES_PASSWORD: authpass
      POSTGRES_DB: authentication
    volumes:
      - /volume1/docker/homebranch/auth-db:/var/lib/postgresql:rw
    restart: on-failure:5

  auth:
    image: ghcr.io/oghamark/authentication:latest
    container_name: Homebranch-Auth
    depends_on:
      - auth-db
    environment:
      DATABASE_HOST: auth-db
      DATABASE_PORT: 5432
      DATABASE_USERNAME: auth
      DATABASE_PASSWORD: authpass
      JWT_ACCESS_SECRET: dOxZYTTZgXKMHkqLBIQVImayQXAVWdzGBPuFJKggzcgvgPJPXpWzqzKaUOIOGGIr
      JWT_REFRESH_SECRET: pmICEExxFXUqJmajpigWoVkRbTlUmcELClUOvmJqcWzRWACkmuxtbKUbRTsSlGjh
      CORS_ORIGIN: http://localhost
      PORT: 3000
    restart: on-failure:5

  homebranch:
    image: ghcr.io/oghamark/homebranch:latest
    container_name: Homebranch
    depends_on:
      - db
      - auth
    environment:
      DATABASE_HOST: homebranch-db
      DATABASE_PORT: 5432
      DATABASE_USERNAME: homebranchuser
      DATABASE_PASSWORD: homebranchpass
      DATABASE_NAME: homebranch
      JWT_ACCESS_SECRET: dOxZYTTZgXKMHkqLBIQVImayQXAVWdzGBPuFJKggzcgvgPJPXpWzqzKaUOIOGGIr
      CORS_ORIGIN: http://localhost
      UPLOADS_DIRECTORY: /data/uploads
    volumes:
      - /volume1/docker/homebranch/uploads:/data/uploads:rw
    restart: on-failure:5

  homebranch-web:
    image: ghcr.io/oghamark/homebranch-web:latest
    container_name: Homebranch-WEB
    ports:
      - 1240:80
    depends_on:
      - homebranch
      - auth
    environment:
      API_BACKEND: http://homebranch:3000
      AUTH_BACKEND: http://auth:3000
    restart: on-failure:5

Note: Before you paste the code above in the Web editor area below, change the values for JWT_ACCESS_SECRET. Both values (in orange color) in the compose stack above should have the same identical code. (Generate your own Random 64 length JWT_ACCESS_SECRET.)
Note: Before you paste the code above in the Web editor area below, change the value for JWT_REFRESH_SECRET. (Generate your own Random 64 length JWT_REFRESH_SECRET.)

HomeBranch Synology NAS Set up 3

  • STEP 7

Scroll down on the page until you see a button namedĀ Deploy the stack. Click on it. Follow the instructions in the image below. The installation process can take up to a few minutes. It will depend on your Internet speed connection.

HomeBranch Synology NAS Set up 4

  • STEP 8

If everything goes right, you will see the following message at the top right of your screen: ā€œSuccess Stack successfully deployedā€œ.

Portainer Success Stack NAS

  • STEP 9

🟢Please Support My work by Making a Donation. Almost 99,9% of the people that install something using my guidesĀ forget to support my work, or justĀ ignoreĀ STEP 1. I’ve been very honest about this aspect of my work since the beginning: I don’t run any ADS, I don’t require subscriptions, paid or otherwise, I don’t collect IPs, emails, and I don’t have any referral links from Amazon or other merchants. I also don’t have any POP-UPs or COOKIES. I have repeatedly been told over the years how much I have contributed to the community. It’s something I love doing and have been honest about my passion since the beginning. But I also Need The Community to Support me Back to be able to continue doing this work.

  • STEP 10

The installation process can take up to a few seconds/minutes. It will depend on your Internet speed connection. Now open your browser and type inĀ http://Synology-ip-address:1240/sign-up Type in your own details, then click Create Account. Follow the instructions in the image below.

HomeBranch Synology NAS Set up 5

  • STEP 11

On the left sidebar, click + Add Book. Click Select Files to upload an eBook with the .epub extension from your computer. Follow the instructions in the image below.

HomeBranch Synology NAS Set up 6

  • STEP 12

Click Close. Follow the instructions in the image below.

HomeBranch Synology NAS Set up 7

  • STEP 13

Click Read to read your eBook. Follow the instructions in the image below.

HomeBranch Synology NAS Set up 8

  • STEP 14

Start reading your book. Adjust the settings according to your preferences. Follow the instructions in the image below.

HomeBranch Synology NAS Set up 10

  • STEP 14

Your Authors at a glance!

HomeBranch Synology NAS Set up 9

Enjoy Homebranch!

šŸ†˜TROUBLESHOOTING

Note: If you want to run the Homebranch container over HTTPS, check How to Run Docker Containers Over HTTPS. In order to make Homebranch work via HTTPS, it’s mandatory to activate WebSocket.

Note: Can I run Docker on my Synology NAS?Ā See the supported models.
Note: How to Back Up Docker Containers on your Synology NAS.
Note: Find outĀ how to update the Homebranch container with the latest image.
Note: How to Add USB Support on DSM 7.2.
Note: How to Free Disk Space on Your NAS if You Run Docker.
Note: How to Schedule Start & Stop For Docker Containers.
Note: How to Activate Email Notifications.
Note: How to Add Access Control Profile on Your NAS.
Note: How to Change Docker Containers Restart Policy.
Note: How to Use Docker Containers With VPN.
Note: Convert Docker Run Into Docker Compose.
Note: How to Clean Docker.
Note: How to Clean Docker Automatically.
Note: Best Practices When Using Docker and DDNS.
Note: Some Docker Containers Need WebSocket.
Note: Find out the Best NAS Models For Docker.
Note: Activate Gmail SMTP For Docker Containers.

This post was updated on Sunday / March 8th, 2026 at 11:32 PM

No sponsors, no corporations, no ads, no subscriptions, no membership tiers, no referral links, no pop-ups, no cookies, no tracking code. Just pure guides for the community from Marius.