diff --git a/seafile/backup.sh b/seafile/backup.sh index e0ebf72..2b7fd9c 100755 --- a/seafile/backup.sh +++ b/seafile/backup.sh @@ -8,7 +8,7 @@ _check_required_env_vars "CONTAINER_NAME" "DATA_PATH" # Export variables for docker compose export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD -export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ +export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL JWT_PRIVATE_KEY TZ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" diff --git a/seafile/config/service.env b/seafile/config/service.env index 53c5f33..7b52816 100644 --- a/seafile/config/service.env +++ b/seafile/config/service.env @@ -20,6 +20,10 @@ HTTP_PORT=8080 SEAFILE_ADMIN_EMAIL="admin@example.com" SEAFILE_ADMIN_PASSWORD="changeme" +# JWT private key (required for Seafile 12.x) +# Must be a random string of at least 32 characters - generate with: openssl rand -hex 32 +JWT_PRIVATE_KEY="your-random-secret-key-at-least-32-chars-long" + # Database settings (change the password!) MYSQL_ROOT_PASSWORD="db_root_changeme" DB_PASSWORD="db_seafile_changeme" diff --git a/seafile/destroy.sh b/seafile/destroy.sh index 4fe5ef7..5ba8db3 100755 --- a/seafile/destroy.sh +++ b/seafile/destroy.sh @@ -6,7 +6,7 @@ _check_required_env_vars "CONTAINER_NAME" "DATA_PATH" # Export variables for docker compose export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD -export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ +export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL JWT_PRIVATE_KEY TZ echo "WARNING: This will PERMANENTLY DELETE all data for ${CONTAINER_NAME}" echo "This includes all files, database, and configuration!" diff --git a/seafile/docker-compose.yml b/seafile/docker-compose.yml index b343e0c..d5d31e4 100644 --- a/seafile/docker-compose.yml +++ b/seafile/docker-compose.yml @@ -44,6 +44,7 @@ services: SEAFILE_ADMIN_PASSWORD: ${SEAFILE_ADMIN_PASSWORD} SEAFILE_SERVER_HOSTNAME: ${SEAFILE_SERVER_HOSTNAME} SEAFILE_SERVER_LETSENCRYPT: "false" + JWT_PRIVATE_KEY: ${JWT_PRIVATE_KEY} TIME_ZONE: ${TZ} networks: - seafile-net diff --git a/seafile/install.sh b/seafile/install.sh index d1d9a20..372faf5 100755 --- a/seafile/install.sh +++ b/seafile/install.sh @@ -1,7 +1,7 @@ #!/bin/bash source "${AGENT_PATH}/common.sh" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -_check_required_env_vars "CONTAINER_NAME" "DATA_PATH" "MYSQL_ROOT_PASSWORD" "SEAFILE_ADMIN_EMAIL" "SEAFILE_ADMIN_PASSWORD" "SEAFILE_SERVER_HOSTNAME" +_check_required_env_vars "CONTAINER_NAME" "DATA_PATH" "MYSQL_ROOT_PASSWORD" "SEAFILE_ADMIN_EMAIL" "SEAFILE_ADMIN_PASSWORD" "SEAFILE_SERVER_HOSTNAME" "JWT_PRIVATE_KEY" _check_docker_installed || _die "Docker test failed, aborting installation..." @@ -11,18 +11,15 @@ mkdir -p "${DATA_PATH}/mariadb" "${DATA_PATH}/seafile-data" # Export variables for docker compose export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD -export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ +export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL JWT_PRIVATE_KEY TZ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" -# Pull images -docker compose -p "${CONTAINER_NAME}" pull || _die "Failed to pull images" - # Stop existing containers docker compose -p "${CONTAINER_NAME}" down 2>/dev/null || true -# Start containers -docker compose -p "${CONTAINER_NAME}" up -d || _die "Failed to start containers" +# Start containers (pull latest images if available) +docker compose -p "${CONTAINER_NAME}" up -d --pull always || _die "Failed to start containers" echo "Installation of ${CONTAINER_NAME} complete" echo "Access Seafile at ${SEAFILE_SERVER_PROTOCOL}://${SEAFILE_SERVER_HOSTNAME}:${HTTP_PORT}" diff --git a/seafile/logs.sh b/seafile/logs.sh index d132c80..786015e 100755 --- a/seafile/logs.sh +++ b/seafile/logs.sh @@ -6,7 +6,7 @@ _check_required_env_vars "CONTAINER_NAME" # Export variables for docker compose export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD -export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ +export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL JWT_PRIVATE_KEY TZ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" diff --git a/seafile/restore.sh b/seafile/restore.sh index bf00661..89981aa 100755 --- a/seafile/restore.sh +++ b/seafile/restore.sh @@ -8,7 +8,7 @@ _check_required_env_vars "CONTAINER_NAME" "DATA_PATH" # Export variables for docker compose export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD -export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ +export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL JWT_PRIVATE_KEY TZ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" diff --git a/seafile/start.sh b/seafile/start.sh index 9ca2612..fdb4190 100755 --- a/seafile/start.sh +++ b/seafile/start.sh @@ -6,7 +6,7 @@ _check_required_env_vars "CONTAINER_NAME" "DATA_PATH" # Export variables for docker compose export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD -export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ +export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL JWT_PRIVATE_KEY TZ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" docker compose -p "${CONTAINER_NAME}" up -d || _die "Failed to start containers" diff --git a/seafile/stop.sh b/seafile/stop.sh index f15e1eb..fdabce2 100755 --- a/seafile/stop.sh +++ b/seafile/stop.sh @@ -6,7 +6,7 @@ _check_required_env_vars "CONTAINER_NAME" # Export variables for docker compose export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD -export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ +export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL JWT_PRIVATE_KEY TZ cd "$SCRIPT_DIR" || _die "Failed to change to script directory" docker compose -p "${CONTAINER_NAME}" stop || _die "Failed to stop containers" diff --git a/seafile/uninstall.sh b/seafile/uninstall.sh index 733822a..19db0f1 100755 --- a/seafile/uninstall.sh +++ b/seafile/uninstall.sh @@ -6,7 +6,7 @@ _check_required_env_vars "CONTAINER_NAME" "DATA_PATH" # Export variables for docker compose export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD -export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ +export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL JWT_PRIVATE_KEY TZ cd "$SCRIPT_DIR" || _die "Failed to change to script directory"