50d4b8b3e2
Added YABs compare Made YABs calls use relationship with disk and network table Update YABs views to reflect access changes in data Implemented cache for YABs Added Server function serverYabsAmount() to count YABs for a server id |
||
---|---|---|
.github/workflows | ||
app | ||
bootstrap | ||
config | ||
database | ||
public | ||
resources | ||
routes | ||
storage | ||
tests | ||
.editorconfig | ||
.env.example | ||
.gitattributes | ||
.gitignore | ||
.styleci.yml | ||
artisan | ||
composer.json | ||
composer.lock | ||
Dockerfile | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
phpunit.xml | ||
README.md | ||
run.sh | ||
server.php | ||
tailwind.config.js | ||
webpack.mix.js |
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.
Note: Create, Update and Delete are disabled on demo site.
Project sponsor
Cloud Five Limited for providing the hosting for demo installation.
2.1.1 changes (19th June 2022):
- Added compatability for YABs version v2022-06-11
- Added Create, Update and Delete servers with API
- Added Update pricing with API
- Updated YABs compatible versions check
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
Update
If you 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 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
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