mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-03 16:10:26 +00:00
pro env
This commit is contained in:
@@ -6,6 +6,8 @@ TOPDIR=$(dirname "${INSTALLPATH}")
|
|||||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||||
central_config_dir=${TOPDIR}/conf
|
central_config_dir=${TOPDIR}/conf
|
||||||
|
pro_pylibs_dir=${INSTALLPATH}/pro/python
|
||||||
|
seafesdir=$pro_pylibs_dir/seafes
|
||||||
|
|
||||||
function check_python_executable() {
|
function check_python_executable() {
|
||||||
if [[ "$PYTHON" != "" && -x $PYTHON ]]; then
|
if [[ "$PYTHON" != "" && -x $PYTHON ]]; then
|
||||||
@@ -62,5 +64,13 @@ export SEAFILE_CENTRAL_CONF_DIR=${central_config_dir}
|
|||||||
export PYTHONPATH=${INSTALLPATH}/seafile/lib/python3/site-packages:${INSTALLPATH}/seafile/lib64/python3/site-packages:${INSTALLPATH}/seahub/thirdpart:$PYTHONPATH
|
export PYTHONPATH=${INSTALLPATH}/seafile/lib/python3/site-packages:${INSTALLPATH}/seafile/lib64/python3/site-packages:${INSTALLPATH}/seahub/thirdpart:$PYTHONPATH
|
||||||
export SEAFILE_RPC_PIPE_PATH=${INSTALLPATH}/runtime
|
export SEAFILE_RPC_PIPE_PATH=${INSTALLPATH}/runtime
|
||||||
|
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
export PYTHONPATH=$PYTHONPATH:$pro_pylibs_dir
|
||||||
|
export PYTHONPATH=$PYTHONPATH:${INSTALLPATH}/seahub-extra/
|
||||||
|
export PYTHONPATH=$PYTHONPATH:${INSTALLPATH}/seahub-extra/thirdparts
|
||||||
|
export SEAFES_DIR=$seafesdir
|
||||||
|
export SEAFILE_RPC_PIPE_PATH=${INSTALLPATH}/runtime
|
||||||
|
fi
|
||||||
|
|
||||||
manage_py=${INSTALLPATH}/seahub/manage.py
|
manage_py=${INSTALLPATH}/seahub/manage.py
|
||||||
exec "$PYTHON" "$manage_py" createsuperuser
|
exec "$PYTHON" "$manage_py" createsuperuser
|
||||||
|
@@ -8,6 +8,7 @@ TOPDIR=$(dirname "${INSTALLPATH}")
|
|||||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||||
default_conf_dir=${TOPDIR}/conf
|
default_conf_dir=${TOPDIR}/conf
|
||||||
|
check_db_py=${INSTALLPATH}/check-db-type.py
|
||||||
seaf_gc=${INSTALLPATH}/seafile/bin/seafserv-gc
|
seaf_gc=${INSTALLPATH}/seafile/bin/seafserv-gc
|
||||||
seaf_gc_opts=""
|
seaf_gc_opts=""
|
||||||
|
|
||||||
@@ -17,10 +18,38 @@ export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafil
|
|||||||
script_name=$0
|
script_name=$0
|
||||||
function usage () {
|
function usage () {
|
||||||
echo "usage : "
|
echo "usage : "
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
echo "$(basename ${script_name}) [--dry-run | -D] [--rm-deleted | -r] [--rm-fs | -R] [repo-id1] [repo-id2]"
|
||||||
|
else
|
||||||
echo "$(basename ${script_name}) [--dry-run | -D] [--rm-deleted | -r] [repo-id1] [repo-id2]"
|
echo "$(basename ${script_name}) [--dry-run | -D] [--rm-deleted | -r] [repo-id1] [repo-id2]"
|
||||||
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function check_python_executable() {
|
||||||
|
if [[ "$PYTHON" != "" && -x $PYTHON ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if which python3 2>/dev/null 1>&2; then
|
||||||
|
PYTHON=python3
|
||||||
|
elif !(python --version 2>&1 | grep "3\.[0-9]\.[0-9]") 2>/dev/null 1>&2; then
|
||||||
|
echo
|
||||||
|
echo "The current version of python is not 3.x.x, please use Python 3.x.x ."
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
PYTHON="python"$(python --version | cut -b 8-10)
|
||||||
|
if !which $PYTHON 2>/dev/null 1>&2; then
|
||||||
|
echo
|
||||||
|
echo "Can't find a python executable of $PYTHON in PATH"
|
||||||
|
echo "Install $PYTHON before continue."
|
||||||
|
echo "Or if you installed it in a non-standard PATH, set the PYTHON enviroment varirable to it"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function validate_seafile_data_dir () {
|
function validate_seafile_data_dir () {
|
||||||
if [[ ! -d ${default_seafile_data_dir} ]]; then
|
if [[ ! -d ${default_seafile_data_dir} ]]; then
|
||||||
@@ -58,7 +87,18 @@ function validate_already_running () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function run_seaf_gc () {
|
function run_seaf_gc () {
|
||||||
|
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
seafile_conf=${default_conf_dir}/seafile.conf
|
||||||
|
db_type=$($PYTHON $check_db_py $seafile_conf)
|
||||||
|
|
||||||
|
if [ $db_type = "sqlite" ]; then
|
||||||
validate_already_running;
|
validate_already_running;
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
validate_already_running;
|
||||||
|
fi
|
||||||
|
|
||||||
validate_seafile_data_dir;
|
validate_seafile_data_dir;
|
||||||
|
|
||||||
echo "Starting seafserv-gc, please wait ..."
|
echo "Starting seafserv-gc, please wait ..."
|
||||||
@@ -73,6 +113,8 @@ function run_seaf_gc () {
|
|||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_python_executable;
|
||||||
|
|
||||||
if [ $# -gt 0 ];
|
if [ $# -gt 0 ];
|
||||||
then
|
then
|
||||||
for param in $@;
|
for param in $@;
|
||||||
|
@@ -19,6 +19,8 @@ default_ccnet_conf_dir=${TOPDIR}/ccnet
|
|||||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||||
central_config_dir=${TOPDIR}/conf
|
central_config_dir=${TOPDIR}/conf
|
||||||
seaf_controller="${INSTALLPATH}/seafile/bin/seafile-controller"
|
seaf_controller="${INSTALLPATH}/seafile/bin/seafile-controller"
|
||||||
|
pro_pylibs_dir=${INSTALLPATH}/pro/python
|
||||||
|
seafesdir=$pro_pylibs_dir/seafes
|
||||||
|
|
||||||
export PATH=${INSTALLPATH}/seafile/bin:$PATH
|
export PATH=${INSTALLPATH}/seafile/bin:$PATH
|
||||||
export ORIG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
|
export ORIG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
|
||||||
@@ -48,6 +50,14 @@ function validate_running_user () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export PYTHONPATH=${INSTALLPATH}/seafile/lib/python3/site-packages:${INSTALLPATH}/seafile/lib64/python3/site-packages:${INSTALLPATH}/seahub/thirdpart:$PYTHONPATH
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
export PYTHONPATH=$PYTHONPATH:$pro_pylibs_dir
|
||||||
|
export PYTHONPATH=$PYTHONPATH:${INSTALLPATH}/seahub-extra/
|
||||||
|
export PYTHONPATH=$PYTHONPATH:${INSTALLPATH}/seahub-extra/thirdparts
|
||||||
|
export SEAFES_DIR=$seafesdir
|
||||||
|
fi
|
||||||
|
|
||||||
function validate_central_conf_dir () {
|
function validate_central_conf_dir () {
|
||||||
if [[ ! -d ${central_config_dir} ]]; then
|
if [[ ! -d ${central_config_dir} ]]; then
|
||||||
echo "Error: there is no conf/ directory."
|
echo "Error: there is no conf/ directory."
|
||||||
@@ -66,6 +76,12 @@ function validate_seafile_data_dir () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_config() {
|
||||||
|
if ! LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH ${seaf_controller} -t -c "${default_ccnet_conf_dir}" -d "${default_seafile_data_dir}" -F "${central_config_dir}" ; then
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function check_component_running() {
|
function check_component_running() {
|
||||||
name=$1
|
name=$1
|
||||||
cmd=$2
|
cmd=$2
|
||||||
@@ -90,6 +106,14 @@ function validate_already_running () {
|
|||||||
check_component_running "seaf-server" "seaf-server -c ${default_ccnet_conf_dir}"
|
check_component_running "seaf-server" "seaf-server -c ${default_ccnet_conf_dir}"
|
||||||
check_component_running "fileserver" "fileserver -c ${default_ccnet_conf_dir}"
|
check_component_running "fileserver" "fileserver -c ${default_ccnet_conf_dir}"
|
||||||
check_component_running "seafdav" "wsgidav.server.server_cli"
|
check_component_running "seafdav" "wsgidav.server.server_cli"
|
||||||
|
check_component_running "seafevents" "seafevents.main --config-file ${central_config_dir}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_java {
|
||||||
|
if ! which java 2>/dev/null 1>&2; then
|
||||||
|
echo "java is not found on your machine. Please install it first."
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function start_seafile_server () {
|
function start_seafile_server () {
|
||||||
@@ -98,13 +122,29 @@ function start_seafile_server () {
|
|||||||
validate_seafile_data_dir;
|
validate_seafile_data_dir;
|
||||||
validate_running_user;
|
validate_running_user;
|
||||||
|
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
test_config;
|
||||||
|
test_java;
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Starting seafile server, please wait ..."
|
echo "Starting seafile server, please wait ..."
|
||||||
|
|
||||||
mkdir -p $TOPDIR/logs
|
mkdir -p $TOPDIR/logs
|
||||||
|
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
if ! LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH ${seaf_controller} -c "${default_ccnet_conf_dir}" -d "${default_seafile_data_dir}" -F "${central_config_dir}"; then
|
||||||
|
controller_log="$default_seafile_data_dir/controller.log"
|
||||||
|
echo
|
||||||
|
echo "Failed to start seafile server. See $controller_log for more details."
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH ${seaf_controller} \
|
LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH ${seaf_controller} \
|
||||||
-c "${default_ccnet_conf_dir}" \
|
-c "${default_ccnet_conf_dir}" \
|
||||||
-d "${default_seafile_data_dir}" \
|
-d "${default_seafile_data_dir}" \
|
||||||
-F "${central_config_dir}"
|
-F "${central_config_dir}"
|
||||||
|
fi
|
||||||
|
|
||||||
sleep 3
|
sleep 3
|
||||||
|
|
||||||
@@ -118,24 +158,32 @@ function start_seafile_server () {
|
|||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function kill_all () {
|
||||||
|
pkill -f "seaf-server -c ${default_ccnet_conf_dir}"
|
||||||
|
pkill -f "fileserver -c ${default_ccnet_conf_dir}"
|
||||||
|
pkill -f "seafevents.main"
|
||||||
|
pkill -f "convert_server.py"
|
||||||
|
pkill -f "soffice.*--invisible --nocrashreport"
|
||||||
|
pkill -f "wsgidav.server.server_cli"
|
||||||
|
}
|
||||||
|
|
||||||
function stop_seafile_server () {
|
function stop_seafile_server () {
|
||||||
if ! pgrep -f "seafile-controller -c ${default_ccnet_conf_dir}" 2>/dev/null 1>&2; then
|
if ! pgrep -f "seafile-controller -c ${default_ccnet_conf_dir}" 2>/dev/null 1>&2; then
|
||||||
echo "seafile server not running yet"
|
echo "seafile server not running yet"
|
||||||
return 1;
|
kill_all
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Stopping seafile server ..."
|
echo "Stopping seafile server ..."
|
||||||
pkill -SIGTERM -f "seafile-controller -c ${default_ccnet_conf_dir}"
|
pkill -SIGTERM -f "seafile-controller -c ${default_ccnet_conf_dir}"
|
||||||
pkill -f "seaf-server -c ${default_ccnet_conf_dir}"
|
kill_all
|
||||||
pkill -f "fileserver -c ${default_ccnet_conf_dir}"
|
|
||||||
pkill -f "soffice.*--invisible --nocrashreport"
|
|
||||||
pkill -f "wsgidav.server.server_cli"
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function restart_seafile_server () {
|
function restart_seafile_server () {
|
||||||
stop_seafile_server;
|
stop_seafile_server;
|
||||||
sleep 2
|
sleep 5
|
||||||
start_seafile_server;
|
start_seafile_server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -26,6 +26,8 @@ pidfile=${TOPDIR}/pids/seahub.pid
|
|||||||
errorlog=${TOPDIR}/logs/gunicorn_error.log
|
errorlog=${TOPDIR}/logs/gunicorn_error.log
|
||||||
accesslog=${TOPDIR}/logs/gunicorn_access.log
|
accesslog=${TOPDIR}/logs/gunicorn_access.log
|
||||||
gunicorn_exe=${INSTALLPATH}/seahub/thirdpart/bin/gunicorn
|
gunicorn_exe=${INSTALLPATH}/seahub/thirdpart/bin/gunicorn
|
||||||
|
pro_pylibs_dir=${INSTALLPATH}/pro/python
|
||||||
|
seafesdir=$pro_pylibs_dir/seafes
|
||||||
|
|
||||||
script_name=$0
|
script_name=$0
|
||||||
function usage () {
|
function usage () {
|
||||||
@@ -144,12 +146,30 @@ function before_start() {
|
|||||||
warning_if_seafile_not_running;
|
warning_if_seafile_not_running;
|
||||||
validate_seahub_running;
|
validate_seahub_running;
|
||||||
prepare_seahub_log_dir;
|
prepare_seahub_log_dir;
|
||||||
|
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
if [[ -z "$LANG" ]]; then
|
||||||
|
echo "LANG is not set in ENV, set to en_US.UTF-8"
|
||||||
|
export LANG='en_US.UTF-8'
|
||||||
|
fi
|
||||||
|
if [[ -z "$LC_ALL" ]]; then
|
||||||
|
echo "LC_ALL is not set in ENV, set to en_US.UTF-8"
|
||||||
|
export LC_ALL='en_US.UTF-8'
|
||||||
|
fi
|
||||||
|
|
||||||
|
export PYTHONPATH=$PYTHONPATH:$pro_pylibs_dir
|
||||||
|
export PYTHONPATH=$PYTHONPATH:${INSTALLPATH}/seahub-extra/
|
||||||
|
export PYTHONPATH=$PYTHONPATH:${INSTALLPATH}/seahub-extra/thirdparts
|
||||||
|
export SEAFES_DIR=$seafesdir
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function start_seahub () {
|
function start_seahub () {
|
||||||
before_start;
|
before_start;
|
||||||
echo "Starting seahub at port ${port} ..."
|
echo "Starting seahub at port ${port} ..."
|
||||||
check_init_admin;
|
check_init_admin;
|
||||||
|
|
||||||
|
export DJANGO_SETTINGS_MODULE=seahub.settings
|
||||||
$PYTHON $gunicorn_exe seahub.wsgi:application -c "${gunicorn_conf}" --preload
|
$PYTHON $gunicorn_exe seahub.wsgi:application -c "${gunicorn_conf}" --preload
|
||||||
|
|
||||||
# Ensure seahub is started successfully
|
# Ensure seahub is started successfully
|
||||||
@@ -178,7 +198,7 @@ function start_seahub_fastcgi () {
|
|||||||
|
|
||||||
# Ensure seahub is started successfully
|
# Ensure seahub is started successfully
|
||||||
sleep 5
|
sleep 5
|
||||||
if ! pgrep -f "${manage_py}" 1>/dev/null; then
|
if ! pgrep -f "${manage_py}" >/dev/null; then
|
||||||
printf "\033[33mError:Seahub failed to start.\033[m\n"
|
printf "\033[33mError:Seahub failed to start.\033[m\n"
|
||||||
exit 1;
|
exit 1;
|
||||||
fi
|
fi
|
||||||
@@ -248,6 +268,13 @@ function run_python_env() {
|
|||||||
|
|
||||||
prepare_env;
|
prepare_env;
|
||||||
|
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
export PYTHONPATH=$PYTHONPATH:$pro_pylibs_dir
|
||||||
|
export PYTHONPATH=$PYTHONPATH:${INSTALLPATH}/seahub-extra/
|
||||||
|
export PYTHONPATH=$PYTHONPATH:${INSTALLPATH}/seahub-extra/thirdparts
|
||||||
|
export SEAFES_DIR=$seafesdir
|
||||||
|
fi
|
||||||
|
|
||||||
if which ipython 2>/dev/null; then
|
if which ipython 2>/dev/null; then
|
||||||
pyexec=ipython
|
pyexec=ipython
|
||||||
else
|
else
|
||||||
|
@@ -304,6 +304,7 @@ class EnvManager(object):
|
|||||||
self.central_pids_dir = os.path.join(self.top_dir, 'pids')
|
self.central_pids_dir = os.path.join(self.top_dir, 'pids')
|
||||||
self.central_logs_dir = os.path.join(self.top_dir, 'logs')
|
self.central_logs_dir = os.path.join(self.top_dir, 'logs')
|
||||||
Utils.must_mkdir(self.central_config_dir)
|
Utils.must_mkdir(self.central_config_dir)
|
||||||
|
self.is_pro = os.path.exists(os.path.join(self.install_path, 'pro'))
|
||||||
|
|
||||||
def check_pre_condiction(self):
|
def check_pre_condiction(self):
|
||||||
def error_if_not_exists(path):
|
def error_if_not_exists(path):
|
||||||
@@ -327,6 +328,7 @@ class EnvManager(object):
|
|||||||
env = dict(os.environ)
|
env = dict(os.environ)
|
||||||
env['CCNET_CONF_DIR'] = ccnet_config.ccnet_dir
|
env['CCNET_CONF_DIR'] = ccnet_config.ccnet_dir
|
||||||
env['SEAFILE_CONF_DIR'] = seafile_config.seafile_dir
|
env['SEAFILE_CONF_DIR'] = seafile_config.seafile_dir
|
||||||
|
env['SEAFES_DIR'] = os.path.join(self.install_path, 'pro', 'python', 'seafes')
|
||||||
self.setup_python_path(env)
|
self.setup_python_path(env)
|
||||||
return env
|
return env
|
||||||
|
|
||||||
@@ -1216,6 +1218,31 @@ share_name = /
|
|||||||
with open(self.seafdav_conf, 'w') as fp:
|
with open(self.seafdav_conf, 'w') as fp:
|
||||||
fp.write(text)
|
fp.write(text)
|
||||||
|
|
||||||
|
class ProfessionalConfigurator(AbstractConfigurator):
|
||||||
|
'''Seafile Pro related configuration'''
|
||||||
|
def __init__(self):
|
||||||
|
AbstractConfigurator.__init__(self)
|
||||||
|
self.pro_py = os.path.join(env_mgr.install_path, 'pro', 'pro.py')
|
||||||
|
self.pro_data_dir = os.path.join(env_mgr.top_dir, 'pro-data')
|
||||||
|
|
||||||
|
def ask_questions(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def generate(self):
|
||||||
|
argv = [
|
||||||
|
Utils.get_python_executable(),
|
||||||
|
self.pro_py,
|
||||||
|
'setup',
|
||||||
|
'--mysql',
|
||||||
|
'--mysql_host=%s' % db_config.mysql_host,
|
||||||
|
'--mysql_port=%s' % db_config.mysql_port,
|
||||||
|
'--mysql_user=%s' % db_config.seafile_mysql_user,
|
||||||
|
'--mysql_password=%s' % db_config.seafile_mysql_password,
|
||||||
|
'--mysql_db=%s' % db_config.seahub_db_name,
|
||||||
|
]
|
||||||
|
if Utils.run_argv(argv, env=env_mgr.get_seahub_env()) != 0:
|
||||||
|
Utils.error('Failed to generate seafile pro configuration')
|
||||||
|
|
||||||
class GunicornConfigurator(AbstractConfigurator):
|
class GunicornConfigurator(AbstractConfigurator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
AbstractConfigurator.__init__(self)
|
AbstractConfigurator.__init__(self)
|
||||||
@@ -1349,6 +1376,8 @@ seafdav_config = SeafDavConfigurator()
|
|||||||
gunicorn_config = GunicornConfigurator()
|
gunicorn_config = GunicornConfigurator()
|
||||||
seahub_config = SeahubConfigurator()
|
seahub_config = SeahubConfigurator()
|
||||||
user_manuals_handler = UserManualHandler()
|
user_manuals_handler = UserManualHandler()
|
||||||
|
if env_mgr.is_pro:
|
||||||
|
pro_config = ProfessionalConfigurator()
|
||||||
# Would be created after AbstractDBConfigurator.ask_use_existing_db()
|
# Would be created after AbstractDBConfigurator.ask_use_existing_db()
|
||||||
db_config = None
|
db_config = None
|
||||||
need_pause = True
|
need_pause = True
|
||||||
@@ -1494,6 +1523,8 @@ def main():
|
|||||||
ccnet_config.ask_questions()
|
ccnet_config.ask_questions()
|
||||||
seafile_config.ask_questions()
|
seafile_config.ask_questions()
|
||||||
seahub_config.ask_questions()
|
seahub_config.ask_questions()
|
||||||
|
if env_mgr.is_pro:
|
||||||
|
pro_config.ask_questions()
|
||||||
|
|
||||||
# pylint: disable=redefined-variable-type
|
# pylint: disable=redefined-variable-type
|
||||||
if not db_config:
|
if not db_config:
|
||||||
@@ -1513,6 +1544,8 @@ def main():
|
|||||||
seafdav_config.generate()
|
seafdav_config.generate()
|
||||||
gunicorn_config.generate()
|
gunicorn_config.generate()
|
||||||
seahub_config.generate()
|
seahub_config.generate()
|
||||||
|
if env_mgr.is_pro:
|
||||||
|
pro_config.generate()
|
||||||
|
|
||||||
ccnet_config.do_syncdb()
|
ccnet_config.do_syncdb()
|
||||||
seafile_config.do_syncdb()
|
seafile_config.do_syncdb()
|
||||||
|
@@ -49,8 +49,23 @@ function check_python () {
|
|||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function check_java () {
|
||||||
|
echo -n "Checking for java ..."
|
||||||
|
if ! which java 2>/dev/null 1>&2; then
|
||||||
|
echo -e "\nJava is not found. install it first.\n"
|
||||||
|
echo "On Debian/Ubuntu: apt-get install default-jre"
|
||||||
|
echo "On CentOS/RHEL: yum install jre"
|
||||||
|
err_and_quit;
|
||||||
|
fi
|
||||||
|
printf "Done.\n\n"
|
||||||
|
}
|
||||||
|
|
||||||
check_python;
|
check_python;
|
||||||
|
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
check_java;
|
||||||
|
fi
|
||||||
|
|
||||||
export PYTHON=$PYTHON
|
export PYTHON=$PYTHON
|
||||||
|
|
||||||
export PYTHONPATH=${INSTALLPATH}/seafile/lib/python3/site-packages:${INSTALLPATH}/seafile/lib64/python3/site-packages:${INSTALLPATH}/seahub/thirdpart:$PYTHONPATH
|
export PYTHONPATH=${INSTALLPATH}/seafile/lib/python3/site-packages:${INSTALLPATH}/seafile/lib64/python3/site-packages:${INSTALLPATH}/seahub/thirdpart:$PYTHONPATH
|
||||||
|
@@ -16,7 +16,11 @@ server_manual_http='https://download.seafile.com/published/seafile-manual/home.m
|
|||||||
|
|
||||||
function welcome () {
|
function welcome () {
|
||||||
echo "-----------------------------------------------------------------"
|
echo "-----------------------------------------------------------------"
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
echo "This script will guide you to config and setup your seafile professional server."
|
||||||
|
else
|
||||||
echo "This script will guide you to config and setup your seafile server."
|
echo "This script will guide you to config and setup your seafile server."
|
||||||
|
fi
|
||||||
echo -e "\nMake sure you have read seafile server manual at \n\n\t${server_manual_http}\n"
|
echo -e "\nMake sure you have read seafile server manual at \n\n\t${server_manual_http}\n"
|
||||||
echo -e "Note: This script will guide your to setup seafile server using sqlite3,"
|
echo -e "Note: This script will guide your to setup seafile server using sqlite3,"
|
||||||
echo "which may have problems if your disk is on a NFS/CIFS/USB."
|
echo "which may have problems if your disk is on a NFS/CIFS/USB."
|
||||||
@@ -148,10 +152,26 @@ function check_sqlite3 () {
|
|||||||
printf "Done.\n\n"
|
printf "Done.\n\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function check_java () {
|
||||||
|
echo -n "Checking for java ..."
|
||||||
|
if ! which java 2>/dev/null 1>&2; then
|
||||||
|
echo -e "\nJava is not found. install it first.\n"
|
||||||
|
echo "On Debian/Ubuntu: apt-get install default-jre"
|
||||||
|
echo "On CentOS/RHEL: yum install jre"
|
||||||
|
err_and_quit;
|
||||||
|
fi
|
||||||
|
printf "Done.\n\n"
|
||||||
|
}
|
||||||
|
|
||||||
function check_system_dependency () {
|
function check_system_dependency () {
|
||||||
printf "Checking packages needed by seafile ...\n\n"
|
printf "Checking packages needed by seafile ...\n\n"
|
||||||
check_python;
|
check_python;
|
||||||
check_sqlite3;
|
check_sqlite3;
|
||||||
|
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
check_java;
|
||||||
|
fi
|
||||||
|
|
||||||
printf "Checking Done.\n\n"
|
printf "Checking Done.\n\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -489,7 +509,9 @@ fi
|
|||||||
|
|
||||||
echo "Generating ccnet configuration in ${default_ccnet_conf_dir}..."
|
echo "Generating ccnet configuration in ${default_ccnet_conf_dir}..."
|
||||||
echo
|
echo
|
||||||
|
|
||||||
gen_ccnet_conf;
|
gen_ccnet_conf;
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# -------------------------------------------
|
# -------------------------------------------
|
||||||
@@ -498,17 +520,11 @@ echo
|
|||||||
|
|
||||||
echo "Generating seafile configuration in ${default_seafile_data_dir} ..."
|
echo "Generating seafile configuration in ${default_seafile_data_dir} ..."
|
||||||
echo
|
echo
|
||||||
|
|
||||||
gen_seafile_conf;
|
gen_seafile_conf;
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------
|
|
||||||
# Write seafile.ini
|
|
||||||
# -------------------------------------------
|
|
||||||
|
|
||||||
## use default seafile-data path: seafile_data_dir=${TOPDIR}/seafile-data
|
|
||||||
# echo "${seafile_data_dir}" > "${default_ccnet_conf_dir}/seafile.ini"
|
|
||||||
|
|
||||||
# -------------------------------------------
|
# -------------------------------------------
|
||||||
# Generate gunicorn.conf.py
|
# Generate gunicorn.conf.py
|
||||||
# -------------------------------------------
|
# -------------------------------------------
|
||||||
@@ -708,6 +724,11 @@ chmod 0700 "$default_ccnet_conf_dir"
|
|||||||
chmod 0700 "$default_seafile_data_dir"
|
chmod 0700 "$default_seafile_data_dir"
|
||||||
chmod 0700 "$default_conf_dir"
|
chmod 0700 "$default_conf_dir"
|
||||||
|
|
||||||
|
if [[ -d ${INSTALLPATH}/pro ]]; then
|
||||||
|
pro_py=${INSTALLPATH}/pro/pro.py
|
||||||
|
$PYTHON ${pro_py} setup
|
||||||
|
fi
|
||||||
|
|
||||||
# -------------------------------------------
|
# -------------------------------------------
|
||||||
# copy user manuals to library template
|
# copy user manuals to library template
|
||||||
# -------------------------------------------
|
# -------------------------------------------
|
||||||
|
Reference in New Issue
Block a user