Updated HOME prefix

This commit is contained in:
Henry Whitaker
2020-08-03 11:46:03 +01:00
parent 538305470d
commit be5d1fa2ef
4 changed files with 29 additions and 110 deletions

119
README.md
View File

@@ -27,9 +27,6 @@ docker create \
--name=speedtest \ --name=speedtest \
-p 8765:80 \ -p 8765:80 \
-v /path/to/data:/config \ -v /path/to/data:/config \
-e SLACK_WEBHOOK=webhook `#optional` \
-e PUID=uid `#optional` \
-e PGID=gid `#optional` \
-e OOKLA_EULA_GDPR=true \ -e OOKLA_EULA_GDPR=true \
--restart unless-stopped \ --restart unless-stopped \
henrywhitaker3/speedtest-tracker henrywhitaker3/speedtest-tracker
@@ -42,7 +39,7 @@ version: '3.3'
services: services:
speedtest: speedtest:
container_name: speedtest container_name: speedtest
image: henrywhitaker3/speedtest-tracker:dev image: henrywhitaker3/speedtest-tracker
ports: ports:
- 8765:80 - 8765:80
volumes: volumes:
@@ -51,8 +48,6 @@ services:
- TZ= - TZ=
- PGID= - PGID=
- PUID= - PUID=
- SLACK_WEBHOOK=
- BASE_PATH=/speedtest
- OOKLA_EULA_GDPR=true - OOKLA_EULA_GDPR=true
logging: logging:
driver: "json-file" driver: "json-file"
@@ -62,6 +57,15 @@ services:
restart: unless-stopped restart: unless-stopped
``` ```
#### Images
There are 2 different docker images:
| Tag | Description |
| :----: | --- |
| latest | This is the stable release of the app |
| dev | This release has more features, although could have some bugs |
#### Parameters #### Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
@@ -79,105 +83,4 @@ Container images are configured using parameters passed at runtime (such as thos
### Manual Install ### Manual Install
#### Installing Dependencies For manual installtions, please follow the instrucitons [here](https://github.com/henrywhitaker3/Speedtest-Tracker/wiki/Manual-Installation).
This program has some dependencies, to install them you need to run the following:
```bash
sudo apt update
sudo apt install php-common php7.3 php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline php-xml php-sqlite3 php-zip php-mbstring composer python3 python3-pip git
```
```bash
sudo apt install curl
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install nodejs
```
Then, download the code by running:
```bash
git clone https://github.com/henrywhitaker3/Speedtest-Tracker.git
```
Now you need to download Ookla's speedtest binary for your system from [here](https://www.speedtest.net/apps/cli). For a x86_64 system:
```bash
wget https://bintray.com/ookla/download/download_file?file_path=ookla-speedtest-1.0.0-x86_64-linux.tgz -O speedtest.tgz
tar zxvf speedtest.tgz
mv speedtest Speedtest-Tracker/app/Bin/
```
Install the composer and npm dependencies:
```bash
composer install
npm install && npm run production
```
#### Setting up the database
Run the following to set your database variables:
```bash
cp .env.example .env
```
Then update the `DB_DATABASE` value with the absolute path of your install, followed by `/database/speed.db`.
Finally, run the following to setup the tables in the database:
```bash
php artisan key:generate
php artisan migrate
```
Now you need to accept Ookla's EULA by running:
```bash
php artisan speedtest:eula
```
Now run the following to make sure everything has been setup properly (it should output a speedtest result):
```bash
php artisan speedtest:run
```
#### Scheduling Setup
To get speed test results every hour, you need to add a cronjob, run `sudo crontab -e` and add an entry with the following (with the path you your install):
```bash
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
```
#### Queue Setup
```bash
sudo apt install supervisor
```
```bash
sudo vim /etc/supervisor/conf.d/laravel-worker.conf
```
Add the following, updating the `command` and user `values`:
```bash
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/project/artisan queue:work
autostart=true
autorestart=true
user=<user>
numprocs=1
redirect_stderr=true
```
Then run:
```bash
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl restart all
```

View File

@@ -38,6 +38,6 @@ class AcceptEULACommand extends Command
*/ */
public function handle() public function handle()
{ {
shell_exec('HOME=' . base_path() . '/ && ' . app_path() . '/Bin/speedtest --accept-license --accept-gdpr'); shell_exec(config('speedtest.home') . ' && ' . app_path() . '/Bin/speedtest --accept-license --accept-gdpr');
} }
} }

View File

@@ -80,7 +80,7 @@ class SpeedtestHelper {
$server = SettingsHelper::get('server')['value']; $server = SettingsHelper::get('server')['value'];
$binPath = app_path() . DIRECTORY_SEPARATOR . 'Bin' . DIRECTORY_SEPARATOR . 'speedtest'; $binPath = app_path() . DIRECTORY_SEPARATOR . 'Bin' . DIRECTORY_SEPARATOR . 'speedtest';
$homePrefix = 'HOME=' . base_path() . '/ && '; $homePrefix = config('speedtest.home') . ' && ';
if($server != '' && $server != false) { if($server != '' && $server != false) {
$server = explode(',', $server); $server = explode(',', $server);

View File

@@ -9,6 +9,22 @@ return [
'version' => '1.7.15', 'version' => '1.7.15',
/*
|--------------------------------------------------------------------------
| Installation type
|--------------------------------------------------------------------------
*/
'install' => 'manual',
/*
|--------------------------------------------------------------------------
| Path for HOME variable
|--------------------------------------------------------------------------
*/
'home' => 'HOME=' . base_path() . DIRECTORY_SEPARATOR,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| GitHub Repo Variables | GitHub Repo Variables