mirror of
https://github.com/StarWhiz/docker_deployment_notes
synced 2024-11-10 19:10:47 +00:00
145 lines
4.5 KiB
Markdown
145 lines
4.5 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.
|
|
```
|
|
subdomain.example.com {
|
|
reverse_proxy seafile:80
|
|
}
|
|
```
|
|
|
|
### .env
|
|
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
|
|
```
|
|
|
|
### 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
|
|
|
|
You may need to add the following lines to your docker file if you plan on enabling WebDAV
|
|
```
|
|
ports:
|
|
- "4173:4173"
|
|
```
|
|
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
|
|
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.
|
|
|
|
### seahub_settings.py
|
|
`sudo nano ~/docker/seafile/seafile-data/seafile/conf/seahub_settings.py`
|
|
|
|
Change FILE_SERVER_ROOT to be https instead of http.
|
|
Example Below:
|
|
```
|
|
FILE_SERVER_ROOT = "https://subdomain.example.com/seafhttp"
|
|
```
|
|
|
|
### ccnet.conf
|
|
`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:
|
|
```
|
|
SERVICE_URL https://subdomain.example.com
|
|
```
|
|
|
|
### gunicorn.conf.py
|
|
`sudo nano ~/docker/seafile/seafile-data/seafile/conf/gunicorn.conf.py`
|
|
|
|
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
|
|
You can change your upload size limits by editing `max_upload_size=1000` seafile.conf... The number is in GBs
|
|
|
|
`sudo nano ~/docker/seafile/seafile-data/seafile/conf/seafile.conf`
|
|
|
|
# Optional: Setting Up WebDav
|
|
|
|
### Caddyfile
|
|
```
|
|
webdav.example.com {
|
|
reverse_proxy seafile:8080
|
|
}
|
|
```
|
|
Here I assigned a new subdomain webdav and point it to port 8080 which is the defualt on seafdav.conf
|
|
|
|
### seafdav.conf
|
|
```
|
|
nano ~/docker/seafile/seafile-data/seafile/conf/seafdav.conf
|
|
```
|
|
Set ```enabled=true```
|
|
Set ```share_name = /```
|
|
|
|
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
|
|
```
|
|
|
|
|