Skip to content
forked from cp6/my-idlers

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

License

Notifications You must be signed in to change notification settings

rinlabs/shiroko

 
 

Repository files navigation

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

🪄 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

🚀 Getting Started

🐋 Docker

docker run \
  --name shiroko\
  -d\
  -p 8000:8000\
  -e APP_URL=https://... \
  ghcr.io/rinlabs/shiroko:latest shiroko

🖧 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:

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

🗔 Screenshots

My idlers screenshot1

My idlers screenshot2

My idlers screenshot3

My idlers screenshot4

My idlers screenshot5

My idlers screenshot6

My idlers screenshot7

My idlers screenshot8

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Blade 56.7%
  • PHP 43.0%
  • Other 0.3%