Compare commits
3 commits
de947dd8a4
...
d526ec382d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d526ec382d | ||
|
|
5ce2a8f737 | ||
|
|
9d1a5d1924 |
4 changed files with 127 additions and 5 deletions
122
roles/send/meta/argument_specs.yml
Normal file
122
roles/send/meta/argument_specs.yml
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
---
|
||||
argument_specs:
|
||||
main:
|
||||
short_description: Deploy timvisee/send (file-sharing) with a Redis backend via Docker Compose.
|
||||
description:
|
||||
- Renders a Compose stack with the C(timvisee/send) container and a
|
||||
Redis companion behind Traefik. Storage can be local-disk or any
|
||||
S3-compatible backend (e.g. the C(garage) role).
|
||||
- Uses the shared C(*_domains) list convention so the router can
|
||||
accept internal C(*.int.*) hostnames alongside the canonical
|
||||
BASE_URL host.
|
||||
options:
|
||||
docker_compose_base_dir:
|
||||
type: path
|
||||
default: /etc/docker/compose
|
||||
docker_volume_base_dir:
|
||||
type: path
|
||||
default: /srv/data
|
||||
send_service_name:
|
||||
type: str
|
||||
default: send
|
||||
send_docker_compose_dir:
|
||||
type: path
|
||||
send_docker_volume_dir:
|
||||
type: path
|
||||
|
||||
send_domains:
|
||||
type: list
|
||||
elements: str
|
||||
default: ['send.local.test']
|
||||
description:
|
||||
- FQDNs the router accepts. First entry is the canonical hostname
|
||||
and is used as C(BASE_URL). Further entries cover internal
|
||||
C(*.int.*) names so backend uploads can hit Send without
|
||||
hairpinning via the DMZ.
|
||||
send_image:
|
||||
type: str
|
||||
default: "registry.gitlab.com/timvisee/send:latest"
|
||||
send_port:
|
||||
type: int
|
||||
default: 1443
|
||||
send_extra_hosts:
|
||||
type: list
|
||||
elements: str
|
||||
default: []
|
||||
description: C(extra_hosts) entries injected into the send container (Docker C(host:ip) syntax).
|
||||
|
||||
send_redis_image:
|
||||
type: str
|
||||
default: "redis:7-alpine"
|
||||
send_redis_service_name:
|
||||
type: str
|
||||
default: send-redis
|
||||
|
||||
send_max_file_size:
|
||||
type: int
|
||||
default: 1073741824
|
||||
description: Max upload size in bytes. Default is 1 GiB.
|
||||
send_default_downloads:
|
||||
type: int
|
||||
default: 1
|
||||
send_max_downloads:
|
||||
type: int
|
||||
default: 100
|
||||
send_default_expire_seconds:
|
||||
type: int
|
||||
default: 86400
|
||||
description: Default share lifetime in seconds (24 h).
|
||||
send_max_expire_seconds:
|
||||
type: int
|
||||
default: 604800
|
||||
description: Maximum share lifetime in seconds (7 d).
|
||||
send_max_files_per_archive:
|
||||
type: int
|
||||
default: 64
|
||||
send_download_counts:
|
||||
type: str
|
||||
default: "1,2,3,4,5,20,50,100"
|
||||
description: Comma-separated list of download-count options shown in the UI.
|
||||
send_expire_times_seconds:
|
||||
type: str
|
||||
default: "300,3600,86400,604800"
|
||||
description: Comma-separated list of expire-time options (seconds) shown in the UI.
|
||||
|
||||
send_storage_backend:
|
||||
type: str
|
||||
choices: [local, s3]
|
||||
default: local
|
||||
description:
|
||||
- C(local) keeps uploads in a host volume. C(s3) uses an
|
||||
S3-compatible backend (any of the C(send_s3_*) variables is
|
||||
required when this is set).
|
||||
|
||||
send_s3_endpoint:
|
||||
type: str
|
||||
default: ''
|
||||
send_s3_bucket:
|
||||
type: str
|
||||
default: ''
|
||||
send_s3_region:
|
||||
type: str
|
||||
default: us-east-1
|
||||
send_s3_access_key:
|
||||
type: str
|
||||
default: ''
|
||||
send_s3_secret_key:
|
||||
type: str
|
||||
default: ''
|
||||
send_s3_use_path_style:
|
||||
type: bool
|
||||
default: true
|
||||
description: Required for most non-AWS S3-compatible backends (Garage, MinIO).
|
||||
|
||||
send_traefik_network:
|
||||
type: str
|
||||
default: proxy
|
||||
send_internal_network:
|
||||
type: str
|
||||
default: send_internal
|
||||
send_use_ssl:
|
||||
type: bool
|
||||
default: true
|
||||
|
|
@ -4,7 +4,7 @@ galaxy_info:
|
|||
description: Deploy a self-hosted Send (timvisee fork) instance with Redis via Docker Compose
|
||||
license: MIT
|
||||
|
||||
min_ansible_version: 2.14
|
||||
min_ansible_version: "2.14"
|
||||
|
||||
galaxy_tags:
|
||||
- send
|
||||
|
|
|
|||
|
|
@ -3,20 +3,20 @@
|
|||
# tasks file for send
|
||||
|
||||
- name: Create docker compose directory
|
||||
file:
|
||||
ansible.builtin.file:
|
||||
path: "{{ send_docker_compose_dir }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Create local upload directory
|
||||
file:
|
||||
ansible.builtin.file:
|
||||
path: "{{ send_docker_volume_dir }}/uploads"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
when: send_storage_backend == "local"
|
||||
|
||||
- name: Create docker-compose file for send
|
||||
template:
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yml.j2
|
||||
dest: "{{ send_docker_compose_dir }}/docker-compose.yml"
|
||||
mode: '0644'
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ services:
|
|||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network={{ send_traefik_network }}
|
||||
- traefik.http.routers.{{ send_service_name }}.rule=Host({% for d in send_domains %}`{{ d }}`{% if not loop.last %}, {% endif %}{% endfor %})
|
||||
- traefik.http.routers.{{ send_service_name }}.rule={% for d in send_domains %}Host(`{{ d }}`){% if not loop.last %} || {% endif %}{% endfor +%}
|
||||
- traefik.http.services.{{ send_service_name }}.loadbalancer.server.port={{ send_port }}
|
||||
{% if send_use_ssl %}
|
||||
- traefik.http.routers.{{ send_service_name }}.entrypoints=websecure
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue