A modern client panel for the Pterodactyl® panel, made by Wrible Development.

Overview

Dashboardsy

A modern client panel for the Pterodactyl® panel, made by Wrible Development.
Support Discord: https://discord.gg/zVcDkSZNu7

Screenshots

homepage
createserver

Setting up

This guide is only for debian-based distributions of GNU/Linux.
This is fairly easy to install, first install NodeJS 16 via the following commands (run them as root):

apt-get install curl git nginx software-properties-common 
curl -sL https://deb.nodesource.com/setup_16.x | bash - 

Then we need to install mysql, here's a guide to installing mariadb (skip the admin account step): https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-20-04
Now create a new user and a database in mariadb using the following commands: First run mariadb -u root as the root user to open mariadb. Then enter the following, make sure to change the password to something secure and note it down somewhere.

CREATE DATABASE dashboardsy;
CREATE USER 'dashboardsy'@'localhost' IDENTIFIED BY 'thisispassword-changeit';
GRANT ALL PRIVILEGES ON dashboardsy.* TO 'dashboardsy'@'localhost';
FLUSH PRIVILEGES;

Then clone this repository locally using git: git clone https://github.com/Wrible-Development/Dashboardsy
Then cd to the directory where you cloned the repo
Run mv .env.example .env
Edit next.config.js (only edit the stuff in the env in next.config.js), .env and config.json according to your needs (don't change NEXTAUTH_URL_INTERNAL, only change NEXTAUTH_URL to the website url of your dashboard).
Go to discord.dev and create a new application, copy the client secret and client ID and put them in next.config.js
Now select the application on discord.dev and go to the Oauth2 tab and add a redirect url with the value https://dash.example.com/api/auth/callback/discord (make sure to change the domain from the example one)
Now set public/favicon.png to your logo.
Install the dependencies using npm and install pm2 and build the dashboard:

npm install
npm install -g pm2
npm run build

Finally to start the dashboard, run the following command pm2 start --name=dashboardsy npm -- start

Now do the following to configure nginx. systemctl start nginx
certbot certonly --nginx -d your.domain.com
cd /etc/nginx/conf.d
touch dashboardsy.conf
nano dashboardsy.conf
Now paste the following:

server {
    listen 80;
    server_name <domain>;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl http2;    
    server_name <domain>;
    ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem;
    ssl_session_cache shared:SSL:10m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
    ssl_prefer_server_ciphers on;

    location / {
      proxy_pass http://localhost:3000/;
      proxy_buffering off;
      proxy_set_header X-Real-IP $remote_addr;
  }
}

Make sure to replace <domain> with the domain.
Now run systemctl restart nginx and you should be good to go.

Renewal System and Miner

Edit config.json, enable the dashboardsy api and set an api key, this api key should be over 32 characters and must not include exclamation marks, Also setup the renewal and/or miner config if you haven't done that already.
Then run echo 'curl -H "Authorization: DASHBOARDSY API KEY FROM CONFIG.JSON" "http://localhost:3000/api/admin/cron"' > /dashboardsy-cron.sh as root and then run chmod +x /dashboardsy-cron.sh also as root.
Then run EDITOR=nano crontab -e and paste the following line over there:

*/5 * * * * /dashboardsy-cron.sh

Mining

Users can mine using PhoenixMiner, LolMiner, XMRig etc. Users can start the miner using the following commands:
Address and UserID can be found in the panel credentials button on the sidebar.
Examples are shown as

  • Miner Name
    • Windows
    • Linux

Miners:

  • PhoenixMiner (GPU)
    • PhoenixMiner.exe -pool stratum+tcp://daggerhashimoto.eu.nicehash.com:3353 -wal Address.UserID -pass x -proto 4
    • ./PhoenixMiner -pool stratum+tcp://daggerhashimoto.eu.nicehash.com:3353 -wal Address.UserID -pass x -proto 4
  • XMRig (CPU) (Running as admin/root is recommended both on Windows and Linux.)
    • xmrig.exe -o stratum+tcp://randomxmonero.eu-north.nicehash.com:3380 -a rx -u Address.UserID -p x --nicehash
    • ./xmrig -o stratum+tcp://randomxmonero.eu-north.nicehash.com:3380 -a rx -u Address.UserID -p x --nicehash

A GUI Miner is coming soon.

Updating

Updating dashboardsy is simple, just cd to the directory where you cloned it, run

scripts/update.sh

That's it!

File Structure

.
├── components
│   ├── Card.js
│   ├── Layout.js
│   └── Table.js
├── lib
│   ├── routes
│   │   ├── userCoinsUpdate.js
│   │   ├── userInfo.js
│   │   └── userResourcesUpdate.js
│   ├── cache.js
│   └── useIsTouchDevice.js
├── pages
│   ├── api
│   │   ├── admin
│   │   │   ├── user
│   │   │   │   └── [userid].js
│   │   │   ├── cron.js
│   │   │   └── _middleware.js
│   │   ├── auth
│   │   │   └── [...nextauth].js
│   │   └── user
│   │       ├── createServer.js
│   │       ├── deleteServer.js
│   │       ├── editServer.js
│   │       ├── fixUser.js
│   │       ├── regenPass.js
│   │       └── shop.js
│   ├── _app.js
│   ├── index.js
│   └── _middleware.js
├── public
│   └── favicon.png
├── scripts
│   └── update.sh
├── config.json
├── db.js
├── LICENSE
├── next.config.js
├── package.json
├── README.md
├── theme.js
└── webhook.js

11 directories, 31 files

Disclaimer

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

Also note that in no way, shape or form is dashboardsy endorsed, owned, or otherwise affiliated with Pterodactyl®.

You might also like...

An open-development real-time strategy (RTS) game project made in Construct.

Command & Construct This is an open-development real-time strategy (RTS) game project made in Construct. Read more about it and follow along the devel

Dec 20, 2022

Javascript client for Sanity. Works in node.js and modern browsers (older browsers needs a Promise polyfill).

@sanity/client Javascript client for Sanity. Works in node.js and modern browsers (older browsers needs a Promise polyfill). Requirements Sanity Clien

Nov 29, 2022

Unofficial API client for the Tidbyt API. Use this client to control Tidbyt devices and integrate with other services.

Tidbyt Client for Node.js Unofficial API client for the Tidbyt API. Use this client to control Tidbyt devices and integrate with other services. Insta

Dec 17, 2022

A web panel to manage TP-Link/Kasa smart home devices.

A web panel to manage TP-Link/Kasa smart home devices.

TP-Link Web Panel A web panel to manage TP-Link/Kasa smart home devices. Prerequisites Node.js v16.13.1 or higher Yarn Installation Run git clone http

Apr 1, 2022

A simple element template chooser for properties-panel = 1

A simple element template chooser for properties-panel >= 1

A simple element template chooser for properties-panel = 1

May 30, 2022

Data Manipulation Form panel plugin for @grafana.

Data Manipulation Form panel plugin for @grafana.

Data Manipulation Form panel plugin for Grafana Introduction The Data Manipulation Form Panel is a plugin for Grafana that can be used to insert, upda

Dec 28, 2022

Apache ECharts Panel plugin for Grafana

Apache ECharts Panel plugin for Grafana

Apache ECharts Panel plugin for Grafana Introduction The ECharts Panel is a plugin for Grafana that allows to visualize Apache ECharts on your Grafana

Dec 23, 2022

RWP stands for Roblox web panel, it's a code snippet that you can run via developer console or the provided Google Chrome extension to try out early

RWP stands for Roblox web panel, it's a code snippet that you can run via developer console or the provided Google Chrome extension to try out early

RWP stands for Roblox web panel, it's a code snippet that you can run via developer console or the provided Google Chrome extension to try out early Roblox site features before they're officially out without any programming experience.

Nov 28, 2022
Comments
Owner
Wrible Development
Wrible Development
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch screens with a resolution of 1024x600 connected to a Raspberry Pi.

EDStatusPanel A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch scr

marcus-s 24 Oct 4, 2022
Gatsby-Formik-contact-form-with-backend-panel - Full working contact form with backend GUI panel.

Gatsby minimal starter ?? Quick start Create a Gatsby site. Use the Gatsby CLI to create a new site, specifying the minimal starter. # create a new Ga

Bart 1 Jan 2, 2022
A frontend framework containing of tools for fast development of dashboard, panel, etc.

Khaos-Admin A frontend framework containing of tools for fast development of dashboard, panel, etc. Tools We Provide Fast Development: We handle data

Hamrah Mechanic 7 Nov 27, 2022
Dynamic-web-development - Dynamic web development used CSS and HTML

Dynamic-web-development ASSISNMENT I just used CSS and HTML to make a mobile int

null 1 Feb 8, 2022
The project integrates workflow engine, report engine and organization authority management background, which can be applied to the development of OA, HR, CRM, PM and other systems. With tlv8 IDE, business system development, testing and deployment can be realized quickly.

介绍 项目集成了工作流引擎、报表引擎和组织机构权限管理后台,可以应用于OA、HR、CRM、PM等系统开发。配合使用tlv8 ide可以快速实现业务系统开发、测试、部署。 后台采用Spring MVC架构简单方便,前端使用流行的layui界面美观大方。 采用组件开发技术,提高系统的灵活性和可扩展性;采

Qian Chen 38 Dec 27, 2022
A Big Picture, Thesaurus, and Taxonomy of Modern JavaScript Web Development

Spellbook of Modern Web Dev A Big Picture, Thesaurus, and Taxonomy of Modern JavaScript Web Development This document originated from a bunch of most

Dexter Yang 15.6k Dec 31, 2022
Best practices for modern web development

Web Fundamentals on DevSite Welcome to the new WebFundamentals! An effort to showcase best practices and tools for modern Web Development. What's chan

Google 13.7k Dec 30, 2022
Forked from hayes0724/shopify-packer Modern development tool for Shopify using Webpack 5. Easy to extend and customize, zero build config, compatible with Slate and existing websites.

Shopify Packer Modern development tool for Shopify using Webpack 5. Easy to extend and customize, zero build config, comes with starter themes and com

Web & Mobile | eCommerce | Full-Stack Developer 4 Nov 24, 2022