From 2f90c675ecbf89e0ec47d8a69a2376972b960492 Mon Sep 17 00:00:00 2001 From: skywalker Date: Tue, 3 Sep 2024 17:56:43 +0800 Subject: [PATCH 01/11] config in env --- manual/docker/docker-compose/seadoc/1.0/seadoc.yml | 5 +++-- .../seadoc/1.0/standalone/docker-compose.yml | 5 +++-- manual/docker/docker-compose/seadoc/1.0/standalone/env | 7 +++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/manual/docker/docker-compose/seadoc/1.0/seadoc.yml b/manual/docker/docker-compose/seadoc/1.0/seadoc.yml index c21acbe4..3e0c8658 100644 --- a/manual/docker/docker-compose/seadoc/1.0/seadoc.yml +++ b/manual/docker/docker-compose/seadoc/1.0/seadoc.yml @@ -12,9 +12,10 @@ services: - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} - DB_NAME=${SEADOC_MYSQL_DB_NAME:-seahub_db} - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - - SEADOC_SERVER_LETSENCRYPT=${SEADOC_SERVER_LETSENCRYPT:-false} - - SEADOC_SERVER_HOSTNAME=${SEADOC_SERVER_HOSTNAME:-sdoc-server.example.com} + - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - SEAHUB_SERVICE_URL=${SEAHUB_SERVICE_URL:-http://seafile.example.com} + - FILE_SERVER_ROOT=${FILE_SERVER_ROOT:-http://seafile.example.com/seafhttp} + - SEADOC_SERVER_URL=${SEAHUB_SERVICE_URL:-http://seafile.example.com/sdoc-server} networks: - seafile-net diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml index db0264d4..cbb31b07 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml @@ -15,9 +15,10 @@ services: - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} - DB_NAME=${SEADOC_MYSQL_DB_NAME:-seahub_db} - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - - SEADOC_SERVER_LETSENCRYPT=${SEADOC_SERVER_LETSENCRYPT:-false} - - SEADOC_SERVER_HOSTNAME=${SEADOC_SERVER_HOSTNAME:-sdoc-server.example.com} + - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - SEAHUB_SERVICE_URL=${SEAHUB_SERVICE_URL:-http://seafile.example.com} + - FILE_SERVER_ROOT=${FILE_SERVER_ROOT:-http://seafile.example.com/seafhttp} + - SEADOC_SERVER_URL=${SEAHUB_SERVICE_URL:-http://seadoc.example.com} networks: - seafile-net diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/env b/manual/docker/docker-compose/seadoc/1.0/standalone/env index 8d7ab926..491a89bd 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/env +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/env @@ -3,7 +3,6 @@ COMPOSE_PATH_SEPARATOR=',' SEADOC_IMAGE=seafileltd/sdoc-server:latest -SEADOC_VOLUMES=/opt/seadoc-data SEAFILE_MYSQL_DB_HOST=192.168.0.2 SEAFILE_MYSQL_DB_USER=seafile @@ -11,8 +10,8 @@ SEAFILE_MYSQL_DB_PASSWD=PASSWORD TIME_ZONE=Etc/UTC +JWT_PRIVATE_KEY= SEAHUB_SERVICE_URL=http://seafile.example.com +FILE_SERVER_ROOT=http://seafile.example.com/seafhttp +SEADOC_SERVER_URL=http://seadoc.example.com -SEADOC_SERVER_HOSTNAME=sdoc-server.example.com -SEADOC_SERVER_LETSENCRYPT=false -SEADOC_SSL_PORT= From 872b9fc011881bfd663f5109ac05c99c0d291ed2 Mon Sep 17 00:00:00 2001 From: skywalker Date: Thu, 5 Sep 2024 18:01:31 +0800 Subject: [PATCH 02/11] add caddy --- .../docker/docker-compose/pro/12.0/caddy.yml | 26 ++++++++++++++ .../pro/12.0/docker-compose.yml | 10 +++--- manual/docker/docker-compose/pro/12.0/env | 18 +++++++--- .../docker/docker-compose/pro/12.0/seadoc.yml | 34 +++++++++++++++++++ .../docker-compose/seadoc/1.0/seadoc.yml | 23 ------------- .../seadoc/1.0/standalone/caddy.yml | 26 ++++++++++++++ .../seadoc/1.0/standalone/docker-compose.yml | 19 +++++++---- .../docker-compose/seadoc/1.0/standalone/env | 13 ++++--- 8 files changed, 128 insertions(+), 41 deletions(-) create mode 100644 manual/docker/docker-compose/pro/12.0/caddy.yml create mode 100644 manual/docker/docker-compose/pro/12.0/seadoc.yml delete mode 100644 manual/docker/docker-compose/seadoc/1.0/seadoc.yml create mode 100644 manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml diff --git a/manual/docker/docker-compose/pro/12.0/caddy.yml b/manual/docker/docker-compose/pro/12.0/caddy.yml new file mode 100644 index 00000000..a2347302 --- /dev/null +++ b/manual/docker/docker-compose/pro/12.0/caddy.yml @@ -0,0 +1,26 @@ +services: + + caddy: + image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9} + restart: unless-stopped + container_name: caddy + ports: + - 80:80 + - 443:443 + environment: + - CADDY_INGRESS_NETWORKS=seafile-net + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${SEAFILE_CADDY_VOLUMES:-/opt/seafile-caddy}:/data/caddy + networks: + - seafile-net + healthcheck: + test: ["CMD-SHELL", "curl --fail http://localhost:2019/metrics || exit 1"] + start_period: 20s + interval: 20s + timeout: 5s + retries: 3 + +networks: + seafile-net: + name: seafile-net diff --git a/manual/docker/docker-compose/pro/12.0/docker-compose.yml b/manual/docker/docker-compose/pro/12.0/docker-compose.yml index f2ee5c06..7c5f34c4 100644 --- a/manual/docker/docker-compose/pro/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/pro/12.0/docker-compose.yml @@ -39,20 +39,21 @@ services: seafile: image: ${SEAFILE_IMAGE:-docker.seadrive.org/seafileltd/seafile-pro-mc:12.0-latest} container_name: seafile - ports: - - 80:80 - - ${SEAFILE_SSL_PORT:-}:443 volumes: - ${SEAFILE_VOLUMES:-/opt/seafile-data}:/shared environment: - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - DB_ROOT_PASSWD=${SEAFILE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty} + - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com} - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com} - - SEAFILE_SERVER_LETSENCRYPT=${SEAFILE_SERVER_LETSENCRYPT:-false} - FORCE_HTTPS_IN_CONF=${SEAFILE_FORCE_HTTPS_IN_CONF:-false} + - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} + labels: + caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} + caddy.reverse_proxy: "{{upstreams 80}}" depends_on: - db - memcached @@ -62,3 +63,4 @@ services: networks: seafile-net: + name: seafile-net diff --git a/manual/docker/docker-compose/pro/12.0/env b/manual/docker/docker-compose/pro/12.0/env index 7dbcd300..497b3ebb 100644 --- a/manual/docker/docker-compose/pro/12.0/env +++ b/manual/docker/docker-compose/pro/12.0/env @@ -1,4 +1,4 @@ -COMPOSE_FILE='docker-compose.yml' +COMPOSE_FILE='docker-compose.yml,caddy.yml' COMPOSE_PATH_SEPARATOR=',' @@ -6,19 +6,29 @@ SEAFILE_IMAGE=docker.seadrive.org/seafileltd/seafile-pro-mc:12.0-latest SEAFILE_DB_IMAGE=mariadb:10.11 SEAFILE_MEMCACHED_IMAGE=memcached:1.6.29 SEAFILE_ELASTICSEARCH_IMAGE=elasticsearch:8.15.0 +SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9 SEAFILE_VOLUMES=/opt/seafile-data SEAFILE_MYSQL_VOLUMES=/opt/seafile-mysql/db SEAFILE_ELASTICSEARCH_VOLUMES=/opt/seafile-elasticsearch/data +SEAFILE_CADDY_VOLUMES=/opt/seafile-caddy + SEAFILE_MYSQL_DB_HOST=db -SEAFILE_MYSQL_ROOT_PASSWORD=PASSWORD +SEAFILE_MYSQL_ROOT_PASSWORD=ROOT_PASSWORD +SEAFILE_MYSQL_DB_USER=seafile +SEAFILE_MYSQL_DB_PASSWD=PASSWORD TIME_ZONE=Etc/UTC +JWT_PRIVATE_KEY= + SEAFILE_SERVER_HOSTNAME=example.seafile.com -SEAFILE_SERVER_LETSENCRYPT=false +SEAFILE_SERVER_PROTOCOL=http SEAFILE_FORCE_HTTPS_IN_CONF=false -SEAFILE_SSL_PORT= SEAFILE_ADMIN_EMAIL=me@example.com SEAFILE_ADMIN_PASSWORD=asecret + + +SEADOC_IMAGE=seafileltd/sdoc-server:latest +SEADOC_VOLUMES=/opt/seadoc-data/ diff --git a/manual/docker/docker-compose/pro/12.0/seadoc.yml b/manual/docker/docker-compose/pro/12.0/seadoc.yml new file mode 100644 index 00000000..40915f1c --- /dev/null +++ b/manual/docker/docker-compose/pro/12.0/seadoc.yml @@ -0,0 +1,34 @@ +services: + + sdoc-server: + image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:latest} + container_name: sdoc-server + volumes: + - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared + environment: + - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} + - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306} + - DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile} + - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} + - DB_NAME=${SEADOC_MYSQL_DB_NAME:-seahub_db} + - TIME_ZONE=${TIME_ZONE:-Etc/UTC} + - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} + - SEAHUB_SERVICE_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} + - FILE_SERVER_ROOT=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}/seafhttp + - SEADOC_SERVER_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}/sdoc-server + labels: + caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} + caddy.@ws.0_header: "Connection *Upgrade*" + caddy.@ws.1_header: "Upgrade websocket" + caddy.0_reverse_proxy: "@ws {{upstreams 80}}" + caddy.1_handle_path: "/socket.io/*" + caddy.1_handle_path.0_rewrite: "* /socket.io{uri}" + caddy.1_handle_path.1_reverse_proxy: "{{upstreams 80}}" + caddy.2_handle_path: "/sdoc-server/*" + caddy.2_handle_path.0_rewrite: "* {uri}" + networks: + - seafile-net + +networks: + seafile-net: + name: seafile-net diff --git a/manual/docker/docker-compose/seadoc/1.0/seadoc.yml b/manual/docker/docker-compose/seadoc/1.0/seadoc.yml deleted file mode 100644 index 3e0c8658..00000000 --- a/manual/docker/docker-compose/seadoc/1.0/seadoc.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - - sdoc-server: - image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:latest} - container_name: sdoc-server - volumes: - - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared - environment: - - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306} - - DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile} - - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} - - DB_NAME=${SEADOC_MYSQL_DB_NAME:-seahub_db} - - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - - SEAHUB_SERVICE_URL=${SEAHUB_SERVICE_URL:-http://seafile.example.com} - - FILE_SERVER_ROOT=${FILE_SERVER_ROOT:-http://seafile.example.com/seafhttp} - - SEADOC_SERVER_URL=${SEAHUB_SERVICE_URL:-http://seafile.example.com/sdoc-server} - networks: - - seafile-net - -networks: - seafile-net: diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml new file mode 100644 index 00000000..a2347302 --- /dev/null +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml @@ -0,0 +1,26 @@ +services: + + caddy: + image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9} + restart: unless-stopped + container_name: caddy + ports: + - 80:80 + - 443:443 + environment: + - CADDY_INGRESS_NETWORKS=seafile-net + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${SEAFILE_CADDY_VOLUMES:-/opt/seafile-caddy}:/data/caddy + networks: + - seafile-net + healthcheck: + test: ["CMD-SHELL", "curl --fail http://localhost:2019/metrics || exit 1"] + start_period: 20s + interval: 20s + timeout: 5s + retries: 3 + +networks: + seafile-net: + name: seafile-net diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml index cbb31b07..3f2c3ebe 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml @@ -3,9 +3,6 @@ services: sdoc-server: image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:latest} container_name: sdoc-server - ports: - - 80:80 - - ${SEADOC_SSL_PORT:-}:443 volumes: - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared environment: @@ -16,9 +13,19 @@ services: - DB_NAME=${SEADOC_MYSQL_DB_NAME:-seahub_db} - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - - SEAHUB_SERVICE_URL=${SEAHUB_SERVICE_URL:-http://seafile.example.com} - - FILE_SERVER_ROOT=${FILE_SERVER_ROOT:-http://seafile.example.com/seafhttp} - - SEADOC_SERVER_URL=${SEAHUB_SERVICE_URL:-http://seadoc.example.com} + - SEAHUB_SERVICE_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} + - FILE_SERVER_ROOT=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}/seafhttp + - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:?Variable is not set or empty} + labels: + caddy: ${SEADOC_SERVER_URL:?Variable is not set or empty} + caddy.@ws.0_header: "Connection *Upgrade*" + caddy.@ws.1_header: "Upgrade websocket" + caddy.0_reverse_proxy: "@ws {{upstreams 80}}" + caddy.1_handle_path: "/socket.io/*" + caddy.1_handle_path.0_rewrite: "* /socket.io{uri}" + caddy.1_handle_path.1_reverse_proxy: "{{upstreams 80}}" + caddy.2_handle_path: "/sdoc-server/*" + caddy.2_handle_path.0_rewrite: "* {uri}" networks: - seafile-net diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/env b/manual/docker/docker-compose/seadoc/1.0/standalone/env index 491a89bd..df65a7c9 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/env +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/env @@ -1,8 +1,12 @@ -COMPOSE_FILE='docker-compose.yml' +COMPOSE_FILE='docker-compose.yml,caddy.yml' COMPOSE_PATH_SEPARATOR=',' SEADOC_IMAGE=seafileltd/sdoc-server:latest +SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9 + +SEADOC_VOLUMES=/opt/seadoc-data/ +CADDY_VOLUMES=/opt/seafile-caddy SEAFILE_MYSQL_DB_HOST=192.168.0.2 SEAFILE_MYSQL_DB_USER=seafile @@ -11,7 +15,8 @@ SEAFILE_MYSQL_DB_PASSWD=PASSWORD TIME_ZONE=Etc/UTC JWT_PRIVATE_KEY= -SEAHUB_SERVICE_URL=http://seafile.example.com -FILE_SERVER_ROOT=http://seafile.example.com/seafhttp -SEADOC_SERVER_URL=http://seadoc.example.com +SEAFILE_SERVER_HOSTNAME=example.seafile.com +SEAFILE_SERVER_PROTOCOL=http + +SEADOC_SERVER_URL=http://seadoc.seafile.com From 0b8940d89cf4bb3f709647b7ba0d792aa1a35f47 Mon Sep 17 00:00:00 2001 From: skywalker Date: Thu, 5 Sep 2024 18:22:39 +0800 Subject: [PATCH 03/11] update to 1.0 --- .../docker/docker-compose/ce/12.0/caddy.yml | 26 ++++++++++ .../docker-compose/ce/12.0/docker-compose.yml | 7 ++- manual/docker/docker-compose/ce/12.0/env | 18 +++++-- manual/docker/docker-compose/pro/12.0/env | 2 +- .../docker/docker-compose/pro/12.0/seadoc.yml | 4 +- .../seadoc/1.0/standalone/docker-compose.yml | 8 +-- .../docker-compose/seadoc/1.0/standalone/env | 7 +-- manual/upgrade/upgrade_docker.md | 50 ++++++++----------- manual/upgrade/upgrade_notes_for_12.0.x.md | 26 +++++----- 9 files changed, 90 insertions(+), 58 deletions(-) create mode 100644 manual/docker/docker-compose/ce/12.0/caddy.yml diff --git a/manual/docker/docker-compose/ce/12.0/caddy.yml b/manual/docker/docker-compose/ce/12.0/caddy.yml new file mode 100644 index 00000000..a2347302 --- /dev/null +++ b/manual/docker/docker-compose/ce/12.0/caddy.yml @@ -0,0 +1,26 @@ +services: + + caddy: + image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9} + restart: unless-stopped + container_name: caddy + ports: + - 80:80 + - 443:443 + environment: + - CADDY_INGRESS_NETWORKS=seafile-net + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${SEAFILE_CADDY_VOLUMES:-/opt/seafile-caddy}:/data/caddy + networks: + - seafile-net + healthcheck: + test: ["CMD-SHELL", "curl --fail http://localhost:2019/metrics || exit 1"] + start_period: 20s + interval: 20s + timeout: 5s + retries: 3 + +networks: + seafile-net: + name: seafile-net diff --git a/manual/docker/docker-compose/ce/12.0/docker-compose.yml b/manual/docker/docker-compose/ce/12.0/docker-compose.yml index b5415648..1d11217b 100644 --- a/manual/docker/docker-compose/ce/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/ce/12.0/docker-compose.yml @@ -29,12 +29,16 @@ services: environment: - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - DB_ROOT_PASSWD=${SEAFILE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty} + - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com} - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com} - - SEAFILE_SERVER_LETSENCRYPT=${SEAFILE_SERVER_LETSENCRYPT:-false} - FORCE_HTTPS_IN_CONF=${SEAFILE_FORCE_HTTPS_IN_CONF:-false} + - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} + labels: + caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} + caddy.reverse_proxy: "{{upstreams 80}}" depends_on: - db - memcached @@ -43,3 +47,4 @@ services: networks: seafile-net: + name: seafile-net \ No newline at end of file diff --git a/manual/docker/docker-compose/ce/12.0/env b/manual/docker/docker-compose/ce/12.0/env index 7ccd232f..1b45723d 100644 --- a/manual/docker/docker-compose/ce/12.0/env +++ b/manual/docker/docker-compose/ce/12.0/env @@ -1,22 +1,32 @@ -COMPOSE_FILE='docker-compose.yml' +COMPOSE_FILE='docker-compose.yml,caddy.yml' COMPOSE_PATH_SEPARATOR=',' SEAFILE_IMAGE=seafileltd/seafile-mc:12.0-latest SEAFILE_DB_IMAGE=mariadb:10.11 SEAFILE_MEMCACHED_IMAGE=memcached:1.6.29 +SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9 SEAFILE_VOLUMES=/opt/seafile-data SEAFILE_MYSQL_VOLUMES=/opt/seafile-mysql/db +SEAFILE_CADDY_VOLUMES=/opt/seafile-caddy + SEAFILE_MYSQL_DB_HOST=db -SEAFILE_MYSQL_ROOT_PASSWORD=PASSWORD +SEAFILE_MYSQL_ROOT_PASSWORD=ROOT_PASSWORD +SEAFILE_MYSQL_DB_USER=seafile +SEAFILE_MYSQL_DB_PASSWD=PASSWORD TIME_ZONE=Etc/UTC +JWT_PRIVATE_KEY= + SEAFILE_SERVER_HOSTNAME=example.seafile.com -SEAFILE_SERVER_LETSENCRYPT=false +SEAFILE_SERVER_PROTOCOL=http SEAFILE_FORCE_HTTPS_IN_CONF=false -SEAFILE_SSL_PORT= SEAFILE_ADMIN_EMAIL=me@example.com SEAFILE_ADMIN_PASSWORD=asecret + + +SEADOC_IMAGE=seafileltd/sdoc-server:latest +SEADOC_VOLUMES=/opt/seadoc-data diff --git a/manual/docker/docker-compose/pro/12.0/env b/manual/docker/docker-compose/pro/12.0/env index 497b3ebb..c12de047 100644 --- a/manual/docker/docker-compose/pro/12.0/env +++ b/manual/docker/docker-compose/pro/12.0/env @@ -31,4 +31,4 @@ SEAFILE_ADMIN_PASSWORD=asecret SEADOC_IMAGE=seafileltd/sdoc-server:latest -SEADOC_VOLUMES=/opt/seadoc-data/ +SEADOC_VOLUMES=/opt/seadoc-data diff --git a/manual/docker/docker-compose/pro/12.0/seadoc.yml b/manual/docker/docker-compose/pro/12.0/seadoc.yml index 40915f1c..bad3116c 100644 --- a/manual/docker/docker-compose/pro/12.0/seadoc.yml +++ b/manual/docker/docker-compose/pro/12.0/seadoc.yml @@ -1,8 +1,8 @@ services: - sdoc-server: + seadoc: image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:latest} - container_name: sdoc-server + container_name: seadoc volumes: - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared environment: diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml index 3f2c3ebe..c933d90b 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml @@ -1,8 +1,8 @@ services: - sdoc-server: + seadoc: image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:latest} - container_name: sdoc-server + container_name: seadoc volumes: - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared environment: @@ -15,9 +15,9 @@ services: - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - SEAHUB_SERVICE_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} - FILE_SERVER_ROOT=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}/seafhttp - - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:?Variable is not set or empty} + - SEADOC_SERVER_URL=${SEADOC_SERVER_PROTOCOL:-http}://${SEADOC_SERVER_HOSTNAME:?Variable is not set or empty} labels: - caddy: ${SEADOC_SERVER_URL:?Variable is not set or empty} + caddy: ${SEADOC_SERVER_PROTOCOL:-http}://${SEADOC_SERVER_HOSTNAME:?Variable is not set or empty} caddy.@ws.0_header: "Connection *Upgrade*" caddy.@ws.1_header: "Upgrade websocket" caddy.0_reverse_proxy: "@ws {{upstreams 80}}" diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/env b/manual/docker/docker-compose/seadoc/1.0/standalone/env index df65a7c9..356b78b9 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/env +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/env @@ -5,8 +5,8 @@ COMPOSE_PATH_SEPARATOR=',' SEADOC_IMAGE=seafileltd/sdoc-server:latest SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9 -SEADOC_VOLUMES=/opt/seadoc-data/ -CADDY_VOLUMES=/opt/seafile-caddy +SEADOC_VOLUMES=/opt/seadoc-data +SEAFILE_CADDY_VOLUMES=/opt/seafile-caddy SEAFILE_MYSQL_DB_HOST=192.168.0.2 SEAFILE_MYSQL_DB_USER=seafile @@ -19,4 +19,5 @@ JWT_PRIVATE_KEY= SEAFILE_SERVER_HOSTNAME=example.seafile.com SEAFILE_SERVER_PROTOCOL=http -SEADOC_SERVER_URL=http://seadoc.seafile.com +SEADOC_SERVER_HOSTNAME==example.seadoc.com +SEADOC_SERVER_PROTOCOL=http diff --git a/manual/upgrade/upgrade_docker.md b/manual/upgrade/upgrade_docker.md index ee7942e8..65a665dc 100644 --- a/manual/upgrade/upgrade_docker.md +++ b/manual/upgrade/upgrade_docker.md @@ -99,13 +99,16 @@ First, backup the original docker-compose.yml file: mv docker-compose.yml docker-compose.yml.bak ``` -Then download [.env](https://manual.seafile.com/docker/docker-compose/ce/12.0/env) and [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/ce/12.0/docker-compose.yml), and modify .env file according to the old configuration in `docker-compose.yml.bak` +Then download [.env](https://manual.seafile.com/docker/docker-compose/ce/12.0/env) , [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/ce/12.0/docker-compose.yml) and [caddy.yml](https://manual.seafile.com/docker/docker-compose/ce/12.0/caddy.yml), and modify .env file according to the old configuration in `docker-compose.yml.bak` The following fields merit particular attention: * The password of MySQL root (SEAFILE_MYSQL_ROOT_PASSWORD) * The volume directory of MySQL data (SEAFILE_MYSQL_VOLUMES) -* The volume directory of Seafile data (SEAFILE_VOLUMES). +* The volume directory of Seafile data (SEAFILE_VOLUMES) +* The volume directory of MySQL data (SEAFILE_MYSQL_VOLUMES) +* The volume directory of Caddy data (SEAFILE_CADDY_VOLUMES) +* jwt (JWT_PRIVATE_KEY) Start with docker compose up. @@ -116,31 +119,27 @@ If you have deployed SeaDoc extension in version 11.0, please use the following SeaDoc 1.0 is for working with Seafile 12.0. -#### Change the DB_NAME +### Backup SeaDoc files -From version 1.0, SeaDoc is using seahub_db database to store its operation logs and no longer need an extra database sdoc_db. You need to change the `DB_NAME` to `seahub_db` in the config file manually. +Stop SeaDoc and backup files -conf/sdoc_server_config.json +```sh +docker compose down -```json -"database": "seahub_db" +mv /opt/seadoc-data/ /opt/seadoc-data-bak/ ``` #### Update the docker compose file -In version 1.0, we use env file to configure SeaDoc docker image, instead of modifying the docker-compose.yml file directly. +In version 1.0, we use .env file to configure SeaDoc docker image, instead of modifying the docker-compose.yml file directly. Use one of the following method to upgrade the docker compose file depends on your current deployment method. ##### For deployment where SeaDoc is on a separate host -Make sure you have installed Seafile 12.0, then backup old SeaDoc docker-compose.yml file. +Make sure you have installed Seafile 12.0. -```sh -mv docker-compose.yml docker-compose.yml.bak -``` - -Download [.env](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/env) and [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml), then modify .env file. +Download [.env](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/env), [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml) and [caddy.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/caddy.yml), then modify .env file. The following fields merit particular attention: @@ -148,8 +147,10 @@ The following fields merit particular attention: * Seafile MySQL user (SEAFILE_MYSQL_DB_USER) * Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWD) * The volume directory of SeaDoc data (SEADOC_VOLUMES) -* SeaDoc service URL (SDOC_SERVER_HOSTNAME) -* Seafile service URL (SEAHUB_SERVICE_URL) +* The volume directory of Caddy data (SEAFILE_CADDY_VOLUMES) +* SeaDoc service URL (SEADOC_SERVER_HOSTNAME) +* Seafile service URL (SEAFILE_SERVER_HOSTNAME) +* jwt (JWT_PRIVATE_KEY, the same in Seafile .env) Start SeaDoc server with the following command @@ -161,32 +162,23 @@ docker compose up -d Make sure you have installed Seafile Docker 12.0. -Download [seadoc.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/seadoc.yml) to the Seafile path, then modify Seafile .env file. - -Note: modify the `COMPOSE_FILE` field, and add all other fields. +Download [seadoc.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/seadoc.yml) to the Seafile path, then modify Seafile .env file. ```env -COMPOSE_FILE='docker-compose.yml,seadoc.yml' +COMPOSE_FILE='docker-compose.yml,caddy.yml,seadoc.yml' SEADOC_IMAGE=seafileltd/sdoc-server:1.0-latest SEADOC_VOLUMES=/opt/seadoc-data - -SEAFILE_MYSQL_DB_USER=seafile -SEAFILE_MYSQL_DB_PASSWD=PASSWORD - -SEAHUB_SERVICE_URL=http://seafile.example.com ``` The following fields merit particular attention: -* Seafile MySQL user (SEAFILE_MYSQL_DB_USER) -* Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWD) +* add `seadoc.yml` to the `COMPOSE_FILE` field. * The volume directory of SeaDoc data (SEADOC_VOLUMES) -* Seafile service URL (SEAHUB_SERVICE_URL) Start Seafile server and SeaDoc server with the following command ```sh docker compose up -d -``` \ No newline at end of file +``` diff --git a/manual/upgrade/upgrade_notes_for_12.0.x.md b/manual/upgrade/upgrade_notes_for_12.0.x.md index 008b18ea..18f0bb48 100644 --- a/manual/upgrade/upgrade_notes_for_12.0.x.md +++ b/manual/upgrade/upgrade_notes_for_12.0.x.md @@ -47,27 +47,23 @@ If you have deployed SeaDoc extension in version 11.0, please use the following SeaDoc 1.0 is for working with Seafile 12.0. -### Change the DB_NAME +### Backup SeaDoc files -From version 1.0, SeaDoc is using seahub_db database to store its operation logs and no longer need an extra database sdoc_db. You need to change the `DB_NAME` to `seahub_db` in the config file manually. +Stop SeaDoc and backup files -conf/sdoc_server_config.json +```sh +docker compose down -```json -"database": "seahub_db" +mv /opt/seadoc-data/ /opt/seadoc-data-bak/ ``` ### Update the docker compose file -In version 1.0, we use env file to configure SeaDoc docker image, instead of modifying the docker-compose.yml file directly. +In version 1.0, we use .env file to configure SeaDoc docker image, instead of modifying the docker-compose.yml file directly. -Make sure you have installed Seafile 12.0, then backup old SeaDoc docker-compose.yml file. +Make sure you have installed Seafile 12.0. -```sh -mv docker-compose.yml docker-compose.yml.bak -``` - -Download [.env](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/env) and [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml), then modify .env file. +Download [.env](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/env), [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml) and [caddy.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/caddy.yml), then modify .env file. The following fields merit particular attention: @@ -75,8 +71,10 @@ The following fields merit particular attention: * Seafile MySQL user (SEAFILE_MYSQL_DB_USER) * Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWD) * The volume directory of SeaDoc data (SEADOC_VOLUMES) -* SeaDoc service URL (SDOC_SERVER_HOSTNAME) -* Seafile service URL (SEAHUB_SERVICE_URL) +* The volume directory of Caddy data (SEAFILE_CADDY_VOLUMES) +* SeaDoc service URL (SEADOC_SERVER_HOSTNAME) +* Seafile service URL (SEAFILE_SERVER_HOSTNAME) +* jwt (JWT_PRIVATE_KEY, the same in Seafile .env) Start SeaDoc server with the following command From ba75ee6739b86219db31c4d0c2fe611047b48805 Mon Sep 17 00:00:00 2001 From: skywalker Date: Fri, 6 Sep 2024 10:28:10 +0800 Subject: [PATCH 04/11] update ENABLE_SEADOC --- manual/docker/docker-compose/pro/12.0/docker-compose.yml | 2 ++ manual/docker/docker-compose/pro/12.0/env | 3 +++ manual/docker/docker-compose/pro/12.0/seadoc.yml | 2 -- .../docker-compose/seadoc/1.0/standalone/docker-compose.yml | 4 +--- manual/docker/docker-compose/seadoc/1.0/standalone/env | 3 +-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/manual/docker/docker-compose/pro/12.0/docker-compose.yml b/manual/docker/docker-compose/pro/12.0/docker-compose.yml index 7c5f34c4..7b94851e 100644 --- a/manual/docker/docker-compose/pro/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/pro/12.0/docker-compose.yml @@ -51,6 +51,8 @@ services: - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com} - FORCE_HTTPS_IN_CONF=${SEAFILE_FORCE_HTTPS_IN_CONF:-false} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} + - ENABLE_SEADOC=${ENABLE_SEADOC:-false} + - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:-http://example.example.com/sdoc-server} labels: caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} caddy.reverse_proxy: "{{upstreams 80}}" diff --git a/manual/docker/docker-compose/pro/12.0/env b/manual/docker/docker-compose/pro/12.0/env index c12de047..9b18099c 100644 --- a/manual/docker/docker-compose/pro/12.0/env +++ b/manual/docker/docker-compose/pro/12.0/env @@ -32,3 +32,6 @@ SEAFILE_ADMIN_PASSWORD=asecret SEADOC_IMAGE=seafileltd/sdoc-server:latest SEADOC_VOLUMES=/opt/seadoc-data + +ENABLE_SEADOC=false +SEADOC_SERVER_URL=http://example.seafile.com/sdoc-server diff --git a/manual/docker/docker-compose/pro/12.0/seadoc.yml b/manual/docker/docker-compose/pro/12.0/seadoc.yml index bad3116c..b2db8d68 100644 --- a/manual/docker/docker-compose/pro/12.0/seadoc.yml +++ b/manual/docker/docker-compose/pro/12.0/seadoc.yml @@ -14,8 +14,6 @@ services: - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - SEAHUB_SERVICE_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} - - FILE_SERVER_ROOT=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}/seafhttp - - SEADOC_SERVER_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}/sdoc-server labels: caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} caddy.@ws.0_header: "Connection *Upgrade*" diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml index c933d90b..4c7f28ee 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml @@ -14,10 +14,8 @@ services: - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - SEAHUB_SERVICE_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} - - FILE_SERVER_ROOT=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}/seafhttp - - SEADOC_SERVER_URL=${SEADOC_SERVER_PROTOCOL:-http}://${SEADOC_SERVER_HOSTNAME:?Variable is not set or empty} labels: - caddy: ${SEADOC_SERVER_PROTOCOL:-http}://${SEADOC_SERVER_HOSTNAME:?Variable is not set or empty} + caddy: ${SEADOC_SERVER_URL:?Variable is not set or empty} caddy.@ws.0_header: "Connection *Upgrade*" caddy.@ws.1_header: "Upgrade websocket" caddy.0_reverse_proxy: "@ws {{upstreams 80}}" diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/env b/manual/docker/docker-compose/seadoc/1.0/standalone/env index 356b78b9..1ac26190 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/env +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/env @@ -19,5 +19,4 @@ JWT_PRIVATE_KEY= SEAFILE_SERVER_HOSTNAME=example.seafile.com SEAFILE_SERVER_PROTOCOL=http -SEADOC_SERVER_HOSTNAME==example.seadoc.com -SEADOC_SERVER_PROTOCOL=http +SEADOC_SERVER_URL=http://example.seadoc.com From f0c8739a8b657b762412461942b7e3e6786eb898 Mon Sep 17 00:00:00 2001 From: skywalker Date: Fri, 6 Sep 2024 15:12:46 +0800 Subject: [PATCH 05/11] DB_PASSWORD --- manual/docker/docker-compose/ce/12.0/docker-compose.yml | 2 +- manual/docker/docker-compose/ce/12.0/env | 2 +- manual/docker/docker-compose/pro/12.0/docker-compose.yml | 2 +- manual/docker/docker-compose/pro/12.0/env | 2 +- manual/docker/docker-compose/pro/12.0/seadoc.yml | 2 +- .../docker-compose/seadoc/1.0/standalone/docker-compose.yml | 2 +- manual/docker/docker-compose/seadoc/1.0/standalone/env | 2 +- manual/upgrade/upgrade_docker.md | 2 +- manual/upgrade/upgrade_notes_for_12.0.x.md | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/manual/docker/docker-compose/ce/12.0/docker-compose.yml b/manual/docker/docker-compose/ce/12.0/docker-compose.yml index 1d11217b..3383eadd 100644 --- a/manual/docker/docker-compose/ce/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/ce/12.0/docker-compose.yml @@ -29,7 +29,7 @@ services: environment: - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - DB_ROOT_PASSWD=${SEAFILE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty} - - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} + - DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty} - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com} - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} diff --git a/manual/docker/docker-compose/ce/12.0/env b/manual/docker/docker-compose/ce/12.0/env index 1b45723d..0c6e4dc6 100644 --- a/manual/docker/docker-compose/ce/12.0/env +++ b/manual/docker/docker-compose/ce/12.0/env @@ -14,7 +14,7 @@ SEAFILE_CADDY_VOLUMES=/opt/seafile-caddy SEAFILE_MYSQL_DB_HOST=db SEAFILE_MYSQL_ROOT_PASSWORD=ROOT_PASSWORD SEAFILE_MYSQL_DB_USER=seafile -SEAFILE_MYSQL_DB_PASSWD=PASSWORD +SEAFILE_MYSQL_DB_PASSWORD=PASSWORD TIME_ZONE=Etc/UTC diff --git a/manual/docker/docker-compose/pro/12.0/docker-compose.yml b/manual/docker/docker-compose/pro/12.0/docker-compose.yml index 7b94851e..e737fafb 100644 --- a/manual/docker/docker-compose/pro/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/pro/12.0/docker-compose.yml @@ -44,7 +44,7 @@ services: environment: - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - DB_ROOT_PASSWD=${SEAFILE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty} - - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} + - DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty} - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com} - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} diff --git a/manual/docker/docker-compose/pro/12.0/env b/manual/docker/docker-compose/pro/12.0/env index 9b18099c..b26e8f64 100644 --- a/manual/docker/docker-compose/pro/12.0/env +++ b/manual/docker/docker-compose/pro/12.0/env @@ -16,7 +16,7 @@ SEAFILE_CADDY_VOLUMES=/opt/seafile-caddy SEAFILE_MYSQL_DB_HOST=db SEAFILE_MYSQL_ROOT_PASSWORD=ROOT_PASSWORD SEAFILE_MYSQL_DB_USER=seafile -SEAFILE_MYSQL_DB_PASSWD=PASSWORD +SEAFILE_MYSQL_DB_PASSWORD=PASSWORD TIME_ZONE=Etc/UTC diff --git a/manual/docker/docker-compose/pro/12.0/seadoc.yml b/manual/docker/docker-compose/pro/12.0/seadoc.yml index b2db8d68..54bd8c21 100644 --- a/manual/docker/docker-compose/pro/12.0/seadoc.yml +++ b/manual/docker/docker-compose/pro/12.0/seadoc.yml @@ -9,7 +9,7 @@ services: - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306} - DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile} - - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} + - DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty} - DB_NAME=${SEADOC_MYSQL_DB_NAME:-seahub_db} - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml index 4c7f28ee..c9298c38 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml @@ -9,7 +9,7 @@ services: - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306} - DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile} - - DB_PASSWD=${SEAFILE_MYSQL_DB_PASSWD:?Variable is not set or empty} + - DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty} - DB_NAME=${SEADOC_MYSQL_DB_NAME:-seahub_db} - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/env b/manual/docker/docker-compose/seadoc/1.0/standalone/env index 1ac26190..92c8d083 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/env +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/env @@ -10,7 +10,7 @@ SEAFILE_CADDY_VOLUMES=/opt/seafile-caddy SEAFILE_MYSQL_DB_HOST=192.168.0.2 SEAFILE_MYSQL_DB_USER=seafile -SEAFILE_MYSQL_DB_PASSWD=PASSWORD +SEAFILE_MYSQL_DB_PASSWORD=PASSWORD TIME_ZONE=Etc/UTC diff --git a/manual/upgrade/upgrade_docker.md b/manual/upgrade/upgrade_docker.md index 65a665dc..f25a287e 100644 --- a/manual/upgrade/upgrade_docker.md +++ b/manual/upgrade/upgrade_docker.md @@ -145,7 +145,7 @@ The following fields merit particular attention: * Seafile MySQL host (SEAFILE_MYSQL_DB_HOST) * Seafile MySQL user (SEAFILE_MYSQL_DB_USER) -* Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWD) +* Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWORD) * The volume directory of SeaDoc data (SEADOC_VOLUMES) * The volume directory of Caddy data (SEAFILE_CADDY_VOLUMES) * SeaDoc service URL (SEADOC_SERVER_HOSTNAME) diff --git a/manual/upgrade/upgrade_notes_for_12.0.x.md b/manual/upgrade/upgrade_notes_for_12.0.x.md index 18f0bb48..23a396e4 100644 --- a/manual/upgrade/upgrade_notes_for_12.0.x.md +++ b/manual/upgrade/upgrade_notes_for_12.0.x.md @@ -69,7 +69,7 @@ The following fields merit particular attention: * Seafile MySQL host (SEAFILE_MYSQL_DB_HOST) * Seafile MySQL user (SEAFILE_MYSQL_DB_USER) -* Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWD) +* Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWORD) * The volume directory of SeaDoc data (SEADOC_VOLUMES) * The volume directory of Caddy data (SEAFILE_CADDY_VOLUMES) * SeaDoc service URL (SEADOC_SERVER_HOSTNAME) From e9d0c2220947e53bb0ef4779e474d2d1e408dd18 Mon Sep 17 00:00:00 2001 From: skywalker Date: Fri, 6 Sep 2024 17:54:03 +0800 Subject: [PATCH 06/11] seadoc 1.0-latest --- .../docker/docker-compose/ce/12.0/caddy.yml | 2 +- .../docker-compose/ce/12.0/docker-compose.yml | 2 + manual/docker/docker-compose/ce/12.0/env | 5 +- .../docker/docker-compose/ce/12.0/seadoc.yml | 32 +++++ .../docker/docker-compose/pro/12.0/caddy.yml | 2 +- manual/docker/docker-compose/pro/12.0/env | 2 +- .../docker/docker-compose/pro/12.0/seadoc.yml | 2 +- .../seadoc/1.0/standalone/caddy.yml | 2 +- .../seadoc/1.0/standalone/docker-compose.yml | 2 +- .../docker-compose/seadoc/1.0/standalone/env | 2 +- manual/upgrade/upgrade_docker.md | 117 ++++++++++-------- manual/upgrade/upgrade_notes_for_12.0.x.md | 28 +++-- 12 files changed, 127 insertions(+), 71 deletions(-) create mode 100644 manual/docker/docker-compose/ce/12.0/seadoc.yml diff --git a/manual/docker/docker-compose/ce/12.0/caddy.yml b/manual/docker/docker-compose/ce/12.0/caddy.yml index a2347302..608e5bdb 100644 --- a/manual/docker/docker-compose/ce/12.0/caddy.yml +++ b/manual/docker/docker-compose/ce/12.0/caddy.yml @@ -3,7 +3,7 @@ services: caddy: image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9} restart: unless-stopped - container_name: caddy + container_name: seafile-caddy ports: - 80:80 - 443:443 diff --git a/manual/docker/docker-compose/ce/12.0/docker-compose.yml b/manual/docker/docker-compose/ce/12.0/docker-compose.yml index 3383eadd..00692986 100644 --- a/manual/docker/docker-compose/ce/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/ce/12.0/docker-compose.yml @@ -36,6 +36,8 @@ services: - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com} - FORCE_HTTPS_IN_CONF=${SEAFILE_FORCE_HTTPS_IN_CONF:-false} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} + - ENABLE_SEADOC=${ENABLE_SEADOC:-false} + - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:-http://example.example.com/sdoc-server} labels: caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} caddy.reverse_proxy: "{{upstreams 80}}" diff --git a/manual/docker/docker-compose/ce/12.0/env b/manual/docker/docker-compose/ce/12.0/env index 0c6e4dc6..bbda588e 100644 --- a/manual/docker/docker-compose/ce/12.0/env +++ b/manual/docker/docker-compose/ce/12.0/env @@ -28,5 +28,8 @@ SEAFILE_ADMIN_EMAIL=me@example.com SEAFILE_ADMIN_PASSWORD=asecret -SEADOC_IMAGE=seafileltd/sdoc-server:latest +SEADOC_IMAGE=seafileltd/sdoc-server:1.0-latest SEADOC_VOLUMES=/opt/seadoc-data + +ENABLE_SEADOC=false +SEADOC_SERVER_URL=http://example.seafile.com/sdoc-server diff --git a/manual/docker/docker-compose/ce/12.0/seadoc.yml b/manual/docker/docker-compose/ce/12.0/seadoc.yml new file mode 100644 index 00000000..974aa2c3 --- /dev/null +++ b/manual/docker/docker-compose/ce/12.0/seadoc.yml @@ -0,0 +1,32 @@ +services: + + seadoc: + image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:1.0-latest} + container_name: seadoc + volumes: + - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared + environment: + - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} + - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306} + - DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile} + - DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty} + - DB_NAME=${SEADOC_MYSQL_DB_NAME:-seahub_db} + - TIME_ZONE=${TIME_ZONE:-Etc/UTC} + - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} + - SEAHUB_SERVICE_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} + labels: + caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} + caddy.@ws.0_header: "Connection *Upgrade*" + caddy.@ws.1_header: "Upgrade websocket" + caddy.0_reverse_proxy: "@ws {{upstreams 80}}" + caddy.1_handle_path: "/socket.io/*" + caddy.1_handle_path.0_rewrite: "* /socket.io{uri}" + caddy.1_handle_path.1_reverse_proxy: "{{upstreams 80}}" + caddy.2_handle_path: "/sdoc-server/*" + caddy.2_handle_path.0_rewrite: "* {uri}" + networks: + - seafile-net + +networks: + seafile-net: + name: seafile-net diff --git a/manual/docker/docker-compose/pro/12.0/caddy.yml b/manual/docker/docker-compose/pro/12.0/caddy.yml index a2347302..608e5bdb 100644 --- a/manual/docker/docker-compose/pro/12.0/caddy.yml +++ b/manual/docker/docker-compose/pro/12.0/caddy.yml @@ -3,7 +3,7 @@ services: caddy: image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9} restart: unless-stopped - container_name: caddy + container_name: seafile-caddy ports: - 80:80 - 443:443 diff --git a/manual/docker/docker-compose/pro/12.0/env b/manual/docker/docker-compose/pro/12.0/env index b26e8f64..9027b831 100644 --- a/manual/docker/docker-compose/pro/12.0/env +++ b/manual/docker/docker-compose/pro/12.0/env @@ -30,7 +30,7 @@ SEAFILE_ADMIN_EMAIL=me@example.com SEAFILE_ADMIN_PASSWORD=asecret -SEADOC_IMAGE=seafileltd/sdoc-server:latest +SEADOC_IMAGE=seafileltd/sdoc-server:1.0-latest SEADOC_VOLUMES=/opt/seadoc-data ENABLE_SEADOC=false diff --git a/manual/docker/docker-compose/pro/12.0/seadoc.yml b/manual/docker/docker-compose/pro/12.0/seadoc.yml index 54bd8c21..974aa2c3 100644 --- a/manual/docker/docker-compose/pro/12.0/seadoc.yml +++ b/manual/docker/docker-compose/pro/12.0/seadoc.yml @@ -1,7 +1,7 @@ services: seadoc: - image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:latest} + image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:1.0-latest} container_name: seadoc volumes: - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml index a2347302..608e5bdb 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml @@ -3,7 +3,7 @@ services: caddy: image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9} restart: unless-stopped - container_name: caddy + container_name: seafile-caddy ports: - 80:80 - 443:443 diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml index c9298c38..9e89da1e 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml @@ -1,7 +1,7 @@ services: seadoc: - image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:latest} + image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:1.0-latest} container_name: seadoc volumes: - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/env b/manual/docker/docker-compose/seadoc/1.0/standalone/env index 92c8d083..84793d00 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/env +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/env @@ -2,7 +2,7 @@ COMPOSE_FILE='docker-compose.yml,caddy.yml' COMPOSE_PATH_SEPARATOR=',' -SEADOC_IMAGE=seafileltd/sdoc-server:latest +SEADOC_IMAGE=seafileltd/sdoc-server:1.0-latest SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9 SEADOC_VOLUMES=/opt/seadoc-data diff --git a/manual/upgrade/upgrade_docker.md b/manual/upgrade/upgrade_docker.md index f25a287e..9492d76c 100644 --- a/manual/upgrade/upgrade_docker.md +++ b/manual/upgrade/upgrade_docker.md @@ -99,86 +99,103 @@ First, backup the original docker-compose.yml file: mv docker-compose.yml docker-compose.yml.bak ``` -Then download [.env](https://manual.seafile.com/docker/docker-compose/ce/12.0/env) , [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/ce/12.0/docker-compose.yml) and [caddy.yml](https://manual.seafile.com/docker/docker-compose/ce/12.0/caddy.yml), and modify .env file according to the old configuration in `docker-compose.yml.bak` +Then download [.env](https://manual.seafile.com/docker/docker-compose/ce/12.0/env), [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/ce/12.0/docker-compose.yml) and [caddy.yml](https://manual.seafile.com/docker/docker-compose/ce/12.0/caddy.yml), and modify .env file according to the old configuration in `docker-compose.yml.bak` + +```sh +wegt -O .env https://manual.seafile.com/docker/docker-compose/ce/12.0/env +wget https://manual.seafile.com/docker/docker-compose/ce/12.0/docker-compose.yml +wget https://manual.seafile.com/docker/docker-compose/ce/12.0/caddy.yml +``` The following fields merit particular attention: -* The password of MySQL root (SEAFILE_MYSQL_ROOT_PASSWORD) -* The volume directory of MySQL data (SEAFILE_MYSQL_VOLUMES) -* The volume directory of Seafile data (SEAFILE_VOLUMES) -* The volume directory of MySQL data (SEAFILE_MYSQL_VOLUMES) +* The volume directory of Seafile data (SEAFILE_VOLUMES, same as the seafile volumes in the old docker-compose.yml) +* The volume directory of MySQL data (SEAFILE_MYSQL_VOLUMES, same as the mysql volumes in the old docker-compose.yml) * The volume directory of Caddy data (SEAFILE_CADDY_VOLUMES) -* jwt (JWT_PRIVATE_KEY) +* The user of MySQL (SEAFILE_MYSQL_DB_USER, `database` - `user` can be found in conf/seafile.conf) +* The password of MySQL (SEAFILE_MYSQL_DB_PASSWORD, `database` - `password` can be found in seafile.conf) +* jwt (JWT_PRIVATE_KEY, A random string with a length of no less than 32 characters) +* SEAFILE_SERVER_HOSTNAME (SEAFILE_SERVER_HOSTNAME, same as the SEAFILE_SERVER_HOSTNAME in the old docker-compose.yml) +* SEAFILE_SERVER_PROTOCOL (SEAFILE_SERVER_PROTOCOL, use http or https) + +If you have used SSL before, you will also need modify the seafile.nginx.conf. Change server listen 443 to 80. + +Backup the original seafile.nginx.conf file: + +```sh +cp seafile.nginx.conf seafile.nginx.conf.bak +``` + +Remove the `server listen 80` section: + +```config +#server { +# listen 80; +# server_name _ default_server; + + # allow certbot to connect to challenge location via HTTP Port 80 + # otherwise renewal request will fail +# location /.well-known/acme-challenge/ { +# alias /var/www/challenges/; +# try_files $uri =404; +# } + +# location / { +# rewrite ^ https://example.seafile.com$request_uri? permanent; +# } +#} +``` + +Change `server listen 443` to `80`: + +```config +server { +#listen 443 ssl; +listen 80; + +# ssl_certificate /shared/ssl/pkg.seafile.top.crt; +# ssl_certificate_key /shared/ssl/pkg.seafile.top.key; + + # ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; + + ... +``` Start with docker compose up. - ### Upgrade SeaDoc from 0.8 to 1.0 for Seafile v12.0 If you have deployed SeaDoc extension in version 11.0, please use the following steps to upgrade it to version 1.0. -SeaDoc 1.0 is for working with Seafile 12.0. - -### Backup SeaDoc files - -Stop SeaDoc and backup files - -```sh -docker compose down - -mv /opt/seadoc-data/ /opt/seadoc-data-bak/ -``` - -#### Update the docker compose file +SeaDoc 1.0 is for working with Seafile 12.0. SeaDoc and Seafile are deployed in the same directory. In version 1.0, we use .env file to configure SeaDoc docker image, instead of modifying the docker-compose.yml file directly. -Use one of the following method to upgrade the docker compose file depends on your current deployment method. - -##### For deployment where SeaDoc is on a separate host - -Make sure you have installed Seafile 12.0. - -Download [.env](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/env), [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml) and [caddy.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/caddy.yml), then modify .env file. - -The following fields merit particular attention: - -* Seafile MySQL host (SEAFILE_MYSQL_DB_HOST) -* Seafile MySQL user (SEAFILE_MYSQL_DB_USER) -* Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWORD) -* The volume directory of SeaDoc data (SEADOC_VOLUMES) -* The volume directory of Caddy data (SEAFILE_CADDY_VOLUMES) -* SeaDoc service URL (SEADOC_SERVER_HOSTNAME) -* Seafile service URL (SEAFILE_SERVER_HOSTNAME) -* jwt (JWT_PRIVATE_KEY, the same in Seafile .env) - -Start SeaDoc server with the following command +Download [seadoc.yml](https://manual.seafile.com/docker/docker-compose/ce/12.0/seadoc.yml) to the Seafile `docker-compose.yml` directory, then modify Seafile .env file. ```sh -docker compose up -d +wegt https://manual.seafile.com/docker/docker-compose/ce/12.0/seadoc.yml ``` -##### For deployment where SeaDoc and Seafile docker are on the same host - -Make sure you have installed Seafile Docker 12.0. - -Download [seadoc.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/seadoc.yml) to the Seafile path, then modify Seafile .env file. - ```env COMPOSE_FILE='docker-compose.yml,caddy.yml,seadoc.yml' - -SEADOC_IMAGE=seafileltd/sdoc-server:1.0-latest SEADOC_VOLUMES=/opt/seadoc-data +ENABLE_SEADOC=true +SEADOC_SERVER_URL=http://example.seafile.com/sdoc-server ``` The following fields merit particular attention: -* add `seadoc.yml` to the `COMPOSE_FILE` field. +* Add `seadoc.yml` to the `COMPOSE_FILE` field. * The volume directory of SeaDoc data (SEADOC_VOLUMES) +* Enable SeaDoc (ENABLE_SEADOC) +* SeaDoc service url (SEADOC_SERVER_URL, hostname + `/sdoc-server`) Start Seafile server and SeaDoc server with the following command ```sh +docker compose down + docker compose up -d ``` diff --git a/manual/upgrade/upgrade_notes_for_12.0.x.md b/manual/upgrade/upgrade_notes_for_12.0.x.md index 23a396e4..008b18ea 100644 --- a/manual/upgrade/upgrade_notes_for_12.0.x.md +++ b/manual/upgrade/upgrade_notes_for_12.0.x.md @@ -47,34 +47,36 @@ If you have deployed SeaDoc extension in version 11.0, please use the following SeaDoc 1.0 is for working with Seafile 12.0. -### Backup SeaDoc files +### Change the DB_NAME -Stop SeaDoc and backup files +From version 1.0, SeaDoc is using seahub_db database to store its operation logs and no longer need an extra database sdoc_db. You need to change the `DB_NAME` to `seahub_db` in the config file manually. -```sh -docker compose down +conf/sdoc_server_config.json -mv /opt/seadoc-data/ /opt/seadoc-data-bak/ +```json +"database": "seahub_db" ``` ### Update the docker compose file -In version 1.0, we use .env file to configure SeaDoc docker image, instead of modifying the docker-compose.yml file directly. +In version 1.0, we use env file to configure SeaDoc docker image, instead of modifying the docker-compose.yml file directly. -Make sure you have installed Seafile 12.0. +Make sure you have installed Seafile 12.0, then backup old SeaDoc docker-compose.yml file. -Download [.env](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/env), [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml) and [caddy.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/caddy.yml), then modify .env file. +```sh +mv docker-compose.yml docker-compose.yml.bak +``` + +Download [.env](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/env) and [docker-compose.yml](https://manual.seafile.com/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml), then modify .env file. The following fields merit particular attention: * Seafile MySQL host (SEAFILE_MYSQL_DB_HOST) * Seafile MySQL user (SEAFILE_MYSQL_DB_USER) -* Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWORD) +* Seafile MySQL password (SEAFILE_MYSQL_DB_PASSWD) * The volume directory of SeaDoc data (SEADOC_VOLUMES) -* The volume directory of Caddy data (SEAFILE_CADDY_VOLUMES) -* SeaDoc service URL (SEADOC_SERVER_HOSTNAME) -* Seafile service URL (SEAFILE_SERVER_HOSTNAME) -* jwt (JWT_PRIVATE_KEY, the same in Seafile .env) +* SeaDoc service URL (SDOC_SERVER_HOSTNAME) +* Seafile service URL (SEAHUB_SERVICE_URL) Start SeaDoc server with the following command From c1c6048595ca43acd13e24502f12c05277865671 Mon Sep 17 00:00:00 2001 From: skywalker Date: Sat, 7 Sep 2024 11:18:34 +0800 Subject: [PATCH 07/11] update ports --- manual/docker/docker-compose/ce/12.0/docker-compose.yml | 5 ++--- manual/docker/docker-compose/ce/12.0/seadoc.yml | 2 ++ manual/docker/docker-compose/pro/12.0/docker-compose.yml | 2 ++ manual/docker/docker-compose/pro/12.0/seadoc.yml | 2 ++ .../docker-compose/seadoc/1.0/standalone/docker-compose.yml | 2 ++ 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/manual/docker/docker-compose/ce/12.0/docker-compose.yml b/manual/docker/docker-compose/ce/12.0/docker-compose.yml index 00692986..4c5470f8 100644 --- a/manual/docker/docker-compose/ce/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/ce/12.0/docker-compose.yml @@ -21,9 +21,8 @@ services: seafile: image: ${SEAFILE_IMAGE:-seafileltd/seafile-mc:12.0-latest} container_name: seafile - ports: - - "80:80" - - ${SEAFILE_SSL_PORT:-}:443 + # ports: + # - "80:80" volumes: - ${SEAFILE_VOLUMES:-/opt/seafile-data}:/shared environment: diff --git a/manual/docker/docker-compose/ce/12.0/seadoc.yml b/manual/docker/docker-compose/ce/12.0/seadoc.yml index 974aa2c3..f650cdde 100644 --- a/manual/docker/docker-compose/ce/12.0/seadoc.yml +++ b/manual/docker/docker-compose/ce/12.0/seadoc.yml @@ -5,6 +5,8 @@ services: container_name: seadoc volumes: - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared + # ports: + # - "80:80" environment: - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306} diff --git a/manual/docker/docker-compose/pro/12.0/docker-compose.yml b/manual/docker/docker-compose/pro/12.0/docker-compose.yml index e737fafb..412efae6 100644 --- a/manual/docker/docker-compose/pro/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/pro/12.0/docker-compose.yml @@ -39,6 +39,8 @@ services: seafile: image: ${SEAFILE_IMAGE:-docker.seadrive.org/seafileltd/seafile-pro-mc:12.0-latest} container_name: seafile + # ports: + # - "80:80" volumes: - ${SEAFILE_VOLUMES:-/opt/seafile-data}:/shared environment: diff --git a/manual/docker/docker-compose/pro/12.0/seadoc.yml b/manual/docker/docker-compose/pro/12.0/seadoc.yml index 974aa2c3..f650cdde 100644 --- a/manual/docker/docker-compose/pro/12.0/seadoc.yml +++ b/manual/docker/docker-compose/pro/12.0/seadoc.yml @@ -5,6 +5,8 @@ services: container_name: seadoc volumes: - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared + # ports: + # - "80:80" environment: - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306} diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml index 9e89da1e..dbc7a0cf 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/docker-compose.yml @@ -5,6 +5,8 @@ services: container_name: seadoc volumes: - ${SEADOC_VOLUMES:-/opt/seadoc-data/}:/shared + # ports: + # - "80:80" environment: - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db} - DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306} From a7ec904518f131678ffba0de122232921eda5b34 Mon Sep 17 00:00:00 2001 From: skywalker Date: Sat, 7 Sep 2024 18:22:56 +0800 Subject: [PATCH 08/11] update standalone --- .../seadoc/1.0/standalone/caddy.yml | 26 ------------------- .../docker-compose/seadoc/1.0/standalone/env | 2 +- 2 files changed, 1 insertion(+), 27 deletions(-) delete mode 100644 manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml b/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml deleted file mode 100644 index 608e5bdb..00000000 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/caddy.yml +++ /dev/null @@ -1,26 +0,0 @@ -services: - - caddy: - image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9} - restart: unless-stopped - container_name: seafile-caddy - ports: - - 80:80 - - 443:443 - environment: - - CADDY_INGRESS_NETWORKS=seafile-net - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - ${SEAFILE_CADDY_VOLUMES:-/opt/seafile-caddy}:/data/caddy - networks: - - seafile-net - healthcheck: - test: ["CMD-SHELL", "curl --fail http://localhost:2019/metrics || exit 1"] - start_period: 20s - interval: 20s - timeout: 5s - retries: 3 - -networks: - seafile-net: - name: seafile-net diff --git a/manual/docker/docker-compose/seadoc/1.0/standalone/env b/manual/docker/docker-compose/seadoc/1.0/standalone/env index 84793d00..dbc51c7b 100644 --- a/manual/docker/docker-compose/seadoc/1.0/standalone/env +++ b/manual/docker/docker-compose/seadoc/1.0/standalone/env @@ -1,4 +1,4 @@ -COMPOSE_FILE='docker-compose.yml,caddy.yml' +COMPOSE_FILE='docker-compose.yml' COMPOSE_PATH_SEPARATOR=',' From 905b49232b7c9c45059738d9aceaab79a7725da0 Mon Sep 17 00:00:00 2001 From: skywalker Date: Sat, 7 Sep 2024 18:29:36 +0800 Subject: [PATCH 09/11] rm SEAFILE_FORCE_HTTPS_IN_CONF --- manual/docker/docker-compose/ce/12.0/docker-compose.yml | 2 +- manual/docker/docker-compose/ce/12.0/env | 1 - manual/docker/docker-compose/pro/12.0/docker-compose.yml | 2 +- manual/docker/docker-compose/pro/12.0/env | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/manual/docker/docker-compose/ce/12.0/docker-compose.yml b/manual/docker/docker-compose/ce/12.0/docker-compose.yml index 4c5470f8..667982f7 100644 --- a/manual/docker/docker-compose/ce/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/ce/12.0/docker-compose.yml @@ -33,7 +33,7 @@ services: - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com} - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com} - - FORCE_HTTPS_IN_CONF=${SEAFILE_FORCE_HTTPS_IN_CONF:-false} + - SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - ENABLE_SEADOC=${ENABLE_SEADOC:-false} - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:-http://example.example.com/sdoc-server} diff --git a/manual/docker/docker-compose/ce/12.0/env b/manual/docker/docker-compose/ce/12.0/env index bbda588e..42b5915e 100644 --- a/manual/docker/docker-compose/ce/12.0/env +++ b/manual/docker/docker-compose/ce/12.0/env @@ -22,7 +22,6 @@ JWT_PRIVATE_KEY= SEAFILE_SERVER_HOSTNAME=example.seafile.com SEAFILE_SERVER_PROTOCOL=http -SEAFILE_FORCE_HTTPS_IN_CONF=false SEAFILE_ADMIN_EMAIL=me@example.com SEAFILE_ADMIN_PASSWORD=asecret diff --git a/manual/docker/docker-compose/pro/12.0/docker-compose.yml b/manual/docker/docker-compose/pro/12.0/docker-compose.yml index 412efae6..55907180 100644 --- a/manual/docker/docker-compose/pro/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/pro/12.0/docker-compose.yml @@ -51,7 +51,7 @@ services: - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com} - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com} - - FORCE_HTTPS_IN_CONF=${SEAFILE_FORCE_HTTPS_IN_CONF:-false} + - SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - ENABLE_SEADOC=${ENABLE_SEADOC:-false} - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:-http://example.example.com/sdoc-server} diff --git a/manual/docker/docker-compose/pro/12.0/env b/manual/docker/docker-compose/pro/12.0/env index 9027b831..2b7f0d10 100644 --- a/manual/docker/docker-compose/pro/12.0/env +++ b/manual/docker/docker-compose/pro/12.0/env @@ -24,7 +24,6 @@ JWT_PRIVATE_KEY= SEAFILE_SERVER_HOSTNAME=example.seafile.com SEAFILE_SERVER_PROTOCOL=http -SEAFILE_FORCE_HTTPS_IN_CONF=false SEAFILE_ADMIN_EMAIL=me@example.com SEAFILE_ADMIN_PASSWORD=asecret From f92d9946affde3573f94da73da19e8be28f07307 Mon Sep 17 00:00:00 2001 From: skywalker Date: Mon, 9 Sep 2024 11:32:50 +0800 Subject: [PATCH 10/11] add SITE_ROOT --- manual/docker/docker-compose/ce/12.0/docker-compose.yml | 3 ++- manual/docker/docker-compose/pro/12.0/docker-compose.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/manual/docker/docker-compose/ce/12.0/docker-compose.yml b/manual/docker/docker-compose/ce/12.0/docker-compose.yml index 667982f7..eb3b60b0 100644 --- a/manual/docker/docker-compose/ce/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/ce/12.0/docker-compose.yml @@ -32,8 +32,9 @@ services: - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com} - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} - - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com} + - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} - SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http} + - SITE_ROOT=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - ENABLE_SEADOC=${ENABLE_SEADOC:-false} - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:-http://example.example.com/sdoc-server} diff --git a/manual/docker/docker-compose/pro/12.0/docker-compose.yml b/manual/docker/docker-compose/pro/12.0/docker-compose.yml index 55907180..e23dbc7b 100644 --- a/manual/docker/docker-compose/pro/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/pro/12.0/docker-compose.yml @@ -50,8 +50,9 @@ services: - TIME_ZONE=${TIME_ZONE:-Etc/UTC} - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com} - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} - - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com} + - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} - SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http} + - SITE_ROOT=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - ENABLE_SEADOC=${ENABLE_SEADOC:-false} - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:-http://example.example.com/sdoc-server} From 898a35e4e586c08e3f8270814dcb1422a8f60187 Mon Sep 17 00:00:00 2001 From: skywalker Date: Mon, 9 Sep 2024 13:22:12 +0800 Subject: [PATCH 11/11] update SITE_ROOT --- manual/docker/docker-compose/ce/12.0/docker-compose.yml | 2 +- manual/docker/docker-compose/pro/12.0/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manual/docker/docker-compose/ce/12.0/docker-compose.yml b/manual/docker/docker-compose/ce/12.0/docker-compose.yml index eb3b60b0..fcb7eec1 100644 --- a/manual/docker/docker-compose/ce/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/ce/12.0/docker-compose.yml @@ -34,7 +34,7 @@ services: - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} - SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http} - - SITE_ROOT=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} + - SITE_ROOT=${SITE_ROOT:-/} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - ENABLE_SEADOC=${ENABLE_SEADOC:-false} - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:-http://example.example.com/sdoc-server} diff --git a/manual/docker/docker-compose/pro/12.0/docker-compose.yml b/manual/docker/docker-compose/pro/12.0/docker-compose.yml index e23dbc7b..4d9f5a28 100644 --- a/manual/docker/docker-compose/pro/12.0/docker-compose.yml +++ b/manual/docker/docker-compose/pro/12.0/docker-compose.yml @@ -52,7 +52,7 @@ services: - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret} - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} - SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http} - - SITE_ROOT=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} + - SITE_ROOT=${SITE_ROOT:-/} - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} - ENABLE_SEADOC=${ENABLE_SEADOC:-false} - SEADOC_SERVER_URL=${SEADOC_SERVER_URL:-http://example.example.com/sdoc-server}