mirror of
https://github.com/tborychowski/self-hosted-cookbook.git
synced 2025-01-22 19:38:30 +00:00
more apps
This commit is contained in:
parent
f4871bbeae
commit
6a2e89fdcc
55
README.md
55
README.md
@ -9,6 +9,11 @@ Hence - this repo.<br>
|
||||
The aims is to provide a ready-to-run recipes that you can just copy, paste and run.<br>
|
||||
So, without further ado, here's the current list:
|
||||
|
||||
# General Information
|
||||
- How to setup docker?
|
||||
- Troubleshooting
|
||||
|
||||
|
||||
# Ad Blockers & local DNS
|
||||
- [AdGuard Home](apps/ad-blockers/adguard.md)
|
||||
- [PiHole](apps/ad-blockers/pihole.md)
|
||||
@ -43,7 +48,7 @@ So, without further ado, here's the current list:
|
||||
- [Homer](apps/dashboard/homer.md)
|
||||
- [SUI](apps/dashboard/sui.md)
|
||||
- [Organizr](https://github.com/causefx/Organizr) [external]
|
||||
- [Heimdall](https://github.com/linuxserver/Heimdall)
|
||||
- [Heimdall](https://github.com/linuxserver/Heimdall) [external]
|
||||
|
||||
# Docker Managers
|
||||
- [Diun](apps/docker/diun.md)
|
||||
@ -63,7 +68,7 @@ So, without further ado, here's the current list:
|
||||
- Tools
|
||||
|
||||
# Home Automation
|
||||
- HomeAssistant
|
||||
- [HomeAssistant](apps/home-automation/home-assistant.md)
|
||||
|
||||
# Media Managers
|
||||
- Calibre (e-books)
|
||||
@ -79,14 +84,46 @@ So, without further ado, here's the current list:
|
||||
- Youtube downloader
|
||||
|
||||
# Monitors
|
||||
- Cachet
|
||||
- Dockprom
|
||||
- Statping
|
||||
## Self-hosted
|
||||
- [Cachet](apps/monitors/cachet.md)
|
||||
- [Dockprom](apps/monitors/dockprom.md)
|
||||
- [PhpServerMonitor](apps/monitors/php-server-monitor.md)
|
||||
- [Statping](apps/monitors/statping.md)
|
||||
|
||||
## Other, not-fully tested
|
||||
- [Staytus](https://github.com/adamcooke/staytus) [external] - service status is updated manually!
|
||||
- [cstate](https://cstate.mnts.lt/) [external] - weird...
|
||||
- [Glances](https://glances.readthedocs.io/en/stable/install.html) [external] - resource hog
|
||||
- [Netdata](https://hub.docker.com/r/netdata/netdata) [external] - lots of stuff, nothing relevant
|
||||
- [LibreNMS](https://github.com/librenms/docker) [external] - ugly
|
||||
|
||||
## Hosted
|
||||
- [statuspage.io](https://www.atlassian.com/software/statuspage) [external] - same - manual process!
|
||||
- [updown](https://updown.io) [external] - doesn't seem to have a page with multiple services' statuses...
|
||||
- [healthchecks](https://healthchecks.io) [external] - cron-based monitoring, no public status page, just badges
|
||||
- [uptimerobot](https://uptimerobot.com) [external] - free is very basic, constantly nags for upgrade to paid...
|
||||
|
||||
## Useful links
|
||||
- [awesome-sysadmin: monitoring](https://github.com/n1trux/awesome-sysadmin#monitoring)
|
||||
- [reddit thread](https://www.reddit.com/r/selfhosted/comments/epzt3f/im_looking_for_a_lean_monitoring_and_altert/)
|
||||
- [reddit thread](https://www.reddit.com/r/selfhosted/comments/gwe18p/looking_for_a_neat_status_page_like/)
|
||||
|
||||
|
||||
|
||||
# Notifications
|
||||
- Pushover
|
||||
- Synology-notifications
|
||||
- Synology-sms-relay
|
||||
- [Notifiers by service](apps/notifications/notifiers-by-service.md) - comparison table
|
||||
- [Pushover](apps/notifications/pushover.md)
|
||||
- [Synology-sms-relay](apps/notifications/synology-sms-relay.md)
|
||||
|
||||
|
||||
## Other
|
||||
- [apprise](https://github.com/caronc/apprise)
|
||||
- [Synapse](https://github.com/matrix-org/synapse#synapse-installation)
|
||||
- [Gotify](https://github.com/gotify/server) - notification server
|
||||
- [pushover](https://pushover.net/)
|
||||
- [unifi event monitor](https://github.com/tborychowski/unifi-event-monitor)
|
||||
|
||||
|
||||
|
||||
# Photos
|
||||
- PhotoPrism
|
||||
@ -94,6 +131,7 @@ So, without further ado, here's the current list:
|
||||
- Piwigo
|
||||
- Pixelfed
|
||||
|
||||
|
||||
# Project Management
|
||||
- Jira
|
||||
- Kanboard
|
||||
@ -102,6 +140,7 @@ So, without further ado, here's the current list:
|
||||
- Vikunja
|
||||
- Wekan
|
||||
|
||||
|
||||
# Reverse proxy & SSO
|
||||
- Authelia
|
||||
- Traefik
|
||||
|
@ -50,4 +50,4 @@ networks:
|
||||
- find the docker container IP, e.g. in /data/qbittorrent/logs
|
||||
- in the settings, in WebUI/Authentication - enter the net mask, e.g.: `192.168.80.0/24`
|
||||
|
||||
![Screenshot](qbit.png)
|
||||
![Screenshot](qbit-settings.png)
|
||||
|
141
apps/home-automation/home-assistant.md
Normal file
141
apps/home-automation/home-assistant.md
Normal file
@ -0,0 +1,141 @@
|
||||
# Home Assistant
|
||||
|
||||
- [Homepage](https://www.home-assistant.io/)
|
||||
- [Github repo](https://github.com/home-assistant/core)
|
||||
- [DockerHub repo](https://hub.docker.com/r/homeassistant/home-assistant)
|
||||
- [Docs](https://www.home-assistant.io/docs/)
|
||||
|
||||
## Links
|
||||
- [awesome-ha](/Users/i313281/Projects/_playground/self-hosted-cookbook/apps/home-automation/home-assistant.md)
|
||||
- [MDI icons](https://cdn.rawgit.com/james-fry/home-assistant-mdi/efd95d7a/home-assistant-mdi.html)
|
||||
- [Full MDI icons](https://cdn.materialdesignicons.com/5.2.45/)
|
||||
- [DubhAd/Home-AssistantConfig](https://github.com/DubhAd/Home-AssistantConfig)
|
||||
- [compatible devices](https://www.hadevices.com/)
|
||||
|
||||
## Integrations
|
||||
- [hacs](https://github.com/hacs/integration)
|
||||
- [aarlo](https://github.com/twrecked/hass-aarlo)
|
||||
- [garbage collection](https://github.com/bruxy70/Garbage-Collection)
|
||||
- [unifi protect](https://github.com/briis/unifiprotect)
|
||||
- [homeassistant-attributes](https://github.com/pilotak/homeassistant-attributes)
|
||||
|
||||
## Plugins
|
||||
- [simple-thermostat](https://github.com/nervetattoo/simple-thermostat)
|
||||
- [lovelace-hass-aarlo](https://github.com/twrecked/lovelace-hass-aarlo)
|
||||
- [mini-graph-card](https://github.com/kalkih/mini-graph-card)
|
||||
- [custom-header](https://github.com/maykar/custom-header)
|
||||
|
||||
## Themes
|
||||
- [grey-night](https://github.com/home-assistant-community-themes/grey-night)
|
||||
- [slate](https://github.com/seangreen2/slate_theme)
|
||||
|
||||
|
||||
## docker-compose.yml
|
||||
```yml
|
||||
version: '3'
|
||||
services:
|
||||
homeassistant:
|
||||
container_name: home-assistant
|
||||
image: homeassistant/home-assistant
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- TZ=Europe/Dublin
|
||||
ports:
|
||||
- 8123:8123
|
||||
volumes:
|
||||
- ./config:/config
|
||||
```
|
||||
|
||||
## configuration.yml
|
||||
```yml
|
||||
default_config:
|
||||
|
||||
tts: # Text to speech
|
||||
- platform: google_translate
|
||||
|
||||
group: !include groups.yaml
|
||||
automation: !include automations.yaml
|
||||
script: !include scripts.yaml
|
||||
scene: !include scenes.yaml
|
||||
frontend:
|
||||
themes: !include_dir_merge_named themes
|
||||
homeassistant:
|
||||
customize: !include customize.yaml
|
||||
|
||||
updater:
|
||||
reporting: false
|
||||
|
||||
wake_on_lan:
|
||||
|
||||
aarlo:
|
||||
username: "email@example.com"
|
||||
password: "password"
|
||||
|
||||
webostv:
|
||||
host: <TV IP>
|
||||
name: LGTV
|
||||
turn_on_action:
|
||||
service: wake_on_lan.send_magic_packet
|
||||
data:
|
||||
mac: <MAC_ADDRESS>
|
||||
broadcast_address: <TV IP | SUBNET MASK>
|
||||
broadcast_port: 9
|
||||
customize:
|
||||
sources:
|
||||
- Apple TV
|
||||
- TV
|
||||
- YouTube
|
||||
- Plex
|
||||
|
||||
notify:
|
||||
- name: pushover_notifier
|
||||
platform: pushover
|
||||
api_key: <API KEY>
|
||||
user_key: <USER KEY>
|
||||
|
||||
calendar:
|
||||
- platform: caldav
|
||||
username: "<USERNAME>"
|
||||
password: "<PASSWORD>"
|
||||
url: <CALDAV URL>
|
||||
|
||||
camera:
|
||||
- platform: aarlo
|
||||
|
||||
media_player:
|
||||
- platform: aarlo
|
||||
|
||||
weather:
|
||||
- platform: gismeteo
|
||||
mode: daily
|
||||
latitude: 0
|
||||
longitude: 0
|
||||
|
||||
sensor:
|
||||
- platform: aarlo
|
||||
monitored_conditions:
|
||||
- recent_activity
|
||||
- captured_today
|
||||
- battery_level
|
||||
- platform: attributes
|
||||
friendly_name: "Batteries"
|
||||
attribute: battery_level
|
||||
unit_of_measurement: "%"
|
||||
entities:
|
||||
- sensor.some_sensor_light_level
|
||||
```
|
||||
|
||||
## customize.yml
|
||||
```yml
|
||||
sensor.some_sensor_light_level_battery_level:
|
||||
friendly_name: Living Room
|
||||
|
||||
media_player.lgtv:
|
||||
source_list:
|
||||
- Apple TV
|
||||
- Plex
|
||||
- TV
|
||||
- YouTube
|
||||
```
|
||||
|
||||
## Tips & Tricks
|
49
apps/monitors/cachet.md
Normal file
49
apps/monitors/cachet.md
Normal file
@ -0,0 +1,49 @@
|
||||
# Cachet
|
||||
|
||||
- focuses on posting information rather than pinging services
|
||||
- looks like setting status is manual
|
||||
|
||||
<br>
|
||||
|
||||
- [Github repo](https://github.com/CachetHQ/Docker)
|
||||
|
||||
|
||||
## docker-compose.yml
|
||||
```yml
|
||||
version: '3.3'
|
||||
services:
|
||||
cachet:
|
||||
image: cachethq/docker:latest
|
||||
container_name: cachet
|
||||
restart: unless-stopped
|
||||
links:
|
||||
- postgres
|
||||
ports:
|
||||
- 3123:8000
|
||||
environment:
|
||||
- DB_DRIVER=pgsql
|
||||
- DB_HOST=postgres
|
||||
- DB_DATABASE=postgres
|
||||
- DB_USERNAME=postgres
|
||||
- DB_PASSWORD=postgres
|
||||
- APP_KEY=base64:tixFLbMoKffHKfUO1uEK9cGdpJxHYP7uCAp0lwwzEtM=
|
||||
|
||||
postgres:
|
||||
image: postgres:9.5
|
||||
container_name: cachet-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_USER=postgres
|
||||
- POSTGRES_PASSWORD=postgres
|
||||
volumes:
|
||||
- ./data:/var/lib/postgresql/data
|
||||
```
|
||||
|
||||
## Tips & Tricks
|
||||
|
||||
### Generate APP_KEY
|
||||
Once the container is running, execute the following command:
|
||||
```sh
|
||||
docker exec -i ID_OF_THE_CONTAINER php artisan key:generate
|
||||
```
|
||||
The full key should include `base64`, e.g.: `base64:YOUR_UNIQUE_KEY`.
|
12
apps/monitors/dockprom.md
Normal file
12
apps/monitors/dockprom.md
Normal file
@ -0,0 +1,12 @@
|
||||
# Dockprom
|
||||
A monitoring solution for Docker hosts and containers with Prometheus, Grafana, cAdvisor, NodeExporter and alerting with AlertManager.
|
||||
|
||||
- [Github repo](https://github.com/stefanprodan/dockprom)
|
||||
|
||||
|
||||
## installation
|
||||
```sh
|
||||
git clone https://github.com/stefanprodan/dockprom
|
||||
cd dockprom
|
||||
ADMIN_USER=admin ADMIN_PASSWORD=admin docker-compose up -d
|
||||
```
|
50
apps/monitors/php-server-monitor.md
Normal file
50
apps/monitors/php-server-monitor.md
Normal file
@ -0,0 +1,50 @@
|
||||
# PhpServerMonitor
|
||||
|
||||
- Very basic and minimalist
|
||||
- Various monitors (ping, tcp & http service requests)
|
||||
- Has Pushover notifications
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
- [Github repo](https://github.com/phpservermon/phpservermon)
|
||||
- [DockerHub repo](https://hub.docker.com/r/alwynpan/phpservermonitor)
|
||||
|
||||
|
||||
## docker-compose.yml
|
||||
```yml
|
||||
version: '3.8'
|
||||
services:
|
||||
psm:
|
||||
image: alwynpan/phpservermonitor
|
||||
container_name: php-server-monitor
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 3123:80
|
||||
depends_on:
|
||||
- db
|
||||
environment:
|
||||
- DATABASE_HOST=db
|
||||
- DATABASE_PORT=3306
|
||||
- DATABASE_NAME=psm
|
||||
- DATABASE_USER=psm
|
||||
- DATABASE_PASSWORD=psm
|
||||
- BASE_URL=http://192.168.1.10:3123
|
||||
- CHECK_INTERVAL=1
|
||||
- TIMEOUT=10
|
||||
- DEBUG=true
|
||||
|
||||
db:
|
||||
image: mysql:5.7
|
||||
container_name: php-server-monitor-db
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 3306:3306
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=top_secret
|
||||
- MYSQL_DATABASE=psm
|
||||
- MYSQL_USER=psm
|
||||
- MYSQL_PASSWORD=psm
|
||||
volumes:
|
||||
- ./data/:/var/lib/mysql
|
||||
```
|
34
apps/monitors/statping.md
Normal file
34
apps/monitors/statping.md
Normal file
@ -0,0 +1,34 @@
|
||||
# Statping
|
||||
|
||||
- Looks great
|
||||
- Has a mobile app (albeit buggy)
|
||||
- Lots of stuff (charts, data, etc)
|
||||
- Lots of integrations & notification types
|
||||
- Every other release doesn't work
|
||||
- Slow UI
|
||||
|
||||
<br>
|
||||
|
||||
- [Homepage](https://statping.com/)
|
||||
- [Github repo](https://github.com/statping/statping/)
|
||||
- [DockerHub repo](https://hub.docker.com/r/statping/statping)
|
||||
|
||||
|
||||
## docker-compose.yml
|
||||
```yml
|
||||
---
|
||||
statping:
|
||||
container_name: statping
|
||||
image: hunterlong/statping
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 3020:8080
|
||||
volumes:
|
||||
- ./data:/app
|
||||
# - /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
DB_CONN: sqlite
|
||||
```
|
||||
|
||||
- and go to http://192.168.1.10:3020/setup
|
||||
- or login as `admin:admin`
|
11
apps/notifications/notifiers-by-service.md
Normal file
11
apps/notifications/notifiers-by-service.md
Normal file
@ -0,0 +1,11 @@
|
||||
# Notifiers by service
|
||||
|
||||
| Service | email | slack | webhook | script | telegram | discord | pushover | pushbullet | gotify |
|
||||
|------------------------|:-----:|:-----:|:-------:|:------:|:--------:|:-------:|:--------:|:----------:|:------:|
|
||||
| Statping | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔️ | ⛔️ |
|
||||
| Sonarr | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔️ | ✅ | ✅ | ⛔️ |
|
||||
| Radarr | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔️ | ✅ | ✅ | ✅ |
|
||||
| Tautulli | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔️ |
|
||||
| synology-notifications | ✅ | ✅ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | ⛔️ |
|
||||
| download station | ✅ | ✅ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | ⛔️ |
|
||||
| qbittorrent | ✅ | ⛔️ | ✅ | ✅ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | ⛔️ |
|
35
apps/notifications/pushover.md
Normal file
35
apps/notifications/pushover.md
Normal file
@ -0,0 +1,35 @@
|
||||
# Pushover
|
||||
|
||||
- As of today, the best notifier out there
|
||||
- Has mobile app and web desktop client
|
||||
- Provides email-to-notification service
|
||||
- Free tier sufficient for a homelab
|
||||
|
||||
<br>
|
||||
|
||||
- [Homepage](https://pushover.net)
|
||||
- [Web Client](https://client.pushover.net)
|
||||
- [Docs](https://pushover.net/api#messages)
|
||||
|
||||
|
||||
## Example script
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
# info #666d7b
|
||||
# success #408062
|
||||
# warning #af8a1a
|
||||
# danger #8b4848
|
||||
|
||||
MSG=$(printf "<font color=\"#408062\">%s</font>" "$@")
|
||||
|
||||
curl -s -X POST \
|
||||
--data-urlencode "token=<app key>" \
|
||||
--data-urlencode "user=<user key>" \
|
||||
--data-urlencode "sound=pushover" \
|
||||
--data-urlencode "priority=0" \
|
||||
--data-urlencode "html=1" \
|
||||
--data-urlencode "title=Home Server" \
|
||||
--data-urlencode "message=$MSG" \
|
||||
https://api.pushover.net/1/messages.json
|
||||
```
|
42
apps/notifications/synology-sms-relay.md
Normal file
42
apps/notifications/synology-sms-relay.md
Normal file
@ -0,0 +1,42 @@
|
||||
# Synology sms relay
|
||||
|
||||
- [Github repo](https://github.com/tborychowski/synology-sms-relay)
|
||||
- [DockerHub repo](https://hub.docker.com/repository/docker/tborychowski/synology-sms-relay)
|
||||
- [Docs](https://github.com/tborychowski/synology-sms-relay#docker-compose)
|
||||
|
||||
|
||||
## docker-compose.yml
|
||||
```yml
|
||||
---
|
||||
version: '3.7'
|
||||
services:
|
||||
synology-sms-relay:
|
||||
container_name: synology-sms-relay
|
||||
image: tborychowski/synology-sms-relay
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- ./script.sh:/app/script.sh
|
||||
```
|
||||
|
||||
## Example pushover `script.sh`
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
# info #666d7b
|
||||
# success #408062
|
||||
# warning #af8a1a
|
||||
# danger #8b4848
|
||||
|
||||
MSG=$(printf "<font color=\"#408062\">%s</font>" "$@")
|
||||
curl -s -X POST \
|
||||
--data-urlencode "token=<app key>" \
|
||||
--data-urlencode "user=<user key>" \
|
||||
--data-urlencode "sound=pushover" \
|
||||
--data-urlencode "priority=0" \
|
||||
--data-urlencode "html=1" \
|
||||
--data-urlencode "title=Home Server" \
|
||||
--data-urlencode "message=$MSG" \
|
||||
https://api.pushover.net/1/messages.json
|
||||
```
|
Loading…
Reference in New Issue
Block a user