summaryrefslogtreecommitdiff
path: root/setup-acf.in
diff options
context:
space:
mode:
Diffstat (limited to 'setup-acf.in')
-rw-r--r--setup-acf.in111
1 files changed, 111 insertions, 0 deletions
diff --git a/setup-acf.in b/setup-acf.in
new file mode 100644
index 0000000..3769a12
--- /dev/null
+++ b/setup-acf.in
@@ -0,0 +1,111 @@
+#!/bin/sh
+
+PROGRAM=setup-acf
+VERSION=@VERSION@
+
+PREFIX=
+. $PREFIX/lib/libalpine.sh
+
+usage() {
+ echo "$PROGRAM [-ahn] [-l address] [PACKAGE...]"
+ exit 0;
+}
+
+pkgs="acf-core acf-alpine-baselayout acf-apk-tools"
+
+while getopts "ahl:n" opt ; do
+ case $opt in
+ a) pkgs=`apk_fetch -l | grep ^acf-`;;
+ h) usage;;
+ l) address="$OPTARG";;
+ n) create_passwd=no;;
+ *) usage;;
+ esac
+done
+shift `expr $OPTIND - 1`
+
+while [ $# -gt 0 ]; do
+ pkgs="$pkgs acf-$1"
+ shift
+done
+
+if [ "$create_passwd" != "no" ]; then
+ askpassword "root ACF"
+ if [ -f /etc/acf/passwd ]; then
+ mv /etc/acf/passwd /etc/acf/passwd.backup
+ fi
+ # this will show password on process list but we assume user is alone
+ # on the box at this stage
+ _md5passwd=$(echo -n "$_password" | md5sum)
+ echo "root:$_md5passwd:Admin account:ADMIN" >/etc/acf/passwd
+fi
+
+# install packages
+apk_add mini_httpd $pkgs || exit 1
+
+# setup mini_httpd and start it
+if [ -d /var/www/localhost/htdocs ]; then
+ mv /var/www/localhost/htdocs /var/www/localhost/htdocs.old
+fi
+mkdir -p /var/www/localhost/
+ln -s /usr/share/acf/www/ /var/www/localhost/htdocs
+lbu add /var/www/localhost/htdocs
+
+
+SSLDIR=/etc/ssl/mini_httpd
+SSLCNF=$SSLDIR/mini_httpd.cnf
+KEYFILE=$SSLDIR/server.key
+CRTFILE=$SSLDIR/server.crt
+PEMFILE=$SSLDIR/server.pem
+
+if [ -f $PEMFILE ]; then
+ echo "$PEMFILE already exist."
+else
+ mkdir -p $SSLDIR
+cat >$SSLCNF <<EOF
+[ req ]
+default_bits = 1024
+encrypt_key = yes
+distinguished_name = req_dn
+x509_extensions = cert_type
+prompt = no
+
+[ req_dn ]
+OU=HTTPS server
+CN=$(hostname)
+emailAddress=postmaster@example.com
+
+[ cert_type ]
+nsCertType = server
+EOF
+ echo "Generating certificates for HTTPS..."
+ openssl genrsa 2048 > $KEYFILE
+ openssl req -new -x509 -nodes -sha1 -days 3650 -key $KEYFILE \
+ -config $SSLCNF > $CRTFILE
+ cat $KEYFILE >> $CRTFILE
+ rm $KEYFILE
+ mv $CRTFILE $PEMFILE
+fi
+
+cat >/etc/mini_httpd.conf <<EOF
+nochroot
+dir=/var/www/localhost/htdocs
+user=nobody
+logfile=/var/log/mini_httpd.log
+cgipat=cgi-bin**
+certfile=$PEMFILE
+port=443
+ssl
+EOF
+if [ -n "$address" ]; then
+ echo "host=$address" >> /etc/mini_httpd.conf
+fi
+
+cat >/etc/conf.d/mini_httpd <<EOF
+MINI_HTTPD_OPTS="-C /etc/mini_httpd.conf"
+MINI_HTTPD_DOCROOT=/var/www/localhost/htdocs
+EOF
+
+rc-update -q add mini_httpd default
+/etc/init.d/mini_httpd restart
+