diff --git a/README.md b/README.md index 432a61f..09b2cc9 100644 --- a/README.md +++ b/README.md @@ -27,16 +27,14 @@ made user-friendly for everyone to use. It allows you to execute network related For this installation we will assume that we are working on AlmaLinux 8 or 9. Warning: This guide does not cover any security hardening or rate limiting. Note: These steps also work with AlmaLinux 9, but it will install PHP 8 instead of 7. -1. Install the required network tools: `dnf install mtr traceroute iperf3 -y`. +1. Install the required network tools: `dnf install mtr traceroute -y`. 2. Install the web server with PHP (by default it will install 7.2 on RHEL 8): `dnf install httpd mod_ssl php php-posix -y`. 3. Enable and start Apache/PHP-FPM: `systemctl enable --now httpd && systemctl enable --now php-fpm`. 4. Let's help MTR to work, execute the following command: `ln -s /usr/sbin/mtr /usr/bin/mtr` and also mtr helper called mtr-packet: `ln -s /usr/sbin/mtr-packet /usr/bin/mtr-packet`. 5. You *must* configure SELinux before this all works, or you can disable SELinux using `setenforce 0` and possibly make it permanent: `nano /etc/selinux/config` change to `SELINUX=disabled`. -6. Launch iPerf3 as a daemon: `iperf3 -sD -p 5201`. -7. (Optional) You might want to add a systemd unit file for iPerf3, so it automatically starts when the system boots up. -8. Upload the contents of the ZIP to /var/www/html/. -9. Rename config.dist.php to config.php and adjust the settings. -10. (Optional) You might want to enable SSL using LetsEncrypt, take a look at [acme.sh](https://github.com/acmesh-official/acme.sh). +6. Upload the contents of the ZIP to /var/www/html/. +7. Rename config.dist.php to config.php and adjust the settings. +8. (Optional) You might want to enable SSL using LetsEncrypt, take a look at [acme.sh](https://github.com/acmesh-official/acme.sh). #### Docker For installation using Docker, follow these steps and run the commands on the target machine where the application should be installed: @@ -49,6 +47,24 @@ For installation using Docker, follow these steps and run the commands on the ta 6. Create and start the containers: `docker compose up -d`. 7. Afterward, the Looking Glass should be reachable from your web browser at `http://$your_server_ip/`! +### iPerf3 Installation (Optional) +> It is recommended to install iPerf3 on a different server from your looking glass to avoid network congestion. + +#### Manual +Again, we will assume that we are working on AlmaLinux 8 or 9. +1. Install iPerf3: `dnf install iperf3 -y` +2. Launch iPerf3 as a daemon: `iperf3 -sD -p 5201`. +3. (Optional) You might want to add a systemd unit file for iPerf3, so it automatically starts when the system boots up. +4. Locate the two lines containing `LG_SPEEDTEST_CMD_INCOMING` and `LG_SPEEDTEST_CMD_OUTGOING` respectively in `config.php`. +5. Change `hostname` in these lines to the IPv4 address of your iPerf3 server. + +#### Docker +1. Uncomment the section for `iperf3` in `docker-compose.yml` if you want iPerf3 and the looking glass to be on the same server. +Otherwise, please copy the `iperf3` section and save it as `docker-compose.yml` on another server with Docker and Docker Compose installed. +2. Start the iPerf3 container: `docker compose up -d`. +3. Locate the two lines containing `LG_SPEEDTEST_CMD_INCOMING` and `LG_SPEEDTEST_CMD_OUTGOING` respectively in `docker/php-fpm/src/config.php`. +5. Change `hostname` in these lines to the IPv4 address of your iPerf3 server. + ### Upgrading Upgrading from a previous version is easy, simply overwrite your current installation with the new files. Then update your config.php accordingly, the script will automatically check for missing variables. diff --git a/docker-compose.yml b/docker-compose.yml index 2ff24d1..a53c2b7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -34,11 +34,11 @@ services: # Uncomment if you require visitors to accept the Terms of Use; the value should be a link to the terms. # LG_TERMS: http://localhost/ - iperf3: - image: networkstatic/iperf3:latest - container_name: lg-iperf3 - network_mode: host - command: -s - tty: true - stdin_open: true - restart: unless-stopped + # iperf3: + # image: networkstatic/iperf3:latest + # container_name: lg-iperf3 + # network_mode: host + # command: -s + # tty: true + # stdin_open: true + # restart: unless-stopped