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."
| URL | audiobooks.fjellhei.men |
| Volumes | /config, /metadata, /audiobooks, /podcasts |
| Project website | audiobookshelf.org |
Docker compose
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: trueForgejo
"Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job."
| URL | code.fjellhei.men |
| Volumes | /data |
| Project website | forgejo.org |
Docker compose
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: truessh 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."
| URL | gramps.fjellhei.men |
| Volumes | /app/users, /app/indexdir, /app/thumbnail_cache, /app/cache, /app/secret, /app/media,/tmp, /root/.gramps/grampsdb |
| Project website | gramps-project/gramps-web |
Docker compose
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: trueHomebox
"HomeBox is a simple and fast web app for managing your home inventory, organization, and needs."
| URL | inventory.fjellhei.men |
| Volumes | /data |
| Project website | sysadminsmedia/homebox |
Docker compose
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: trueiSponsorBlockTV
"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 website | dmunozv04/iSponsorBlockTV |
Docker compose
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-stoppedLinkding
"Linkding is a self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker."
| URL | links.fjellhei.men |
| Volumes | /etc/linkding/data |
| Project website | sissbruecker/linkding |
Docker compose
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: trueObsidian
"Obsidian is a flexible and open app that lets you store, link, and publish your notes on any device."
| URL | notes.fjellhei.men |
| Volumes | /config, /vaults, |
| Project website | linuxserver.io/obsidian |
Docker compose
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: truePlex
"Plex is an app that lets you organize, stream, and share your personal media and discover new content from various sources."
| URL | tv.fjellhei.men |
| Volumes | /config, /movies, /tv, /music |
| Project website | plex.tv |
Network mode
Running Plex with network_mode: host appears to increase the chance that remote streaming works out of the box.
Docker compose
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."
| URL | sync.fjellhei.men |
| Volumes | /config, /data |
| Project website | syncthing.net |
Docker compose
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: trueVaultwarden
"Vaultwarden is a self-hosted server compatible with Bitwarden clients, written in Rust and with various features."
| URL | passwords.fjellhei.men |
| Volumes | /data |
| Project website | dani-garcia/vaultwarden |
Docker compose
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