mirror of
https://github.com/timvisee/send-docker-compose.git
synced 2025-12-06 14:00:58 +03:00
Merge branch 'pirate-patch-1' into master
See https://github.com/timvisee/send-docker-compose/pull/4
This commit is contained in:
69
README.md
69
README.md
@@ -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
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user