summaryrefslogtreecommitdiff
path: root/setup-acf
blob: e4f13f72510374fe7ec0d914ec348bb30d44ee9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/bin/sh

PROGRAM=setup-acf
VERSION=0.1

PREFIX=
. $PREFIX/lib/libalpine.sh

usage() {
	echo "$PROGRAM [-adh] [PACKAGE...]"
	exit 0;
}

pkgs="acf-core acf-alpine-baselayout"

while getopts "adh" opt ; do
	case $opt in
		a) pkgs=`apk_fetch -l | grep ^acf-`;;
		d) pkgs="$pkgs acf-devtools";;
		h) usage;;
		*) usage;;
	esac
done
shift `expr $OPTIND - 1`

while [ $# -gt 0 ]; do
	pkgs="$pkgs acf-$1"
	shift
done

# issue warning so user knows what he is doing
echo "!!!"
echo "!!! WARNING !!! WARNING !!! WARNING !!!"
echo "!!!"
echo "!!! The webinterface is in alpha stage and will give *anyone* on the"
echo "!!! network access to your box. The web interface is only for testing"
echo "!!! purposes and should only be used in isolated secure networks."
echo "!!!"
echo "!!! Please send suggestions and patches to acf@lists.alpinelinux.org"
echo "!!!"


echon "Are you sure you want continue? (y/n) [n] "
default_read  imsure n
if [ "$imsure" != y ]; then
	echo "Aborting."
	exit
fi

# install packages 
apk_add mini_httpd $pkgs || exit 1

# setup mini_httpd and start it
mkdir -p /var/www/localhost/
ln -s /usr/share/acf/www/ /var/www/localhost/htdocs


SSLDIR=/etc/ssl/mini_httpd
KEYFILE=$SSLDIR/server.key
CRTFILE=$SSLDIR/server.crt
PEMFILE=$SSLDIR/server.pem

if [ -f $PEMFILE ]; then
	echo "$PEMFILE already exist."
else
	echo "Generating certificates for HTTPS..."
	openssl genrsa 2048 > $KEYFILE
	openssl req -new -x509 -nodes -sha1 -days 3650 -key $KEYFILE > $CRTFILE
	cat $KEYFILE >> $CRTFILE
	rm $KEYFILE
	mv $CRTFILE $PEMFILE
fi

cat <<EOF >/etc/mini_httpd.conf
nochroot
dir=/var/www/localhost/htdocs
user=nobody
logfile=/var/log/mini_httpd.log
cgipat=cgi-bin**
certfile=$PEMFILE
port=443
ssl
EOF

cat <<EOF >/etc/conf.d/mini_httpd
MINI_HTTPD_OPTS="-C /etc/mini_httpd.conf"
MINI_HTTPD_DOCROOT=/var/www/localhost/htdocs
EOF

pidof mini_httpd >/dev/null && /etc/init.d/mini_httpd stop
rc_add -k mini_httpd
/etc/init.d/mini_httpd start