mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-04 12:18:17 +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')
 | 
						||
                ),
 | 
						||
              }
 | 
						||
            ],
 | 
						||
            [])
 | 
						||
        )
 | 
						||
      }}
 |