Create reusable templates and turn them into configurable workloads for homelabs and self-hosted infrastructure. Free and Open-Source.
docker pull ChristianLempa/boilerplates:latest
docker run -d --name boilerplates --restart always ChristianLempa/boilerplates:latest
docker compose up -d
---
services:
{{ service_name }}:
image: traefik/whoami:v1.11.0
{% if not swarm_enabled %}
restart: {{ restart_policy }}
{% endif %}
{% if swarm_enabled or resources_enabled %}
deploy:
{% if swarm_enabled %}
mode: {{ swarm_placement_mode }}
{% if swarm_placement_mode == "replicated" %}
replicas: {{ swarm_replicas }}
{% endif %}
{% if swarm_placement_host %}
placement:
constraints:
- node.hostname == {{ swarm_placement_host }}
{% endif %}
restart_policy:
condition: on-failure
labels:
- traefik.enable=true
- traefik.docker.network={{ traefik_network }}
- traefik.http.services.{{ service_name }}-web.loadbalancer.server.port=80
- traefik.http.routers.{{ service_name }}-http.service={{ service_name }}-web
- traefik.http.routers.{{ service_name }}-http.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- traefik.http.routers.{{ service_name }}-http.entrypoints=web
{% if traefik_tls_enabled %}
- traefik.http.routers.{{ service_name }}-https.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- traefik.http.routers.{{ service_name }}-https.entrypoints=websecure
- traefik.http.routers.{{ service_name }}-https.tls=true
- traefik.http.routers.{{ service_name }}-https.tls.certresolver={{ traefik_tls_certresolver }}
{% endif %}
{% endif %}
{% else %}
labels:
- traefik.enable=true
- traefik.docker.network={{ traefik_network }}
- traefik.http.services.{{ service_name }}-web.loadbalancer.server.port=80
- traefik.http.routers.{{ service_name }}-http.service={{ service_name }}-web
- traefik.http.routers.{{ service_name }}-http.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- traefik.http.routers.{{ service_name }}-http.entrypoints=web
{% if traefik_tls_enabled %}
- traefik.http.routers.{{ service_name }}-https.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- traefik.http.routers.{{ service_name }}-https.entrypoints=websecure
- traefik.http.routers.{{ service_name }}-https.tls=true
- traefik.http.routers.{{ service_name }}-https.tls.certresolver={{ traefik_tls_certresolver }}
{% endif %}
{% endif %}
networks:
- {{ traefik_network }}
networks:
{{ traefik_network }}:
external: true