mirror of
https://github.com/pyrohost/pyrodactyl.git
synced 2026-04-06 04:01:58 +02:00
fix: revert back from bun until fixed
This commit is contained in:
3
.gitattributes
vendored
3
.gitattributes
vendored
@@ -1,2 +1 @@
|
||||
* text eol=lf
|
||||
*.lockb binary diff=lockb
|
||||
* text eol=lf
|
||||
@@ -1,10 +1,12 @@
|
||||
# Stage 0:
|
||||
# Build the frontend
|
||||
FROM --platform=$TARGETOS/$TARGETARCH oven/bun:alpine
|
||||
FROM --platform=$TARGETOS/$TARGETARCH node:lts-alpine
|
||||
WORKDIR /app
|
||||
COPY . ./
|
||||
RUN bun i --frozen-lockfile \
|
||||
&& bun ship
|
||||
RUN apk add --no-cache --update git \
|
||||
&& npm install -g turbo \
|
||||
&& npm ci \
|
||||
&& npm run ship
|
||||
|
||||
# Stage 1:
|
||||
# Build the actual container with all of the needed PHP dependencies that will run the application.
|
||||
|
||||
18
README.md
18
README.md
@@ -40,7 +40,8 @@ Pyrodactyl is the Pterodactyl-based game server management panel that focuses on
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- [Bun](https://bun.sh/) - Make sure you follow the instructions after installing to refresh your shell, so that you can use the `bun` command
|
||||
- Latest LTS version of NodeJS
|
||||
- Git
|
||||
|
||||
### Linux
|
||||
|
||||
@@ -66,8 +67,7 @@ tar -xzf main.tar.gz --strip-components=1 -C /var/www/pterodactyl pyrodactyl-mai
|
||||
chmod -R 755 storage/* bootstrap/cache/
|
||||
|
||||
# Install dependencies & build panel
|
||||
bun i --frozen-lockfile
|
||||
bun ship
|
||||
npm ci && npm run ship
|
||||
```
|
||||
|
||||
Proceed with the rest of the installation as you would with the official panel.
|
||||
@@ -84,21 +84,21 @@ It is not currently possible to run Pyrodactyl in a **production environment** o
|
||||
Pyrodactyl is the world's first Pterodactyl panel that can be developed and run locally (with Wings) on Windows machines through [Vagrant](https://www.vagrantup.com/). Verify you have met the prerequisites above, then follow the steps below.
|
||||
|
||||
1. Clone the Pyrodactyl panel repository
|
||||
1. Run `bun i` to install all the packages necessary.
|
||||
1. Run `bun ship` to build Pyrodactyl. This will cache the results of the build and upload sourcemaps to Sentry. Subsequent builds without code changes will finish in milliseconds.
|
||||
1. Run `npm i` to install all the packages necessary.
|
||||
1. Run `npm run ship` to build Pyrodactyl. This will cache the results of the build and upload sourcemaps to Sentry. Subsequent builds without code changes will finish in milliseconds.
|
||||
1. Run `vagrant up`. This will setup wings and the necessary services in order to run Pyrodactyl's databases, services, and app. This process could take up to 15 minutes.
|
||||
1. Once you receive a message that says "Pyrodactyl is now up and running at localhost:3000", visit that URL in your browser and login with the default credentials provided in your console. **It's important that you use localhost to connect to Pyrodactyl! If you use 127.0.0.1, you will run into CORS issues and other issues that will not be fixed.**
|
||||
1. Visit https://localhost:3000/admin to provision your first server on Pyrodactyl!
|
||||
|
||||
### Notes about Local Development on Windows
|
||||
|
||||
- If you have the dev server running (`bun dev`), a development build of the app will be served at localhost:3000 with HMR. If you want to preview a production build of Pyrodactyl, terminate the dev server and run `bun ship`. Once it finishes, it will also be served at localhost:3000.
|
||||
- If you have the dev server running (`npm run dev`), a development build of the app will be served at localhost:3000 with HMR. If you want to preview a production build of Pyrodactyl, terminate the dev server and run `npm run ship`. Once it finishes, it will also be served at localhost:3000.
|
||||
|
||||
- If you're running the development server or have built a production version of Pyrodactyl, but visiting localhost:3000 hangs permanently, ensure you don't have any other apps or games open that may interfere with any of the ports in the Vagrantfile. For example, Steam may use port 8080, or another development server may be using a port used by Pyrodactyl. Run `vagrant reload` to re-point ports to your virtual machine after ensuring nothing may be using it, and try again.
|
||||
|
||||
- If you receive a message like `Vagrant was unable to mount VirtualBox shared folders`, you [may need to install the vbguest plugin for VirtualBox](https://stackoverflow.com/a/48569055/11537010) with `vagrant plugin install vagrant-vbguest`. If it's already installed, run `vagrant plugin update vagrant-vbguest`.
|
||||
|
||||
- We recommend setting up [Remote Caching via turbo](https://turbo.build/repo/docs/core-concepts/remote-caching). When you run `bun ship` on your local development machine, its results will be cached and uploaded, allowing you to finish a build on your production server in milliseconds.
|
||||
- We recommend setting up [Remote Caching via turbo](https://turbo.build/repo/docs/core-concepts/remote-caching). When you run `npm run ship` on your local development machine, its results will be cached and uploaded, allowing you to finish a build on your production server in milliseconds.
|
||||
|
||||
- We do not recommend using Hyper-V as your virtualization layer. If your Vagrant installation asks you for a password, this is because you used Hyper-V. The password will be your Windows password.
|
||||
- We recommend using VMWare Workstation or VirtualBox instead.
|
||||
@@ -134,8 +134,8 @@ Afterwards, start it:
|
||||
Using [Vagrant](https://www.vagrantup.com) on Linux is incredibly simple. Verify you met the prerequsites above, then follow these simple steps:
|
||||
|
||||
1. Clone the Pyrodactyl panel repository
|
||||
2. Run `bun i` to install all required packages
|
||||
3. Run `bun ship` to build Pyrodactyl. This will cache the results of the build and upload sourcemaps to Sentry. Subsequent builds without code changes will finish in milliseconds.
|
||||
2. Run `npm i` to install all required packages
|
||||
3. Run `npm run ship` to build Pyrodactyl. This will cache the results of the build and upload sourcemaps to Sentry. Subsequent builds without code changes will finish in milliseconds.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> In order for `vagrant up` to work, your files must be in the `/var/www/pterodactyl` directory unless manually changed in the `Vagrantfile`!
|
||||
|
||||
11899
package-lock.json
generated
Normal file
11899
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
247
package.json
247
package.json
@@ -1,128 +1,123 @@
|
||||
{
|
||||
"name": "pyrodactyl",
|
||||
"version": "3.0.0",
|
||||
"buildNumber": "300000",
|
||||
"engines": {
|
||||
"node": ">=20.0"
|
||||
},
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@codemirror/autocomplete": "^6.16.0",
|
||||
"@codemirror/commands": "^6.3.3",
|
||||
"@codemirror/language-data": "^6.5.1",
|
||||
"@codemirror/legacy-modes": "^6.4.0",
|
||||
"@codemirror/lint": "^6.5.0",
|
||||
"@codemirror/search": "^6.5.6",
|
||||
"@codemirror/state": "^6.4.1",
|
||||
"@codemirror/view": "^6.26.3",
|
||||
"@eslint/compat": "^1.1.1",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.6.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.6.0",
|
||||
"@fortawesome/react-fontawesome": "^0.2.2",
|
||||
"@headlessui/react": "^1.7.18",
|
||||
"@preact/signals-react": "^2.0.1",
|
||||
"@radix-ui/react-checkbox": "^1.0.4",
|
||||
"@radix-ui/react-context-menu": "^2.1.5",
|
||||
"@radix-ui/react-dropdown-menu": "^2.0.6",
|
||||
"@radix-ui/react-icons": "^1.3.0",
|
||||
"@radix-ui/react-switch": "^1.0.3",
|
||||
"@radix-ui/react-tabs": "^1.0.4",
|
||||
"@sentry/react": "^7.110.0",
|
||||
"@sentry/vite-plugin": "^2.16.1",
|
||||
"@tanstack/react-virtual": "^3.2.1",
|
||||
"@xterm/addon-fit": "^0.10.0",
|
||||
"@xterm/addon-search": "^0.15.0",
|
||||
"@xterm/addon-web-links": "^0.11.0",
|
||||
"@xterm/xterm": "^5.5.0",
|
||||
"axios": "^1.6.8",
|
||||
"browserslist": "^4.23.0",
|
||||
"chart.js": "^4.4.2",
|
||||
"clsx": "^2.1.0",
|
||||
"cmdk": "^1.0.0",
|
||||
"copy-to-clipboard": "^3.3.3",
|
||||
"date-fns": "^3.6.0",
|
||||
"debounce": "^2.0.0",
|
||||
"deepmerge-ts": "^5.1.0",
|
||||
"easy-peasy": "^6.0.4",
|
||||
"events": "^3.3.0",
|
||||
"formik": "^2.4.5",
|
||||
"framer-motion": "^11.0.28",
|
||||
"globals": "^15.9.0",
|
||||
"laravel-vite-plugin": "^1.0.2",
|
||||
"million": "^3.0.6",
|
||||
"pathe": "^1.1.2",
|
||||
"qrcode.react": "^3.1.0",
|
||||
"react": "^18.3.1",
|
||||
"react-chartjs-2": "^5.2.0",
|
||||
"react-dom": "^18.3.0",
|
||||
"react-fast-compare": "^3.2.2",
|
||||
"react-router-dom": "^6.22.3",
|
||||
"reaptcha": "^1.12.1",
|
||||
"sockette": "^2.0.6",
|
||||
"sonner": "^1.4.41",
|
||||
"styled-components": "^6.1.8",
|
||||
"swr": "^2.2.5",
|
||||
"tailwind-merge": "^2.2.2",
|
||||
"tailwindcss": "^3.4.3",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"turbo": "^2.0.14",
|
||||
"uuid": "^9.0.1",
|
||||
"vite": "^5.2.8",
|
||||
"yup": "^1.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc/core": "^1.7.10",
|
||||
"@swc/plugin-styled-components": "^2.0.11",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
||||
"@types/codemirror": "^5.60.15",
|
||||
"@types/debounce": "^1.2.4",
|
||||
"@types/events": "^3.0.3",
|
||||
"@types/node": "^20.12.7",
|
||||
"@types/qrcode.react": "^1.0.5",
|
||||
"@types/react": "^18.3.1",
|
||||
"@types/react-copy-to-clipboard": "^5.0.7",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"@types/react-redux": "^7.1.33",
|
||||
"@types/uuid": "^9.0.8",
|
||||
"@typescript-eslint/eslint-plugin": "^7.5.0",
|
||||
"@typescript-eslint/parser": "^7.5.0",
|
||||
"@vitejs/plugin-react-swc": "^3.6.0",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"eslint": "^9.6.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-react": "^7.34.1",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"postcss": "^8.4.38",
|
||||
"postcss-import": "^16.1.0",
|
||||
"postcss-nesting": "^12.1.1",
|
||||
"postcss-preset-env": "^9.5.5",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-plugin-tailwindcss": "^0.5.13",
|
||||
"tailwindcss-inner-border": "^0.2.0",
|
||||
"ts-essentials": "^9.4.2",
|
||||
"typescript": "^5.4.5",
|
||||
"vite-plugin-manifest-sri": "^0.2.0"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint ./resources/scripts/**/*.{ts,tsx} --fix",
|
||||
"lint:turbo": "turbo lint",
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"build:turbo": "turbo build",
|
||||
"ship": "turbo lint build"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 0.5%",
|
||||
"last 2 versions",
|
||||
"firefox esr",
|
||||
"not dead"
|
||||
],
|
||||
"packageManager": "yarn@bun@1.1.26",
|
||||
"trustedDependencies": [
|
||||
"@sentry/cli",
|
||||
"@swc/core",
|
||||
"esbuild"
|
||||
]
|
||||
"name": "pyrodactyl",
|
||||
"version": "3.0.0",
|
||||
"buildNumber": "300000",
|
||||
"engines": {
|
||||
"node": ">=20.0"
|
||||
},
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@codemirror/autocomplete": "^6.16.0",
|
||||
"@codemirror/commands": "^6.3.3",
|
||||
"@codemirror/language-data": "^6.5.1",
|
||||
"@codemirror/legacy-modes": "^6.4.0",
|
||||
"@codemirror/lint": "^6.5.0",
|
||||
"@codemirror/search": "^6.5.6",
|
||||
"@codemirror/state": "^6.4.1",
|
||||
"@codemirror/view": "^6.26.3",
|
||||
"@eslint/compat": "^1.1.1",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.6.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.6.0",
|
||||
"@fortawesome/react-fontawesome": "^0.2.2",
|
||||
"@headlessui/react": "^1.7.18",
|
||||
"@preact/signals-react": "^2.0.1",
|
||||
"@radix-ui/react-checkbox": "^1.0.4",
|
||||
"@radix-ui/react-context-menu": "^2.1.5",
|
||||
"@radix-ui/react-dropdown-menu": "^2.0.6",
|
||||
"@radix-ui/react-icons": "^1.3.0",
|
||||
"@radix-ui/react-switch": "^1.0.3",
|
||||
"@radix-ui/react-tabs": "^1.0.4",
|
||||
"@sentry/react": "^7.110.0",
|
||||
"@sentry/vite-plugin": "^2.16.1",
|
||||
"@tanstack/react-virtual": "^3.2.1",
|
||||
"@xterm/addon-fit": "^0.10.0",
|
||||
"@xterm/addon-search": "^0.15.0",
|
||||
"@xterm/addon-web-links": "^0.11.0",
|
||||
"@xterm/xterm": "^5.5.0",
|
||||
"axios": "^1.6.8",
|
||||
"browserslist": "^4.23.0",
|
||||
"chart.js": "^4.4.2",
|
||||
"clsx": "^2.1.0",
|
||||
"cmdk": "^1.0.0",
|
||||
"copy-to-clipboard": "^3.3.3",
|
||||
"date-fns": "^3.6.0",
|
||||
"debounce": "^2.0.0",
|
||||
"deepmerge-ts": "^5.1.0",
|
||||
"easy-peasy": "^6.0.4",
|
||||
"events": "^3.3.0",
|
||||
"formik": "^2.4.5",
|
||||
"framer-motion": "^11.0.28",
|
||||
"globals": "^15.9.0",
|
||||
"laravel-vite-plugin": "^1.0.2",
|
||||
"million": "^3.0.6",
|
||||
"pathe": "^1.1.2",
|
||||
"qrcode.react": "^3.1.0",
|
||||
"react": "^18.3.1",
|
||||
"react-chartjs-2": "^5.2.0",
|
||||
"react-dom": "^18.3.0",
|
||||
"react-fast-compare": "^3.2.2",
|
||||
"react-router-dom": "^6.22.3",
|
||||
"reaptcha": "^1.12.1",
|
||||
"sockette": "^2.0.6",
|
||||
"sonner": "^1.4.41",
|
||||
"styled-components": "^6.1.8",
|
||||
"swr": "^2.2.5",
|
||||
"tailwind-merge": "^2.2.2",
|
||||
"tailwindcss": "^3.4.3",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"turbo": "^2.0.14",
|
||||
"uuid": "^9.0.1",
|
||||
"vite": "^5.2.8",
|
||||
"yup": "^1.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc/core": "^1.7.10",
|
||||
"@swc/plugin-styled-components": "^2.0.11",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
||||
"@types/codemirror": "^5.60.15",
|
||||
"@types/debounce": "^1.2.4",
|
||||
"@types/events": "^3.0.3",
|
||||
"@types/node": "^20.12.7",
|
||||
"@types/qrcode.react": "^1.0.5",
|
||||
"@types/react": "^18.3.1",
|
||||
"@types/react-copy-to-clipboard": "^5.0.7",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"@types/react-redux": "^7.1.33",
|
||||
"@types/uuid": "^9.0.8",
|
||||
"@typescript-eslint/eslint-plugin": "^7.5.0",
|
||||
"@typescript-eslint/parser": "^7.5.0",
|
||||
"@vitejs/plugin-react-swc": "^3.6.0",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"eslint": "^9.6.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-react": "^7.34.1",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"postcss": "^8.4.38",
|
||||
"postcss-import": "^16.1.0",
|
||||
"postcss-nesting": "^12.1.1",
|
||||
"postcss-preset-env": "^9.5.5",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-plugin-tailwindcss": "^0.5.13",
|
||||
"tailwindcss-inner-border": "^0.2.0",
|
||||
"ts-essentials": "^9.4.2",
|
||||
"typescript": "^5.4.5",
|
||||
"vite-plugin-manifest-sri": "^0.2.0"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint ./resources/scripts/**/*.{ts,tsx} --fix",
|
||||
"lint:turbo": "turbo lint",
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"build:turbo": "turbo build",
|
||||
"ship": "turbo lint build"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 0.5%",
|
||||
"last 2 versions",
|
||||
"firefox esr",
|
||||
"not dead"
|
||||
],
|
||||
"packageManager": "npm@10.8.1"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user