mirror of
https://github.com/henrywhitaker3/Speedtest-Tracker.git
synced 2025-12-24 06:28:27 +01:00
Updated HOME prefix
This commit is contained in:
119
README.md
119
README.md
@@ -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
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -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');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user