When send_storage_backend=s3 the role previously deployed the container with whatever was in send_s3_* (often empty strings from the defaults). The container would then start, accept uploads, and fail to persist anything silently. Same pattern as the validate blocks in coturn, talk, bookstack and opnform: fail fast at task time with a clear error that points at the four missing variables. Skipped entirely when send_storage_backend=local (the default). |
||
|---|---|---|
| .. | ||
| defaults | ||
| handlers | ||
| meta | ||
| tasks | ||
| templates | ||
| vars | ||
| README.md | ||
Send
Deploys a self-hosted Send instance (timvisee fork of the discontinued Mozilla Send) with a Redis backend behind Traefik, using Docker Compose.
Requirements
- Docker +
docker composeplugin on the target host - Traefik (role
digitalboard.core.traefik) reachable via an external Docker network namedproxy(default) - DNS for each entry in
send_domainspointing at the reverse proxy - Optional: a Garage S3 bucket if
send_storage_backend: s3
Role Variables
Important defaults (see defaults/main.yml for the full list):
| Variable | Default | Description |
|---|---|---|
send_domains |
["send.local.test"] |
FQDNs the router accepts; first entry is the canonical BASE_URL |
send_image |
registry.gitlab.com/timvisee/send:latest |
Send container image |
send_max_file_size |
1073741824 |
Max upload size in bytes (1 GiB) |
send_max_expire_seconds |
604800 |
Max share lifetime (7 d) |
send_storage_backend |
local |
local (volume) or s3 |
send_s3_* |
"" |
S3 endpoint/bucket/key/secret (when backend is s3) |
send_use_ssl |
true |
Issue Traefik labels for the websecure entrypoint |
Dependencies
None.
Example Playbook
- hosts: send_servers
become: true
roles:
- digitalboard.core.send
With S3 (Garage) backend:
send_storage_backend: s3
send_s3_endpoint: "http://{{ hostvars['backend']['garage_s3_domain'] }}"
send_s3_bucket: "send"
send_s3_access_key: "{{ lookup('digitalboard.core.garage_credentials', 'send', host='backend')['key_id'] }}"
send_s3_secret_key: "{{ lookup('digitalboard.core.garage_credentials', 'send', host='backend')['secret_key'] }}"
License
MIT