Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
dbacf11bd3 |
@ -7,7 +7,6 @@ pipeline:
|
|||||||
docker:
|
docker:
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
repo: repo.shimun.net/shimun/seafile
|
repo: repo.shimun.net/shimun/seafile
|
||||||
tag: riffol
|
|
||||||
registry: repo.shimun.net
|
registry: repo.shimun.net
|
||||||
storage_path: /drone/.docker
|
storage_path: /drone/.docker
|
||||||
secrets: ["docker_username", "docker_password"]
|
secrets: ["docker_username", "docker_password"]
|
||||||
|
28
Dockerfile
28
Dockerfile
@ -1,7 +1,3 @@
|
|||||||
FROM rust:1.34 AS riffol_build
|
|
||||||
|
|
||||||
RUN cargo install --git https://github.com/shimunn/riffol.git --branch 32b
|
|
||||||
|
|
||||||
FROM nginx:mainline
|
FROM nginx:mainline
|
||||||
|
|
||||||
VOLUME /opt/seafile
|
VOLUME /opt/seafile
|
||||||
@ -16,30 +12,18 @@ RUN apt update && apt install locales -y && apt install -y --no-install-recommen
|
|||||||
&& pip install -r /tmp/requirements.txt && apt remove -y python-pip \
|
&& pip install -r /tmp/requirements.txt && apt remove -y python-pip \
|
||||||
&& rm -rf /var/lib/apt/lists/* /tmp/requirements.txt
|
&& rm -rf /var/lib/apt/lists/* /tmp/requirements.txt
|
||||||
|
|
||||||
#ENV RIFFOL_VERSION libc-2.24
|
|
||||||
#ENV RIFFOL_HASH e6aea0a91abe74dc0892b0814a0485f16ce8b738b4672b4980b15a398c013e974d5d1b6c27eed69899196cc21014e407f7ff74ee5636a8690ebd639fe0ca5abb
|
|
||||||
#RUN curl -L https://github.com/riboseinc/riffol/releases/download/0.1.0/riffol-$RIFFOL_VERSION.tar.gz -o /tmp/riffol-$RIFFOL_VERSION.tar.gz && \
|
|
||||||
# echo "$RIFFOL_HASH /tmp/riffol-$RIFFOL_VERSION.tar.gz" | sha512sum --check && \
|
|
||||||
# tar -xvzf /tmp/riffol-$RIFFOL_VERSION.tar.gz -C /usr/sbin/ && \
|
|
||||||
# rm /tmp/riffol-$RIFFOL_VERSION.tar.gz
|
|
||||||
|
|
||||||
COPY --from=riffol_build /usr/local/cargo/bin/riffol /usr/sbin/
|
|
||||||
|
|
||||||
RUN ln -s /opt/seafile/seafile-server-latest/seafile.sh /usr/bin/seafile && \
|
|
||||||
ln -s /opt/seafile/seafile-server-latest/seahub.sh /usr/bin/seahub && \
|
|
||||||
ln -s /opt/seafile/pids /var/run/seafile
|
|
||||||
|
|
||||||
COPY riffol.conf /etc/riffol.conf
|
|
||||||
|
|
||||||
COPY conf /opt/seafile/conf
|
COPY conf /opt/seafile/conf
|
||||||
COPY conf /etc/seafile
|
COPY conf /etc/seafile
|
||||||
COPY nginx /etc/nginx
|
COPY nginx /etc/nginx
|
||||||
COPY scripts/upgrade.py /usr/local/sbin/upgrade
|
COPY scripts/upgrade.py /usr/local/sbin/upgrade
|
||||||
COPY scripts/setup.sh /usr/bin/setup
|
COPY scripts/start-nginx.sh /usr/bin/start-nginx
|
||||||
|
COPY scripts/seafile-server.sh /sbin/seafile-server
|
||||||
|
|
||||||
RUN ulimit -n 30000 && mkdir -p $SEAF/pids && \
|
RUN ulimit -n 30000 && mkdir -p $SEAF/pids && \
|
||||||
chmod +x /usr/local/sbin/upgrade /usr/bin/setup
|
chmod +x /usr/local/sbin/upgrade /sbin/seafile-server /usr/bin/start-nginx
|
||||||
|
|
||||||
ENV SEAF_UPGRADE_INTERVAL=3
|
ENV SEAF_UPGRADE_INTERVAL=3
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/sbin/riffol", "-f", "/etc/riffol.conf"]
|
ENTRYPOINT ["/sbin/seafile-server"]
|
||||||
|
#Defaults to run-upgrade options include: run, run-upgrade, upgrade, stop, stop-upgrade
|
||||||
|
CMD ["run-upgrade"]
|
||||||
|
@ -16,6 +16,8 @@ http {
|
|||||||
|
|
||||||
include seafile/*.conf;
|
include seafile/*.conf;
|
||||||
|
|
||||||
|
include realip.conf;
|
||||||
|
|
||||||
include extra.conf;
|
include extra.conf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
nginx/realip.conf
Normal file
2
nginx/realip.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
real_ip_header X-Forwarded-For;
|
||||||
|
set_real_ip_from 127.0.0.1;
|
@ -0,0 +1,3 @@
|
|||||||
|
location /media {
|
||||||
|
root /opt/seafile/seafile-server-latest/seahub;
|
||||||
|
}
|
||||||
|
@ -3,6 +3,4 @@ scriptine
|
|||||||
setuptools
|
setuptools
|
||||||
simplejson
|
simplejson
|
||||||
python-memcached
|
python-memcached
|
||||||
pyyaml
|
urllib3
|
||||||
requests==2.18.4
|
|
||||||
requests_oauthlib==0.8.0
|
|
||||||
|
115
riffol.conf
115
riffol.conf
@ -1,115 +0,0 @@
|
|||||||
init seafile {
|
|
||||||
application_groups [seafile]
|
|
||||||
}
|
|
||||||
|
|
||||||
application_group seafile {
|
|
||||||
applications [
|
|
||||||
setup
|
|
||||||
seafile
|
|
||||||
seahub
|
|
||||||
nginx
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
init seafile {
|
|
||||||
application_groups [seafile]
|
|
||||||
}
|
|
||||||
|
|
||||||
application_group seafile {
|
|
||||||
applications [
|
|
||||||
setup
|
|
||||||
seafile
|
|
||||||
seahub
|
|
||||||
nginx
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
application setup {
|
|
||||||
mode oneshot
|
|
||||||
start [ /usr/bin/setup ]
|
|
||||||
dir /opt/seafile
|
|
||||||
env {
|
|
||||||
new {
|
|
||||||
SEAF /opt/seafile
|
|
||||||
}
|
|
||||||
pass {
|
|
||||||
SEAF_UPGRADE_INTERVAL SEAF_UPGRADE_INTERVAL
|
|
||||||
SEAF_VERSION SEAF_VERSION
|
|
||||||
SEAF_NAME SEAF_NAME
|
|
||||||
SEAF_MYSQL SEAF_MYSQL
|
|
||||||
SEAF_MYSQL_HOST SEAF_MYSQL_HOST
|
|
||||||
SEAF_MYSQL_PORT SEAF_MYSQL_PORT
|
|
||||||
SEAF_MYSQL_USER SEAF_MYSQL_USER
|
|
||||||
SEAF_MYSQL_DB_SEAF SEAF_MYSQL_DB_SEAF
|
|
||||||
SEAF_MYSQL_DB_HUB SEAF_MYSQL_DB_HUB
|
|
||||||
SEAF_MYSQL_DB_CCNET SEAF_MYSQL_DB_CCNET
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
application seafile {
|
|
||||||
mode forking
|
|
||||||
pidfile /var/run/seafile/seaf-server.pid
|
|
||||||
requires [ setup ]
|
|
||||||
start [ /usr/bin/seafile, start ]
|
|
||||||
stop [ /usr/bin/seafile, stop ]
|
|
||||||
dir /opt/seafile
|
|
||||||
healthcheck [ server ]
|
|
||||||
healthcheckfail restart
|
|
||||||
}
|
|
||||||
|
|
||||||
application seahub {
|
|
||||||
mode forking
|
|
||||||
requires [ setup, seafile ]
|
|
||||||
pidfile /var/run/seafile/seahub.pid
|
|
||||||
start [ /usr/bin/seahub, start, 8000 ]
|
|
||||||
stop [ /usr/bin/seahub, stop ]
|
|
||||||
dir /opt/seafile
|
|
||||||
healthcheck [ hub ]
|
|
||||||
healthcheckfail restart
|
|
||||||
}
|
|
||||||
|
|
||||||
application nginx {
|
|
||||||
mode forking
|
|
||||||
pidfile /var/run/nginx.pid
|
|
||||||
requires [ setup, seahub ]
|
|
||||||
start [ /usr/sbin/nginx ]
|
|
||||||
dir /opt/seafile
|
|
||||||
healthcheck [ http, hub ]
|
|
||||||
healthcheckfail restart
|
|
||||||
}
|
|
||||||
|
|
||||||
healthchecks riffol {
|
|
||||||
checks [
|
|
||||||
proc://riffol
|
|
||||||
]
|
|
||||||
timeout 2
|
|
||||||
interval 1000
|
|
||||||
}
|
|
||||||
|
|
||||||
healthcheck http {
|
|
||||||
checks [
|
|
||||||
tcp://127.0.0.1:80
|
|
||||||
]
|
|
||||||
interval 30
|
|
||||||
timeout 20
|
|
||||||
}
|
|
||||||
|
|
||||||
healthcheck hub {
|
|
||||||
checks [
|
|
||||||
tcp://127.0.0.1:8000
|
|
||||||
tcp://127.0.0.1:8080
|
|
||||||
]
|
|
||||||
interval 80
|
|
||||||
timeout 60
|
|
||||||
}
|
|
||||||
|
|
||||||
healthcheck server {
|
|
||||||
checks [
|
|
||||||
tcp://127.0.0.1:8082
|
|
||||||
proc://ccnet-server
|
|
||||||
proc://seaf-server
|
|
||||||
]
|
|
||||||
interval 10
|
|
||||||
timeout 5
|
|
||||||
}
|
|
194
scripts/seafile-server.sh
Executable file
194
scripts/seafile-server.sh
Executable file
@ -0,0 +1,194 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
LATEST=$SEAF/seafile-server-latest
|
||||||
|
PIDS=$SEAF/pids
|
||||||
|
PIDFILES=("$PIDS" "$LATEST/runtime" "/var/run/nginx")
|
||||||
|
COMMANDS=("seaf-server $LATEST/seafile.sh start" "seahub $LATEST/seahub.sh ${SEAF_HUB_MODE:-start} 8000" "nginx /usr/bin/start-nginx")
|
||||||
|
|
||||||
|
function stop {
|
||||||
|
#Kill when hitting CTRL+C repeatedly
|
||||||
|
trap stop_kill SIGTERM
|
||||||
|
$0 stop
|
||||||
|
}
|
||||||
|
function stop_kill {
|
||||||
|
$0 kill
|
||||||
|
}
|
||||||
|
function ext_url {
|
||||||
|
echo "${SEAF_URL:-http://$(hostname)}/seafhttp"
|
||||||
|
}
|
||||||
|
function patch_seahub_conf {
|
||||||
|
KEY="FILE_SERVER_ROOT"
|
||||||
|
ENTRY="$KEY = '$(ext_url)'"
|
||||||
|
CONF="$SEAF/conf/seahub_settings.py"
|
||||||
|
grep "$KEY" -i "$CONF"
|
||||||
|
if [ $? -eq 1 ]; then
|
||||||
|
echo "Patched seahub_settings.py: set $ENTRY"
|
||||||
|
echo -e "\n$ENTRY" >> "$CONF"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function last_update {
|
||||||
|
if [ -e "$LATEST/install_date" ]; then
|
||||||
|
date -d $(cat "$LATEST/install_date") "+%s"
|
||||||
|
else
|
||||||
|
echo 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function pid {
|
||||||
|
for LOC in ${PIDFILES[@]}; do
|
||||||
|
if [ -e "$LOC/$1.pid" ]; then
|
||||||
|
cat "$LOC/$1.pid"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
pgrep -f "/$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
run)
|
||||||
|
if [ ! -e "$LATEST" ]; then
|
||||||
|
(>&2 echo This appears to be the fist run, installing..)
|
||||||
|
mkdir -p $SEAF/conf
|
||||||
|
cp /etc/seafile/* $SEAF/conf/* -rf
|
||||||
|
$0 run-upgrade
|
||||||
|
exit $?
|
||||||
|
else
|
||||||
|
patch_seahub_conf
|
||||||
|
for CMD in "${COMMANDS[@]}"; do
|
||||||
|
INFO=($CMD)
|
||||||
|
$0 manage-component "${INFO[0]}" start "${INFO[1]}" "${INFO[@]:2}"
|
||||||
|
done
|
||||||
|
wait
|
||||||
|
fi
|
||||||
|
trap stop SIGINT SIGQUIT SIGTERM
|
||||||
|
LAST_UPGRADE=$(last_update)
|
||||||
|
UPGRADE=0
|
||||||
|
while eval "$0 status > /dev/null"; do
|
||||||
|
sleep 10;
|
||||||
|
SINCE_UPGRADE=$(((($(date "+%s") - $LAST_UPGRADE))/(60*60*24)))
|
||||||
|
if [ $LAST_UPGRADE -gt 0 ] && [ "0$SEAF_UPGRADE_INTERVAL" -gt 0 ] && [ $SINCE_UPGRADE -gt "0$SEAF_UPGRADE_INTERVAL" ]; then
|
||||||
|
echo "It's been $SINCE_UPGRADE days since the last Upgrade\nSTOPPING TO PERFORM UPGRADE NOW\nSet SEAF_UPGRADE_INTERVAL=0 disable automatic updates"
|
||||||
|
UPGRADE=1
|
||||||
|
$0 stop
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ $UPGRADE -eq 1 ]; then
|
||||||
|
$0 stop-upgrade-run
|
||||||
|
else
|
||||||
|
echo "Terminated"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
run-upgrade)
|
||||||
|
$0 upgrade
|
||||||
|
RES=$?
|
||||||
|
if [ $RES -eq 1 ]; then
|
||||||
|
echo "Failed upgrade"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ $RES -eq 127 ]; then
|
||||||
|
#No upgrade
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
if [ $RES -eq 126 ] && [ ! -e "$LATEST/install_date" ]; then
|
||||||
|
date +%Y-%m-%d > "$LATEST/install_date"
|
||||||
|
fi
|
||||||
|
$0 run
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
PIDS=""
|
||||||
|
for CMD in seafile-controller ccnet seafdav "${COMMANDS[@]}" seafile-controller ccnet; do
|
||||||
|
$0 manage-component $(echo $CMD | cut -d' ' -f1) stop &
|
||||||
|
PIDS="$PIDS $!"
|
||||||
|
done
|
||||||
|
wait $PIDS
|
||||||
|
;;
|
||||||
|
kill)
|
||||||
|
export SEAF_STOP_TRIES=0
|
||||||
|
$0 stop
|
||||||
|
;;
|
||||||
|
stop-upgrade-run)
|
||||||
|
$0 stop && $0 upgrade && $0 run
|
||||||
|
;;
|
||||||
|
upgrade)
|
||||||
|
/usr/local/sbin/upgrade main
|
||||||
|
kill -SIGHUP $(pgrep -o nginx) #Reload nginx
|
||||||
|
;;
|
||||||
|
maintanance)
|
||||||
|
$0 stop
|
||||||
|
if [ "$2" = "--fsck" ]; then
|
||||||
|
$LATEST/seaf-fsck.sh
|
||||||
|
fi
|
||||||
|
if [ "$2" = "--fsck-repair" ]; then
|
||||||
|
$LATEST/seaf-fsck.sh --repair
|
||||||
|
fi
|
||||||
|
$LATEST/seaf-gc.sh
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
setup)
|
||||||
|
INSTALLDIR=$2
|
||||||
|
SETUP_ARGS="auto -n ${SEAF_NAME:-$(hostname)} -i $(hostname) -p 8082"
|
||||||
|
if [ ! -z "$SEAF_MYSQL" ]; then
|
||||||
|
$INSTALLDIR/setup-seafile-mysql.sh $SETUP_ARGS -o $SEAF_MYSQL_HOST -t ${SEAF_MYSQL_PORT:-3306} -u "${SEAF_MYSQL_USER:-root}" \
|
||||||
|
-w "$SEAF_MYSQL_PASS" -r "${SEAF_MYSQL_ROOT_PASS:-$SEAF_MYSQL_PASS}" -c ${SEAF_MYSQL_DB_CCNET:-ccnet} -s ${SEAF_MYSQL_DB_SEAF:-seafile} \
|
||||||
|
-b ${SEAF_MYSQL_DB_HUB:-seahub}
|
||||||
|
else
|
||||||
|
$INSTALLDIR/setup-seafile.sh $SETUP_ARGS
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
RUNNING=1
|
||||||
|
for CMD in seafile-controller ccnet "${COMMANDS[@]}"; do
|
||||||
|
SERVICE="$(echo $CMD | cut -d' ' -f1)"
|
||||||
|
echo -n "$SERVICE: "
|
||||||
|
$0 manage-component $SERVICE status
|
||||||
|
[ $? -eq 0 ] || [ $RUNNING -eq 0 ]
|
||||||
|
RUNNING=$?
|
||||||
|
done
|
||||||
|
[ $RUNNING -eq 0 ]
|
||||||
|
;;
|
||||||
|
manage-component)
|
||||||
|
mkdir -p /var/run/seafile
|
||||||
|
NAME="$2"
|
||||||
|
PID=$(pid $NAME)
|
||||||
|
case "$3" in
|
||||||
|
start)
|
||||||
|
CMD="$4"
|
||||||
|
ARGS="$5"
|
||||||
|
eval "$CMD $ARGS"
|
||||||
|
sleep 1
|
||||||
|
( ! eval "$0 $1 $NAME status" ) && ((>&2 echo Failed to start $NAME); exit 1)
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
(kill -0 $PID 2> /dev/null && echo Running) || (echo Stopped && exit 1)
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
QUERY="$0 $1 $NAME status > /dev/null"
|
||||||
|
if eval "$QUERY"; then
|
||||||
|
kill $PID
|
||||||
|
TRIES=${SEAF_STOP_TRIES:-30}
|
||||||
|
while eval "$QUERY"; do
|
||||||
|
TRIES=$((TRIES - 1))
|
||||||
|
if [ $TRIES -lt 1 ]; then
|
||||||
|
(>&2 echo Failed to stop gracefully $NAME)
|
||||||
|
kill -9 $PID
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
kill $PID
|
||||||
|
[ $? -eq 1 ] && break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
(>&2 echo $NAME has been stopped)
|
||||||
|
else
|
||||||
|
(>&2 echo $NAME is not running)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "You're doing wrong pal"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
(>&2 echo Unknown option $1 options include: run, run-upgrade, upgrade, stop, stop-upgrade)
|
||||||
|
;;
|
||||||
|
esac
|
@ -1,75 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
LATEST=$SEAF/seafile-server-latest
|
|
||||||
|
|
||||||
function ext_url {
|
|
||||||
echo "${SEAF_URL:-http://$(hostname)}/seafhttp"
|
|
||||||
}
|
|
||||||
function patch_seahub_conf {
|
|
||||||
KEY="FILE_SERVER_ROOT"
|
|
||||||
ENTRY="$KEY = '$(ext_url)'"
|
|
||||||
CONF="$SEAF/conf/seahub_settings.py"
|
|
||||||
grep "$KEY" -i "$CONF"
|
|
||||||
if [ $? -eq 1 ]; then
|
|
||||||
echo "Patched seahub_settings.py: set $ENTRY"
|
|
||||||
echo -e "\n$ENTRY" >> "$CONF"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
function last_update {
|
|
||||||
if [ -e "$LATEST/install_date" ]; then
|
|
||||||
date -d $(cat "$LATEST/install_date") "+%s"
|
|
||||||
else
|
|
||||||
echo 0
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function timestamp {
|
|
||||||
date +%Y-%m-%d > "$LATEST/install_date"
|
|
||||||
}
|
|
||||||
|
|
||||||
function revert {
|
|
||||||
rm -rf "$LATEST"
|
|
||||||
}
|
|
||||||
|
|
||||||
### Setup ###
|
|
||||||
|
|
||||||
if [ ! -e "$LATEST" ]; then
|
|
||||||
(>&2 echo This appears to be the fist run, installing..)
|
|
||||||
trap revert ERR
|
|
||||||
mkdir -p $SEAF/conf
|
|
||||||
cp -f /etc/seafile/* /opt/seafile/conf/
|
|
||||||
/usr/local/sbin/upgrade main
|
|
||||||
RES="$?"
|
|
||||||
if [ "$RES" -eq 126 ]; then
|
|
||||||
(>&2 echo Entering setup)
|
|
||||||
INSTALLDIR=$(cat $SEAF/ahead)
|
|
||||||
rm -rf $SEAF/ahead
|
|
||||||
SETUP_ARGS="auto -n ${SEAF_NAME:-$(hostname)} -i $(hostname) -p 8082"
|
|
||||||
if [ ! -z "$SEAF_MYSQL" ]; then
|
|
||||||
$INSTALLDIR/setup-seafile-mysql.sh $SETUP_ARGS -o $SEAF_MYSQL_HOST -t ${SEAF_MYSQL_PORT:-3306} -u "${SEAF_MYSQL_USER:-root}" \
|
|
||||||
-w "$SEAF_MYSQL_PASS" -r "${SEAF_MYSQL_ROOT_PASS:-$SEAF_MYSQL_PASS}" -c ${SEAF_MYSQL_DB_CCNET:-ccnet} -s ${SEAF_MYSQL_DB_SEAF:-seafile} \
|
|
||||||
-b ${SEAF_MYSQL_DB_HUB:-seahub}
|
|
||||||
else
|
|
||||||
$INSTALLDIR/setup-seafile.sh $SETUP_ARGS
|
|
||||||
fi
|
|
||||||
cp -f /etc/seafile/* /opt/seafile/conf/
|
|
||||||
timestamp
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
if [ ! "$RES" -eq 1 ]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
(>&2 echo "Installation failed")
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
LAST_UPGRADE=$(last_update)
|
|
||||||
SINCE_UPGRADE=$(((($(date "+%s") - $LAST_UPGRADE))/(60*60*24)))
|
|
||||||
if [ $LAST_UPGRADE -gt 0 ] && [ "0$SEAF_UPGRADE_INTERVAL" -gt 0 ] && [ $SINCE_UPGRADE -gt "0$SEAF_UPGRADE_INTERVAL" ]; then
|
|
||||||
(>&2 echo "It's been $SINCE_UPGRADE days since the last Upgrade\nPERFORMING UPGRADE NOW\nSet SEAF_UPGRADE_INTERVAL=0 disable automatic updates")
|
|
||||||
/usr/local/sbin/upgrade main
|
|
||||||
timestamp
|
|
||||||
fi
|
|
||||||
patch_seahub_conf
|
|
||||||
fi
|
|
7
scripts/start-ngix.sh
Normal file
7
scripts/start-ngix.sh
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "$SEAF_FRONTEND" | IFS=';' while read IP; do
|
||||||
|
echo "set_real_ip_from $IP;" >> /etc/nginx/realip.conf
|
||||||
|
done
|
||||||
|
#This script is only supposed to run once
|
||||||
|
rm -f $0 && ln -s /usr/sbin/nginx $0 && /usr/sbin/nginx
|
@ -8,7 +8,10 @@ version_re = "seafile-server-?_?([\d\.]*)"
|
|||||||
seaf_home = os.environ["SEAF"] or "/opt/seafile"
|
seaf_home = os.environ["SEAF"] or "/opt/seafile"
|
||||||
|
|
||||||
def available(page):
|
def available(page):
|
||||||
arch = platform.machine()
|
(arch, _) = platform.architecture()
|
||||||
|
if arch == "64bit":
|
||||||
|
arch = "x86-64"
|
||||||
|
else: arch = "i386"
|
||||||
link = "http(s?):\/\/[^ \"\(\)\<\>]*%s_?%s.tar.gz" % (version_re ,arch)
|
link = "http(s?):\/\/[^ \"\(\)\<\>]*%s_?%s.tar.gz" % (version_re ,arch)
|
||||||
resp = requests.get(page)
|
resp = requests.get(page)
|
||||||
available = {}
|
available = {}
|
||||||
@ -52,13 +55,11 @@ def perform_upgrade_command(version,mysql=False,yes=True):
|
|||||||
scripts = os.path.join(seaf_home,"seafile-server-%s" % version, "upgrade")
|
scripts = os.path.join(seaf_home,"seafile-server-%s" % version, "upgrade")
|
||||||
current = map(lambda x: int(x), current_version().split("."))
|
current = map(lambda x: int(x), current_version().split("."))
|
||||||
target = map(lambda x: int(x), version.split("."))
|
target = map(lambda x: int(x), version.split("."))
|
||||||
|
print len(current) == 1 and current[0] == 0
|
||||||
if len(current) == 1 and current[0] == 0: #Not installed
|
if len(current) == 1 and current[0] == 0: #Not installed
|
||||||
#print("Running installer.")
|
print("Running installer.")
|
||||||
#if not call(["seafile-server","setup", os.path.join(seaf_home,"seafile-server-%s" % version) ],stdout=sys.stdout, stdin=sys.stdin):
|
if not call(["seafile-server","setup", os.path.join(seaf_home,"seafile-server-%s" % version) ],stdout=sys.stdout, stdin=sys.stdin):
|
||||||
# sys.exit(1)
|
sys.exit(1)
|
||||||
crumb = open(seaf_home + "/ahead", 'w')
|
|
||||||
crumb.write(os.path.join(seaf_home,"seafile-server-%s" % version))
|
|
||||||
crumb.close()
|
|
||||||
sys.exit(126)
|
sys.exit(126)
|
||||||
script_re = "^upgrade_(\d+).(\d+)_(\d+).(\d+)\.sh$"
|
script_re = "^upgrade_(\d+).(\d+)_(\d+).(\d+)\.sh$"
|
||||||
run = []
|
run = []
|
||||||
@ -92,12 +93,9 @@ def download(url, version):
|
|||||||
return dest
|
return dest
|
||||||
else:
|
else:
|
||||||
print("Download failed")
|
print("Download failed")
|
||||||
sys.exit(1)
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def install_command(url, version):
|
def install_command(url, version):
|
||||||
if platform.machine() == "armv7l":
|
|
||||||
url = "https://github.com/haiwen/seafile-rpi/releases/download/v%s/seafile-server_%s_stable_pi.tar.gz" % (version,version)
|
|
||||||
pkg = download(url, version)
|
pkg = download(url, version)
|
||||||
tmp = tempfile.mkdtemp()
|
tmp = tempfile.mkdtemp()
|
||||||
if pkg and call(["/bin/sh", "-c", 'cd %s; tar xzvf %s' % (tmp, pkg)]) == 0:
|
if pkg and call(["/bin/sh", "-c", 'cd %s; tar xzvf %s' % (tmp, pkg)]) == 0:
|
||||||
|
@ -20,6 +20,7 @@ ExecStartPre=/bin/mkdir -p ${ROOT_DIR}
|
|||||||
ExecStart=/usr/bin/rkt --insecure-options=image run --uuid-file-save=${ROOT_DIR}/container.uuid --dns 8.8.8.8 --inherit-env --volume volume-opt-seafile,kind=host,source=${ROOT_DIR} --port 80-tcp:8080 \
|
ExecStart=/usr/bin/rkt --insecure-options=image run --uuid-file-save=${ROOT_DIR}/container.uuid --dns 8.8.8.8 --inherit-env --volume volume-opt-seafile,kind=host,source=${ROOT_DIR} --port 80-tcp:8080 \
|
||||||
docker://repo.shimun.net/shimun/seafile --environment=SEAF_UPGRADE_INTERVAL=${SEAF_UPGRADE_INTERVAL}
|
docker://repo.shimun.net/shimun/seafile --environment=SEAF_UPGRADE_INTERVAL=${SEAF_UPGRADE_INTERVAL}
|
||||||
ExecStartPost=/bin/bash -c "echo 'rkt enter --app=seafile $(cat '${ROOT_DIR}'/container.uuid)' > ${ROOT_DIR}/enter.sh && chmod +x ${ROOT_DIR}/enter.sh"
|
ExecStartPost=/bin/bash -c "echo 'rkt enter --app=seafile $(cat '${ROOT_DIR}'/container.uuid)' > ${ROOT_DIR}/enter.sh && chmod +x ${ROOT_DIR}/enter.sh"
|
||||||
|
ExecStopPre=/bin/bash -c "rkt enter --app=seafile $(cat ${ROOT_DIR}/container.uuid) 'seafile-server stop'"
|
||||||
ExecStopPost=/bin/bash -c "rkt rm $(cat ${ROOT_DIR}/container.uuid)"
|
ExecStopPost=/bin/bash -c "rkt rm $(cat ${ROOT_DIR}/container.uuid)"
|
||||||
ExecStopPost=/bin/rm ${ROOT_DIR}/container.uuid
|
ExecStopPost=/bin/rm ${ROOT_DIR}/container.uuid
|
||||||
KillMode=mixed
|
KillMode=mixed
|
||||||
|
Reference in New Issue
Block a user