more apps

This commit is contained in:
Tomasz Borychowski 2020-10-25 20:24:03 +00:00
parent f4871bbeae
commit 6a2e89fdcc
10 changed files with 422 additions and 9 deletions

View File

@ -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

View File

@ -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)

View 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
View 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
View 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
```

View 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
View 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`

View 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 | ✅ | ⛔️ | ✅ | ✅ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | ⛔️ |

View 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
```

View 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
```