mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-09-20 09:16:03 +02:00
- Un-commented `view.bluesky.{{ PRIMARY_DOMAIN }}` in config to allow explicit AppView domain definition. - Reworked `03_dns.yml` to build `cloudflare_records` list programmatically, including conditional addition of AppView records only if the domain is not `api.bsky.app`. - Improved AAAA handling with `| default('')` and proper ternary expressions for `present/absent`. - Updated `vars/main.yml` to remove default port fallback for `BLUESKY_VIEW_PORT`. Refs: https://chatgpt.com/share/68cdde1d-1bd4-800f-a4bb-319372752fcd
95 lines
3.0 KiB
YAML
95 lines
3.0 KiB
YAML
---
|
||
- name: "DNS (Cloudflare) for Bluesky – base records"
|
||
include_role:
|
||
name: sys-dns-cloudflare-records
|
||
when: DNS_PROVIDER | lower == 'cloudflare'
|
||
vars:
|
||
cloudflare_records: >-
|
||
{{
|
||
[
|
||
{
|
||
'type': 'A',
|
||
'zone': (BLUESKY_API_DOMAIN | to_zone),
|
||
'name': BLUESKY_API_DOMAIN,
|
||
'content': networks.internet.ip4,
|
||
'solo': True,
|
||
'proxied': False,
|
||
},
|
||
{
|
||
'type': 'AAAA',
|
||
'zone': (BLUESKY_API_DOMAIN | to_zone),
|
||
'name': BLUESKY_API_DOMAIN,
|
||
'content': (networks.internet.ip6 | default('')),
|
||
'proxied': False,
|
||
'solo': True,
|
||
'state': (
|
||
((networks.internet.ip6 is defined) and ((networks.internet.ip6 | string) | length > 0))
|
||
| ternary('present','absent')
|
||
),
|
||
},
|
||
{
|
||
'type': 'TXT',
|
||
'zone': (PRIMARY_DOMAIN | to_zone),
|
||
'name': "_atproto.%s" % PRIMARY_DOMAIN,
|
||
'value': '"did=did:web:%s"' % BLUESKY_API_DOMAIN,
|
||
'solo': True,
|
||
},
|
||
{
|
||
'type': 'A',
|
||
'solo': True,
|
||
'zone': (BLUESKY_WEB_DOMAIN | to_zone),
|
||
'name': BLUESKY_WEB_DOMAIN,
|
||
'content': networks.internet.ip4,
|
||
'proxied': True,
|
||
'state': ((BLUESKY_WEB_ENABLED | bool) | ternary('present','absent')),
|
||
},
|
||
{
|
||
'type': 'AAAA',
|
||
'solo': True,
|
||
'zone': (BLUESKY_WEB_DOMAIN | to_zone),
|
||
'name': BLUESKY_WEB_DOMAIN,
|
||
'content': (networks.internet.ip6 | default('')),
|
||
'proxied': True,
|
||
'state': (
|
||
((BLUESKY_WEB_ENABLED | bool)
|
||
and (networks.internet.ip6 is defined)
|
||
and ((networks.internet.ip6 | string) | length > 0))
|
||
| ternary('present','absent')
|
||
),
|
||
},
|
||
]
|
||
+
|
||
(
|
||
(BLUESKY_VIEW_DOMAIN != 'api.bsky.app')
|
||
| ternary([
|
||
{
|
||
'type': 'A',
|
||
'solo': True,
|
||
'zone': (BLUESKY_VIEW_DOMAIN | to_zone),
|
||
'name': BLUESKY_VIEW_DOMAIN,
|
||
'content': networks.internet.ip4,
|
||
'proxied': False,
|
||
'state': (
|
||
((BLUESKY_VIEW_ENABLED | bool))
|
||
| ternary('present','absent')
|
||
),
|
||
},
|
||
{
|
||
'type': 'AAAA',
|
||
'solo': True,
|
||
'zone': (BLUESKY_VIEW_DOMAIN | to_zone),
|
||
'name': BLUESKY_VIEW_DOMAIN,
|
||
'content': (networks.internet.ip6 | default('')),
|
||
'proxied': False,
|
||
'state': (
|
||
((BLUESKY_VIEW_ENABLED | bool)
|
||
and (networks.internet.ip6 is defined)
|
||
and ((networks.internet.ip6 | string) | length > 0))
|
||
| ternary('present','absent')
|
||
),
|
||
}
|
||
],
|
||
[])
|
||
)
|
||
}}
|