feat(send): add role for self-hosted Send file-share service
Deploys timvisee/send with a Redis backend behind Traefik. Supports local-disk or S3 storage (e.g. via the garage role). Uses the shared `*_domains` list convention so the router can accept internal *.int.* names alongside the canonical BASE_URL host.
This commit is contained in:
parent
9cbfab7080
commit
e1879e9686
7 changed files with 236 additions and 0 deletions
60
roles/send/README.md
Normal file
60
roles/send/README.md
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue