Files
ansible/dns.yml
Phil ff89683038 feat: add Gotify notification server with iGotify iOS support
Add comprehensive push notification infrastructure with:
- Gotify server for push notifications with admin password configuration
- iGotify Assistant service for iOS notification relay via Apple Push Notifications
- Dual subdomain setup (gotify.* and gotify-assistant.*)
- Proper service dependencies and container communication via hairpinning
- Caddy reverse proxy configuration for both services
- DNS A records for both subdomains
- Added to monitoring services category
- Tested with successful notification delivery

Services accessible at:
- https://gotify.thesatelliteoflove.com (main server)
- https://gotify-assistant.thesatelliteoflove.com (iOS assistant)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-19 12:46:51 -06:00

71 lines
1.9 KiB
YAML

---
# dns.yml
- name: Add A Records for thesatelliteoflove.com and nerder.land
hosts: localhost
gather_facts: false
vars:
# Domains to manage DNS records for
domains:
- name: thesatelliteoflove.com
dns_records:
- name: "pin"
ip: "152.53.36.98"
- name: "home"
ip: "152.53.36.98"
- name: "git"
ip: "152.53.36.98"
- name: "social"
ip: "152.53.36.98"
- name: "auth"
ip: "152.53.36.98"
- name: "audio"
ip: "152.53.36.98"
- name: "books"
ip: "152.53.36.98"
- name: "paper"
ip: "152.53.36.98"
- name: "code"
ip: "152.53.36.98"
- name: cal
ip: "152.53.36.98"
- name: phlog
ip: "152.53.36.98"
- name: loclog
ip: "152.53.36.98"
- name: watcher
ip: "152.53.36.98"
- name: models
ip: "152.53.36.98"
- name: tasks
ip: "152.53.36.98"
- name: post
ip: "152.53.36.98"
- name: files
ip: "152.53.36.98"
- name: bookmarks
ip: "152.53.36.98"
- name: gotify
ip: "152.53.36.98"
- name: gotify-assistant
ip: "152.53.36.98"
- name: nerder.land
dns_records:
- name: "forms"
ip: "152.53.36.98"
- name: "repair"
ip: "152.53.36.98"
tasks:
- name: Add A records for subdomains of each domain
amazon.aws.route53:
state: present
zone: "{{ item.0.name }}"
record: "{{ item.0.name if item.1.name == '@' else item.1.name + '.' + item.0.name }}"
type: A
ttl: 300
value: "{{ item.1.ip }}"
loop: "{{ query('subelements', domains, 'dns_records') }}"
loop_control:
loop_var: item