feat: add basic garage s3 storage role
This commit is contained in:
parent
69bc95b992
commit
5377c34709
11 changed files with 344 additions and 0 deletions
62
roles/garage/templates/docker-compose.yml.j2
Normal file
62
roles/garage/templates/docker-compose.yml.j2
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
services:
|
||||
{{ garage_service_name }}:
|
||||
container_name: {{ garage_service_name }}
|
||||
image: {{ garage_image }}
|
||||
restart: always
|
||||
volumes:
|
||||
- {{ garage_docker_volume_dir }}/meta:/var/lib/garage/meta
|
||||
- {{ garage_docker_volume_dir }}/data:/var/lib/garage/data
|
||||
- {{ garage_docker_compose_dir }}/garage.toml:/etc/garage.toml
|
||||
networks:
|
||||
- {{ garage_traefik_network }}
|
||||
- {{ garage_internal_network }}
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network={{ garage_traefik_network }}
|
||||
# S3 API endpoint
|
||||
- traefik.http.routers.{{ garage_service_name }}.rule=Host(`{{ garage_s3_domain }}`)
|
||||
{% if garage_use_ssl %}
|
||||
- traefik.http.routers.{{ garage_service_name }}.entrypoints=websecure
|
||||
- traefik.http.routers.{{ garage_service_name }}.tls=true
|
||||
{% else %}
|
||||
- traefik.http.routers.{{ garage_service_name }}.entrypoints=web
|
||||
{% endif %}
|
||||
- traefik.http.routers.{{ garage_service_name }}.service={{ garage_service_name }}-api
|
||||
- traefik.http.routers.{{ garage_service_name }}.priority=50
|
||||
- traefik.http.services.{{ garage_service_name }}-api.loadbalancer.server.port={{ garage_s3_api_port }}
|
||||
|
||||
{% if garage_webui_enabled %}
|
||||
{{ garage_service_name }}-webui:
|
||||
container_name: {{ garage_service_name }}-webui
|
||||
image: {{ garage_webui_image }}
|
||||
restart: always
|
||||
depends_on:
|
||||
- {{ garage_service_name }}
|
||||
environment:
|
||||
API_BASE_URL: "http://{{ garage_service_name }}:{{ garage_admin_port }}"
|
||||
S3_ENDPOINT_URL: "http://{{ garage_service_name }}:{{ garage_s3_api_port }}"
|
||||
AUTH_USER_PASS: '{{ _garage_webui_password_hash.stdout | replace("$", "$$") }}'
|
||||
volumes:
|
||||
- {{ garage_docker_compose_dir }}/garage.toml:/etc/garage.toml:ro
|
||||
networks:
|
||||
- {{ garage_traefik_network }}
|
||||
- {{ garage_internal_network }}
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network={{ garage_traefik_network }}
|
||||
- traefik.http.routers.{{ garage_service_name }}-console.rule=Host(`{{ garage_webui_domain }}`)
|
||||
{% if garage_use_ssl %}
|
||||
- traefik.http.routers.{{ garage_service_name }}-console.entrypoints=websecure
|
||||
- traefik.http.routers.{{ garage_service_name }}-console.tls=true
|
||||
{% else %}
|
||||
- traefik.http.routers.{{ garage_service_name }}-console.entrypoints=web
|
||||
{% endif %}
|
||||
- traefik.http.routers.{{ garage_service_name }}-console.service={{ garage_service_name }}-console
|
||||
- traefik.http.routers.{{ garage_service_name }}-console.priority=10
|
||||
- traefik.http.services.{{ garage_service_name }}-console.loadbalancer.server.port={{ garage_webui_port }}
|
||||
{% endif %}
|
||||
|
||||
networks:
|
||||
{{ garage_internal_network }}:
|
||||
{{ garage_traefik_network }}:
|
||||
external: true
|
||||
Loading…
Add table
Add a link
Reference in a new issue