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.
- 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
🐋 Docker
docker run \
--name shiroko\
-d\
-p 8000:8000\
-e APP_URL=https://... \
ghcr.io/rinlabs/shiroko:latest shiroko
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"
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
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:
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #