Send ==== Deploys a self-hosted [Send](https://github.com/timvisee/send) instance (timvisee fork of the discontinued Mozilla Send) with a Redis backend behind Traefik, using Docker Compose. Requirements ------------ - Docker + `docker compose` plugin on the target host - Traefik (role `digitalboard.core.traefik`) reachable via an external Docker network named `proxy` (default) - DNS for each entry in `send_domains` pointing 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 ---------------- ```yaml - hosts: send_servers become: true roles: - digitalboard.core.send ``` With S3 (Garage) backend: ```yaml 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