2018-06-07 06:59:45 +02:00
|
|
|
# Local Development
|
2021-03-26 17:50:46 +01:00
|
|
|
Pterodactyl is now powered by React, Typescript, and Tailwindcss using webpack at its core to generate compiled assets.
|
|
|
|
Release versions of Pterodactyl will include pre-compiled, minified, and hashed assets ready-to-go.
|
2018-03-31 23:33:10 +02:00
|
|
|
|
2021-03-26 17:50:46 +01:00
|
|
|
However, if you are interested in running custom themes or making modifications to the React files you'll need a build
|
|
|
|
system in place to generate these compiled assets. To get your environment setup you'll need at minimum:
|
|
|
|
|
2022-01-12 22:53:36 +01:00
|
|
|
* [Node.js](https://nodejs.org/en/) v14.x.x
|
|
|
|
* [Yarn](https://classic.yarnpkg.com/lang/en/) v1.x.x
|
|
|
|
* [Go](https://golang.org/) 1.17.x
|
2018-06-07 06:59:45 +02:00
|
|
|
|
|
|
|
### Install Dependencies
|
|
|
|
```bash
|
2018-03-31 23:33:10 +02:00
|
|
|
yarn install
|
2018-06-07 06:59:45 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
The command above will download all of the dependencies necessary to get Pterodactyl assets building. After that, its as
|
2021-03-26 17:50:46 +01:00
|
|
|
simple as running the command below to generate assets while you're developing. Until you've run this command at least
|
|
|
|
once you'll likely see a 500 error on your Panel about a missing `manifest.json` file. This is generated by the commands
|
|
|
|
below.
|
2018-03-31 23:33:10 +02:00
|
|
|
|
2018-06-07 06:59:45 +02:00
|
|
|
```bash
|
2021-03-26 17:50:46 +01:00
|
|
|
# Build the compiled set of assets for development.
|
2018-06-04 05:09:41 +02:00
|
|
|
yarn run build
|
2018-06-07 06:59:45 +02:00
|
|
|
|
2021-03-26 17:50:46 +01:00
|
|
|
# Build the assets automatically as they are changed. This allows you to refresh
|
|
|
|
# the page and see the changes immediately.
|
2018-06-07 06:59:45 +02:00
|
|
|
yarn run watch
|
|
|
|
```
|
|
|
|
|
|
|
|
### Hot Module Reloading
|
|
|
|
For more advanced users, we also support 'Hot Module Reloading', allowing you to quickly see changes you're making
|
|
|
|
to the Vue template files without having to reload the page you're on. To Get started with this, you just need
|
|
|
|
to run the command below.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
PUBLIC_PATH=http://192.168.1.1:8080 yarn run serve --host 192.168.1.1
|
2018-03-31 23:33:10 +02:00
|
|
|
```
|
2018-06-07 06:59:45 +02:00
|
|
|
|
|
|
|
There are two _very important_ parts of this command to take note of and change for your specific environment. The first
|
|
|
|
is the `--host` flag, which is required and should point to the machine where the `webpack-serve` server will be running.
|
|
|
|
The second is the `PUBLIC_PATH` environment variable which is the URL pointing to the HMR server and is appended to all of
|
|
|
|
the asset URLs used in Pterodactyl.
|
|
|
|
|
2021-03-26 17:50:46 +01:00
|
|
|
#### Development Environment
|
|
|
|
If you're using the [`pterodactyl/development`](https://github.com/pterodactyl/development) environments, which are
|
|
|
|
highly recommended, you can just run `yarn run serve` to run the HMR server, no additional configuration is necessary.
|
2018-06-11 00:32:54 +02:00
|
|
|
|
2018-06-07 06:59:45 +02:00
|
|
|
### Building for Production
|
2021-03-26 17:50:46 +01:00
|
|
|
Once you have your files squared away and ready for the live server, you'll be needing to generate compiled, minified,
|
|
|
|
and hashed assets to push live. To do so, run the command below:
|
2018-06-07 06:59:45 +02:00
|
|
|
|
|
|
|
```bash
|
|
|
|
yarn run build:production
|
|
|
|
```
|
|
|
|
|
2021-03-26 17:50:46 +01:00
|
|
|
This will generate a production JS bundle and associated assets, all located in `public/assets/` which will need to
|
|
|
|
be uploaded to your server or CDN for clients to use.
|
|
|
|
|
|
|
|
### Running Wings
|
|
|
|
To run `wings` in development all you need to do is set up the configuration file as normal when adding a new node, and
|
|
|
|
then you can build and run a local version of Wings by executing `make debug` in the Wings code directory. This must
|
|
|
|
be run on a Linux VM of some sort, you cannot run this locally on macOS or Windows.
|