diff options
Diffstat (limited to 'ci/docker/eduvpnserver.docker')
| -rw-r--r-- | ci/docker/eduvpnserver.docker | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/ci/docker/eduvpnserver.docker b/ci/docker/eduvpnserver.docker new file mode 100644 index 0000000..fd9891d --- /dev/null +++ b/ci/docker/eduvpnserver.docker @@ -0,0 +1,76 @@ +FROM fedora:36 + +# This dockerfile was adapted from https://github.com/eduvpn/documentation/blob/v3/deploy_fedora.sh +# DO NOT USE THIS IN PRODUCTION, ONLY FOR TESTING + +# Install git to clone the documentation repo +RUN dnf -y install git + +WORKDIR /eduvpn + +# Clone the documentation +RUN git clone https://github.com/eduvpn/documentation + +WORKDIR /eduvpn/documentation + +# Checkout v3 branch +RUN git checkout v3 + +# import PGP key +RUN rpm --import resources/repo+v3@eduvpn.org.asc + +# configure repository +RUN echo -e '[eduVPN_v3]\n\ +name=eduVPN 3.x Packages (Fedora $releasever)\n\ +baseurl=https://repo.eduvpn.org/v3/rpm/fedora-$releasever-$basearch\n\ +gpgcheck=1\n\ +gpgkey=https://repo.tuxed.net/fkooman+repo@tuxed.net.asc\n\ +enabled=1'\ +>> /etc/yum.repos.d/eduVPN_v3.repo + +# Install dependencies +RUN dnf -y install mod_ssl php-opcache httpd iptables-nft pwgen cronie \ + iptables-services php-fpm php-cli policycoreutils-python-utils chrony \ + ipcalc tmux wget iproute + +# Install vpn packages +RUN dnf -y install vpn-server-node vpn-user-portal vpn-maint-scripts + +# Set webserver name +ARG WEB_FQDN=eduvpnserver + +# Copy and apply configurations +RUN cp resources/ssl.fedora.conf /etc/httpd/conf.d/ssl.conf +RUN cp resources/localhost.fedora.conf /etc/httpd/conf.d/localhost.conf +RUN cp resources/vpn.example.fedora.conf "/etc/httpd/conf.d/${WEB_FQDN}.conf" + +# Otherwise we get: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.20.0.6. Set the 'ServerName' directive globally to suppress this message +RUN echo "ServerName 127.0.0.1" >> /etc/httpd/conf/httpd.conf + +RUN sed -i "s/vpn.example/${WEB_FQDN}/" "/etc/httpd/conf.d/${WEB_FQDN}.conf" +RUN sed -i "s/vpn.example/${WEB_FQDN}/" "/etc/vpn-user-portal/config.php" + +# Update ip ranges +RUN sed -i "s|10.42.42.0|$(ipcalc -4 -r 24 -n --no-decorate)|" "/etc/vpn-user-portal/config.php" +RUN sed -i "s|fd42::|$(ipcalc -6 -r 64 -n --no-decorate)|" "/etc/vpn-user-portal/config.php" +RUN sed -i "s|10.43.43.0|$(ipcalc -4 -r 24 -n --no-decorate)|" "/etc/vpn-user-portal/config.php" +RUN sed -i "s|fd43::|$(ipcalc -6 -r 64 -n --no-decorate)|" "/etc/vpn-user-portal/config.php" + +# Update secrets +RUN cp /etc/vpn-user-portal/keys/node.0.key /etc/vpn-server-node/keys/node.key + +# Copy self signed cert and key +COPY ./ci/docker/selfsigned/${WEB_FQDN}.key /etc/pki/tls/private/${WEB_FQDN}.key +COPY ./ci/docker/selfsigned/${WEB_FQDN}.crt /etc/pki/tls/certs/${WEB_FQDN}.crt + +# Add the start script and expiry script +WORKDIR /eduvpn/server +ADD ci/docker/starteduvpn.sh /eduvpn/server +ADD ci/docker/replaceexpiry.sh /eduvpn/server +ADD ci/docker/healthcheck.sh /eduvpn/server + +RUN chmod +x ./starteduvpn.sh +RUN chmod +x ./replaceexpiry.sh +RUN chmod +x ./healthcheck.sh + +CMD ["./starteduvpn.sh"] |
