29 typed options with full defaults coverage (no required: true marks — the role works with an empty S3 config when storage_backend=local). Documents the send_domains list convention, the local-vs-s3 storage choice, the timing/size limits and the Traefik / network wiring. Loads through ansible-core's ArgumentSpecValidator. Matches the spec convention used by the other roles in this collection. |
||
|---|---|---|
| .. | ||
| 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