mirror of
https://github.com/rclone/rclone.git
synced 2025-12-11 22:14:05 +01:00
seafile: New backend for seafile server
This commit is contained in:
60
fstest/testserver/init.d/TestSeafile
Executable file
60
fstest/testserver/init.d/TestSeafile
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# environment variables passed on docker-compose
|
||||
export NAME=seafile7
|
||||
export MYSQL_ROOT_PASSWORD=pixenij4zacoguq0kopamid6
|
||||
export SEAFILE_ADMIN_EMAIL=seafile@rclone.org
|
||||
export SEAFILE_ADMIN_PASSWORD=pixenij4zacoguq0kopamid6
|
||||
export SEAFILE_IP=127.0.0.1
|
||||
export SEAFILE_PORT=8087
|
||||
export SEAFILE_TEST_DATA=${SEAFILE_TEST_DATA:-/tmp/seafile-test-data}
|
||||
export SEAFILE_VERSION=latest
|
||||
|
||||
# make sure the data directory exists
|
||||
mkdir -p ${SEAFILE_TEST_DATA}/${NAME}
|
||||
|
||||
# docker-compose project directory
|
||||
COMPOSE_DIR=$(dirname "$0")/seafile
|
||||
|
||||
start() {
|
||||
docker-compose --project-directory ${COMPOSE_DIR} --project-name ${NAME} --file ${COMPOSE_DIR}/docker-compose.yml up -d
|
||||
|
||||
# it takes some time for the database to be created
|
||||
sleep 60
|
||||
|
||||
# authentication token answer should be like: {"token":"dbf58423f1632b5b679a13b0929f1d0751d9250c"}
|
||||
TOKEN=`curl --silent \
|
||||
--data-urlencode username=${SEAFILE_ADMIN_EMAIL} -d password=${SEAFILE_ADMIN_PASSWORD} \
|
||||
http://${SEAFILE_IP}:${SEAFILE_PORT}/api2/auth-token/ \
|
||||
| sed 's/^{"token":"\(.*\)"}$/\1/'`
|
||||
|
||||
# create default library
|
||||
curl -X POST -H "Authorization: Token ${TOKEN}" "http://${SEAFILE_IP}:${SEAFILE_PORT}/api2/default-repo/"
|
||||
|
||||
echo _connect=${SEAFILE_IP}:${SEAFILE_PORT}
|
||||
echo type=seafile
|
||||
echo url=http://${SEAFILE_IP}:${SEAFILE_PORT}/
|
||||
echo user=${SEAFILE_ADMIN_EMAIL}
|
||||
echo pass=$(rclone obscure ${SEAFILE_ADMIN_PASSWORD})
|
||||
echo library=My Library
|
||||
}
|
||||
|
||||
stop() {
|
||||
if status ; then
|
||||
docker-compose --project-directory ${COMPOSE_DIR} --project-name ${NAME} --file ${COMPOSE_DIR}/docker-compose.yml down
|
||||
fi
|
||||
}
|
||||
|
||||
status() {
|
||||
if docker ps --format "{{.Names}}" | grep ^${NAME}_seafile_1$ >/dev/null ; then
|
||||
echo "$NAME running"
|
||||
else
|
||||
echo "$NAME not running"
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
. $(dirname "$0")/run.bash
|
||||
65
fstest/testserver/init.d/TestSeafileEncrypted
Executable file
65
fstest/testserver/init.d/TestSeafileEncrypted
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# local variables
|
||||
TEST_LIBRARY=Encrypted
|
||||
TEST_LIBRARY_PASSWORD=SecretKey
|
||||
|
||||
# environment variables passed on docker-compose
|
||||
export NAME=seafile7encrypted
|
||||
export MYSQL_ROOT_PASSWORD=pixenij4zacoguq0kopamid6
|
||||
export SEAFILE_ADMIN_EMAIL=seafile@rclone.org
|
||||
export SEAFILE_ADMIN_PASSWORD=pixenij4zacoguq0kopamid6
|
||||
export SEAFILE_IP=127.0.0.1
|
||||
export SEAFILE_PORT=8088
|
||||
export SEAFILE_TEST_DATA=${SEAFILE_TEST_DATA:-/tmp/seafile-test-data}
|
||||
export SEAFILE_VERSION=latest
|
||||
|
||||
# make sure the data directory exists
|
||||
mkdir -p ${SEAFILE_TEST_DATA}/${NAME}
|
||||
|
||||
# docker-compose project directory
|
||||
COMPOSE_DIR=$(dirname "$0")/seafile
|
||||
|
||||
start() {
|
||||
docker-compose --project-directory ${COMPOSE_DIR} --project-name ${NAME} --file ${COMPOSE_DIR}/docker-compose.yml up -d
|
||||
|
||||
# it takes some time for the database to be created
|
||||
sleep 60
|
||||
|
||||
# authentication token answer should be like: {"token":"dbf58423f1632b5b679a13b0929f1d0751d9250c"}
|
||||
TOKEN=`curl --silent \
|
||||
--data-urlencode username=${SEAFILE_ADMIN_EMAIL} -d password=${SEAFILE_ADMIN_PASSWORD} \
|
||||
http://${SEAFILE_IP}:${SEAFILE_PORT}/api2/auth-token/ \
|
||||
| sed 's/^{"token":"\(.*\)"}$/\1/'`
|
||||
|
||||
# create encrypted library
|
||||
curl -X POST -d "name=${TEST_LIBRARY}&passwd=${TEST_LIBRARY_PASSWORD}" -H "Authorization: Token ${TOKEN}" "http://${SEAFILE_IP}:${SEAFILE_PORT}/api2/repos/"
|
||||
|
||||
echo _connect=${SEAFILE_IP}:${SEAFILE_PORT}
|
||||
echo type=seafile
|
||||
echo url=http://${SEAFILE_IP}:${SEAFILE_PORT}/
|
||||
echo user=${SEAFILE_ADMIN_EMAIL}
|
||||
echo pass=$(rclone obscure ${SEAFILE_ADMIN_PASSWORD})
|
||||
echo library=${TEST_LIBRARY}
|
||||
echo library_key=$(rclone obscure ${TEST_LIBRARY_PASSWORD})
|
||||
}
|
||||
|
||||
stop() {
|
||||
if status ; then
|
||||
docker-compose --project-directory ${COMPOSE_DIR} --project-name ${NAME} --file ${COMPOSE_DIR}/docker-compose.yml down
|
||||
fi
|
||||
}
|
||||
|
||||
status() {
|
||||
if docker ps --format "{{.Names}}" | grep ^${NAME}_seafile_1$ >/dev/null ; then
|
||||
echo "$NAME running"
|
||||
else
|
||||
echo "$NAME not running"
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
. $(dirname "$0")/run.bash
|
||||
48
fstest/testserver/init.d/TestSeafileV6
Executable file
48
fstest/testserver/init.d/TestSeafileV6
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# local variables
|
||||
NAME=seafile6
|
||||
SEAFILE_IP=127.0.0.1
|
||||
SEAFILE_PORT=8086
|
||||
SEAFILE_ADMIN_EMAIL=seafile@rclone.org
|
||||
SEAFILE_ADMIN_PASSWORD=qebiwob7wafixif8sojiboj4
|
||||
SEAFILE_TEST_DATA=${SEAFILE_TEST_DATA:-/tmp/seafile-test-data}
|
||||
SEAFILE_VERSION=latest
|
||||
|
||||
. $(dirname "$0")/docker.bash
|
||||
|
||||
start() {
|
||||
# make sure the data directory exists
|
||||
mkdir -p ${SEAFILE_TEST_DATA}/${NAME}
|
||||
|
||||
docker run --rm -d --name $NAME \
|
||||
-e SEAFILE_SERVER_HOSTNAME=${SEAFILE_IP}:${SEAFILE_PORT} \
|
||||
-e SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL} \
|
||||
-e SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD} \
|
||||
-v ${SEAFILE_TEST_DATA}/${NAME}:/shared \
|
||||
-p ${SEAFILE_IP}:${SEAFILE_PORT}:80 \
|
||||
seafileltd/seafile:${SEAFILE_VERSION}
|
||||
|
||||
# it takes some time for the database to be created
|
||||
sleep 60
|
||||
|
||||
# authentication token answer should be like: {"token":"dbf58423f1632b5b679a13b0929f1d0751d9250c"}
|
||||
TOKEN=`curl --silent \
|
||||
--data-urlencode username=${SEAFILE_ADMIN_EMAIL} -d password=${SEAFILE_ADMIN_PASSWORD} \
|
||||
http://${SEAFILE_IP}:${SEAFILE_PORT}/api2/auth-token/ \
|
||||
| sed 's/^{"token":"\(.*\)"}$/\1/'`
|
||||
|
||||
# create default library
|
||||
curl -X POST -H "Authorization: Token ${TOKEN}" "http://${SEAFILE_IP}:${SEAFILE_PORT}/api2/default-repo/"
|
||||
|
||||
echo _connect=${SEAFILE_IP}:${SEAFILE_PORT}
|
||||
echo type=seafile
|
||||
echo url=http://${SEAFILE_IP}:${SEAFILE_PORT}/
|
||||
echo user=${SEAFILE_ADMIN_EMAIL}
|
||||
echo pass=$(rclone obscure ${SEAFILE_ADMIN_PASSWORD})
|
||||
echo library=My Library
|
||||
}
|
||||
|
||||
. $(dirname "$0")/run.bash
|
||||
31
fstest/testserver/init.d/seafile/docker-compose.yml
Normal file
31
fstest/testserver/init.d/seafile/docker-compose.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
version: '2.0'
|
||||
services:
|
||||
db:
|
||||
image: mariadb:10.1
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_LOG_CONSOLE=true
|
||||
volumes:
|
||||
- ${SEAFILE_TEST_DATA}/${NAME}/seafile-mysql/db:/var/lib/mysql
|
||||
|
||||
memcached:
|
||||
image: memcached:1.5.6
|
||||
entrypoint: memcached -m 256
|
||||
|
||||
seafile:
|
||||
image: seafileltd/seafile-mc:${SEAFILE_VERSION}
|
||||
ports:
|
||||
- "${SEAFILE_IP}:${SEAFILE_PORT}:80"
|
||||
volumes:
|
||||
- ${SEAFILE_TEST_DATA}/${NAME}/seafile-data:/shared
|
||||
environment:
|
||||
- DB_HOST=db
|
||||
- DB_ROOT_PASSWD=${MYSQL_ROOT_PASSWORD}
|
||||
- TIME_ZONE=Etc/UTC
|
||||
- SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL}
|
||||
- SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD}
|
||||
- SEAFILE_SERVER_LETSENCRYPT=false
|
||||
- SEAFILE_SERVER_HOSTNAME=${SEAFILE_IP}:${SEAFILE_PORT}
|
||||
depends_on:
|
||||
- db
|
||||
- memcached
|
||||
Reference in New Issue
Block a user