Compare commits
4 Commits
7c2277786d
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 4022f12289 | |||
| 812fec9f08 | |||
| 8cb27adcaa | |||
| 581c91162b |
6
.gitignore
vendored
6
.gitignore
vendored
@@ -4,6 +4,12 @@
|
||||
.env.*
|
||||
|
||||
### Container data (DO NOT VERSION)
|
||||
/cloudflared
|
||||
/dashy
|
||||
/gitea
|
||||
/homarr
|
||||
/nginx
|
||||
/codeserver
|
||||
/portainer/config
|
||||
/portainer/config/*
|
||||
**/data/
|
||||
|
||||
26
calibre/.gitignore
vendored
Normal file
26
calibre/.gitignore
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
# Ignore the environment file containing sensitive data
|
||||
.env
|
||||
|
||||
# Ignore the config directory which may contain persistent data (e.g., Calibre database, metadata)
|
||||
/app-config
|
||||
/web-config
|
||||
/calibre-lib
|
||||
config/
|
||||
|
||||
# Ignore the Docker container image and build files
|
||||
*.log
|
||||
*.pid
|
||||
docker-compose.override.yml
|
||||
|
||||
# Ignore any other temporary or autogenerated files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
|
||||
# Ignore Docker-related metadata
|
||||
.docker/
|
||||
|
||||
# Ignore system files created by editors
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
0
calibre/README.md
Normal file
0
calibre/README.md
Normal file
48
calibre/docker-compose.yml
Normal file
48
calibre/docker-compose.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
services:
|
||||
app:
|
||||
image: lscr.io/linuxserver/calibre:latest
|
||||
container_name: calibre
|
||||
#security_opt:
|
||||
#- seccomp:unconfined #optional
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=America/Detroit
|
||||
#- PASSWORD=${PASSWORD}
|
||||
- CLI_ARGS='--disable-web-password'
|
||||
volumes:
|
||||
- ./app-config:/config
|
||||
- ./calibre-lib:/calibre
|
||||
ports:
|
||||
- 9000:8080 # Calibre desktop gui (only for reverse proxy access)
|
||||
- 9001:8181 # Calibre desktop gui HTTPS
|
||||
- 9002:8081 # Calibre webserver gui (needs to be enabled in gui settings first)
|
||||
shm_size: "1gb"
|
||||
restart: unless-stopped
|
||||
|
||||
web:
|
||||
image: lscr.io/linuxserver/calibre-web:latest
|
||||
container_name: calibre-web
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=America/Detroit
|
||||
- WEB_USER=${USERNAME}
|
||||
- WEB_PASSWORD=${PASSWORD}
|
||||
#- DOCKER_MODS=linuxserver/mods:universal-calibre #optional
|
||||
#- OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
|
||||
volumes:
|
||||
- ./web-config:/config
|
||||
- ./calibre-lib:/books
|
||||
ports:
|
||||
- 9004:8083
|
||||
networks:
|
||||
- 'homelab'
|
||||
- 'default'
|
||||
restart: unless-stopped
|
||||
|
||||
|
||||
networks:
|
||||
homelab:
|
||||
external: true
|
||||
|
||||
20
cloudflared/.gitignore
vendored
20
cloudflared/.gitignore
vendored
@@ -1,20 +0,0 @@
|
||||
# Ignore sensitive files
|
||||
cloudflared/*.json
|
||||
# Ignore all JSON files-> ignores <tunnel_id>.json
|
||||
cert.pem
|
||||
config.yml
|
||||
.env
|
||||
|
||||
# Ignore docker-compose override files (local configurations)
|
||||
docker-compose.override.yml
|
||||
|
||||
# Ignore log files
|
||||
*.log
|
||||
|
||||
# Ignore backup or swap files created by editors
|
||||
*.bak
|
||||
*.swp
|
||||
|
||||
# Ignore any temporary files or directories created during runtime
|
||||
tmp/
|
||||
*.pid
|
||||
@@ -1,42 +0,0 @@
|
||||
# Cloudflare Tunnel Info
|
||||
|
||||
## Instructions:
|
||||
- Make sure config.yml is updated with changes from config.git.yml
|
||||
|
||||
## Contents:
|
||||
**`cloudflared`**
|
||||
│ ├── **`<tunnel_id>.json`**
|
||||
│ ├── **`cert.pem`**
|
||||
│ ├── **`config.git.yml`**
|
||||
│ ├── **`config.yml`**
|
||||
│ ├── **`docker-compose.yml`**
|
||||
│ ├── **`.env`**
|
||||
│ ├── **`.gitignore`**
|
||||
│ └── **`README.md`**
|
||||
|
||||
### File Descriptions:
|
||||
- **`<tunnel_id>.json`**: Cloudflare tunnel credentials file
|
||||
- **`cert.pem`**: Cloudflare certificate file
|
||||
- **`config.git.yml`**: Version-controlled template for `config.yml`
|
||||
- **`config.yml`**: Configuration file for Cloudflare tunnel ingress methods
|
||||
- **`docker-compose.yml`**: Docker Compose file for running the Cloudflare tunnel
|
||||
- **`.env`**: Environment variables, including the tunnel ID
|
||||
- **`.gitignore`**: Git ignore file
|
||||
- **`README.md`**: Documentation
|
||||
|
||||
### Environment Variables:
|
||||
- **`tunnel_id`**: Cloudflare tunnel ID (stored in `.env`).
|
||||
|
||||
### Ignored Files:
|
||||
- **`<tunnel_id>.json`**: Sensitive file containing the Cloudflare tunnel credentials
|
||||
- **`cert.pem`**: Cloudflare certificate file
|
||||
- **`config.yml`**: Configuration file with sensitive data
|
||||
- **`.env`**: Environment file containing sensitive data
|
||||
|
||||
### Current Ingress Methods:
|
||||
- **szumko.net** --> dashy dashboard
|
||||
- **cloud.szumko.net** --> nextcloud
|
||||
- **git.szumko.net** --> Gitea
|
||||
- **ha.szumko.net** --> Home Assistant
|
||||
- **pihole.szumko.net** --> Pihole Admin
|
||||
- **lib.szumko.net** --> Calibre
|
||||
@@ -1,17 +0,0 @@
|
||||
tunnel: <tunnel_id> # your tunnel ID
|
||||
credentials-file: /etc/cloudflared/<tunnel_id>.json
|
||||
|
||||
ingress:
|
||||
- hostname: szumko.net
|
||||
service: http://nginx-app-1:80
|
||||
- hostname: pihole.szumko.net
|
||||
service: http://nginx-app-1:80
|
||||
- hostname: git.szumko.net
|
||||
service: http://nginx-app-1:80
|
||||
- hostname: cloud.szumko.net
|
||||
service: http://nginx-app-1:80
|
||||
- hostname: ha.szumko.net
|
||||
service: http://nginx-app-1:80
|
||||
- hostname: lib.szumko.net
|
||||
service: http://nginx-app-1:80
|
||||
- service: http_status:404
|
||||
@@ -1,17 +0,0 @@
|
||||
services:
|
||||
cloudflared:
|
||||
image: cloudflare/cloudflared:latest
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- 'default'
|
||||
- 'tunnel'
|
||||
volumes:
|
||||
- ./config.yml:/etc/cloudflared/config.yml
|
||||
- ./${TUNNEL_ID}.json:/etc/cloudflared/${TUNNEL_ID}.json # Use environment variable for tunnel ID
|
||||
command: tunnel --no-autoupdate --config /etc/cloudflared/config.yml run
|
||||
env_file:
|
||||
- .env # Reference the .env file to inject environment variables
|
||||
|
||||
networks:
|
||||
tunnel:
|
||||
external: true
|
||||
10
dashy/.gitignore
vendored
10
dashy/.gitignore
vendored
@@ -1,10 +0,0 @@
|
||||
# Ignore sensitive data
|
||||
.env # Environment variables file (contains sensitive info)
|
||||
|
||||
# Ignore temporary or log files
|
||||
*.log # Log files
|
||||
*.bak # Backup files
|
||||
*.swp # Swap files (e.g., from text editors)
|
||||
|
||||
# Ignore any local overrides or extra Docker Compose files
|
||||
docker-compose.override.yml # Local override for docker-compose (optional)
|
||||
@@ -1,35 +0,0 @@
|
||||
# Not In use, replaced by Home Assistant for now
|
||||
|
||||
# Dashy Info
|
||||
|
||||
## Instructions:
|
||||
- Access WebUI on port 8181
|
||||
- Use conf.yml to edit page
|
||||
|
||||
## Contents:
|
||||
**`dashy/`**
|
||||
├── **`config/`**
|
||||
│ ├── **`conf.yml`**
|
||||
│ └── **`item-icons/`**
|
||||
├── **`docker-compose.yml`**
|
||||
├── **`.env`**
|
||||
├── **`.gitignore`**
|
||||
└── **`README.md`**
|
||||
|
||||
|
||||
|
||||
|
||||
## File Descrptions:
|
||||
- **`config/`**: Configuration data
|
||||
* **`conf.yml`**: COnfiguration file
|
||||
* **`item-icons/`**: Icons
|
||||
- **`docker-compose.yml`**: Docker compose file
|
||||
- **`.env`**: Environment Variables
|
||||
- **`.gitignore`**: Git ignore file
|
||||
- **`README.md`**: Documentation
|
||||
|
||||
## Environmet Variables:
|
||||
- None
|
||||
|
||||
## Ignored Files:
|
||||
- **`.env`**: Environment VariablesDashy Info
|
||||
@@ -1,107 +0,0 @@
|
||||
pageInfo:
|
||||
title: Pi Server
|
||||
description: ''
|
||||
navLinks:
|
||||
- title: GitHub
|
||||
path: https://github.com/Lissy93/dashy
|
||||
target: newtab
|
||||
- title: Documentation
|
||||
path: https://dashy.to/docs
|
||||
target: newtab
|
||||
appConfig:
|
||||
theme: dracula
|
||||
layout: auto
|
||||
iconSize: large
|
||||
sections:
|
||||
- name: Services
|
||||
displayData:
|
||||
sortBy: default
|
||||
cols: 4
|
||||
collapsed: false
|
||||
hideForGuests: false
|
||||
rows: 1
|
||||
items:
|
||||
- title: Pi-Hole
|
||||
description: Network Ad Block
|
||||
url: https://pihole.szumko.net
|
||||
target: newtab
|
||||
id: 0_836_pihole
|
||||
- title: Gitea
|
||||
description: Git Repos
|
||||
url: https://git.szumko.net
|
||||
target: newtab
|
||||
id: 1_836_gitea
|
||||
- title: Portainer
|
||||
description: Docker Management
|
||||
url: https://192.168.0.152:9443
|
||||
target: newtab
|
||||
id: 2_836_portainer
|
||||
- title: Cloud
|
||||
url: https://cloud.szumko.net
|
||||
target: newtab
|
||||
id: 3_836_cloud
|
||||
- name: CPU
|
||||
displayData:
|
||||
cols: 1
|
||||
sortBy: default
|
||||
rows: 4
|
||||
collapsed: false
|
||||
hideForGuests: false
|
||||
widgets:
|
||||
- type: gl-cpu-temp
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
untits: F
|
||||
id: 0_232_glcputemp
|
||||
- type: gl-current-cpu
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 1_232_glcurrentcpu
|
||||
- type: gl-current-cores
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 2_232_glcurrentcores
|
||||
- type: gl-cpu-history
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 3_232_glcpuhistory
|
||||
- name: Memory
|
||||
widgets:
|
||||
- type: gl-current-mem
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 0_633_glcurrentmem
|
||||
- type: gl-mem-history
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 1_633_glmemhistory
|
||||
- name: Disk
|
||||
widgets:
|
||||
- type: gl-disk-space
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 0_395_gldiskspace
|
||||
- type: gl-disk-io
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 1_395_gldiskio
|
||||
- name: System Load
|
||||
widgets:
|
||||
- type: gl-system-load
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 0_1061_glsystemload
|
||||
- type: gl-load-history
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 1_1061_glloadhistory
|
||||
- name: Network
|
||||
widgets:
|
||||
- type: gl-network-interfaces
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 0_746_glnetworkinterfaces
|
||||
- type: gl-network-traffic
|
||||
options:
|
||||
hostname: https://szumko.net/data
|
||||
id: 1_746_glnetworktraffic
|
||||
@@ -1,39 +0,0 @@
|
||||
# Welcome to Dashy! To get started, run `docker compose up -d`
|
||||
# You can configure your container here, by modifying this file
|
||||
version: "3.8"
|
||||
services:
|
||||
dashy:
|
||||
container_name: Dashy
|
||||
|
||||
# Pull latest image from DockerHub
|
||||
image: lissy93/dashy
|
||||
|
||||
# To build from source, replace 'image: lissy93/dashy' with 'build: .'
|
||||
# build: .
|
||||
|
||||
# You can also use an image with a different tag, or pull from a different registry, e.g:
|
||||
# image: ghcr.io/lissy93/dashy or image: lissy93/dashy:3.0.0
|
||||
|
||||
# Pass in your config file below, by specifying the path on your host machine
|
||||
volumes:
|
||||
- /home/szumkoal/docker/dashy/config/conf.yml:/app/user-data/conf.yml
|
||||
- /home/szumkoal/docker/dashy/config/item-icons:/app/user-data/item-icons/
|
||||
|
||||
# Set port that web service will be served on. Keep container port as 8080
|
||||
ports:
|
||||
- 8181:8080
|
||||
networks:
|
||||
- 'homelab'
|
||||
# Set any environmental variables
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
# Specify your user ID and group ID. You can find this by running `id -u` and `id -g`
|
||||
- UID=1000
|
||||
- GID=1000
|
||||
|
||||
# Specify restart policy
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
homelab:
|
||||
external: true
|
||||
27
gitea/.gitignore
vendored
27
gitea/.gitignore
vendored
@@ -1,27 +0,0 @@
|
||||
# Ignore environment file that contains sensitive information
|
||||
.env
|
||||
|
||||
# Ignore any log files that may be generated by services
|
||||
*.log
|
||||
|
||||
# Ignore temporary or backup files that might be created by editors
|
||||
*.bak
|
||||
*.swp
|
||||
|
||||
# Ignore docker-compose override files (local configurations, not meant to be versioned)
|
||||
docker-compose.override.yml
|
||||
|
||||
# Ignore any database files that are mapped as volumes (persistent data)
|
||||
config/
|
||||
data/
|
||||
mysql/
|
||||
|
||||
# Ignore any tmp or pid files that might be created during runtime
|
||||
tmp/
|
||||
*.pid
|
||||
|
||||
# Ignore any SQLite database files (if applicable)
|
||||
*.sqlite
|
||||
|
||||
# Ignore any generated Nextcloud data files (if they're stored here instead of in volumes)
|
||||
*.db
|
||||
@@ -1,38 +0,0 @@
|
||||
services:
|
||||
server:
|
||||
image: docker.gitea.com/gitea:latest-rootless
|
||||
environment:
|
||||
- GITEA__database__DB_TYPE=mysql
|
||||
- GITEA__database__HOST=db:3306
|
||||
- GITEA__database__NAME=gitea
|
||||
- GITEA__database__USER=${GITEA__database__USER}
|
||||
- GITEA__database__PASSWD=${GITEA__database__PASSWD}
|
||||
restart: always
|
||||
volumes:
|
||||
- ./data:/var/lib/gitea
|
||||
- ./config:/etc/gitea
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "2222:2222"
|
||||
networks:
|
||||
- 'default'
|
||||
- 'homelab'
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
db:
|
||||
image: docker.io/library/mysql:8
|
||||
restart: always
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
volumes:
|
||||
- ./mysql:/var/lib/MySQL
|
||||
|
||||
networks:
|
||||
homelab:
|
||||
external: true
|
||||
@@ -14,44 +14,41 @@
|
||||
- sat
|
||||
conditions: []
|
||||
actions:
|
||||
- action: rest_command.get_phone_weather
|
||||
data: {}
|
||||
response_variable: weather_data
|
||||
- variables:
|
||||
max_temp: '{{weather_data.content.daily.temperature_2m_max[0]}}'
|
||||
min_temp: '{{weather_data.content.daily.temperature_2m_min[0]}}'
|
||||
temp_unit: '{{weather_data.content.daily_units.temperature_2m_max}}'
|
||||
condition: "{% set code = weather_data.content.daily.weather_code[0] | int %}
|
||||
{% set mapper = {\n 0: \"Clear sky\",\n 1: \"Mainly clear\",\n 2: \"Partly
|
||||
cloudy\",\n 3: \"Overcast\",\n 45: \"Fog\",\n 48: \"Depositing rime fog\",\n
|
||||
\ 51: \"Drizzle - Light intensity\",\n 53: \"Drizzle - Moderate intensity\",\n
|
||||
\ 55: \"Drizzle - Dense intensity\",\n 56: \"Freezing Drizzle - Light intensity\",\n
|
||||
\ 57: \"Freezing Drizzle - Dense intensity\",\n 61: \"Rain - Slight intensity\",\n
|
||||
\ 63: \"Rain - Moderate intensity\",\n 65: \"Rain - Heavy intensity\",\n
|
||||
\ 66: \"Freezing Rain - Light intensity\",\n 67: \"Freezing Rain - Heavy
|
||||
intensity\",\n 71: \"Snow fall - Slight intensity\",\n 73: \"Snow fall -
|
||||
Moderate intensity\",\n 75: \"Snow fall - Heavy intensity\",\n 77: \"Snow
|
||||
grains\",\n 80: \"Rain showers - Slight intensity\",\n 81: \"Rain showers
|
||||
- Moderate intensity\",\n 82: \"Rain showers - Violent intensity\",\n 85:
|
||||
\"Snow showers - Slight intensity\",\n 86: \"Snow showers - Heavy intensity\",\n
|
||||
high: '{{ state_attr(''sensor.daily_forecast'', ''temperature_2m_max'')[0] }}'
|
||||
low: '{{ state_attr(''sensor.daily_forecast'', ''temperature_2m_min'')[0] }}'
|
||||
temp_unit: '{{ state_attr(''sensor.units'', ''temperature_2m'') }}'
|
||||
loc: '{{ state_attr(''sensor.alexs_iphone_2_geocoded_location'', ''Locality'')
|
||||
}}, {{ state_attr(''sensor.alexs_iphone_2_geocoded_location'', ''Administrative
|
||||
Area'') }}'
|
||||
condition: "{% set code = state_attr('sensor.daily_forecast', 'weather_code')[0]
|
||||
| int %} {% set mapper = {\n 0: \"Clear sky\",\n 1: \"Mainly clear\",\n
|
||||
\ 2: \"Partly cloudy\",\n 3: \"Overcast\",\n 45: \"Fog\",\n 48: \"Depositing
|
||||
rime fog\",\n 51: \"Drizzle - Light intensity\",\n 53: \"Drizzle - Moderate
|
||||
intensity\",\n 55: \"Drizzle - Dense intensity\",\n 56: \"Freezing Drizzle
|
||||
- Light intensity\",\n 57: \"Freezing Drizzle - Dense intensity\",\n 61:
|
||||
\"Rain - Slight intensity\",\n 63: \"Rain - Moderate intensity\",\n 65:
|
||||
\"Rain - Heavy intensity\",\n 66: \"Freezing Rain - Light intensity\",\n
|
||||
\ 67: \"Freezing Rain - Heavy intensity\",\n 71: \"Snow fall - Slight intensity\",\n
|
||||
\ 73: \"Snow fall - Moderate intensity\",\n 75: \"Snow fall - Heavy intensity\",\n
|
||||
\ 77: \"Snow grains\",\n 80: \"Rain showers - Slight intensity\",\n 81:
|
||||
\"Rain showers - Moderate intensity\",\n 82: \"Rain showers - Violent intensity\",\n
|
||||
\ 85: \"Snow showers - Slight intensity\",\n 86: \"Snow showers - Heavy intensity\",\n
|
||||
\ 95: \"Thunderstorm - Slight intensity\",\n 96: \"Thunderstorm with slight
|
||||
hail\",\n 99: \"Thunderstorm with heavy hail\"\n } %}\n {{ mapper.get(code,
|
||||
\"Not Availible\") }}\n"
|
||||
- action: script.general_notificatioon
|
||||
metadata: {}
|
||||
data:
|
||||
title: Morning Weather
|
||||
message: 'Good Morning!
|
||||
|
||||
Here is the weather for today:
|
||||
Here is the weather for today for {{loc}}:
|
||||
|
||||
High: {{max_temp}} {{temp_unit}}
|
||||
High: {{high}} {{temp_unit}}
|
||||
|
||||
Low: {{min_temp}} {{temp_unit}}
|
||||
Low: {{low}} {{temp_unit}}
|
||||
|
||||
Conditions: {{condition}}
|
||||
|
||||
'
|
||||
Conditions: {{condition}}'
|
||||
title: Morning Report
|
||||
mode: single
|
||||
- id: '1766182515375'
|
||||
alias: Dash Test
|
||||
@@ -66,58 +63,3 @@
|
||||
- variables:
|
||||
max_temp: '{{weather.content.daily.temperature_2m_max[0]}}'
|
||||
mode: single
|
||||
- id: '1766406207253'
|
||||
alias: Morning Test
|
||||
description: ''
|
||||
triggers:
|
||||
- trigger: time
|
||||
at: 07:00:00
|
||||
weekday:
|
||||
- sun
|
||||
- mon
|
||||
- tue
|
||||
- wed
|
||||
- thu
|
||||
- fri
|
||||
- sat
|
||||
conditions: []
|
||||
actions:
|
||||
- action: rest_command.get_phone_weather
|
||||
data: {}
|
||||
response_variable: weather_data
|
||||
- variables:
|
||||
max_temp: '{{weather_data.content.daily.temperature_2m_max[0]}}'
|
||||
min_temp: '{{weather_data.content.daily.temperature_2m_min[0]}}'
|
||||
temp_unit: '{{weather_data.content.daily_units.temperature_2m_max}}'
|
||||
condition: "{% set code = weather_data.content.daily.weather_code[0] | int %}
|
||||
{% set mapper = {\n 0: \"Clear sky\",\n 1: \"Mainly clear\",\n 2: \"Partly
|
||||
cloudy\",\n 3: \"Overcast\",\n 45: \"Fog\",\n 48: \"Depositing rime fog\",\n
|
||||
\ 51: \"Drizzle - Light intensity\",\n 53: \"Drizzle - Moderate intensity\",\n
|
||||
\ 55: \"Drizzle - Dense intensity\",\n 56: \"Freezing Drizzle - Light intensity\",\n
|
||||
\ 57: \"Freezing Drizzle - Dense intensity\",\n 61: \"Rain - Slight intensity\",\n
|
||||
\ 63: \"Rain - Moderate intensity\",\n 65: \"Rain - Heavy intensity\",\n
|
||||
\ 66: \"Freezing Rain - Light intensity\",\n 67: \"Freezing Rain - Heavy
|
||||
intensity\",\n 71: \"Snow fall - Slight intensity\",\n 73: \"Snow fall -
|
||||
Moderate intensity\",\n 75: \"Snow fall - Heavy intensity\",\n 77: \"Snow
|
||||
grains\",\n 80: \"Rain showers - Slight intensity\",\n 81: \"Rain showers
|
||||
- Moderate intensity\",\n 82: \"Rain showers - Violent intensity\",\n 85:
|
||||
\"Snow showers - Slight intensity\",\n 86: \"Snow showers - Heavy intensity\",\n
|
||||
\ 95: \"Thunderstorm - Slight intensity\",\n 96: \"Thunderstorm with slight
|
||||
hail\",\n 99: \"Thunderstorm with heavy hail\"\n } %}\n {{ mapper.get(code,
|
||||
\"Not Availible\") }}\n"
|
||||
- action: script.general_notificatioon
|
||||
metadata: {}
|
||||
data:
|
||||
title: Morning Weather
|
||||
message: 'Good Morning!
|
||||
|
||||
Here is the weather for today:
|
||||
|
||||
High: {{max_temp}} {{temp_unit}}
|
||||
|
||||
Low: {{min_temp}} {{temp_unit}}
|
||||
|
||||
Conditions: {{condition}}
|
||||
|
||||
'
|
||||
mode: single
|
||||
|
||||
@@ -15,6 +15,7 @@ http:
|
||||
trusted_proxies:
|
||||
#- 172.19.0.2 # Add the IP address of the proxy server
|
||||
- 172.0.0.0/8 # You may also provide the subnet mask
|
||||
- 192.168.0.56
|
||||
|
||||
rest_command: # This api shows: Daily code, max/min temp, apperent max/min temp, sunrise/sunset/daylight, UV, percip sum/hours/probability
|
||||
get_phone_weather: # All in US units for 3 days out
|
||||
@@ -24,50 +25,26 @@ rest_command: # This api shows: Daily code, max/min temp, apperent max/min temp,
|
||||
https://api.open-meteo.com/v1/forecast?latitude={{lat}}&longitude={{lon}}&daily=weather_code,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,daylight_duration,sunset,uv_index_max,precipitation_sum,precipitation_hours,precipitation_probability_max&timezone=America%2FNew_York&forecast_days=3&wind_speed_unit=mph&temperature_unit=fahrenheit&precipitation_unit=inch
|
||||
method: GET
|
||||
|
||||
rest:
|
||||
- resource_template: >
|
||||
{% set lat = state_attr('device_tracker.alexs_phone','latitude') %}
|
||||
{% set lon = state_attr('device_tracker.alexs_phone','longitude') %}
|
||||
https://api.open-meteo.com/v1/forecast?latitude={{lat}}&longitude={{lon}}&daily=weather_code,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,daylight_duration,sunset,uv_index_max,rain_sum,snowfall_sum,precipitation_sum,precipitation_hours,precipitation_probability_max&hourly=temperature_2m,apparent_temperature,precipitation_probability,weather_code,precipitation¤t=temperature_2m,apparent_temperature,precipitation,weather_code,is_day&timezone=America%2FNew_York&wind_speed_unit=mph&temperature_unit=fahrenheit&precipitation_unit=inch
|
||||
scan_interval: 900
|
||||
sensor:
|
||||
- name: "Phone Location Minimum Temperature"
|
||||
unique_id: "phone_min_temp"
|
||||
value_template: '{{value_json.daily.temperature_2m_min[0]}}'
|
||||
unit_of_measurement: '°F'
|
||||
device_class: temperature
|
||||
- name: "Phone Location Maximum Temperature"
|
||||
unique_id: "phone_max_temp"
|
||||
value_template: '{{value_json.daily.temperature_2m_max[0]}}'
|
||||
unit_of_measurement: '°F'
|
||||
device_class: temperature
|
||||
rest: !include_dir_merge_list rest/
|
||||
|
||||
monitor_docker:
|
||||
- name: Docker
|
||||
containers:
|
||||
- cloudflared-cloudflared-1
|
||||
- gitea-db-1
|
||||
- gitea-server-1
|
||||
- glances
|
||||
- habridge
|
||||
- homeassistant
|
||||
- nextcloud-app-1
|
||||
- nextcloud-db-1
|
||||
- nextcloud-redis-1
|
||||
- nginx-app-1
|
||||
- portainer
|
||||
- syncthing
|
||||
rename:
|
||||
cloudflared-cloudflared-1: 'Cloudflared'
|
||||
gitea-db-1: 'Gitea Database'
|
||||
gitea-server-1: 'Gitea Server'
|
||||
glances: 'Glances'
|
||||
habridge: 'Home Assistant Bridge'
|
||||
homeassistant: 'Home Assistant'
|
||||
nextcloud-app-1: 'Nextcloud Server'
|
||||
nextcloud-db-1: 'Nextcloud Database'
|
||||
nextcloud-redis-1: 'Nextcloud Redis'
|
||||
nginx-app-1: 'Nginx Proxy Manager'
|
||||
portainer: 'Portainer'
|
||||
syncthing: 'Syncthing'
|
||||
monitored_conditions:
|
||||
|
||||
@@ -42,3 +42,98 @@ general_notificatioon:
|
||||
alias: General Notification
|
||||
description: ''
|
||||
icon: mdi:bell-badge
|
||||
get_cal_data:
|
||||
sequence:
|
||||
- action: calendar.get_events
|
||||
metadata: {}
|
||||
data:
|
||||
duration:
|
||||
hours: 96
|
||||
minutes: 0
|
||||
seconds: 0
|
||||
response_variable: Events
|
||||
target:
|
||||
entity_id: calendar.szumkoal_gmail_com
|
||||
alias: Get Cal Data
|
||||
description: ''
|
||||
parse_morning_weather:
|
||||
sequence:
|
||||
- variables:
|
||||
high: '{{ state_attr(''sensor.daily_forecast'', ''temperature_2m_max'')[0] }}'
|
||||
low: '{{ state_attr(''sensor.daily_forecast'', ''temperature_2m_min'')[0] }}'
|
||||
temp_unit: '{{ state_attr(''sensor.units'', ''temperature_2m'') }}'
|
||||
condition: "{% set code = state_attr('sensor.daily_forecast', 'weather_code')[0]
|
||||
| int %} {% set mapper = {\n 0: \"Clear sky\",\n 1: \"Mainly clear\",\n
|
||||
\ 2: \"Partly cloudy\",\n 3: \"Overcast\",\n 45: \"Fog\",\n 48: \"Depositing
|
||||
rime fog\",\n 51: \"Drizzle - Light intensity\",\n 53: \"Drizzle - Moderate
|
||||
intensity\",\n 55: \"Drizzle - Dense intensity\",\n 56: \"Freezing Drizzle
|
||||
- Light intensity\",\n 57: \"Freezing Drizzle - Dense intensity\",\n 61:
|
||||
\"Rain - Slight intensity\",\n 63: \"Rain - Moderate intensity\",\n 65:
|
||||
\"Rain - Heavy intensity\",\n 66: \"Freezing Rain - Light intensity\",\n
|
||||
\ 67: \"Freezing Rain - Heavy intensity\",\n 71: \"Snow fall - Slight intensity\",\n
|
||||
\ 73: \"Snow fall - Moderate intensity\",\n 75: \"Snow fall - Heavy intensity\",\n
|
||||
\ 77: \"Snow grains\",\n 80: \"Rain showers - Slight intensity\",\n 81:
|
||||
\"Rain showers - Moderate intensity\",\n 82: \"Rain showers - Violent intensity\",\n
|
||||
\ 85: \"Snow showers - Slight intensity\",\n 86: \"Snow showers - Heavy intensity\",\n
|
||||
\ 95: \"Thunderstorm - Slight intensity\",\n 96: \"Thunderstorm with slight
|
||||
hail\",\n 99: \"Thunderstorm with heavy hail\"\n } %}\n {{ mapper.get(code,
|
||||
\"Not Availible\") }}\n"
|
||||
current_temp: '{{ state_attr(''sensor.current_weather'', ''apparent_temperature'')
|
||||
}}'
|
||||
alias: Parse_Morning_Weather
|
||||
description: ''
|
||||
parse_current_weather:
|
||||
sequence:
|
||||
- variables:
|
||||
time: '{{ state_attr(''sensor.current_weather'', ''time'') | as_timestamp()
|
||||
| timestamp_custom(''%B %d, %Y, %I:%M %p'') }}'
|
||||
temp: '{{ state_attr(''sensor.current_weather'', ''temperature_2m'') }}'
|
||||
apparent_temp: '{{ state_attr(''sensor.current_weather'', ''apparent_temperature'')
|
||||
}}'
|
||||
precip: '{{ state_attr(''sensor.current_weather'', ''precipitation'') }}'
|
||||
weather_code: "{% set code = state_attr('sensor.current_weather', 'weather_code')
|
||||
| int %} {% set mapper = {\n 0: \"Clear sky\",\n 1: \"Mainly clear\",\n
|
||||
\ 2: \"Partly cloudy\",\n 3: \"Overcast\",\n 45: \"Fog\",\n 48: \"Depositing
|
||||
rime fog\",\n 51: \"Drizzle - Light intensity\",\n 53: \"Drizzle - Moderate
|
||||
intensity\",\n 55: \"Drizzle - Dense intensity\",\n 56: \"Freezing Drizzle
|
||||
- Light intensity\",\n 57: \"Freezing Drizzle - Dense intensity\",\n 61:
|
||||
\"Rain - Slight intensity\",\n 63: \"Rain - Moderate intensity\",\n 65:
|
||||
\"Rain - Heavy intensity\",\n 66: \"Freezing Rain - Light intensity\",\n
|
||||
\ 67: \"Freezing Rain - Heavy intensity\",\n 71: \"Snow fall - Slight intensity\",\n
|
||||
\ 73: \"Snow fall - Moderate intensity\",\n 75: \"Snow fall - Heavy intensity\",\n
|
||||
\ 77: \"Snow grains\",\n 80: \"Rain showers - Slight intensity\",\n 81:
|
||||
\"Rain showers - Moderate intensity\",\n 82: \"Rain showers - Violent intensity\",\n
|
||||
\ 85: \"Snow showers - Slight intensity\",\n 86: \"Snow showers - Heavy intensity\",\n
|
||||
\ 95: \"Thunderstorm - Slight intensity\",\n 96: \"Thunderstorm with slight
|
||||
hail\",\n 99: \"Thunderstorm with heavy hail\"\n } %}\n {{ mapper.get(code,
|
||||
\"Not Availible\") }}\n"
|
||||
daytime: '{{ state_attr(''sensor.current_weather'', ''is_day'') }}'
|
||||
alias: Parse Current Weather
|
||||
description: ''
|
||||
parse_hourly_weather:
|
||||
sequence:
|
||||
- variables:
|
||||
iso_time: '{{ state_attr(''sensor.hourly_forecast'', ''time'') }}'
|
||||
temp: '{{ state_attr(''sensor.hourly_forecast'', ''temperature_2m'') }}'
|
||||
precip_prob: '{{ state_attr(''sensor.hourly_forecast'', ''precipitation_probability'')
|
||||
}}'
|
||||
weather_code: '{{ state_attr(''sensor.hourly_forecast'', ''weather_code'') }}'
|
||||
precip: '{{ state_attr(''sensor.hourly_forecast'', ''precipitation'') }}'
|
||||
count: 0
|
||||
formatted_time: []
|
||||
- variables:
|
||||
test: '{% set count = count +1 %}'
|
||||
formatted_time: "\n{% set result = [] %} \n{% for i in range(iso_time | length)
|
||||
%}\n {% set formatted = iso_time[i] | as_timestamp() | timestamp_custom('%B
|
||||
%d, %Y, %I:%M %p') %}\n {% set result = result + [iso_time[i] | as_timestamp()
|
||||
| timestamp_custom('%B %d, %Y, %I:%M %p')] %}\n{% endfor %} \n{{ result }}\n
|
||||
\ \n"
|
||||
- action: notify.persistent_notification
|
||||
metadata: {}
|
||||
data:
|
||||
title: test
|
||||
message: '{{iso_time}}
|
||||
|
||||
{{ formatted_time }}'
|
||||
alias: Parse Hourly Weather
|
||||
description: ''
|
||||
|
||||
1
homarr/.gitignore
vendored
1
homarr/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
.env
|
||||
@@ -1,2 +0,0 @@
|
||||
# Homarr Info
|
||||
# Testing only right now
|
||||
@@ -1,18 +0,0 @@
|
||||
services:
|
||||
homarr:
|
||||
container_name: homarr
|
||||
image: ghcr.io/homarr-labs/homarr:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration
|
||||
- ./appdata:/appdata
|
||||
environment:
|
||||
- SECRET_ENCRYPTION_KEY=${SECRET_ENCRYPTION_KEY}
|
||||
ports:
|
||||
- '7575:7575'
|
||||
networks:
|
||||
- 'homelab'
|
||||
|
||||
networks:
|
||||
homelab:
|
||||
external: true
|
||||
@@ -35,9 +35,9 @@ services:
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_HOST=db
|
||||
- REDIS_HOST=redis
|
||||
- OVERWRITECLIURL=${OVERWRITECLIURL}
|
||||
- OVERWRITEPROTOCOL=${OVERWRITEPROTOCOL}
|
||||
- OVERWRITEHOST=${OVERWRITEHOST}
|
||||
# - OVERWRITECLIURL=${OVERWRITECLIURL}
|
||||
# - OVERWRITEPROTOCOL=${OVERWRITEPROTOCOL}
|
||||
# - OVERWRITEHOST=${OVERWRITEHOST}
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
|
||||
14
nginx/.gitignore
vendored
14
nginx/.gitignore
vendored
@@ -1,14 +0,0 @@
|
||||
# Ignore sensitive data
|
||||
.env # Environment variables file (contains sensitive info)
|
||||
|
||||
# Ignore directories with persistent or sensitive data
|
||||
data/ # Contains persistent data (e.g., databases, configuration files)
|
||||
letsencrypt/ # Contains SSL certificates (do not track in Git)
|
||||
|
||||
# Ignore temporary or log files
|
||||
*.log # Log files
|
||||
*.bak # Backup files
|
||||
*.swp # Swap files (e.g., from text editors)
|
||||
|
||||
# Ignore any local overrides or extra Docker Compose files
|
||||
docker-compose.override.yml # Local override for docker-compose (optional)
|
||||
@@ -1,32 +0,0 @@
|
||||
# Nginx Proxy Manager Info
|
||||
|
||||
## Instructions:
|
||||
- Use for controlling paths/subdomains in cloudflare tunnel
|
||||
- Access WebUI on port 81
|
||||
|
||||
## Contents:
|
||||
**`nginx/`**
|
||||
├── **`data/`**
|
||||
├── **`docker-compose.yml`**
|
||||
├── **`.env`**
|
||||
├── **`.gitignore`**
|
||||
├── **`letsencrypt/`**
|
||||
└── **`README.md`**
|
||||
|
||||
|
||||
|
||||
## File Descrptions:
|
||||
- **`data/`**: Nginx Data
|
||||
- **`docker-compose.yml`**: Compose file
|
||||
- **`.env`**: Environment Variables
|
||||
- **`.gitignore`**: Git Ignore file
|
||||
- **`letsencrypt/`**: Letsencrypt Data
|
||||
- **`README.md`**: Documentation
|
||||
|
||||
## Environmet Variables:
|
||||
- None
|
||||
|
||||
## Ignored Files:
|
||||
- **`data/`**: Persistant Data
|
||||
- **`.env`**: Environment Variables
|
||||
- **`letsencrypt/`**: Potentially sensitive data
|
||||
@@ -1,20 +0,0 @@
|
||||
services:
|
||||
app:
|
||||
image: 'docker.io/jc21/nginx-proxy-manager:latest'
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
# - '80:80'
|
||||
- '81:81'
|
||||
# - '443:443'
|
||||
networks:
|
||||
- 'homelab'
|
||||
- 'tunnel'
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
|
||||
networks:
|
||||
homelab:
|
||||
external: true
|
||||
tunnel:
|
||||
external: true
|
||||
Reference in New Issue
Block a user