mirror of
https://github.com/pterodactyl/panel.git
synced 2024-11-21 16:42:29 +01:00
Merge branch '1.0-develop' into develop
This commit is contained in:
commit
fe83a4f755
22
CHANGELOG.md
22
CHANGELOG.md
@ -3,6 +3,28 @@ This file is a running track of new features and fixes to each version of the pa
|
||||
|
||||
This project follows [Semantic Versioning](http://semver.org) guidelines.
|
||||
|
||||
## v1.11.5
|
||||
### Fixed
|
||||
* Rust egg using the wrong Docker image, breaking Rust modding frameworks.
|
||||
|
||||
## v1.11.4
|
||||
### Added
|
||||
* Added support for the `server.queryport` option on the Rust egg.
|
||||
* Added support for the Carbon modding framework to the Rust egg.
|
||||
|
||||
### Changed
|
||||
* Upgraded to Laravel 10.
|
||||
* Sensitive data is no longer shown in the CopyOnClick toast notification.
|
||||
|
||||
### Fixed
|
||||
* Allow SVGs to be edited in the server's file manager.
|
||||
* Properly validate the request body when creating a backup.
|
||||
* Fixed issue with schedules running at the wrong time when the panel utilized a timezone with non-hour offsets (such as `Australia/Darwin`).
|
||||
* Fixes the log directory when running the Panel in a container.
|
||||
* Fixes the permission name used to check if a user has permission to read files/folders.
|
||||
* Fixes the ability to unset a server's description through the client API.
|
||||
* Fixed the MassActionBar on the server's file manager blocking elements below it, preventing them from being interacted with.
|
||||
|
||||
## v1.11.3
|
||||
### Changed
|
||||
* When updating a server's description through the client API, if no value is specified, the description will now remain unchanged.
|
||||
|
19
README.md
19
README.md
@ -7,7 +7,7 @@
|
||||
|
||||
# Pterodactyl Panel
|
||||
|
||||
Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security
|
||||
Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security
|
||||
in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive
|
||||
UI to end users.
|
||||
|
||||
@ -27,17 +27,12 @@ Stop settling for less. Make game servers a first class citizen on your platform
|
||||
I would like to extend my sincere thanks to the following sponsors for helping fund Pterodactyl's development.
|
||||
[Interested in becoming a sponsor?](https://github.com/sponsors/matthewpi)
|
||||
|
||||
| Company | About |
|
||||
|-----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [**WISP**](https://wisp.gg) | Extra features. |
|
||||
| [**Aussie Server Hosts**](https://aussieserverhosts.com/) | No frills Australian Owned and operated High Performance Server hosting for some of the most demanding games serving Australia and New Zealand. |
|
||||
| [**WemX**](https://wemx.net/) | WemX helps automate your hosting company or SaaS business by automating billing, user management, authentication, and much more. |
|
||||
| [**BisectHosting**](https://www.bisecthosting.com/) | BisectHosting provides Minecraft, Valheim and other server hosting services with the highest reliability and lightning fast support since 2012. |
|
||||
| [**MineStrator**](https://minestrator.com/) | Looking for the most highend French hosting company for your minecraft server? More than 24,000 members on our discord trust us. Give us a try! |
|
||||
| [**VibeGAMES**](https://vibegames.net/) | VibeGAMES is a game server provider that specializes in DDOS protection for the games we offer. We have multiple locations in the US, Brazil, France, Germany, Singapore, Australia and South Africa. |
|
||||
| [**DutchIS**](https://dutchis.net?ref=pterodactyl) | DutchIS provides instant infrastructure such as pay per use VPS hosting. Start your game hosting journey on DutchIS. |
|
||||
| [**Skoali**](https://skoali.com/) | Skoali is a French company that hosts game servers and other types of services (VPS, WEB, Dedicated servers, ...). We also have a free plan for Minecraft and Garry's Mod. |
|
||||
| [**Rabbit Computing**](https://www.rabbitcomputing.com/link.php?id=5) | Rabbit Computing offers powerful VPS servers, highly available game hosting, and fully unlimited web hosting. Use code README for 20% off your first three months! |
|
||||
| Company | About |
|
||||
|-----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [**Aussie Server Hosts**](https://aussieserverhosts.com/) | No frills Australian Owned and operated High Performance Server hosting for some of the most demanding games serving Australia and New Zealand. |
|
||||
| [**BisectHosting**](https://www.bisecthosting.com/) | BisectHosting provides Minecraft, Valheim and other server hosting services with the highest reliability and lightning fast support since 2012. |
|
||||
| [**MineStrator**](https://minestrator.com/) | Looking for the most highend French hosting company for your minecraft server? More than 24,000 members on our discord trust us. Give us a try! |
|
||||
| [**VibeGAMES**](https://vibegames.net/) | VibeGAMES is a game server provider that specializes in DDOS protection for the games we offer. We have multiple locations in the US, Brazil, France, Germany, Singapore, Australia and South Africa. |
|
||||
|
||||
### Supported Games
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
"steam_disk_space"
|
||||
],
|
||||
"docker_images": {
|
||||
"quay.io\/pterodactyl\/core:rust": "quay.io\/pterodactyl\/core:rust"
|
||||
"ghcr.io\/pterodactyl\/games:rust": "ghcr.io\/pterodactyl\/games:rust"
|
||||
},
|
||||
"file_denylist": [],
|
||||
"startup": ".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.queryport {{QUERY_PORT}} +server.identity \"rust\" +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.logoimage \\\"{{SERVER_LOGO}}\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +server.saveinterval {{SAVEINTERVAL}} +app.port {{APP_PORT}} $( [ -z ${MAP_URL} ] && printf %s \"+server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"{{WORLD_SEED}}\\\"\" || printf %s \"+server.levelurl {{MAP_URL}}\" ) {{ADDITIONAL_ARGS}}",
|
||||
@ -47,7 +47,7 @@
|
||||
"default_value": "vanilla",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|in:carbon,oxide,vanilla",
|
||||
"rules": "required|in:vanilla,oxide,carbon",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
|
@ -222,7 +222,7 @@
|
||||
configs
|
||||
coreutils
|
||||
mysql80
|
||||
nodejs-18_x
|
||||
nodejs_18
|
||||
nodePackages.pnpm
|
||||
php81WithExtensions
|
||||
postgresql_15
|
||||
|
2
resources/scripts/api/server/types.d.ts
vendored
2
resources/scripts/api/server/types.d.ts
vendored
@ -23,7 +23,7 @@ export interface ServerEggVariable {
|
||||
description: string;
|
||||
envVariable: string;
|
||||
defaultValue: string;
|
||||
serverValue: string;
|
||||
serverValue: string | null;
|
||||
isEditable: boolean;
|
||||
rules: string[];
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ import { usePermissions } from '@/plugins/usePermissions';
|
||||
import InputSpinner from '@/components/elements/InputSpinner';
|
||||
import Input from '@/components/elements/Input';
|
||||
import Switch from '@/components/elements/Switch';
|
||||
import tw from 'twin.macro';
|
||||
import { debounce } from 'debounce';
|
||||
import updateStartupVariable from '@/api/server/updateStartupVariable';
|
||||
import useFlash from '@/plugins/useFlash';
|
||||
@ -61,15 +60,15 @@ const VariableBox = ({ variable }: Props) => {
|
||||
return (
|
||||
<TitledGreyBox
|
||||
title={
|
||||
<p css={tw`text-sm uppercase`}>
|
||||
<p className="text-sm uppercase">
|
||||
{!variable.isEditable && (
|
||||
<span css={tw`bg-neutral-700 text-xs py-1 px-2 rounded-full mr-2 mb-1`}>Read Only</span>
|
||||
<span className="bg-neutral-700 text-xs py-1 px-2 rounded-full mr-2 mb-1">Read Only</span>
|
||||
)}
|
||||
{variable.name}
|
||||
</p>
|
||||
}
|
||||
>
|
||||
<FlashMessageRender byKey={FLASH_KEY} css={tw`mb-2 md:mb-4`} />
|
||||
<FlashMessageRender byKey={FLASH_KEY} className="mb-2 md:mb-4" />
|
||||
<InputSpinner visible={loading}>
|
||||
{useSwitch ? (
|
||||
<>
|
||||
@ -97,7 +96,7 @@ const VariableBox = ({ variable }: Props) => {
|
||||
<Select
|
||||
onChange={e => setVariableValue(e.target.value)}
|
||||
name={variable.envVariable}
|
||||
defaultValue={variable.serverValue}
|
||||
defaultValue={variable.serverValue ?? variable.defaultValue}
|
||||
disabled={!canEdit || !variable.isEditable}
|
||||
>
|
||||
{selectValues.map(selectValue => (
|
||||
@ -120,7 +119,7 @@ const VariableBox = ({ variable }: Props) => {
|
||||
}}
|
||||
readOnly={!canEdit || !variable.isEditable}
|
||||
name={variable.envVariable}
|
||||
defaultValue={variable.serverValue}
|
||||
defaultValue={variable.serverValue ?? ''}
|
||||
placeholder={variable.defaultValue}
|
||||
/>
|
||||
</>
|
||||
@ -128,7 +127,10 @@ const VariableBox = ({ variable }: Props) => {
|
||||
</>
|
||||
)}
|
||||
</InputSpinner>
|
||||
<p css={tw`mt-1 text-xs text-neutral-300`}>{variable.description}</p>
|
||||
|
||||
<p className="mt-1 text-xs text-neutral-300">
|
||||
{variable.description}
|
||||
</p>
|
||||
</TitledGreyBox>
|
||||
);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user