• Stars
    star
    217
  • Rank 182,446 (Top 4 %)
  • Language Blade
  • License
    MIT License
  • Created almost 4 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Web app for displaying, organizing and storing information about servers (VPS), shared hosting, reseller hosting, domains and more.

My idlers

A self hosted 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

Currently seeking a project sponsor

2.3.1 changes (17th August 2023):

  • Updated resource files
  • Updated composer.json
  • Updated packages.json
  • Fixed dashboard price summary including non active services

Please run the following if updating from existing install:

composer update
php artisan migrate
php artisan route:cache
php artisan cache:clear

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
  • Assign notes

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 composer update
  • 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

Adding a YABS benchmark

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

https://yourdomain.com/api/yabs/SERVERID/USERAPIKEYISHERE

Example yabs.sh call to POST the result:

curl -sL yabs.sh | bash -s -- -s "https://yourdomain.com/api/yabs/SERVERID/USERAPIKEYISHERE"

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

More Repositories

1

BunnyCDN-API

Featured packed PHP class for BunnyCDN pull zone, storage zone and video streaming API
PHP
41
star
2

Vultr-API-PHP-class

Vultr API v2 class wrapper for PHP
PHP
11
star
3

PHP-PDO-MySQL-cheat-sheet

A guide on the basics for using PDO PHP for MySQL with pre-prepared statements.
9
star
4

Simple-PHP-user-register-and-login-class

PHP OOP design with injection safe PDO MySQL queries, this is an easy to read class for a user registration, login and logout system
PHP
9
star
5

Reddit-video-downloader

Download videos hosted on v.redd.it as well as get post & media details
PHP
8
star
6

DayZ-Trader-Bank-logging

DayZ trader and bank logging web app for mod
PHP
4
star
7

Reddit-sub-tracker

Reddit sub trackers for information
PHP
2
star
8

streamable-download

PHP class to download streamable video
PHP
2
star
9

Twitch-API-class

Feature-packed PHP class for the latest Twitch API
PHP
2
star
10

servyrun

Servyrun allows you to run simple SSH & SFTP commands, do pings between your servers, download, upload & edit files, view database tables and column structures
JavaScript
2
star
11

Exilemod-player-banners

Creates configurable dynamic images from player data
PHP
2
star
12

twitter-profile-card

Responsive twitter profile card with data using API
PHP
1
star
13

corbp

corbp media application
JavaScript
1
star
14

steam-profile-card

Steam profile card with friends and games list
PHP
1
star
15

php-youtube-api

Just a PHP YouTube API wrapper for searching videos and getting channel/video/playlist data.
PHP
1
star
16

SolusVM-PHP-API-Class

PHP wrapper for SolusVM API
PHP
1
star