Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timvisee/send-docker-compose
:cloud: Basic Docker compose configuration for Send. https://gitlab.com/timvisee/send-docker-compose
https://github.com/timvisee/send-docker-compose
Last synced: 3 months ago
JSON representation
:cloud: Basic Docker compose configuration for Send. https://gitlab.com/timvisee/send-docker-compose
- Host: GitHub
- URL: https://github.com/timvisee/send-docker-compose
- Owner: timvisee
- Created: 2020-07-16T18:39:05.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-08-22T15:44:07.000Z (about 2 years ago)
- Last Synced: 2024-06-11T13:42:50.937Z (5 months ago)
- Language: Shell
- Homepage:
- Size: 30.3 KB
- Stars: 116
- Watchers: 4
- Forks: 20
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- jimsghstars - timvisee/send-docker-compose - :cloud: Basic Docker compose configuration for Send. https://gitlab.com/timvisee/send-docker-compose (Shell)
README
# Send in Docker compose
This repository provides a basic Docker compose configuration to host a public
[Send](https://gitlab.com/timvisee/send) instance on your own domain.- Hosts on your own domain
- Provides automatic SSL certificates through LetsEncryptThis configuration exposes a reverse proxy on ports 80 and 443, so these must be
available.This uses the latest Send version from
[`timvisee/send`](https://gitlab.com/timvisee/send) because
[`mozilla/send`](https://github.com/mozilla/send) has been archived.
This is configurable in your [`.env`](.env.example) file.See [docker-compose.yaml](./docker-compose.yaml).
*Note: for plain Docker usage without Compose, see: https://github.com/timvisee/send/blob/master/docs/docker.md*
## Usage
1. Install Docker and Docker Compose on your system: https://get.docker.com/
2. Clone this repository `git clone https://github.com/timvisee/send-docker-compose && cd send-docker-compose`
3. Run `cp .env.example .env` and edit `.env` and `docker-compose.yaml` to setup your configuration (see [example](#example-env))
4. Run `docker-compose up` to start the containers (add `-d` to start it in the background)
5. Wait 30sec for it to start, then visit your domain verify the UI is up and running, e.g. `https://send.example.com`*Note: the server will autostart on boot (to disable, change all the `restart: always` lines to `restart: on-failure`)*
## Example .env
```bash
# Docker image to use for Send
# - Latest Send version by @timvisee: registry.gitlab.com/timvisee/send:latest
# - Outdated (archived) Send version by Mozilla: mozilla/send:latest
DOCKER_SEND_IMAGE=registry.gitlab.com/timvisee/send:latest# Host to expose Send on
HOST=send.example.com# Base URL for Send
SEND_BASE_URL=https://send.example.com# Optional: for LetsEncrypt SSL, same as HOST
LETSENCRYPT_HOST=send.example.com# Optional: for LetsEncrypt SSL, your email address
[email protected]
```## Configuration
All the config options and their defaults can be found here: https://github.com/timvisee/send/blob/master/server/config.js
For more documentation about the config options available and their defaults, see: https://github.com/timvisee/send/blob/master/docs/docker.md
Config options expecting array values (e.g. `EXPIRE_TIMES_SECONDS`, `DOWNLOAD_COUNTS`) should be set as bare comma separated values, and the first entry is used as the default.
Other options should be set as unquoted strings, integers, booleans, etc., for example:
```yaml
...
services:
...
send:
...
environment:
...# strings numbers, bools, etc. should all be set as bare unquoted values
- BASE_URL=https://send.example.com
- DHPARAM_GENERATION=false
- MAX_DOWNLOADS=250000# use values set in the .env using ${VARNAME} bash syntax
- VIRTUAL_HOST=${HOST}
# time values are all in seconds, e.g. 365d * 60*60*24 = 31,536,000 seconds
- MAX_EXPIRE_SECONDS=31536000
- DEFAULT_EXPIRE_SECONDS=86400# size values are are in bytes, e.g. 10GB * 1024*1024*1024 = 10,747,904,000 bytes
- MAX_FILE_SIZE=10747904000# array configs are set as CSV (first entry is the default for the UI dropdown)
- EXPIRE_TIMES_SECONDS=86400,3600,86400,604800,2592000,31536000,157680000
- DOWNLOAD_COUNTS=10,1,2,5,10,15,25,50,100,1000,10000,100000,250000
```