Skip to content

Miscellaneous applications

This section covers various standalone applications not included in other stacks.

Audiobookshelf

"Audiobookshelf is an open-source project that lets you stream and download audiobooks and podcasts from your own server."

URLaudiobooks.fjellhei.men
Volumes/config, /metadata, /audiobooks, /podcasts
Project websiteaudiobookshelf.org
Docker compose
yaml
name: audiobookshelf
services:
  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    container_name: audiobookshelf
    volumes:
      - /fjellheimen/data/audiobookshelf/config:/config
      - /fjellheimen/data/audiobookshelf/metadata:/metadata
      - /xdrive/Media/Audiobooks:/audiobooks
      - /xdrive/Media/Podcasts:/podcasts
    env_file:
      - /fjellheimen/stacks/.env
    networks:
      - proxy-network
    healthcheck:
      test: wget -nv -t1 --spider http://localhost:80 || exit 1
      interval: 1m
      start_period: 20s
      timeout: 10s
      retries: 3
    restart: unless-stopped
networks:
  proxy-network:
    external: true

Forgejo

"Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job."

URLcode.fjellhei.men
Volumes/data
Project websiteforgejo.org
Docker compose
yaml
name: forgejo
services:
  forgejo:
    image: codeberg.org/forgejo/forgejo:13
    container_name: forgejo
    volumes:
      - /fjellheimen/data/forgejo:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    networks:
      - proxy-network
    env_file:
      - /fjellheimen/stacks/.env
    restart: unless-stopped
    ports:
      - 2222:22
networks:
  proxy-network:
    external: true

ssh port

To use ssh for git operations, open a port in your firewall (eg. 2222), map it to 22 in the container and set SSH_PORT setting to 2222 when setting up the Forgejo instance. This enables users to connect to Forgejos built-in ssh server via git, while not interfering with the default ssh port on the machine.

Gramps Web

"Gramps Web is a modern, feature-packed, free & open source web app for browsing and collaboratively editing genealogical databases."

URLgramps.fjellhei.men
Volumes/app/users, /app/indexdir, /app/thumbnail_cache, /app/cache, /app/secret, /app/media,/tmp, /root/.gramps/grampsdb
Project websitegramps-project/gramps-web
Docker compose
yaml
name: gramps
services:
  server: &a1
    image: ghcr.io/gramps-project/grampsweb:latest
    container_name: gramps-server
    environment:
      GRAMPSWEB_TREE: Gramps Web
      GRAMPSWEB_CELERY_CONFIG__broker_url: redis://gramps-redis:6379/0
      GRAMPSWEB_CELERY_CONFIG__result_backend: redis://gramps-redis:6379/0
      GRAMPSWEB_RATELIMIT_STORAGE_URI: redis://gramps-redis:6379/1
    depends_on:
      - redis
    volumes:
      - /fjellheimen/data/gramps/app/users:/app/users
      - /fjellheimen/data/gramps/app/indexdir:/app/indexdir
      - /fjellheimen/data/gramps/app/thumbnail_cache:/app/thumbnail_cache
      - /fjellheimen/data/gramps/app/cache:/app/cache
      - /fjellheimen/data/gramps/app/secret:/app/secret
      - /fjellheimen/data/gramps/app/media:/app/media
      - /fjellheimen/data/gramps/tmp:/tmp
      - /fjellheimen/data/gramps/database/:/root/.gramps/grampsdb
    networks:
      - proxy-network
      - gramps-network
    env_file:
      - /fjellheimen/stacks/.env
    healthcheck:
      test: wget -nv -t1 --spider http://localhost:5000 || exit 1
      interval: 1m
      start_period: 20s
      timeout: 10s
      retries: 3
    restart: unless-stopped
  celery:
    <<: *a1
    container_name: gramps-celery
    depends_on:
      - server
      - redis
    command: celery -A gramps_webapi.celery worker --loglevel=INFO --concurrency=2
    networks:
      - gramps-network
    healthcheck:
      test:
        - CMD-SHELL
        - SECRET_KEY=123 celery -A gramps_webapi.celery inspect ping | grep -q
          'pong' || exit 1
      interval: 1m
      start_period: 20s
      timeout: 10s
      retries: 3
  redis:
    image: docker.io/library/redis:7.2.4-alpine
    container_name: gramps-redis
    networks:
      - gramps-network
    env_file:
      - /fjellheimen/stacks/.env
    healthcheck:
      test: redis-cli ping || exit 1
    restart: unless-stopped
networks:
  gramps-network:
    name: gramps-network
  proxy-network:
    external: true

Homebox

"HomeBox is a simple and fast web app for managing your home inventory, organization, and needs."

URLinventory.fjellhei.men
Volumes/data
Project websitesysadminsmedia/homebox
Docker compose
yaml
name: homebox
services:
  homebox:
    image: ghcr.io/sysadminsmedia/homebox:latest
    container_name: homebox
    volumes:
      - /fjellheimen/data/homebox:/data/
    networks:
      - proxy-network
    env_file:
      - /fjellheimen/stacks/.env
    environment:
      - HBOX_OPTIONS_ALLOW_REGISTRATION=false
    restart: unless-stopped
networks:
  proxy-network:
    external: true

iSponsorBlockTV

"iSponsorBlockTV is a self-hosted application that connects to your YouTube TV app and automatically skips segments (like Sponsors or intros) in YouTube videos using the SponsorBlock ⁠ API."

Volumes/app/data
Project websitedmunozv04/iSponsorBlockTV
Docker compose
yaml
name: isponsorblocktv
services:
  isponsorblocktv:
    image: ghcr.io/dmunozv04/isponsorblocktv:latest
    container_name: isponsorblocktv
    volumes:
      - /fjellheimen/data/isponsorblocktv:/app/data
    network_mode: host
    env_file:
      - /fjellheimen/stacks/.env
    restart: unless-stopped

Linkding

"Linkding is a self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker."

URLlinks.fjellhei.men
Volumes/etc/linkding/data
Project websitesissbruecker/linkding
Docker compose
yaml
name: linkding
services:
  linkding:
    image: sissbruecker/linkding:latest
    container_name: linkding
    volumes:
      - /fjellheimen/data/linkding:/etc/linkding/data
    networks:
      - proxy-network
    env_file:
      - /fjellheimen/stacks/.env
    healthcheck:
      test: curl --fail http://localhost:9090 || exit 1
      interval: 1m
      start_period: 20s
      timeout: 10s
      retries: 3
    restart: unless-stopped
networks:
  proxy-network:
    external: true

Obsidian

"Obsidian is a flexible and open app that lets you store, link, and publish your notes on any device."

URLnotes.fjellhei.men
Volumes/config, /vaults,
Project websitelinuxserver.io/obsidian
Docker compose
yaml
name: obsidian
services:
  obsidian:
    image: lscr.io/linuxserver/obsidian:latest
    container_name: obsidian
    volumes:
      - /fjellheimen/data/obsidian:/config
      - /xdrive/Data/Vaults:/vaults
    networks:
      - proxy-network
    env_file:
      - /fjellheimen/stacks/.env
    shm_size: 1gb
    healthcheck:
      test: curl --fail http://localhost:3000 || exit 1
      interval: 1m
      start_period: 20s
      timeout: 10s
      retries: 3
    restart: unless-stopped
networks:
  proxy-network:
    external: true

Plex

"Plex is an app that lets you organize, stream, and share your personal media and discover new content from various sources."

URLtv.fjellhei.men
Volumes/config, /movies, /tv, /music
Project websiteplex.tv

Network mode

Running Plex with network_mode: host appears to increase the chance that remote streaming works out of the box.

Docker compose
yaml
name: plex
services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    volumes:
      - /fjellheimen/data/plex/:/config
      - /xdrive/Media/Movies:/movies
      - /xdrive/Media/TV:/tv
      - /xdrive/Media/Music:/music
    network_mode: host
    env_file:
      - /fjellheimen/stacks/.env
    healthcheck:
      test: curl --fail http://localhost:32400/web || exit 1
      interval: 1m
      start_period: 20s
      timeout: 10s
      retries: 3
    restart: unless-stopped
networks: {}

Syncthing

"Syncthing is a software that syncs files between two or more devices in real time, securely and privately."

URLsync.fjellhei.men
Volumes/config, /data
Project websitesyncthing.net
Docker compose
yaml
name: syncthing
services:
  syncthing:
    image: lscr.io/linuxserver/syncthing:latest
    container_name: syncthing
    volumes:
      - /fjellheimen/data/syncthing:/config
      - /xdrive/Syncthing:/data
    networks:
      - proxy-network
    env_file:
      - /fjellheimen/stacks/.env
    healthcheck:
      test: curl --fail http://localhost:8384 || exit 1
      interval: 1m
      start_period: 20s
      timeout: 10s
      retries: 3
    restart: unless-stopped
networks:
  proxy-network:
    external: true

Vaultwarden

"Vaultwarden is a self-hosted server compatible with Bitwarden clients, written in Rust and with various features."

URLpasswords.fjellhei.men
Volumes/data
Project websitedani-garcia/vaultwarden
Docker compose
yaml
name: vaultwarden
services:
  vaultwarden:
    image: ghcr.io/dani-garcia/vaultwarden:latest
    container_name: vaultwarden
    volumes:
      - /fjellheimen/data/vaultwarden:/data
    networks:
      - proxy-network
    env_file:
      - /fjellheimen/stacks/.env
    restart: unless-stopped
networks:
  proxy-network:
    external: true