mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 02:10:05 +00: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')
 | ||
|                 ),
 | ||
|               }
 | ||
|             ],
 | ||
|             [])
 | ||
|         )
 | ||
|       }}
 |