You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

153 lines
4.6 KiB
Markdown

### Minimum File Structure
```
/home/
└── ~/
└── docker/
└── seafile/
├── .env
├── docker-compose.yml
```
### Add to Caddyfile (from ~/docker/caddy)
Remember to `docker exec -w /etc/caddy caddy caddy reload` after editing your Caddyfile.
4 years ago
```
subdomain.example.com {
reverse_proxy seafile:80
}
4 years ago
```
### .env
4 years ago
set your environment variables
```
# General
MY_DOMAIN=example.com
DOCKER_MY_NETWORK=caddy_net
# Seafile Specific
MYSQL_ROOT_PASSWORD=examplepassword
SEAFILE_ADMIN_EMAIL=youremail # Specifies Seafile admin user. This is also your username
SEAFILE_ADMIN_PASSWORD=examplepass # Specifies Seafile admin password.
SEAFILE_HOSTNAME=subdomain.example.com
```
4 years ago
### docker-compose.yml
```
version: '2.0'
services:
seafile-db:
image: mariadb:10.1
container_name: seafile-db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} # Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- ~/docker/seafile/seafile-mysql/db:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
memcached:
image: memcached:1.5.6
container_name: seafile-memcached
restart: unless-stopped
entrypoint: memcached -m 256
seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
restart: unless-stopped
volumes:
- ~/docker/seafile/seafile-data:/shared # Requested, specifies the path to Seafile data persistent store.
environment:
- DB_HOST=seafile-db
- DB_ROOT_PASSWD=${MYSQL_ROOT_PASSWORD} # Requested, the value shuold be root's password of MySQL service.
- TIME_ZONE=Etc/UTC # Optional, default is UTC. Should be uncomment and set to your local time zone.
- SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL} # Specifies Seafile admin user, default is 'me@example.com'.
- SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD} # Specifies Seafile admin password, default is 'asecret'.
- SEAFILE_SERVER_LETSENCRYPT=false # Whether to use https or not.
- SEAFILE_SERVER_HOSTNAME=${SEAFILE_HOSTNAME} # Specifies your host name if https is enabled.
depends_on:
- seafile-db
- memcached
networks:
default:
external:
name: caddy_net
```
Notes for WebDAV
4 months ago
You may need to add the following lines to your docker file if you plan on enabling WebDAV.
```
ports:
4 months ago
- "8080:8080"
```
After that you do this open this port on your firewall and redirect it to the Docker Host's IP with seafile running on it.
### docker-compose up -d
3 years ago
After you have the .env and docker-compose files set up in this directory. Do a ```docker-compose up -d``` to start the containers. After they start modify seahub_settings.py, ccnet.conf, and maybe gunicorn.conf.py (if you have connnection refused issues) as shown below.
4 years ago
### seahub_settings.py
3 years ago
`sudo nano ~/docker/seafile/seafile-data/seafile/conf/seahub_settings.py`
Change FILE_SERVER_ROOT to be https instead of http.
Example Below:
4 years ago
```
FILE_SERVER_ROOT = "https://subdomain.example.com/seafhttp"
```
### ccnet.conf
3 years ago
`sudo nano ~/docker/seafile/seafile-data/seafile/conf/ccnet.conf`
Change SERVICE_URL from http to https and remove the :8000 at the end.
Example Below:
4 years ago
```
SERVICE_URL https://subdomain.example.com
4 years ago
```
3 years ago
### gunicorn.conf.py
3 years ago
`sudo nano ~/docker/seafile/seafile-data/seafile/conf/gunicorn.conf.py`
3 years ago
According to @DemoniWaari [#3](https://github.com/StarWhiz/docker_deployment_notes/issues/3) you may need to change the default `bind = "127.0.0.1:8000"` to `bind = "0.0.0.0:8000"` if you get a connection refused error.
### Optional: seafile.conf - changing upload file size limit
3 years ago
You can change your upload size limits by editing `max_upload_size=1000` seafile.conf... The number is in GBs
3 years ago
3 years ago
`sudo nano ~/docker/seafile/seafile-data/seafile/conf/seafile.conf`
4 years ago
# Optional: Setting Up WebDav
### Caddyfile
4 years ago
```
webdav.example.com {
3 years ago
reverse_proxy seafile:8080
4 years ago
}
```
Here I assigned a new subdomain webdav and point it to port 8080 which is the defualt on seafdav.conf
### seafdav.conf
4 years ago
```
3 years ago
nano ~/docker/seafile/seafile-data/seafile/conf/seafdav.conf
4 years ago
```
Set ```enabled=true```
Set ```share_name = /```
4 months ago
Example Below
```
[WEBDAV]
enabled = true
port = 8080
fastcgi = false
share_name = /
```
4 years ago
4 years ago
Remember to do a docker-compose restart and a caddy exec restart after modifying seafile conf files!
### Maintainance - Freeing Space
When you delete files in seafile and empty trash in the web UI, it doesn't free up space on your server.
After emptying trash in the webUI you should run the garbage collector w/ the command below to free up space.
```
docker exec seafile /scripts/gc.sh
```