56 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
defaults = {
 | 
						|
    'apt': {
 | 
						|
        'packages': {
 | 
						|
            'libnginx-mod-stream': {},
 | 
						|
            'libnginx-mod-rtmp': {},
 | 
						|
        },
 | 
						|
    },
 | 
						|
    'nftables': {
 | 
						|
        'input': {
 | 
						|
            'tcp dport 1936 accept',
 | 
						|
        },
 | 
						|
    },
 | 
						|
    'nginx': {
 | 
						|
        'modules': {
 | 
						|
            'rtmp',
 | 
						|
            'stream',
 | 
						|
        },
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
@metadata_reactor.provides(
 | 
						|
    'nginx-rtmps/stream_key',
 | 
						|
)
 | 
						|
def stream_key(metadata):
 | 
						|
    return {
 | 
						|
        'nginx-rtmps': {
 | 
						|
            'stream_key': repo.vault.password_for(f"{metadata.get('id')} nginx-rtmps stream_key", length=24)
 | 
						|
        },
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
@metadata_reactor.provides(
 | 
						|
    'dns',
 | 
						|
)
 | 
						|
def dns(metadata):
 | 
						|
    return {
 | 
						|
        'dns': {
 | 
						|
            metadata.get('nginx-rtmps/hostname'): repo.libs.ip.get_a_records(metadata),
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
@metadata_reactor.provides(
 | 
						|
    'letsencrypt/domains',
 | 
						|
)
 | 
						|
def letsencrypt(metadata):
 | 
						|
    return {
 | 
						|
        'letsencrypt': {
 | 
						|
            'domains': {
 | 
						|
                metadata.get('nginx-rtmps/hostname'): {
 | 
						|
                    'reload': {'nginx'},
 | 
						|
                },
 | 
						|
            },
 | 
						|
        },
 | 
						|
    }
 |