59b3138dfb
Possible YABs foreign keys migrations error fix |
||
---|---|---|
.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.3 changes (20th July 2022):
Please run the following if updating from existing install:
php artisan migrate
php artisan route:cache
php artisan cache:clear
- Added YABs to JSON output page
- Added uptime, distro and kernel to YABs inserting
- Added memory swap values to YABs inserting
- Added save YABs as txt file (setting)
- Added back and edit button component with icon
- Updated Reseller model to use relationships + caching
- Updated Misc model to use relationships + caching
- Updated SeedBoxes model to use relationships + caching
- Updated ApiController to use the new model relationship calling (& caching)
- Updated container large screen max width from 1320px to 1420px
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
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