From 6a2e89fdcca66e746fd5c90c135babfe042b7ed2 Mon Sep 17 00:00:00 2001 From: Tomasz Borychowski Date: Sun, 25 Oct 2020 20:24:03 +0000 Subject: [PATCH] more apps --- README.md | 55 ++++++-- apps/downloads/qbit.md | 2 +- apps/home-automation/home-assistant.md | 141 +++++++++++++++++++++ apps/monitors/cachet.md | 49 +++++++ apps/monitors/dockprom.md | 12 ++ apps/monitors/php-server-monitor.md | 50 ++++++++ apps/monitors/statping.md | 34 +++++ apps/notifications/notifiers-by-service.md | 11 ++ apps/notifications/pushover.md | 35 +++++ apps/notifications/synology-sms-relay.md | 42 ++++++ 10 files changed, 422 insertions(+), 9 deletions(-) create mode 100644 apps/home-automation/home-assistant.md create mode 100644 apps/monitors/cachet.md create mode 100644 apps/monitors/dockprom.md create mode 100644 apps/monitors/php-server-monitor.md create mode 100644 apps/monitors/statping.md create mode 100644 apps/notifications/notifiers-by-service.md create mode 100644 apps/notifications/pushover.md create mode 100644 apps/notifications/synology-sms-relay.md diff --git a/README.md b/README.md index b40ca09..642dd0d 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,11 @@ Hence - this repo.
The aims is to provide a ready-to-run recipes that you can just copy, paste and run.
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 diff --git a/apps/downloads/qbit.md b/apps/downloads/qbit.md index e39fe0c..51df3bd 100644 --- a/apps/downloads/qbit.md +++ b/apps/downloads/qbit.md @@ -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) diff --git a/apps/home-automation/home-assistant.md b/apps/home-automation/home-assistant.md new file mode 100644 index 0000000..28a8669 --- /dev/null +++ b/apps/home-automation/home-assistant.md @@ -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: + name: LGTV + turn_on_action: + service: wake_on_lan.send_magic_packet + data: + mac: + broadcast_address: + broadcast_port: 9 + customize: + sources: + - Apple TV + - TV + - YouTube + - Plex + +notify: + - name: pushover_notifier + platform: pushover + api_key: + user_key: + +calendar: + - platform: caldav + username: "" + password: "" + 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 diff --git a/apps/monitors/cachet.md b/apps/monitors/cachet.md new file mode 100644 index 0000000..8da73b3 --- /dev/null +++ b/apps/monitors/cachet.md @@ -0,0 +1,49 @@ +# Cachet + +- focuses on posting information rather than pinging services +- looks like setting status is manual + +
+ +- [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`. diff --git a/apps/monitors/dockprom.md b/apps/monitors/dockprom.md new file mode 100644 index 0000000..cd07046 --- /dev/null +++ b/apps/monitors/dockprom.md @@ -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 +``` diff --git a/apps/monitors/php-server-monitor.md b/apps/monitors/php-server-monitor.md new file mode 100644 index 0000000..9d4a6b5 --- /dev/null +++ b/apps/monitors/php-server-monitor.md @@ -0,0 +1,50 @@ +# PhpServerMonitor + +- Very basic and minimalist +- Various monitors (ping, tcp & http service requests) +- Has Pushover notifications + +
+ + +- [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 +``` diff --git a/apps/monitors/statping.md b/apps/monitors/statping.md new file mode 100644 index 0000000..1975d82 --- /dev/null +++ b/apps/monitors/statping.md @@ -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 + +
+ +- [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` diff --git a/apps/notifications/notifiers-by-service.md b/apps/notifications/notifiers-by-service.md new file mode 100644 index 0000000..4a2ea43 --- /dev/null +++ b/apps/notifications/notifiers-by-service.md @@ -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 | ✅ | ⛔️ | ✅ | ✅ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | ⛔️ | diff --git a/apps/notifications/pushover.md b/apps/notifications/pushover.md new file mode 100644 index 0000000..0443200 --- /dev/null +++ b/apps/notifications/pushover.md @@ -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 + +
+ +- [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 "%s" "$@") + +curl -s -X POST \ + --data-urlencode "token=" \ + --data-urlencode "user=" \ + --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 +``` diff --git a/apps/notifications/synology-sms-relay.md b/apps/notifications/synology-sms-relay.md new file mode 100644 index 0000000..4d78976 --- /dev/null +++ b/apps/notifications/synology-sms-relay.md @@ -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 "%s" "$@") +curl -s -X POST \ + --data-urlencode "token=" \ + --data-urlencode "user=" \ + --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 +```