1
0
mirror of https://github.com/cp6/my-idlers.git synced 2024-11-16 15:33:44 +01:00
Go to file
cp6 0ad542afb4 Updated readme for 2.1.7
Updated readme for 2.1.7
2022-10-13 16:09:30 +11:00
.github/workflows Enable Docker image rebuild on every push, add PikaPods hosting option. 2022-05-17 16:36:07 +04:00
app Updated RouteServiceProvider::HOME for '/' 2022-10-13 16:04:26 +11:00
bootstrap Initial v2 commit 2022-02-18 15:48:32 +11:00
config Initial v2 commit 2022-02-18 15:48:32 +11:00
database Added order by for index actions 2022-10-04 14:35:46 +11:00
public Updated style max container width 2022-07-20 13:12:46 +10:00
resources Removed welcome and dashboard views 2022-10-13 16:03:54 +11:00
routes Removed dashboard redirect from routes 2022-10-13 16:04:50 +11:00
storage Revert "Revert "V2 (Laravel re-make)"" 2022-03-06 02:29:58 +11:00
tests Revert "Revert "V2 (Laravel re-make)"" 2022-03-06 02:29:58 +11:00
.editorconfig Initial v2 commit 2022-02-18 15:48:32 +11:00
.env.example Initial v2 commit 2022-02-18 15:48:32 +11:00
.gitattributes Initial v2 commit 2022-02-18 15:48:32 +11:00
.gitignore Added clockwork to git ignore 2022-05-29 16:46:24 +10:00
.styleci.yml Initial v2 commit 2022-02-18 15:48:32 +11:00
artisan Initial v2 commit 2022-02-18 15:48:32 +11:00
composer.json Added doctrine/dbal 2022-09-26 13:22:52 +10:00
composer.lock Added doctrine/dbal 2022-09-26 13:22:52 +10:00
Dockerfile Fix run.sh to run setup only once, add Docker example in README, add Workflow to update container 2022-03-14 06:19:11 +00:00
LICENSE Initial commit 2021-01-20 14:35:05 +11:00
package-lock.json Initial v2 commit 2022-02-18 15:48:32 +11:00
package.json Initial v2 commit 2022-02-18 15:48:32 +11:00
phpunit.xml Initial v2 commit 2022-02-18 15:48:32 +11:00
README.md Updated readme for 2.1.7 2022-10-13 16:09:30 +11:00
run.sh Avoid overwriting DB 2022-03-14 06:51:41 +00:00
server.php Initial v2 commit 2022-02-18 15:48:32 +11:00
tailwind.config.js Initial v2 commit 2022-02-18 15:48:32 +11:00
webpack.mix.js Initial v2 commit 2022-02-18 15:48:32 +11:00

My idlers

A web app for displaying, organizing and storing information about servers (VPS), shared & reseller hosting, seed boxes, domains, DNS and misc services.

Despite what the name infers this self hosted web app isn't just for storing idling server information. By using a YABs output you can get disk & network speed values along with GeekBench 5 scores to do easier comparing and sorting.

Generic badge Generic badge Generic badge Generic badge

Demo site

Note: Create, Update and Delete are disabled on demo site.

Project sponsor

Cloud Five Limited for providing the hosting for demo installation.

2.1.7 changes (13th October 2022):

You can no longer use the form to submit YABS results

yabs.sh now has JSON formatted response and can POST the output directly from calling the script.

With My idlers you can use your API key and the server id to directly POST the benchmark result

http://domain.com/api/yabs/tnSJLyhz/USERAPIKEYISHERE

Example yabs.sh call to POST the result

curl -sL yabs.sh | bash -s -- -s "http://domain.com/api/yabs/tnSJLyhz/USERAPIKEYISHERE"

Please run the following if updating from existing install:

php artisan migrate
php artisan route:cache
php artisan cache:clear
  • Added default order by (Change this in settings)
  • Added dual success & error response alert component
  • Added new response alert component into views
  • Added input parameters for compareYabs()
  • Updated and fixed server_type and virt mix-ups
  • Updated views title @section layout
  • Updated cache timeframes
  • Updated RouteServiceProvider::HOME for '/'
  • Updated the server choose compare method
  • Fixed update server ssh port
  • Fixed server due in X days being null
  • Removed unused with 'labels.label' in queries
  • Removed unused welcome and dashboard views
  • Removed dashboard redirect to / from routes file
  • Removed now unused success & error alert components

Requires

  • PHP 8.1

Features

  • Add servers
  • Add shared hosting
  • Add domains
  • Auto get IP's from hostname
  • Check up/down status
  • Get YABs data from output
  • Compare 2 servers
  • Save & view YABs output
  • Update YABs disk & network results
  • Next due date system
  • Multi currency compatibility
  • Multi payment-term compatibility
  • Pre-defined operating systems
  • Assign labels
  • Assign server type (KVM, OVZ, LXC & dedi)
  • Easy to edit values

Install

  • Run git clone https://github.com/cp6/my-idlers.git into your directory of choice
  • Run composer install
  • Run cp .env.example .env
  • Edit (If needed) MySQL details in .env
  • Run php artisan key:generate
  • Run php artisan make:database my_idlers to create database
  • Run php artisan migrate:fresh --seed to create tables and seed data
  • Run php artisan serve

Updating

If you already have at least version 2.0 installed:

  • Run git clone https://github.com/cp6/my-idlers.git
  • Run composer install
  • Run php artisan migrate
  • Run php artisan route:cache
  • Run php artisan cache:clear

Run using Docker

docker run \
  -p 8000:8000\
  -e APP_URL=https://... \
  -e DB_HOST=... \
  -e DB_DATABASE=... \
  -e DB_USERNAME=... \
  -e DB_PASSWORD=... \
  ghcr.io/cp6/my-idlers:latest
docker exec ... php artisan migrate:fresh --seed --force  # Set up database one time

Managed Hosting

Run with a single click on PikaPods.com

PikaPods

API endpoints

For GET requests the header must have Accept: application/json and your API token (found at /account)

Authorization : Bearer API_TOKEN_HERE

All API requests must be appended with api/ e.g mydomain.com/api/servers/gYk8J0a7

GET request:

dns/

dns/{id}

domains/

domains/{id}

servers

servers/{id}

labels/

labels/{id}

locations/

locations/{id}

misc/

misc/{id}

networkSpeeds/

networkSpeeds/{id}

os/

os/{id}

pricing/

pricing/{id}

providers/

providers/{id}

reseller/

reseller/{id}

seedbox/

seedbox/{id}

settings/

shared/

shared/{id}

POST requests

Create a server

/servers

Body content template

{
    "active": 1,
    "show_public": 0,
    "hostname": "test.domain.com",
    "ns1": "ns1",
    "ns2": "ns2",
    "server_type": 1,
    "os_id": 2,
    "provider_id": 10,
    "location_id": 15,
    "ssh_port": 22,
    "bandwidth": 2000,
    "ram": 2024,
    "ram_type": "MB",
    "ram_as_mb": 2024,
    "disk": 30,
    "disk_type": "GB",
    "disk_as_gb": 30,
    "cpu": 2,
    "has_yabs": 0,
    "was_promo": 1,
    "ip1": "127.0.0.1",
    "ip2": null,
    "owned_since": "2022-01-01",
    "currency": "USD",
    "price": 4.00,
    "payment_term": 1,
    "as_usd": 4.00,
    "usd_per_month": 4.00,
    "next_due_date": "2022-02-01"
}

PUT requests

Update a server

/servers/ID

Body content template

{
    "active": 1,
    "show_public": 0,
    "hostname": "test.domain.com",
    "ns1": "ns1",
    "ns2": "ns2",
    "server_type": 1,
    "os_id": 2,
    "provider_id": 10,
    "location_id": 15,
    "ssh_port": 22,
    "bandwidth": 2000,
    "ram": 2024,
    "ram_type": "MB",
    "ram_as_mb": 2024,
    "disk": 30,
    "disk_type": "GB",
    "disk_as_gb": 30,
    "cpu": 2,
    "has_yabs": 0,
    "was_promo": 1,
    "owned_since": "2022-01-01"
}

Update pricing

/pricing/ID

Body content template

{
    "price": 10.50,
    "currency": "USD",
    "term": 1
}

DELETE requests

Delete a server

/servers/ID

Notes

Public viewable listings

If enabled the public viewable table for your server listings is at /servers/public You can configure what you want viewable at /settings

Due date / due soon

This is simply just a reminder. If the homepage is requested (viewed) when a service is over due date it will get reset to plus the term from the old due date.

E.g if the term is a month then the due date gets updated to be 1 month from the old due date.

Supporting YABS commands:

curl -sL yabs.sh | bash

or

curl -sL yabs.sh | bash -s -- -r

Make sure YABs output starts at the first line which is:

# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Logo icons created by Freepik - Flaticon

Screenshots for v2

My idlers screenshot1

My idlers screenshot2

My idlers screenshot3

My idlers screenshot4

My idlers screenshot5

My idlers screenshot6

My idlers screenshot7

My idlers screenshot8