Skip to content
This repository was archived by the owner on Jun 15, 2021. It is now read-only.

Commit 8a5a09b

Browse files
committed
add backup and restore steps for user data
1 parent 539b53f commit 8a5a09b

File tree

4 files changed

+47
-12
lines changed

4 files changed

+47
-12
lines changed

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ RUN \
1616
apt-get install -y \
1717
iptables \
1818
net-tools \
19-
rsync && \
19+
rsync \
20+
sqlite3 && \
2021
echo "**** download openvpn-as ****" && \
2122
if [ -z ${OPENVPNAS_VERSION+x} ]; then \
2223
OPENVPNAS_VERSION=$(curl -w "%{url_effective}" -ILsS -o /dev/null \

root/etc/cont-init.d/30-config

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,49 @@ if [ ! -c /dev/net/tun ]; then
88
mknod /dev/net/tun c 10 200
99
fi
1010

11-
copy config or update
11+
install or update openvpn-as
1212
if [ -f /openvpn/openvpn.deb ]; then
13-
echo "installing openvpn"
1413
rm -rf /usr/local/openvpn_as
1514
ln -s /config /usr/local/openvpn_as
16-
dpkg -i /openvpn/openvpn.deb
17-
rm /openvpn/openvpn.deb
18-
apt-get clean
19-
rm -rf /tmp
15+
if [ ! -f /config/etc/as.conf ]; then
16+
echo "installing openvpn-as for the first time"
17+
dpkg -i /openvpn/openvpn.deb
18+
rm /openvpn/openvpn.deb
19+
else
20+
echo "existing data found, reinstalling openvpn-as"
21+
mkdir -p /config/backup
22+
cd /config/etc/db
23+
DBFILESBAK=*.db
24+
for f in $DBFILESBAK
25+
do
26+
echo "backing up $f"
27+
sqlite3 "$f" .dump > /config/backup/"$f"
28+
done
29+
echo "backing up as.conf"
30+
cp /config/etc/as.conf /config/backup/as.conf
31+
cd /config
32+
shopt -s extglob
33+
rm -rf !("backup"|"log")
34+
shopt -u extglob
35+
dpkg -i /openvpn/openvpn.deb
36+
rm /openvpn/openvpn.deb
37+
sed -i \
38+
-e 's#=openvpn_as#=abc#g' \
39+
-e 's#~/tmp#/openvpn/tmp#g' \
40+
-e 's#~/sock#/openvpn/sock#g' \
41+
/usr/local/openvpn_as/etc/as_templ.conf
42+
cd /config/backup
43+
DBFILERES=*.db
44+
for f in $DBFILERES
45+
do
46+
echo "restoring $f"
47+
rm -f /config/etc/db/"$f"
48+
sqlite3 </config/backup/"$f" /config/etc/db/"$f"
49+
done
50+
rm -f /config/etc/as.conf
51+
echo "restoring as.conf"
52+
cp /config/backup/as.conf /config/etc/as.conf
53+
rm -rf /config/backup
2054
fi
2155

2256
# clear old sock files

root/etc/cont-init.d/50-interface

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ else
66
SET_INTERFACE=$INTERFACE
77
fi
88

9-
/config/scripts/confdba -mk "admin_ui.https.ip_address" -v "$SET_INTERFACE"
10-
/config/scripts/confdba -mk "cs.https.ip_address" -v "$SET_INTERFACE"
11-
/config/scripts/confdba -mk "vpn.daemon.0.listen.ip_address" -v "$SET_INTERFACE"
12-
/config/scripts/confdba -mk "vpn.daemon.0.server.ip_address" -v "$SET_INTERFACE"
9+
/usr/local/openvpn_as/scripts/confdba -mk "admin_ui.https.ip_address" -v "$SET_INTERFACE"
10+
/usr/local/openvpn_as/scripts/confdba -mk "cs.https.ip_address" -v "$SET_INTERFACE"
11+
/usr/local/openvpn_as/scripts/confdba -mk "vpn.daemon.0.listen.ip_address" -v "$SET_INTERFACE"
12+
/usr/local/openvpn_as/scripts/confdba -mk "vpn.daemon.0.server.ip_address" -v "$SET_INTERFACE"
1313

root/etc/services.d/openvpn/run

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#!/usr/bin/with-contenv bash
22

3-
/config/scripts/openvpnas --nodaemon --umask=0077 --pidfile=/openvpn/pid/openvpn.pid --logfile=/config/log/openvpn.log
3+
/usr/local/openvpn_as/scripts/openvpnas --nodaemon --umask=0077 --pidfile=/openvpn/pid/openvpn.pid --logfile=/config/log/openvpn.log

0 commit comments

Comments
 (0)