Merge branch 'pirate-patch-1' into master

See https://github.com/timvisee/send-docker-compose/pull/4
This commit is contained in:
timvisee
2021-05-19 11:01:27 +02:00
2 changed files with 66 additions and 16 deletions

View File

@@ -1,4 +1,5 @@
# Send in Docker compose # Send in Docker compose
This repository provides a basic Docker compose configuration to host a public This repository provides a basic Docker compose configuration to host a public
[Send](https://gitlab.com/timvisee/send) instance on your own domain. [Send](https://gitlab.com/timvisee/send) instance on your own domain.
@@ -15,14 +16,22 @@ This is configurable in your [`.env`](.env.example) file.
See [docker-compose.yaml](./docker-compose.yaml). See [docker-compose.yaml](./docker-compose.yaml).
### Usage *Note: for plain Docker usage without Compose, see: https://github.com/timvisee/send/blob/master/docs/docker.md*
- Install Docker with Docker compose
- Clone repository ## Usage
- Run `cp .env.example .env` and configure it (see [example](#example-env))
- Run `docker-compose up` 1. Install Docker and Docker Compose on your system: https://get.docker.com/
- Visit your domain 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`
<img src="https://i.imgur.com/eyvrWAP.png" alt="Screenshot of succesfully running Send UI" width="450px"/>
*Note: the server will autostart on boot (to disable, change all the `restart: always` lines to `restart: on-failure`)*
## Example .env
### Example .env
```bash ```bash
# Docker image to use for Send # Docker image to use for Send
# - Latest Send version by @timvisee: registry.gitlab.com/timvisee/send:latest # - Latest Send version by @timvisee: registry.gitlab.com/timvisee/send:latest
@@ -30,14 +39,52 @@ See [docker-compose.yaml](./docker-compose.yaml).
DOCKER_SEND_IMAGE=registry.gitlab.com/timvisee/send:latest DOCKER_SEND_IMAGE=registry.gitlab.com/timvisee/send:latest
# Host to expose Send on # Host to expose Send on
HOST=send.example.org HOST=send.example.com
# Base URL for Send # Base URL for Send
SEND_BASE_URL=https://send.example.org SEND_BASE_URL=https://send.example.com
# Optional: for LetsEncrypt SSL, same as HOST # Optional: for LetsEncrypt SSL, same as HOST
LETSENCRYPT_HOST= LETSENCRYPT_HOST=send.example.com
# Optional: for LetsEncrypt SSL, your email address # Optional: for LetsEncrypt SSL, your email address
LETSENCRYPT_EMAIL=mail@example.org LETSENCRYPT_EMAIL=ssl@send.example.com
```
## 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
``` ```

View File

@@ -15,6 +15,7 @@ services:
- proxy-certs:/etc/nginx/certs:ro - proxy-certs:/etc/nginx/certs:ro
- proxy-vhost:/etc/nginx/vhost.d - proxy-vhost:/etc/nginx/vhost.d
- proxy-html:/usr/share/nginx/html - proxy-html:/usr/share/nginx/html
proxy-letsencrypt: proxy-letsencrypt:
image: 'jrcs/letsencrypt-nginx-proxy-companion' image: 'jrcs/letsencrypt-nginx-proxy-companion'
restart: always restart: always
@@ -27,6 +28,7 @@ services:
- proxy-certs:/etc/nginx/certs - proxy-certs:/etc/nginx/certs
- proxy-vhost:/etc/nginx/vhost.d - proxy-vhost:/etc/nginx/vhost.d
- proxy-html:/usr/share/nginx/html - proxy-html:/usr/share/nginx/html
send: send:
image: '${DOCKER_SEND_IMAGE}' image: '${DOCKER_SEND_IMAGE}'
restart: always restart: always
@@ -56,12 +58,13 @@ services:
# - S3_USE_PATH_STYLE_ENDPOINT=true # - S3_USE_PATH_STYLE_ENDPOINT=true
# To customize upload limits # To customize upload limits
# - ANON_MAX_EXPIRE_SECONDS=604800 # - EXPIRE_TIMES_SECONDS=3600,86400,604800,2592000,31536000
# - MAX_EXPIRE_SECONDS=604800 # - DEFAULT_EXPIRE_SECONDS=3600
# - ANON_MAX_DOWNLOADS=20 # - MAX_EXPIRE_SECONDS=31536000
# - MAX_DOWNLOADS=20 # - DOWNLOAD_COUNTS=1,2,5,10,15,25,50,100,1000
# - ANON_MAX_FILE_SIZE=2684354560 # - MAX_DOWNLOADS=1000
# - MAX_FILE_SIZE=2684354560 # - MAX_FILE_SIZE=2684354560
redis: redis:
image: 'redis:alpine' image: 'redis:alpine'
restart: always restart: always