Compare commits

...

4 Commits

Author SHA1 Message Date
4022f12289 Deleting old files, updating ignore 2026-01-17 22:19:25 -05:00
812fec9f08 Updating for new server setup 2026-01-17 22:15:41 -05:00
8cb27adcaa Periodic Config Updates 2026-01-17 22:15:02 -05:00
581c91162b Initial Calibre Commit 2026-01-17 22:13:39 -05:00
24 changed files with 204 additions and 549 deletions

6
.gitignore vendored
View File

@@ -4,6 +4,12 @@
.env.* .env.*
### Container data (DO NOT VERSION) ### Container data (DO NOT VERSION)
/cloudflared
/dashy
/gitea
/homarr
/nginx
/codeserver
/portainer/config /portainer/config
/portainer/config/* /portainer/config/*
**/data/ **/data/

26
calibre/.gitignore vendored Normal file
View 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
View File

View 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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

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

View File

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

View File

@@ -14,44 +14,41 @@
- sat - sat
conditions: [] conditions: []
actions: actions:
- action: rest_command.get_phone_weather
data: {}
response_variable: weather_data
- variables: - variables:
max_temp: '{{weather_data.content.daily.temperature_2m_max[0]}}' high: '{{ state_attr(''sensor.daily_forecast'', ''temperature_2m_max'')[0] }}'
min_temp: '{{weather_data.content.daily.temperature_2m_min[0]}}' low: '{{ state_attr(''sensor.daily_forecast'', ''temperature_2m_min'')[0] }}'
temp_unit: '{{weather_data.content.daily_units.temperature_2m_max}}' temp_unit: '{{ state_attr(''sensor.units'', ''temperature_2m'') }}'
condition: "{% set code = weather_data.content.daily.weather_code[0] | int %} loc: '{{ state_attr(''sensor.alexs_iphone_2_geocoded_location'', ''Locality'')
{% set mapper = {\n 0: \"Clear sky\",\n 1: \"Mainly clear\",\n 2: \"Partly }}, {{ state_attr(''sensor.alexs_iphone_2_geocoded_location'', ''Administrative
cloudy\",\n 3: \"Overcast\",\n 45: \"Fog\",\n 48: \"Depositing rime fog\",\n Area'') }}'
\ 51: \"Drizzle - Light intensity\",\n 53: \"Drizzle - Moderate intensity\",\n condition: "{% set code = state_attr('sensor.daily_forecast', 'weather_code')[0]
\ 55: \"Drizzle - Dense intensity\",\n 56: \"Freezing Drizzle - Light intensity\",\n | int %} {% set mapper = {\n 0: \"Clear sky\",\n 1: \"Mainly clear\",\n
\ 57: \"Freezing Drizzle - Dense intensity\",\n 61: \"Rain - Slight intensity\",\n \ 2: \"Partly cloudy\",\n 3: \"Overcast\",\n 45: \"Fog\",\n 48: \"Depositing
\ 63: \"Rain - Moderate intensity\",\n 65: \"Rain - Heavy intensity\",\n rime fog\",\n 51: \"Drizzle - Light intensity\",\n 53: \"Drizzle - Moderate
\ 66: \"Freezing Rain - Light intensity\",\n 67: \"Freezing Rain - Heavy intensity\",\n 55: \"Drizzle - Dense intensity\",\n 56: \"Freezing Drizzle
intensity\",\n 71: \"Snow fall - Slight intensity\",\n 73: \"Snow fall - - Light intensity\",\n 57: \"Freezing Drizzle - Dense intensity\",\n 61:
Moderate intensity\",\n 75: \"Snow fall - Heavy intensity\",\n 77: \"Snow \"Rain - Slight intensity\",\n 63: \"Rain - Moderate intensity\",\n 65:
grains\",\n 80: \"Rain showers - Slight intensity\",\n 81: \"Rain showers \"Rain - Heavy intensity\",\n 66: \"Freezing Rain - Light intensity\",\n
- Moderate intensity\",\n 82: \"Rain showers - Violent intensity\",\n 85: \ 67: \"Freezing Rain - Heavy intensity\",\n 71: \"Snow fall - Slight intensity\",\n
\"Snow showers - Slight intensity\",\n 86: \"Snow showers - Heavy 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 \ 95: \"Thunderstorm - Slight intensity\",\n 96: \"Thunderstorm with slight
hail\",\n 99: \"Thunderstorm with heavy hail\"\n } %}\n {{ mapper.get(code, hail\",\n 99: \"Thunderstorm with heavy hail\"\n } %}\n {{ mapper.get(code,
\"Not Availible\") }}\n" \"Not Availible\") }}\n"
- action: script.general_notificatioon - action: script.general_notificatioon
metadata: {}
data: data:
title: Morning Weather
message: 'Good Morning! 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 mode: single
- id: '1766182515375' - id: '1766182515375'
alias: Dash Test alias: Dash Test
@@ -66,58 +63,3 @@
- variables: - variables:
max_temp: '{{weather.content.daily.temperature_2m_max[0]}}' max_temp: '{{weather.content.daily.temperature_2m_max[0]}}'
mode: single 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

View File

@@ -15,6 +15,7 @@ http:
trusted_proxies: trusted_proxies:
#- 172.19.0.2 # Add the IP address of the proxy server #- 172.19.0.2 # Add the IP address of the proxy server
- 172.0.0.0/8 # You may also provide the subnet mask - 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 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 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 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 method: GET
rest: rest: !include_dir_merge_list 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&current=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
monitor_docker: monitor_docker:
- name: Docker - name: Docker
containers: containers:
- cloudflared-cloudflared-1
- gitea-db-1
- gitea-server-1
- glances - glances
- habridge - habridge
- homeassistant - homeassistant
- nextcloud-app-1 - nextcloud-app-1
- nextcloud-db-1 - nextcloud-db-1
- nextcloud-redis-1 - nextcloud-redis-1
- nginx-app-1
- portainer - portainer
- syncthing - syncthing
rename: rename:
cloudflared-cloudflared-1: 'Cloudflared'
gitea-db-1: 'Gitea Database'
gitea-server-1: 'Gitea Server'
glances: 'Glances' glances: 'Glances'
habridge: 'Home Assistant Bridge' habridge: 'Home Assistant Bridge'
homeassistant: 'Home Assistant' homeassistant: 'Home Assistant'
nextcloud-app-1: 'Nextcloud Server' nextcloud-app-1: 'Nextcloud Server'
nextcloud-db-1: 'Nextcloud Database' nextcloud-db-1: 'Nextcloud Database'
nextcloud-redis-1: 'Nextcloud Redis' nextcloud-redis-1: 'Nextcloud Redis'
nginx-app-1: 'Nginx Proxy Manager'
portainer: 'Portainer' portainer: 'Portainer'
syncthing: 'Syncthing' syncthing: 'Syncthing'
monitored_conditions: monitored_conditions:

View File

@@ -42,3 +42,98 @@ general_notificatioon:
alias: General Notification alias: General Notification
description: '' description: ''
icon: mdi:bell-badge 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
View File

@@ -1 +0,0 @@
.env

View File

@@ -1,2 +0,0 @@
# Homarr Info
# Testing only right now

View File

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

View File

@@ -35,9 +35,9 @@ services:
- MYSQL_USER=${MYSQL_USER} - MYSQL_USER=${MYSQL_USER}
- MYSQL_HOST=db - MYSQL_HOST=db
- REDIS_HOST=redis - REDIS_HOST=redis
- OVERWRITECLIURL=${OVERWRITECLIURL} # - OVERWRITECLIURL=${OVERWRITECLIURL}
- OVERWRITEPROTOCOL=${OVERWRITEPROTOCOL} # - OVERWRITEPROTOCOL=${OVERWRITEPROTOCOL}
- OVERWRITEHOST=${OVERWRITEHOST} # - OVERWRITEHOST=${OVERWRITEHOST}
depends_on: depends_on:
- db - db
- redis - redis

14
nginx/.gitignore vendored
View File

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

View File

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

View File

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