docker_deployment_notes/seafile/README.md

129 lines
3.8 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
}
```
# Things to Modify
## .env
set your environment variables
https://github.com/StarWhiz/docker_deployment_notes/blob/master/seafile/.env
```
# 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
https://github.com/StarWhiz/docker_deployment_notes/blob/master/seafile/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 and ccnet.conf as shown below.
## seahub_settings.py
nano /home/~/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
nano /home/~/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
```
# Optional: Setting Up WebDav
## Caddyfile
```
webdav.example.com {
reverse_proxy seafile:80
}
```
Here I assigned a new subdomain webdav and point it to port 8080 which is the defualt on seafdav.conf
## seafdav.conf
```
nano /home/~/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!