Compare commits

..

2 Commits

Author SHA1 Message Date
azpsen
f0ec9c7a4a env docs, invidious healthcheck 2025-03-26 11:36:36 -05:00
azpsen
47cc083199 enable invidious, add convertx 2025-03-26 11:01:32 -05:00
2 changed files with 187 additions and 90 deletions

View File

@ -93,44 +93,48 @@ services:
- ${DOCKER_DIR}/immich:/var/lib/postgresql/data - ${DOCKER_DIR}/immich:/var/lib/postgresql/data
restart: unless-stopped restart: unless-stopped
# ## Invidious (youtube client) ## Invidious (youtube client)
# invidious: invidious:
# image: quay.io/invidious/invidious:latest image: quay.io/invidious/invidious:latest
# container_name: invidious container_name: invidious
# ports: ports:
# - 9080:3000 - 9080:3000
# env_file: env_file:
# - ${ENV_DIR}/invidious.env - ${ENV_DIR}/invidious.env
# depends_on: healthcheck:
# - invidious-db test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1
# - sighelper interval: 30s
# restart: unless-stopped timeout: 5s
# sighelper: retries: 2
# image: quay.io/invidious/inv-sig-helper:latest depends_on:
# container_name: invidious-sighelper - invidious-db
# init: true - invidious-sighelper
# command: ["--tcp", "0.0.0.0:12999"] restart: unless-stopped
# ports: invidious-sighelper:
# - 12999:12999 image: quay.io/invidious/inv-sig-helper:latest
# environment: container_name: invidious-sighelper
# - ${TZ} init: true
# - RUST_LOG=info command: ["--tcp", "0.0.0.0:12999"]
# cap_drop: ports:
# - ALL - 12999:12999
# read_only: true environment:
# security_opt: - RUST_LOG=info
# - no-new-privileges:true cap_drop:
# restart: unless-stopped - ALL
# invidious-db: read_only: true
# image: docker.io/library/postgres:14 security_opt:
# container_name: invidious-db - no-new-privileges:true
# volumes: restart: unless-stopped
# - ${DOCKER_DIR}/invidious/data:/var/lib/postgresql/data invidious-db:
# - ${DOCKER_DIR}/invidious/config/sql:/config/sql image: docker.io/library/postgres:14
# - ${DOCKER_DIR}/invidious/docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh container_name: invidious-db
# env_file: volumes:
# - ${ENV_DIR}/invidious.env - ${DOCKER_DIR}/invidious/data:/var/lib/postgresql/data
# restart: unless-stopped - ${DOCKER_DIR}/invidious/config/sql:/config/sql
- ${DOCKER_DIR}/invidious/docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
env_file:
- ${ENV_DIR}/invidious.env
restart: unless-stopped
## Jellyfin (media server) ## Jellyfin (media server)
jellyfin: jellyfin:
@ -172,6 +176,33 @@ services:
- ${DNS_IP} - ${DNS_IP}
restart: unless-stopped restart: unless-stopped
## ConvertX (file converter)
convertx:
image: ghcr.io/c4illin/convertx
container_name: convertx
ports:
- 9132:3000
volumes:
- ${DOCKER_DIR}/convertx:/app/data
env_file:
- ${ENV_DIR}/convertx.env
environment:
- PUID=1000
- PGID=1000
restart: unless-stopped
## Dumbpad (simple notes)
dumbpad:
image: dumbwareio/dumbpad:latest
container_name: dumbpad
ports:
- 3007:3000
volumes:
- ${DOCKER_DIR}/dumbpad:/app/data
env_file:
- ${ENV_DIR}/dumbpad.env
restart: unless-stopped
## Gitea ## Gitea
gitea: gitea:
image: docker.io/gitea/gitea:latest-rootless image: docker.io/gitea/gitea:latest-rootless
@ -203,44 +234,6 @@ services:
- 9283:80 - 9283:80
restart: unless-stopped restart: unless-stopped
## TinyHome (server dashboard)
tinyhome:
container_name: tinyhome
image: azpsen/tinyhome:main
environment:
- REFRESH_INTERVAL=360
ports:
- 3000:80
volumes:
- ${DOCKER_DIR}/tinyhome:/config:rw
dns:
- ${DNS_IP}
restart: unless-stopped
docker-proxy:
image: ghcr.io/tecnativa${DOCKER_DIR}-socket-proxy:latest
container_name: docker-proxy
environment:
- CONTAINERS=1 # Allow access to viewing containers
- POST=0 # Disallow any POST operations (effectively read-only)
ports:
- 2375:2375
volumes:
- /var/run${DOCKER_DIR}.sock:/var/run${DOCKER_DIR}.sock:ro
restart: unless-stopped
## Dumbpad (simple notes)
dumbpad:
image: dumbwareio/dumbpad:latest
container_name: dumbpad
ports:
- 3007:3000
volumes:
- ${DOCKER_DIR}/dumbpad:/app/data
env_file:
- ${ENV_DIR}/dumbpad.env
restart: unless-stopped
## Hoarder (link aggregator) ## Hoarder (link aggregator)
hoarder: hoarder:
image: ghcr.io/hoarder-app/hoarder:release image: ghcr.io/hoarder-app/hoarder:release
@ -494,6 +487,20 @@ services:
- ${DOCKER_DIR}/tandoor/postgresql:/var/lib/postgresql/data - ${DOCKER_DIR}/tandoor/postgresql:/var/lib/postgresql/data
restart: unless-stopped restart: unless-stopped
## TinyHome (server dashboard)
tinyhome:
container_name: tinyhome
image: azpsen/tinyhome:main
environment:
- REFRESH_INTERVAL=360
ports:
- 3000:80
volumes:
- ${DOCKER_DIR}/tinyhome:/config:rw
dns:
- ${DNS_IP}
restart: unless-stopped
## Vaultwarden (password manager) ## Vaultwarden (password manager)
vaultwarden: vaultwarden:
image: vaultwarden/server:latest image: vaultwarden/server:latest
@ -550,19 +557,6 @@ services:
target: /root/.config/glances/glances.pwd target: /root/.config/glances/glances.pwd
restart: unless-stopped restart: unless-stopped
## Doku (docker disk usage analyzer)
doku:
container_name: doku
image: amerkurev/doku
ports:
- 9090:9090
volumes:
- /var/run${DOCKER_DIR}.sock:/var/run${DOCKER_DIR}.sock:ro
- /:/hostroot:ro
environment:
- SI=false
restart: unless-stopped
## Scrutiny (disk health monitoring) ## Scrutiny (disk health monitoring)
scrutiny: scrutiny:
container_name: scrutiny container_name: scrutiny

103
readme.md
View File

@ -31,6 +31,7 @@ These are all the services hosted, what they are for, and any clients I use with
- [Actual Budget](https://actualbudget.org/) - Excellent budgeting app. It can be automatically synced with your bank ([SimpleFIN Bridge](https://beta-bridge.simplefin.org/) for US banks, $15/year), but I have found that to be unstable - [Actual Budget](https://actualbudget.org/) - Excellent budgeting app. It can be automatically synced with your bank ([SimpleFIN Bridge](https://beta-bridge.simplefin.org/) for US banks, $15/year), but I have found that to be unstable
- There used to be an official app but it has been discontinued - I added the website to my phone's home screen and it works quite well - There used to be an official app but it has been discontinued - I added the website to my phone's home screen and it works quite well
- [ConvertX](https://github.com/C4illin/ConvertX) - File conversion utility
- [DumbPad](https://github.com/DumbWareio/DumbPad) - Stupid simple notes app (for grocery lists, quick notes, etc.) - [DumbPad](https://github.com/DumbWareio/DumbPad) - Stupid simple notes app (for grocery lists, quick notes, etc.)
- [Gitea](https://about.gitea.com/) - Git server - in the process of replacing my GitHub account - [Gitea](https://about.gitea.com/) - Git server - in the process of replacing my GitHub account
- [Grocy](https://github.com/grocy/grocy) - Household management (Am I out of milk? Do I have AAA batteries? What can I make for dinner?) - [Grocy](https://github.com/grocy/grocy) - Household management (Am I out of milk? Do I have AAA batteries? What can I make for dinner?)
@ -40,6 +41,7 @@ These are all the services hosted, what they are for, and any clients I use with
- [Joplin](https://joplinapp.org/) - Notes (Obsidian alternative) - [Joplin](https://joplinapp.org/) - Notes (Obsidian alternative)
- [Kiwix](https://kiwix.org/en/) - Offline wiki hosting - I have Wikipedia, the Arch Linux wiki, and several others downloaded - [Kiwix](https://kiwix.org/en/) - Offline wiki hosting - I have Wikipedia, the Arch Linux wiki, and several others downloaded
- [LinkStack](https://linkstack.org/) - Self-hosted LinkTree alternative ([azpsen.com](https://azpsen.com)) - more for content creators, definitely overkill for what I need. I'll probably replace it with a simple static site at some point - [LinkStack](https://linkstack.org/) - Self-hosted LinkTree alternative ([azpsen.com](https://azpsen.com)) - more for content creators, definitely overkill for what I need. I'll probably replace it with a simple static site at some point
- [LubeLogger](https://lubelogger.com/) - Car mileage and service tracker
- [Maloja](https://github.com/krateng/maloja) - Self-hosted music listen tracker (last.fm replacement) - with [multi-scrobbler](https://github.com/FoxxMD/multi-scrobbler) for Jellyfin support - [Maloja](https://github.com/krateng/maloja) - Self-hosted music listen tracker (last.fm replacement) - with [multi-scrobbler](https://github.com/FoxxMD/multi-scrobbler) for Jellyfin support
- [Miniflux](https://miniflux.app/) - Minimalist RSS feed reader - [Miniflux](https://miniflux.app/) - Minimalist RSS feed reader
- [NetNewsWire](https://netnewswire.com/) - Wonderful all-purpose iOS RSS client - [NetNewsWire](https://netnewswire.com/) - Wonderful all-purpose iOS RSS client
@ -119,6 +121,29 @@ Below are the variables that need to be set in the `.env` file for each service.
TUNNEL_TOKEN= TUNNEL_TOKEN=
``` ```
### ConvertX
[Docs](https://github.com/C4illin/ConvertX#environment-variables)
```env
# convertx.env
JWT_SECRET=
HTTP_ALLOWED=true
```
### DumbPad
[Docs](https://github.com/C4illin/ConvertX#environment-variables)
```env
# dumbpad.env
SITE_TITLE=
DUMBPAD_PIN=
BASE_URL=
```
### gluetun ### gluetun
[Docs](https://github.com/qdm12/gluetun) [Docs](https://github.com/qdm12/gluetun)
@ -164,6 +189,51 @@ POSTGRES_USER=postgres
POSTGRES_DB=immich POSTGRES_DB=immich
``` ```
### Invidious
[Docs](https://docs.invidious.io/installation/)
Note that the `password` under `db` in `INVIDIOUS_CONFIG` should be the same as the `POSTGRES_PASSWORD`. The `hmac_key` should be a different, randomly generated value
```env
# invidious.env
# Invidious
INVIDIOUS_CONFIG='
db:
dbname: invidious
user: invidious
password:
host: invidious-db
port: 5432
check_tables: true
signature_server: invidious-sighelper:12999
visitor_data:
po_token:
external_port: 9080
https_only: false
statistics_enabled: false
registration_enabled: false
popular_enabled: false
hmac_key:
admins: ["april"]
default_user_preferences:
quality: dash
feed_menu: ["Trending", "Subscriptions", "Playlists"]
default_home: Trending
'
# Database
POSTGRES_DB=invidious
POSTGRES_USER=invidious
POSTGRES_PASSWORD=
# to update the visitor_data and po_token:
# docker run quay.io/invidious/youtube-trusted-session-generator
# or, for use with gluetun:
# docker run --network=container:gluetun quay.io/invidious/youtube-trusted-session-generator
```
### Joplin ### Joplin
[Docs](https://github.com/flosoft/docker-joplin-server) [Docs](https://github.com/flosoft/docker-joplin-server)
@ -204,6 +274,21 @@ HTTPS_SERVER_NAME=
SERVER_ADMIN= SERVER_ADMIN=
``` ```
### LubeLogger
[Docs](https://docs.lubelogger.com/Advanced/Environment%20Variables)
```env
# lubelogger.env
LC_ALL=en_US
LANG=en_US
MailConfig__EmailServer=
MailConfig__EmailFrom=
MailConfig__Port=587
MailConfig__Username=
MailConfig__Password=
```
### Miniflux ### Miniflux
[Docs](https://miniflux.app/docs/docker.html) [Docs](https://miniflux.app/docs/docker.html)
@ -219,6 +304,24 @@ POSTGRES_PASSWORD= # this is the password used above
POSTGRES_DB=miniflux POSTGRES_DB=miniflux
``` ```
### MultiScrobbler
[Docs](https://foxxmd.github.io/multi-scrobbler/docs/configuration/)
```env
# multi-scrobbler.env
TZ=America/Chicago
PUID=1000
PGID=1000
MALOJA_URL=http://maloja:42010
MALOJA_API_KEY=
JELLYFIN_URL=http://jellyfin:8096
JELLYFIN_USER=
JELLYFIN_APIKEY=
JELLYFIN_USERS_ALLOW=
```
### Paperless-ngx ### Paperless-ngx
[Docs](https://docs.paperless-ngx.com/setup/#docker) [Docs](https://docs.paperless-ngx.com/setup/#docker)