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
restart: unless-stopped
# ## Invidious (youtube client)
# invidious:
# image: quay.io/invidious/invidious:latest
# container_name: invidious
# ports:
# - 9080:3000
# env_file:
# - ${ENV_DIR}/invidious.env
# depends_on:
# - invidious-db
# - sighelper
# restart: unless-stopped
# sighelper:
# image: quay.io/invidious/inv-sig-helper:latest
# container_name: invidious-sighelper
# init: true
# command: ["--tcp", "0.0.0.0:12999"]
# ports:
# - 12999:12999
# environment:
# - ${TZ}
# - RUST_LOG=info
# cap_drop:
# - ALL
# read_only: true
# security_opt:
# - no-new-privileges:true
# restart: unless-stopped
# invidious-db:
# image: docker.io/library/postgres:14
# container_name: invidious-db
# volumes:
# - ${DOCKER_DIR}/invidious/data:/var/lib/postgresql/data
# - ${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
## Invidious (youtube client)
invidious:
image: quay.io/invidious/invidious:latest
container_name: invidious
ports:
- 9080:3000
env_file:
- ${ENV_DIR}/invidious.env
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1
interval: 30s
timeout: 5s
retries: 2
depends_on:
- invidious-db
- invidious-sighelper
restart: unless-stopped
invidious-sighelper:
image: quay.io/invidious/inv-sig-helper:latest
container_name: invidious-sighelper
init: true
command: ["--tcp", "0.0.0.0:12999"]
ports:
- 12999:12999
environment:
- RUST_LOG=info
cap_drop:
- ALL
read_only: true
security_opt:
- no-new-privileges:true
restart: unless-stopped
invidious-db:
image: docker.io/library/postgres:14
container_name: invidious-db
volumes:
- ${DOCKER_DIR}/invidious/data:/var/lib/postgresql/data
- ${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:
@ -172,6 +176,33 @@ services:
- ${DNS_IP}
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:
image: docker.io/gitea/gitea:latest-rootless
@ -203,44 +234,6 @@ services:
- 9283:80
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:
image: ghcr.io/hoarder-app/hoarder:release
@ -494,6 +487,20 @@ services:
- ${DOCKER_DIR}/tandoor/postgresql:/var/lib/postgresql/data
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:
image: vaultwarden/server:latest
@ -550,19 +557,6 @@ services:
target: /root/.config/glances/glances.pwd
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:
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
- 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.)
- [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?)
@ -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)
- [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
- [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
- [Miniflux](https://miniflux.app/) - Minimalist RSS feed reader
- [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=
```
### 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
[Docs](https://github.com/qdm12/gluetun)
@ -164,6 +189,51 @@ POSTGRES_USER=postgres
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
[Docs](https://github.com/flosoft/docker-joplin-server)
@ -204,6 +274,21 @@ HTTPS_SERVER_NAME=
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
[Docs](https://miniflux.app/docs/docker.html)
@ -219,6 +304,24 @@ POSTGRES_PASSWORD= # this is the password used above
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
[Docs](https://docs.paperless-ngx.com/setup/#docker)