services: {% for service in services %} {% if inventory_hostname in service.vm %} {{service.name}}: container_name: {{ service.container_name }} image: {{ service.image }} restart: {{ service.restart }} {% if service.network_mode is not defined %} hostname: {{service.name}} networks: - net {% endif %} {% if service.ports is defined and service.ports is iterable %} {% if service.ports[0].internal != 'proxy_only' %} ports: {% for port in service.ports %} {% if port.internal != 'proxy_only' %} - {{port.external}}:{{port.internal}} {% endif %} {% endfor %} {% endif %} {% endif %} {% if service.cap_add is defined and service.cap_add is iterable %} cap_add: {% for cap in service.cap_add %} - {{ cap }} {% endfor %} {% endif %} {% if service.depends_on is defined and service.depends_on is iterable %} depends_on: {% for dependency in service.depends_on %} - {{ dependency }} {% endfor %} {% endif %} {% if service.network_mode is defined %} network_mode: {{ service.network_mode }} {% endif %} {% if service.privileged is defined %} privileged: {{ service.privileged }} {% endif %} {% if service.volumes is defined and service.volumes is iterable %} volumes: {% for volume in service.volumes %} - {{volume.external}}:{{volume.internal}} {% endfor %} {% endif %} {% if service.environment is defined and service.environment is iterable %} environment: {% for env in service.environment %} - {{env}} {% endfor %} {% endif %} {% if service.devices is defined and service.devices is iterable %} devices: {% for device in service.devices %} - {{device.external}}:{{device.internal}} {% endfor %} {% endif %} {% if service.name == 'paperless' %} {{service.name}}-broker: container_name: paperless-broker image: docker.io/library/redis:7 restart: unless-stopped networks: - net volumes: - /opt/local/paperless/redis/data:/data {{service.name}}-postgres: container_name: paperless-postgres image: docker.io/library/postgres:15 restart: unless-stopped networks: - net volumes: - /opt/local/paperless/db/data:/var/lib/postgresql/data environment: POSTGRES_DB: paperless POSTGRES_USER: paperless POSTGRES_PASSWORD: 5fnhn%u2YWY3paNvMAjdoufYPQ2Hf3Yi {% endif %} {% endif %} {% endfor %} networks: net: driver: bridge ipam: driver: default config: - subnet: 172.16.69.0/24 volumes: prometheus_data: {}