mirror of
https://github.com/StarWhiz/docker_deployment_notes
synced 2024-11-03 03:40:13 +00:00
129 lines
3.8 KiB
Markdown
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!
|