From 2023a116c1657a87b75d5c02208ff4e4ac8b1094 Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Sat, 28 Nov 2020 21:59:07 +0100 Subject: [PATCH] Added files from @jdoty --- README.md | 2 +- docs/000-default-le-ssl.conf | 41 +++++++++++++++++++++++++ docs/installapache.md | 59 ++++++++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 docs/000-default-le-ssl.conf create mode 100644 docs/installapache.md diff --git a/README.md b/README.md index f5aed5d..1ae916f 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Make sure to support the developers by buying the choosen subscription for your This is _optional_. You can simply use the default instance of this API (host is noted inside the `setup.sh` script) and profit from "automatic" updates. Just transfer the `www` files inside a public accessible root-folder on your _seperate_ Apache (really everthing with PHP support works) webserver. Also make sure your instance has a valid SSL-certificate (Let's encrypt is enough), otherwise it may won't work. -When you want to test your instance, just open the public accessible url in your browser and append `/notification` to it - when you see some JSON with the text, everthing worked! +A example Apache install process can be found [here](docs/apacheinstall.md). When you want to test your instance, just open the public accessible url in your browser and append `/notification` to it - when you see some JSON with the text, everthing worked! ### Nett2Know ### * This modification will also block any communication to the Pritunl servers - so no calling home :) diff --git a/docs/000-default-le-ssl.conf b/docs/000-default-le-ssl.conf new file mode 100644 index 0000000..26c1909 --- /dev/null +++ b/docs/000-default-le-ssl.conf @@ -0,0 +1,41 @@ + + + # The ServerName directive sets the request scheme, hostname and port that + # the server uses to identify itself. This is used when creating + # redirection URLs. In the context of virtual hosts, the ServerName + # specifies what hostname must appear in the request's Host: header to + # match this virtual host. For the default virtual host (this file) this + # value is not decisive as it is used as a last resort host regardless. + # However, you must set it for any further virtual host explicitly. + #ServerName www.example.com + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html + + # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, + # error, crit, alert, emerg. + # It is also possible to configure the loglevel for particular + # modules, e.g. + #LogLevel info ssl:warn + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined +# Options Indexes FollowSymLinks MultiViews +# AllowOverride All +# Require all granted + + + Options Indexes FollowSymLinks MultiViews + AllowOverride All + Require all granted + + # For most configuration files from conf-available/, which are + # enabled or disabled at a global level, it is possible to + # include a line for only one particular virtual host. For example the + # following line enables the CGI configuration for this host only + # after it has been globally disabled with "a2disconf". + #Include conf-available/serve-cgi-bin.conf + + + + \ No newline at end of file diff --git a/docs/installapache.md b/docs/installapache.md new file mode 100644 index 0000000..cfe8dc5 --- /dev/null +++ b/docs/installapache.md @@ -0,0 +1,59 @@ +First you want to install the apache2. +`sudo apt-get install apache2` +After install all of the relevent apache modules: +`sudo apt-get -y install php7.4-mysql php7.4-curl php7.4-gd php7.4-intl php-pear php-imagick php7.4-imap php-memcache` +Then install certbot for free ssl certs : +`sudo apt-get install -y certbot` +After this then create a basic site config for the fake api server, do this by creating a file under /etc/apache2/sites-enabled/000-default-le-ssl.conf with the example conf ![example]docs/000-default-le-ssl.conf + +Then generate a ssl certificate for the website with certbot. +sudo certbot -d [mypublicallyaccessibledomain] +Once this is done you should check if you have all of the required loaded php modules required for this server. You can check this by running `sudo apache2ctl -M` +and the output should look be something like +`sudo apache2ctl -M +Loaded Modules: + core_module (static) + so_module (static) + watchdog_module (static) + http_module (static) + log_config_module (static) + logio_module (static) + version_module (static) + unixd_module (static) + access_compat_module (shared) + alias_module (shared) + auth_basic_module (shared) + authn_core_module (shared) + authn_file_module (shared) + authz_core_module (shared) + authz_host_module (shared) + authz_user_module (shared) + autoindex_module (shared) + deflate_module (shared) + dir_module (shared) + env_module (shared) + filter_module (shared) + http2_module (shared) + mime_module (shared) + mpm_prefork_module (shared) + negotiation_module (shared) + php7_module (shared) + proxy_module (shared) + proxy_fcgi_module (shared) + reqtimeout_module (shared) + rewrite_module (shared) + setenvif_module (shared) + socache_shmcb_module (shared) + ssl_module (shared) + status_module (shared)` + +then clone this repo if you've not done this already and cd into the root of the project +`git clone https://gitlab.simonmicro.de/simonmicro/pritunl-fake-api.git` +`cd ./pritunl-fake-api` + After this is done copy over the API server docs to the server and set permissions + `sudo cp -R ./www/* /var/html/` +` sudo chown www-data:www-data -R /var/www/html` +`sudo chmod -R 774 /var/www/html/ +Then restart apache2 to make sure all of the configuration is loaded +`sudo systemctl restart apache2` +Once this is done you should get a response when you visit https://[mydomain]/notification \ No newline at end of file