Compare commits

..

3992 Commits

Author SHA1 Message Date
RMartinOscar
60b4cfe757 Merge branch 'main' into lance/cloud 2025-06-09 02:11:16 +00:00
MartinOscar
de166bca03 Use supervisorctl instead of systemctl when running in docker (#1378) 2025-06-08 09:12:15 +02:00
JoanFo
af609994b6 Fix missing font (#1404)
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-06-08 09:11:56 +02:00
Boy132
bd2a00760d Fix error handling for deleting backups (#1434) 2025-06-07 14:16:01 +02:00
pelican-vehikl
65deffc6e6 Create new description endpoint (#1136)
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-06-06 23:06:28 -04:00
Boy132
34865d4288 Fix hostname env variable name in rust egg (#1435) 2025-06-06 14:19:09 +02:00
MartinOscar
2961c3e88b Refactor EnvironmentTrait to use Env Facade (#1430) 2025-06-04 22:24:17 +02:00
MartinOscar
e7a950ffcb Replace $allocation->toString() with $allocation->address (#1431) 2025-06-04 22:13:59 +02:00
Lance Pioch
ece732d9e5 Laravel 12.17.0 Shift (#1429)
Co-authored-by: Shift <shift@laravelshift.com>
2025-06-04 15:06:54 -04:00
Boy132
456c4f46bc Make sure daemon_listen and daemon_connect match when not behind proxy (#1428) 2025-06-04 08:37:04 +02:00
Boy132
0ba497a2eb Add separate port field for node connections (#1423) 2025-06-03 14:33:57 +02:00
Boy132
3b744f37dd Lazy load server entries (Grid only) (#1413) 2025-06-03 14:33:43 +02:00
Charles
b34778f736 Refactor Node Stats (#1145)
Co-authored-by: Boy132 <mail@boy132.de>
2025-06-03 07:33:08 -04:00
Lance Pioch
3212ad21ab Add cloud so far 2025-06-01 17:14:30 -04:00
MartinOscar
84c351d0ae Deselect records for ListFiles DeleteAction (#1411) 2025-05-31 17:48:17 +02:00
MartinOscar
520cea7f09 Use translation for ListFiles DeleteAction (#1410) 2025-05-31 17:48:00 +02:00
Boy132
35ce1d34ab Permission check fixes (#1406) 2025-05-27 19:30:30 +02:00
Boy132
17555a1d09 Make server name and server address clickable (and copyable) (#1395) 2025-05-27 19:30:07 +02:00
Lance Pioch
837121b1fb Laravel 12.16.0 Shift (#1408)
Co-authored-by: Shift <shift@laravelshift.com>
2025-05-27 13:08:51 -04:00
Boy132
af9f2c653e Add missing </div> to monaco editor view (#1399) 2025-05-23 06:02:29 -04:00
Boy132
c22e7456b5 Move tables & forms to resources in client area (#1388) 2025-05-22 08:41:17 +02:00
Boy132
97fb66f5d6 Use app panel for password link in AccountCreated notification (#1389) 2025-05-21 08:46:27 +02:00
Lance Pioch
51037c5c20 Laravel 12.15.0 Shift (#1390)
Co-authored-by: Shift <shift@laravelshift.com>
2025-05-20 16:32:43 -04:00
MartinOscar
23d13d9e83 Fix Mount translation (#1382) 2025-05-20 11:58:16 -04:00
Boy132
6c20426757 Put whereHas-orDoesntHave in own where (#1387) 2025-05-20 08:33:33 +02:00
Boy132
1224210668 Only include "server" subjects in activity log query (#1386) 2025-05-20 08:33:16 +02:00
Boy132
258c97bf14 Add missing auth activity logs (#1372) 2025-05-19 09:12:58 +02:00
C0D3 M4513R
7034c4d013 Fix Composer warnings (#1376)
Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
2025-05-15 14:39:59 -05:00
MartinOscar
e5cba893e4 Check against 2fa backup codes too in Login (#1366)
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-05-12 16:14:09 +02:00
Boy132
fd49f472c3 Remove packs folders in storage (#1367) 2025-05-12 14:30:16 +02:00
MartinOscar
c8556a4c56 Use placeholder for EditServer db_delete (#1362) 2025-05-10 00:01:58 +02:00
MartinOscar
6de6306a19 Fix GSLToken id, label & query (#1361) 2025-05-09 17:57:18 -04:00
Charles
1f8a5cdd1d Fix font dropdown on EditProfile Page (#1360) 2025-05-09 17:42:39 -04:00
Charles
30ae860d69 Fix server notification body translation key (#1359) 2025-05-09 17:39:15 -04:00
Boy132
f400e2db76 Fix TRUSTED_PROXIES with * (#1358) 2025-05-09 16:22:33 -04:00
Boy132
1f7562563a Use github error format for phpstan tests (#1357) 2025-05-09 21:03:50 +02:00
Boy132
2296e41a8b Add button to view install logs (#1356)
Co-authored-by: notCharles <charles@pelican.dev>
2025-05-09 21:03:32 +02:00
MartinOscar
7971dc13fc chore: Refactor Mounts (#1236) 2025-05-09 13:18:20 -04:00
Boy132
8406f4686c Enable ipv6 on frontend (#1350) 2025-05-09 08:44:18 +02:00
Charles
67705b14b4 remove ComicMono as default set to monospace (#1352) 2025-05-08 18:00:51 -04:00
Boy132
bc115af5fd Replace File with Storage on EditProfile (#1353) 2025-05-08 22:14:53 +02:00
MartinOscar
da35703f75 Hide ChartWidgets when Server isInConflictState or Offline (#1348) 2025-05-08 20:42:14 +02:00
MartinOscar
c54bfd714b Make Tags work in StoreNodeRequest (#1349) 2025-05-08 19:08:13 +02:00
Lance Pioch
b83e3657d6 Laravel 12.13.0 Shift (#1347)
Co-authored-by: Shift <shift@laravelshift.com>
2025-05-07 15:50:41 -05:00
Boy132
e2c87a8206 Add back network chart (#1283)
* add back network chart

* don't show timestamp

* convert "total" to "real time"

* fix typo

* set min to 0

* sort data to make sure we actually get the previous value

* Fix `ServerNetworkChart`

* Many changes...

* small cleanup

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: notCharles <charles@pelican.dev>
2025-05-06 23:32:01 +02:00
Boy132
e38a736b61 Small cleanup for new egg features (#1343) 2025-05-06 13:01:34 +02:00
Boy132
26e20453bf Prevent primary allocation overwrite on save (#1344) 2025-05-06 13:01:09 +02:00
Boy132
292523d153 Cleanup files mount and fix path for global search (#1341) 2025-05-06 08:36:51 +02:00
PalmarHealer
85d625d118 Rework subuser permission loading (#1311)
* Remove open in new tab since both are on filament now.

Removing the open in new tab since both are on filament now. And the tenant: null was function default so not needed aswell

* Rework permission tab loading

Reworked permission tab loading to make it easier to expand on it in the future. This is way more friendly if extensions are planned in the future.

* Rework permission tab loading

Reworked permission tab loading to make it easier to expand on it in the future. This is way more friendly if extensions are planned in the future.

* Rework permission tab loading

Reworked permission tab loading to make it easier to expand on it in the future. This is way more friendly if extensions are planned in the future.

* Update UserResource.php

Used wrong name. It's not the name, the label has to be checked there.

* Fix: wrong name used

Used wrong name. It's not the name, the label has to be checked there.

* Update permission loading
Moved permission list to app/Models/Permission.php and made UserResource.php and ListUsers.php use it.

* Fix Pint and PHPStan error
Added comments

* Update array key
Updated array key using the lowercase name. Suggested by https://github.com/Boy132

* Correct array key
Updated array key using the lowercase. Suggested by https://github.com/Boy132

* Revert/correct array key
Updated array key using the lowercase and the correct label.

* Add 'user' key
In the old $permission array was user an entry witch is missing in permissionTabs()

* Style and return
Added @return and removed empty lines

* pin
fix pint

* fix pint
remove @return

* fix pint
add () since pint is still not happy

* remove mb_strtolower
mb_strtolower is not necessary

* remove schema for control
remove ->schema for control tab.

* Remove import

Remove unused import

* correct translation key

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* make columns optional,
checkboxList => columns is now optional and default to 2

* move user and control registration
removed control registration since it was duplicate and move user registration to permissionTabs

* update @return on permissionTabs()

* Fix array key warning

* simplify permissions data

* revert this

* fix edit modal

* update icons

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: Boy132 <mail@boy132.de>
2025-05-05 17:35:17 -04:00
Boy132
c8230771ec Fix 500 when searching for empty term (#1340) 2025-05-05 23:31:36 +02:00
Charles
79691ba663 move redis only command to if statement (#1337) 2025-05-05 16:43:27 -04:00
Boy132
a6326f64fb Add back behind_proxy to ui (#1263)
* add back `behind_proxy` to ui

* combine `scheme` and `behind_proxy` into one component

* remove debug stuff

* update translations

* make bulky
2025-05-05 13:00:34 +02:00
Boy132
03745eb4be Allow to assign nodes to roles (node ownership) (#1231)
* allow to assign nodes to roles

* fix typo

* fix node policy

* small ui improvements

* add missing translation

* make phpstan happy

* fix migration on mysql

* also restrict mounts & database hosts to allowed nodes

* fix migration on mysql v2

* changes from review

* fix hasManyThrough

* change `accessibleNodes` to builder

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-05-05 12:58:55 +02:00
Charles
c0fda71e20 Font Saga Continues... (#1339)
Add back removed ??
2025-05-04 17:22:18 -04:00
Charles
f2f1026a97 Font Saga Continues (#1338)
Nuke comic, just use monospace..... make life easy
2025-05-04 17:03:45 -04:00
Charles
e1eaf805ea composer update (#1335) 2025-05-04 09:15:25 -04:00
Charles
03ec20e3a0 fix settings on mobile (#1336) 2025-05-04 09:15:12 -04:00
Charles
a5ffff8c8c Add Comic Mono to the list (#1330)
* Add Comic Mono to list and make default

* Update preview

* Create folder if missing.

* match composer lock from pr
2025-05-03 08:21:02 -04:00
Charles
82ef6c1408 Add server power actions to new context menu (#1321)
* add server power action context menu

* Update app/Filament/App/Resources/ServerResource/Pages/ListServers.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Cleanup

* Add missed enable

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-05-02 12:15:05 -04:00
Charles
2d581c7cbd Remove get_fonts, Fix docker container console font selection (#1329)
* Update `get_fonts`

This should fix docker, Has to be changed as we use alpine for docker which does not support GLOB_BRACE

* #2?

* #3

* FINAL BOSS FIGHT

Fixes Docker image <3

* Update resources/views/filament/components/server-console.blade.php

Co-authored-by: Lance Pioch <git@lance.sh>

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2025-05-02 08:37:27 -04:00
Lance Pioch
7f0266be5e Laravel 12.12.0 Shift (#1325)
Co-authored-by: Shift <shift@laravelshift.com>
2025-05-02 03:21:21 -04:00
Charles
1ae9490b8f update filament assets (#1328) 2025-05-01 19:20:54 -04:00
MartinOscar
a53b3fda10 Append / to EditFiles (#1322) 2025-05-01 21:26:16 +02:00
MartinOscar
e9ddf80d10 Use $id as primaryKey for File Model (#1323) 2025-05-01 21:26:01 +02:00
Lance Pioch
3f1e99f1df composer update (#1320)
Co-authored-by: Shift <shift@laravelshift.com>
2025-05-01 14:28:44 -04:00
MartinOscar
435c615ff1 Add throwIf to daemonRepository (#1301) 2025-05-01 15:49:35 +02:00
Charles
3effd98013 Allow changing of the console font (#1277)
* Custom Fonts

* Update app/Filament/Pages/Auth/EditProfile.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

* wip

* wip

* Update app/Filament/Pages/Auth/EditProfile.php

Co-authored-by: Lance Pioch <git@lance.sh>

* Update app/helpers.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

* update

* add fonts folder for docker

* Add default font

* Update server console to preload the font

* Update settings/trans

---------

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
Co-authored-by: Lance Pioch <git@lance.sh>
2025-05-01 09:47:59 -04:00
Lance Pioch
e354bc9be7 Laravel 12.11.0 Shift (#1317)
Co-authored-by: Shift <shift@laravelshift.com>
2025-04-29 21:01:28 -04:00
Boy132
14d351103c Fix database & user not being deleted (#1315) 2025-04-29 17:05:49 +02:00
Boy132
92c23451af Improve file error handling (#1314)
* improve file error handling

* small cleanup

* fix typo
2025-04-29 17:05:29 +02:00
pelican-vehikl
2046fa453a Pest Test Improvements (#1137)
Co-authored-by: Lance Pioch <git@lance.sh>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-04-28 10:20:33 -04:00
Michael (Parker) Parker
b39a8186ae Resolve issue with avatar storage (#1281)
* Resolve issue with avatar storage

This resolves the issue with getting avatar storage working

updates the entrypoint to create the `pelican-data/storage` folder on start.

Adds a dev dockerfile to build locally instead of needing to update the standard dockerfile.

* Move avatar folder

Moves the avatars folder in the storage folder in-case anything else needs storage as well.

Fixes an issue in the entrypoint where it wasn't creating the sub-folder correctly.
2025-04-27 20:56:10 -04:00
Letter N
8ae3c88c91 generalize sponge installation (#1300) 2025-04-26 14:06:30 -04:00
MartinOscar
329a29f7da Add missing disabled in AllocationsRelationManager (#1304) 2025-04-26 06:42:29 -04:00
MartinOscar
98a2cab5ca Case insensitive EggFeature Listeners (#1303) 2025-04-26 06:41:59 -04:00
pelican-vehikl
8407547574 Add back Egg Features (#1271)
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: Lance Pioch <git@lance.sh>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-04-24 18:24:18 -04:00
Lance Pioch
fccd7e5e75 composer update (#1298)
Co-authored-by: Shift <shift@laravelshift.com>
2025-04-24 15:33:26 -04:00
Lance Pioch
c0225b9e10 Laravel 12.10.1 Shift (#1294)
Co-authored-by: Shift <shift@laravelshift.com>
2025-04-24 10:08:49 -04:00
Boy132
544aaab960 Make sure 2fa requirement is enforced (#1289) 2025-04-23 16:03:10 +02:00
Boy132
914e215bc0 Separate user uploadable avatars into own setting (#1286) 2025-04-23 16:02:52 +02:00
Sebastien Green
90fd73f6a4 Change section header icon self alignment to centre (#1279) 2025-04-23 10:02:44 -04:00
Boy132
0037b4a1d4 Only use navigation groups when using sidebar (#1288)
* Revert "Remove `NavigationGroups` for Admin Navbar (#1248)"

This reverts commit a186900262.

* make navigation groups conditional
2025-04-23 16:02:21 +02:00
Boy132
3deada57c6 Remove DynamicDatabaseConnection (#1290) 2025-04-23 16:02:08 +02:00
Gabriel
6427903f9f feat(console): save command history in session (#1282) 2025-04-22 17:29:17 -04:00
PalmarHealer
b16e19b4fb Remove open in new tab since both are on filament now. (#1292) 2025-04-22 17:28:00 -04:00
Boy132
7e99d5cd8e Use Arr::dot to display multi-dimensional activity log properties (#1285) 2025-04-22 22:27:50 +02:00
Boy132
05b1a44a34 Fix metadata coming from wings activity logs (#1284) 2025-04-22 22:27:31 +02:00
Letter N
058b613c98 handle failed oauth (#1264)
* handle failed oauths

* fix linter

* small cleanup

---------

Co-authored-by: Boy132 <mail@boy132.de>
2025-04-22 15:57:44 -04:00
Boy132
0e2ab4b711 Fix activity log query (#1258) 2025-04-22 08:28:24 +02:00
Quinten
ee838316e6 Make avatars work (#1251) 2025-04-21 11:25:36 +02:00
MartinOscar
ffd94b8892 Fix develop Node Version reported as outdated (#1272) 2025-04-18 16:41:10 +02:00
MartinOscar
a186900262 Remove NavigationGroups for Admin Navbar (#1248) 2025-04-18 10:39:25 -04:00
Lance Pioch
bf14755287 Laravel 12.9.2 Shift (#1266)
Co-authored-by: Shift <shift@laravelshift.com>
2025-04-18 10:37:21 -04:00
MartinOscar
038504fbec Only chunk if rows exceeds sqlite variables limit (999) (#1270) 2025-04-17 16:24:57 -04:00
MartinOscar
22a0a52f7b Chunk Sushi inserts based on rows count (#1259) 2025-04-17 00:04:58 +02:00
Boy132
862afaa0e9 Fix api docs for server update requests (#1262)
* workaround for api docs error

* add deprecated notice
2025-04-15 23:47:31 +02:00
MartinOscar
a4dd8cca4c Add live() to KeyValue on CreateServer & EditServer (#1261) 2025-04-15 16:06:37 +02:00
Letter N
e67e0830eb Fix Node graph not rendering correctly (#1253)
* use round instead of `Number::format`

* remove unused

* also replace `Number::format` in cpu & memory charts

---------

Co-authored-by: Boy132 <mail@boy132.de>
2025-04-15 01:27:35 +02:00
Boy132
b444112085 Correctly display backup status (#1256)
* add status attribute to backup

* hide actions when backup is not successful

* small cleanup
2025-04-14 12:59:03 +02:00
Boy132
f23d4d6971 Fix action in notifications (#1257) 2025-04-14 12:57:38 +02:00
MartinOscar
2a3781f5a8 Add pdo_pgsql to Docker (#1244) 2025-04-13 02:34:27 +02:00
MartinOscar
cb245dc722 Use recommended PHP 8.4 for Docker (#1245) 2025-04-13 02:30:09 +02:00
MartinOscar
3ffbf9e46a Allow users to remove their Avatar (#1247) 2025-04-13 02:29:46 +02:00
MartinOscar
8221c80ec2 Only allow image/png mimetype for Avatar (#1246) 2025-04-13 02:27:36 +02:00
MartinOscar
702a6bb750 Restore exception_handler & error_handler for Tests (#1239) 2025-04-12 16:44:46 +02:00
MartinOscar
02d7ad04ad Fix serverVariables not saving due to join (#1235)
* Fix `serverVariables` not saving due to `join`

* Remove deprecated `viewableServerVariables`
2025-04-12 16:44:24 +02:00
Boy132
7409f020ba Add storage:link to setup command (#1233) 2025-04-11 23:23:23 +02:00
Lance Pioch
98d8510f11 Laravel 12.8.1 Shift (#1226) 2025-04-11 09:29:33 -04:00
Lance Pioch
6c6d458445 Laravel 12.7.2 Shift (#1213)
* Bump Laravel version constraint

* Bump community package dependencies

* composer update

---------

Co-authored-by: Shift <shift@laravelshift.com>
2025-04-07 21:08:27 -04:00
Lance Pioch
51fda2eaf4 These have to be nullable originally (#1222) 2025-04-07 21:08:03 -04:00
Boy132
92fbd75772 Show different roles CheckboxList for root admins and non root admins (#1219)
* show different roles checkbox list for root admins and non root admins

* simplify saveRelationshipsUsing

* remove disableOptionWhen

* add migration to remove additional roles from root admins
2025-04-07 16:10:31 +02:00
Boy132
fa8ae0aea5 Add avatar providers (#1192)
* Add avatar providers

* fix exists check for local avatar

* Use avatar in user lists

---------

Co-authored-by: Charles <charles@pelican.dev>
2025-04-07 16:06:19 +02:00
Charles
377b3f170d Change table row options (#1220)
It's a known filament issue that large tables are SUPER slow.
2025-04-06 15:03:40 -04:00
MartinOscar
566e7c1b24 Allow user to choose archive name in FileManager (#1206)
* Allow user to choose `archive` name in `FileManager`

* Rollback `file.compress` activity translation
2025-04-06 14:52:25 -04:00
tfcprivt
b9d4773bd7 Fixed the Select dropdown to use searchable on the Edit Files Page. (#1204)
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-04-06 14:05:54 -04:00
Boy132
49638e75e5 Add setup wizard to database host (#1216)
* add setup wizard to database host

* make phpstan happy

* remove `.` in lang

---------

Co-authored-by: notCharles <charles@pelican.dev>
2025-04-06 14:04:20 -04:00
MartinOscar
80c404a48c Chore filament:upgrade (#1210) 2025-04-05 02:56:52 +02:00
Charles
befe6be80b Update Overview, Again. Add some customization (#1200)
* wip

* wip

* wip

* overview 2.1

* Combine 2 branches into one

* updates

* Fix 500

* use my friend JSON

* Use switch
2025-04-04 12:08:43 -04:00
Boy132
3639d7ccec Fix file writing (#1218) 2025-04-04 14:38:08 +02:00
Boy132
20f271041a Allow to register custom role permissions (#1208) 2025-04-04 09:30:45 +02:00
Boy132
c3b8b71f9c Allow to register custom console widgets (#1209) 2025-04-04 09:30:25 +02:00
Boy132
c73d0544d9 Refactor admin dashboard to use widgets (#1207) 2025-04-04 09:30:00 +02:00
MartinOscar
484a3b445a Prevent Server primary allocation dissociation (#1197) 2025-04-04 00:56:15 +02:00
MartinOscar
c0fa8c1cd8 Use afterSave instead of handleRecordUpdate & move transferServer (#1195)
* Use `afterSave` instead of `handleRecordUpdate` & move `transferServer`

* Override `getSavedNotification` instead of `save`
2025-04-03 15:59:10 +02:00
MartinOscar
e562a35057 Add unique foreign keys for EggVariable (#1196)
* Fix tests \`egg_variable\` order

* Add `EggVariable` unique foreign key for `env_variable` & `name`
2025-04-03 15:58:49 +02:00
MartinOscar
636279c6eb Add FileNotEditableException (#1135)
* Add `FileNotEditableException`

* Send `Notification` instead of Throwing

* Remove useless `function`

* Make them all `AlertBanner`
2025-04-02 21:44:51 -04:00
Boy132
ed88ce9ae3 cleanup panel config file (#1198) 2025-04-02 21:44:33 -04:00
Lance Pioch
0cce716e2c Laravel 12.6.0 Shift (#1205)
* Bump Laravel version constraint

* composer update

* Force PHP `8.2` platform

* Fix `SplFileInfo` cast in `CleanServiceBackupFilesCommand`

* Bump larastan to dev commit

* Unpin filament

---------

Co-authored-by: Shift <shift@laravelshift.com>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-04-03 03:43:01 +02:00
tfcprivt
3639f0cb50 Added Icons for the Power Actions (#1203) 2025-04-02 21:29:29 -04:00
Boy132
9c3f47590c Fix server transfer backend (#1139)
* fix notify in transfer service

* remove magical array

* fix phpstan

* better validation for allocation_additional and better docs generation

* update transfer ui

* update request body
2025-04-01 11:19:14 +02:00
Boy132
630031e1c2 Add some refreshs & notifications to EditServer action buttons (#1174)
* add some refreshs & notifications to EditServer action buttons

* reinstall server when trying to toggle failed state

* don't show modal on normal toggle install

* don't print raw exception on reinstall & suspension
2025-04-01 08:36:19 +02:00
Boy132
2c00f90ba6 remove codeowners (#1193) 2025-03-31 07:32:01 -04:00
Lance Pioch
875dca54f5 Switch inserts to proper creates (#1190)
* Switch inserts to proper creates

* Push `$token` to `$tokens[]` in `ToggleTwoFactorService`

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-03-30 21:56:49 -04:00
Michael (Parker) Parker
a03b604f2d Merge pull request #1184 from JoanFo1456/main
Change console font
2025-03-30 14:53:28 -04:00
Lance Pioch
8261184b57 Officially support PostgreSQL database (#1066)
* Just skip this table because it no longer exists

* Add postgresql

* This no longer needs to be there

* These are the same output in mysql, but different in postgresql

* Fix these migrations for postgresql

* This table no longer exists

* This is expected to be a json column for json operations, required for postgresql

* Shoot for the stars

* Fix pint

* Why was this missing

* Updates

* Restore this

* This needs to be explicit

* Don’t like strings

* Fix these classes

* Use different method to compare dates

* Apparently postgresql doesn’t like case insensitivity

* Postgresql orders it backwards

* Ordered different by postgresql

* Unnecessary and breaking

* Make sure the order is correct for postresql

* Fix this with the order too

* Remove this

* Force email to be lowercased

* Update app/Models/User.php
2025-03-30 14:44:03 -04:00
MartinOscar
bca02ced86 Fix typo for SESSION_DRIVER in RedisSetupCommand (#1188) 2025-03-29 19:58:36 +01:00
Boy132
a768fadaea Reimplement password reset (#1182)
* add password reset to all panels

* remove old leftovers

* fix reset url in account created mail
2025-03-28 23:51:42 +01:00
Boy132
7471347b55 Improve alert banner fetching (#1173)
* use events for alert banner pulling

* add ids to alert banners to prevent duplicates
2025-03-28 23:50:34 +01:00
MartinOscar
1457c4bd06 Lint console.css 2025-03-28 23:09:32 +01:00
JoanFo
8b943fa160 Update server-console.blade.php
Removed font.css referrence (removed file)
2025-03-28 21:54:15 +01:00
JoanFo
5c5c9654b4 Update console.css
Added content from ./font.css
2025-03-28 21:53:29 +01:00
JoanFo
dd20cb0f11 Delete public/css/filament/server/font.css
Adding the contents on console.css
2025-03-28 21:50:50 +01:00
JoanFo
88deb35dc8 Create font.css
Forgot the font css file
2025-03-28 18:47:06 +01:00
JoanFo
0f92632c06 Update server-console.blade.php 2025-03-28 18:26:38 +01:00
JoanFo
a85fc5c88e Add files via upload 2025-03-28 18:23:36 +01:00
Charles
8d7eff13fb Update Overview and Server List (#1151)
* Update Overview and Server List

* Fix background on light mode
2025-03-28 11:57:40 -04:00
MartinOscar
c39c29e50b Must use Closure since MenuItem does not leverage Concerns (#1181)
* Must use `Closure` since `MenuItem` does not leverage Concerns

* Translate `Profile` in `ServerPanelProvider`

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-03-28 12:50:34 +01:00
MartinOscar
db3b16e609 Add Owner Filter to ListServers (#1180)
* Add `Owner` Filter to `ListServers`

* Make `Owner` filter show on `other` & `all` tabs

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-03-28 12:27:51 +01:00
MartinOscar
72b9c309d3 Fix EditProfile cannot use / in trans() (#1178) 2025-03-27 22:52:39 +01:00
MartinOscar
68a6dc45cb Set Schedule next_run_at in ListSchedules to Never if disabled (#1176) 2025-03-27 20:24:33 +01:00
MartinOscar
9a258efe53 Force app panel for EditProfile (#1162)
* Force `app` panel for `EditProfile`

* Force `app` panel for `OAuthController`

* Use translation in `AdminPanelProvider`

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-03-27 18:54:08 +01:00
MartinOscar
3310746107 Show different emptyStateHeading when activeTab is my in ListServers (#1157) 2025-03-27 15:43:07 +01:00
MartinOscar
42706dba14 Remove duplicated activity.read & use relations in EditUser (#1165) 2025-03-27 15:40:19 +01:00
MartinOscar
ec6529ac4c Fix \compose.yml\ spelling (#1170) 2025-03-27 05:46:40 -04:00
Morpheus636
bced93c5be Removed outdated docker documentation (#1166) 2025-03-27 05:46:27 -04:00
Charles
cb1c953540 Fix Egg Variable Order (#1172)
* Fix Egg Variable Order

* Fix Client Side Startup variable order
2025-03-27 05:45:59 -04:00
Boy132
c689f6860b Disallow 0.0.0.0, 127.0.0.1 and localhost as node fqdn (#1158)
* disallow `0.0.0.0`, `127.0.01` and `localhost` as node fqdn

* use rules of model
2025-03-26 09:03:13 +01:00
MartinOscar
a73404c1b4 Fix Server ForceDelete by adding missing redirect (#1156) 2025-03-24 22:28:40 +01:00
Boy132
61cbe5465f Schedules: Update next_run_at when editing & show notification if cron is invalid (#1141)
* update `next_run_at` when editing & show notification if cron is invalid

* move getNextRun to resource
2025-03-24 09:08:51 +01:00
Charles
5bea1ea80a Fix 500 when viewing node (#1144)
* Fix node 500

* this feels better

* Update app/Models/Node.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

* Update app/Models/Node.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

* pint

---------

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
2025-03-23 17:43:51 -04:00
MartinOscar
b69136d7a4 Add Server ForceDelete (#1134) 2025-03-23 17:08:59 -04:00
Boy132
a8c3082b79 Add UI for server transfers (#1119)
* add ui for server transfers

* disable transfer button when server is in conflict state
2025-03-23 17:02:22 -04:00
Boy132
a47ad071c9 Fix activity log on rename api endpoint (#1149) 2025-03-22 17:01:11 +01:00
MartinOscar
ab953b2f4d Use composer to copy .env.example after its done installing packages. (#1073) 2025-03-22 14:06:47 +01:00
MartinOscar
03d6c88f65 Fix OAuth Modals CopyAction & use x-filament::link (#1146)
* Fix `CopyAction` & use `x-filament::link`

* PHPStan
2025-03-22 14:05:14 +01:00
PalmarHealer
b4eab02254 Remove cursor not allowed rule (#1147)
* remove cursor not allowed rule

* re-add css rule
Added the previously removed rule back and specified selector.

* Apply suggestions from code review

---------

Co-authored-by: Lance Pioch <lancepioch@gmail.com>
2025-03-22 08:31:57 -04:00
Boy132
23f39acd4e Add host config to gitlab oauth (& add setup steps) (#1142)
* add custom provider class for gitlab to allow custom hosts

* add setup steps
2025-03-21 21:23:38 +01:00
Boy132
82b0aff105 Fix SMTP scheme/ encryption (#1120) 2025-03-21 08:42:42 +01:00
Charles
adca50a372 Catch 500 on backup page when you hit the backup rate limit (#1132)
* Catch backup throwable

* phpstan

* Update notification
2025-03-20 10:38:24 -04:00
MartinOscar
c5230efad6 Catch NodeUpdateService in EditNode & NodeController (#1106) 2025-03-18 23:07:40 +01:00
Charles
e5d9d53aa3 Remove unused groupBy (#1130)
Fixes #1107
2025-03-18 18:07:35 -04:00
MartinOscar
29f3defc73 Catch DaemonFileRepository & show Alert (#1129)
* Catch `DaemonFileRepository`

Co-authored-by: notCharles <charles@pelican.dev>

* Pint

---------

Co-authored-by: notCharles <charles@pelican.dev>
2025-03-18 23:07:21 +01:00
Boy132
2dbb9a5f9b Add update egg bulk action (#1122)
* add update egg bulk action

* make phpstan happy

* use `before`
2025-03-18 17:42:04 +01:00
Boy132
a05e330b19 Fix path resolving when moving files (#1116)
* don't resolve new path when moving file

* use full path in activity log

* don't require file name when moving
2025-03-18 17:36:27 +01:00
Boy132
4a7951995e Add bulk move (#1117) 2025-03-18 17:36:13 +01:00
Boy132
3d29243cf0 Add tag filter to lists (#1124) 2025-03-18 17:35:36 +01:00
Boy132
c52439132d Add tags to egg importer & exporter, add tags to egg jsons (#1125)
* add tags to egg importer & exporter

* add tags to stock eggs
2025-03-18 17:35:15 +01:00
Boy132
517f17cbcc Add redirect after clicking reinstall (#1126) 2025-03-18 17:35:01 +01:00
Lance Pioch
f8d119b458 Update readme.md 2025-03-18 10:06:51 -04:00
MartinOscar
fbeb747fc3 Fix ImportEggAction (#1110)
* `Arr::Wrap` `data.files` cause if its unique its a string

* Use `data.url` first so it gets overwritten by `data.files`
2025-03-17 18:07:36 +01:00
Boy132
f563128237 Make sure to not sync root admin role (#1113) 2025-03-17 17:23:44 +01:00
MartinOscar
f2f3ee548f Add App Logo (#1104)
* Add `app.logo` to `Settings`

* Use `app.name` if `app.logo` is null
2025-03-17 13:28:32 +01:00
MartinOscar
0b3dce132f Add header, footer & body-end views (#1111) 2025-03-17 13:28:18 +01:00
MartinOscar
5bf23b972d Fix DaemonFileRepository in ListFiles (#1109)
* Fix `DaemonFileRepository` in `ListFiles`

* Use match for `getPermissionsFromModeBit`
2025-03-17 12:17:05 +01:00
MartinOscar
22d02c0df5 Remove NodeCreationService (#1092) 2025-03-17 05:46:33 +01:00
MartinOscar
253abf65b1 Hide Directory size in ListFiles (#1102)
* Hide `directory` size in `ListFiles`

* Use only one `DaemonFileRepository` in `ListFiles`
2025-03-16 15:51:02 +01:00
MartinOscar
d452e3d2f2 Use ContainerStatus::tryFrom in ProcessScheduleService (#1101) 2025-03-16 15:36:15 +01:00
Charles
0051370f24 Reduce svg size (#1100) 2025-03-16 10:20:19 -04:00
Charles
4e85180b3d Fix Release Build (#1089) 2025-03-15 16:21:31 -04:00
Charles
9f4a3b1c0d Fix Releases (#1088) 2025-03-15 16:13:55 -04:00
Boy132
45db06a1bd Refactor captcha (#1068)
* refactor captcha

* add default error message

* prevent rule from being called multiple times

* fixes

* use config

* Update this to latest

* Remove this

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2025-03-15 15:52:38 -04:00
Charles
3e26a1cf09 save record, then try to update (#1087) 2025-03-15 20:33:20 +01:00
Lance Pioch
44111696df Laravel 12.2.0 Shift (#1082)
* Bump Laravel version constraint

* composer update

* Fix php8.2

* Pin filament for now

---------

Co-authored-by: Shift <shift@laravelshift.com>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-03-15 15:27:06 -04:00
MartinOscar
e04abcbcf9 Replace existing Egg Reserved_Env_Variables with SERVER_ prefix (#1070)
* Add migration that updates egg->variables->env_variable, egg->startup, egg->servers->startup

* Update `EggImporterService` to replace `EggVariable::RESERVED_ENV_NAMES`

* Use `EggImporterService::parseReservedEnvNames`

* Refactor & Remove `Migration`
2025-03-15 14:51:10 -04:00
MartinOscar
ea5914f362 Add url Repeater to ImportEggHeaderAction (#1071)
* Add url `Repeater` to `ImportEggAction`

* Addtranslation

* Requested changes

* Only allow `multiple` when not editing `Egg`

* Only `deletable` & `grid` if `multiple`

* Fix `FileUpload` & Make sure its a json file
2025-03-15 14:46:10 -04:00
MartinOscar
98c36c4cc3 Fix revamp api_keys migration (#987) 2025-03-15 14:42:43 -04:00
MartinOscar
6bc55b1039 Silent file_exists when its not in defaults allowed open_basedir (#1086) 2025-03-15 14:28:59 -04:00
MartinOscar
11b153d23c Fix null Node Stats (#1075)
* Make sure we are talking to the right wings using `getSystemInformation` as a gate keeper

* Re use method

Co-authored-by: Lance Pioch <git@lance.sh>

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2025-03-15 14:28:15 -04:00
Charles
998ad2ee31 Add hint about overhead when using memory limit (#1069)
* Add hint about overhead when using memory limit

* Update lang/en/admin/server.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* escape `'`

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-03-15 13:10:25 -04:00
Thibault Junin
7f0c7da37f Fix FindViableNodeService to actually filter Tags (#1080)
* fix viable node service to take into account tags

* Update app/Services/Deployment/FindViableNodesService.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

---------

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
2025-03-13 17:04:44 +01:00
MartinOscar
e93d122a27 Server does not use SoftDelete so deleted_at does not exist (#1083) 2025-03-13 01:00:55 +01:00
MartinOscar
9aaf6b3798 Make redirect & callback public instead of private as required by Laravel 12 (#1081) 2025-03-12 19:32:16 +01:00
MartinOscar
fd6e7eb314 Fix missing space in OAuth modal (#1078) 2025-03-10 19:28:39 +01:00
Lance Pioch
4e694b50ca Make sure the app key is always set (#1074)
* Make sure the key is always set
2025-03-08 21:32:28 -05:00
MartinOscar
3a24edfe1d Tests: Make PHPstan run in 8.2, 8.3 & 8.4 (#1072)
* Add PHP [8.2,8.3,8.4] matrices to `phpstan`

* Use a pointer with `unset($this)` to make PHP 8.4 happy
2025-03-09 01:58:50 +01:00
Lance Pioch
0179ade557 Add Laravel Data package, also some small fixes (#1065)
* Simplify

* Update these

* Add Laravel Data

* Remove unused imports

* Quick fix

* Fix double array

* Update app/Console/Commands/Egg/CheckEggUpdatesCommand.php
2025-03-08 19:56:06 -05:00
MartinOscar
05d74232af Fix Build UI Tests running twice (#1067) 2025-03-08 16:13:55 +01:00
Boy132
a2b2e373be Fix subuser activity log (#1063)
* use user for subject

* add permissions to properties

* always add websocket.connect permission (because it's default)

* small cleanup

* also update editing
2025-03-07 17:29:09 +01:00
MartinOscar
0a17e78f33 Force 2fa_required to no one by default (#1058) 2025-03-06 20:53:29 -05:00
Lance Pioch
c3a65aed07 Laravel 12.1.1 Shift (#1057)
* Bump Laravel version constraint

* Bump community package dependencies

* composer update

---------

Co-authored-by: Shift <shift@laravelshift.com>
2025-03-06 18:37:45 -05:00
MartinOscar
d438e29154 Add missing Database address field (#1049)
* Add address field to display `host:port` to enduser on `ListDatabases` & `EditServer`

* Add `CopyAction` to `EditServer`

* Update databaseHost `display_name_help`
2025-03-06 15:55:40 +01:00
MartinOscar
1fdc428f3e Allow sendCommand on Starting or Running Servers (#1061)
* Replace `string` with `enum`

* Add title

* Allow sendCommand on `Starting` or `Running` servers

* refactor: Use Filament interfaces

* Use `getLabel` instead of `str->headline`

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-03-06 15:55:00 +01:00
Charles
a9e4495c91 Add missing activity loggers on client area (#1060)
* Update Subuser

Adds user deleted notification, Adds logger for creating subusers.

* Update Tasks

* ...

* Update Schedule

* Update Files

* Update Database

* Move `reinstall` to proper array

* Add `:action` to deleted task log

* Updates

* Fix CreateSchedule

* Fix Editing/Saving

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-03-06 09:28:45 -05:00
MartinOscar
98ddb65509 Revert Monaco Changes... (#1062)
Reintroduced the ever expanding editor.

Co-authored-by: notCharles <charles@pelican.dev>
2025-03-06 12:50:34 +01:00
MartinOscar
6caa741798 Make restart the default payload when using PowerAction in Schedules (#1059) 2025-03-05 22:10:48 +01:00
MartinOscar
5512c10ee1 Use daemonRepository instead of BuildModificationService (#1053) 2025-03-04 00:48:22 +01:00
MartinOscar
5331c5abfa Use predis as default redis driver (#1054) 2025-03-03 22:47:01 +01:00
Lance Pioch
36a38ab947 Basic two factor auth implementation (#1050)
* Basic two factor auth

* Remove unused import

* Add translation
2025-03-03 15:22:12 -05:00
Lance Pioch
da195fd2fe PHPstan updates (#1047)
* Not found property rule

* Make these “better”

* Day 1

* Day 2

* Day 3

* Dat 4

* Remove disabled check

* Day 4 continued

* Run pint

* Final changes hopefully

* Pint fixes

* Fix again

* Reset these

* Update app/Filament/Admin/Pages/Health.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

* Update app/Traits/CheckMigrationsTrait.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

---------

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
2025-03-03 14:41:19 -05:00
Lance Pioch
82409f2fba Laravel 12.x Shift (#1045)
* Convert route options to fluent methods

Laravel 8 adopts the tuple syntax for controller actions. Since the old options array is incompatible with this syntax, Shift converted them to use modern, fluent methods.

* Slim `lang` files

* Shift core files

* Validate via object directly within Controllers

* Use `Gate` facade for controller authorization

* Dispatch jobs directly

* Remove base controller inheritance

* Default config files

In an effort to make upgrading the constantly changing config files easier, Shift defaulted them and merged your true customizations - where ENV variables may not be used.

* Set new `ENV` variables

* Add new Laravel `composer run dev` script

* Add `storage/app/private` folder

* Bump Composer dependencies

* Convert `$casts` property to method

* Adopt Laravel type hints

* Shift cleanup

* Apply suggestions from code review

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

* Add old key as backup

* Update composer

* Remove extra line

* Update this

---------

Co-authored-by: Shift <shift@laravelshift.com>
Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
2025-03-03 14:41:00 -05:00
MartinOscar
839be53231 Use BuildModificationService on EditServer (#1042)
* Use `BuildModificationService` on `EditServer` & make it throw if we can't reach wings

* Use Node name on `EditServer` & `EditNode`
2025-03-03 19:49:42 +01:00
Charles
d79d461e7c Fix total disk storage (#1040) 2025-03-01 07:30:29 -05:00
Boy132
d8e8240756 Fix EditUser (#1046)
* fix unique when editing user

* unset roles when editing
2025-02-28 13:28:18 +01:00
MartinOscar
0b84b0c08c Make sure tests fails on composer error (#1034)
* Remove `--prefer-dist`

* Add missing args `--no-autoloader` `--no-suggest` `--no-progress` `--no-scripts` `--no-dev`
2025-02-28 02:59:51 +01:00
Lance Pioch
e2045e334f This has been replaced with pint (#1044) 2025-02-27 20:18:09 -05:00
Boy132
5e2d106bb9 Call parent constructor in custom oauth provider classes (#1039) 2025-02-27 17:22:32 +01:00
Charles
40c138f086 Update admin resources (#1038) 2025-02-27 09:28:00 -05:00
Boy132
ab543a399b Fix composer.lock (#1036) 2025-02-27 15:10:21 +01:00
Charles
0308045738 Delete mysql-schema (#1037)
Just build the database from migrations... remove  the requirement for mysql-client on installs
2025-02-27 08:17:17 -05:00
Boy132
cd9cbf20ce Downgrade myclabs/deep-copy back to 1.12.1 (#1033) 2025-02-26 16:27:31 +01:00
Boy132
e1308cb04d Small api docs improvements (#1032)
* update scramble

* cleanup application api endpoints

* cleanup client api endpoints

* fix security schema and make docs homepage nicer

* remove duplicate myclabs/deep-copy

* style(api-docs): use Blade template and Tailwind for styling

* Publish scramble view

* Use localStorage theme instead of config

* Update routes/docs.php

Co-authored-by: Lance Pioch <git@lance.sh>

---------

Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: Lance Pioch <git@lance.sh>
2025-02-26 16:12:19 +01:00
Charles
2d937229fb Add Custom StatBlocks, Add Stats (#1027)
* add custom statblock

* add custom datablock

* Use real values, not placeholders

* More Changes

* remove unused var

* Remove old code

* Remove more

* Updates

* Add LineHeight

Changing the font size cut off the j/g and _

* Fix invisible console selection

Closes #874

* Add Missing to `offline` detection

* Use helper

* Update

* Removals

* Move to `SmallStatBlock`
2025-02-26 10:08:42 -05:00
MartinOscar
3d764a89f7 chore: Upgrade Dependencies (#1005)
* chore: yarn upgrade

* chore: composer upgrade

* chore: php artisan filament:upgrade

* chore: update filament-monaco-editor-views

* chore: update filament-monaco-editor-configs

* chore: move turnstile-views to plugins

* fix monaco-editor loader & css
2025-02-25 14:22:07 +01:00
Boy132
2f56ca5ed5 Add deleteAny and replicate to policies (#1030)
* add `deleteAny` to policies

* add `replicate` to policies
2025-02-25 13:50:15 +01:00
Boy132
fe8e6fcfda Fix StoreServerRequest for deployment (#1031) 2025-02-25 13:49:55 +01:00
MartinOscar
1e7a901371 Don't log duplicated OauthProviders during tests (#1015)
* Make sure OauthProviders we only log if not running tests

* Dependency inject
2025-02-24 19:37:41 +01:00
Boy132
d53820bbdc Add view pages for "simple" resources (#963)
* update ApiKeyResource

* update DatabaseHostResource

* update MountResource

* update RoleResource

* update UserResource

* WebhookResource

* fix phpstan

* add back label translations for resources

* add back other labels

* upstream changes
2025-02-24 15:44:47 +01:00
MartinOscar
d03366cf3d Enhance Node health column (#1023)
* Make sure we are talking to a `Pelican Wings` instance

* Enforce matching `token_id`

* Refactor `NodeSystemInformation`
2025-02-22 21:44:49 +01:00
MartinOscar
7d68da41f4 Add HOSTNAME TERM LANG PWD TZ TIMEZONE to Egg RESERVED_ENV_NAMES (#1026) 2025-02-22 21:44:07 +01:00
MartinOscar
599d53b4f2 Fix Node & Server Create/Edit Page (#1019)
* Add missing `dehydrated` on `Node`

* Add missing `dehydrated` on `Server`
2025-02-21 11:55:11 +01:00
Boy132
f0f04fd86a Add backend validation to subuser permissions (#1014)
* add backend validation to subuser permissions

* always allow websocket.connect

* use collection to clean permissions
2025-02-21 11:02:08 +01:00
MartinOscar
324fc4b7d5 Add Egg copy from & ReplicateAction (#1013)
* Add `Egg` `copy from` for Process & Install Script

* Add builtin `ReplicateAction`

* Use `CopyFrom` for less duplicated code

* Hide label & add tooltip to `ReplicateAction`

* use `iconButton()` instead of `hiddenLabel()`

* use `iconButton()` for every Actions

* Use our translation instead

* Copy egg_variables aswell

* remove `get()`

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-02-19 19:52:10 +01:00
Quinten
5be4e22a0c Merge pull request #1012 from QuintenQVD0/docker-schedule-health
(docker) supercronic: allow overlapping
2025-02-16 19:32:40 +01:00
Quinten
75aae3e45b supercronic: allow overlapping 2025-02-16 18:44:54 +01:00
MartinOscar
c1704eef3b Interpret Server StartupCommand variables (#1009)
* Use `StartupCommandService`

* Simplify variable name

* Add `PreviewStartupAction`
2025-02-15 17:46:25 -05:00
Quinten
09abec6ee6 fix(docker): enable multi-arch builds (#993)
* fix(docker): enable multi-arch builds

* Remove workflow_dispatch and add missing space

* There is no need for a matrix in the job build-and-push

* Update docker-publish.yml

* Only keep the artifacts for 7 days

* Bump dockerfile labs version to 1.13

* Added a comment in the Dockerfile explaining how to self-build it

* build-php-base cache should not be tagged
2025-02-15 23:32:15 +01:00
David Groselj
206cc76a8b Fix deleted users being shown as "System" in activity log (#1010)
* Show deleted users as "Deleted user"

* Update shown icon

* Apply suggestions from code review

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Update app/Models/ActivityLog.php

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-02-15 17:43:32 +01:00
MartinOscar
b355830db4 Fix File Upload (#952)
* Log correct file name

* Remove duplicated throws comment

* Set maxSize

* Add hints

* Fix unit conversion

* Add translations
2025-02-14 11:11:52 +01:00
MartinOscar
09375df8a7 Add missing selectablePlaceholder(false) & native(false) Fix 500 (#1008)
* Add missing `selectablePlaceholder(false)`

* Add missing `native(false)`
2025-02-14 11:11:16 +01:00
Boy132
96ec2eb3c2 Small translation fixes (#1006)
* display_name_help: replace location with node

* cpu_helper: 100% is one thread, not core

* remove unnecessary "create_action" translation

* nobody saw anything
2025-02-13 21:50:23 +01:00
MartinOscar
b464bb4d25 Add ignoreRecord: true to Server ExternalId (#1004) 2025-02-13 00:35:20 +01:00
MartinOscar
c561035c75 Fix incorrect Allocation permission in Node's AllocationsRelationManager (#995) 2025-02-12 20:35:55 +01:00
MartinOscar
48d1ef5d26 Add WordWrap to MonacoEditor (#1001) 2025-02-12 20:35:23 +01:00
MartinOscar
1f6b659546 Fix Translations (#994)
* Fix copy paste AllocationsRelationManager

* We shouldn't let the user know if the user is correct but the password isn't

* Add missing `trans()` `EditServer`

* Add missing `trans()` User `ServersRelationManager`

* Replace every `__()` with `trans()` helper

* Fix `exceptions` `User` Model

* Replace `Translator->get()` with `trans()` helper

* Revert "We shouldn't let the user know if the user is correct but the password isn't"

This reverts commit e156ee4b38.
that's stock laravel, therefore it needs to stay
2025-02-11 22:16:48 +01:00
MartinOscar
8f47ccfbf7 Fix Health ScheduleCheck (#999)
* Use `ScheduleCheck` instead of a blank `Check`
2025-02-11 22:11:07 +01:00
MartinOscar
35d25d216e Cleanup OAuth _noenv & enabled providers (#989) 2025-02-11 22:10:27 +01:00
MartinOscar
a6963ad802 Remove Deprecated PHPDoc comment & AuditLog Model (#997)
* Remove missleading deprecation, you cant use can/cannot on apikeys

* Remove unused `AuditLog` Model
2025-02-11 19:25:36 +01:00
Thibault Junin
d48cf6b722 Add Webhook Event header (#996)
* Add Webhook Event header
2025-02-11 13:43:40 +01:00
MartinOscar
cba4cf11aa Fix Admin Area translations (#991)
* Fix button

* Replace array with index

* Fix Server ToggleInstallService

* FiNodeVersionsCheck

* Fix CreateWebhookConfiguration

* Fixdatabasehost post_help > port_help

* Fix User CreateServer

* Fix Profile language_help

* Fix Role permission UserResource

* Remove debug & Pint
2025-02-10 10:28:14 -05:00
MartinOscar
96c09acc52 Fix translation (#990) 2025-02-10 00:06:11 -05:00
Charles
7f697017a7 Fix flipped translation keys (#988) 2025-02-10 00:58:08 +01:00
Charles
f8ad720f52 Admin Area Translations (#965)
* Init

* Health Page

* Admin API Keys

* Update API Keys

* Database Hosts

* Mounts

* remove `s`

* Users

* Webhooks

* Server

never again...

* Fix Server

* Settings

* Update Mounts

* Update Databasehost

* Update Server

* Oops, Update Server

* Nodes

* Update User

* Dashboard

* Update Server

* Profile

* Egg

* Role & Update Egg

* Add base Laravel lang files

* update apikey

* remove html back to settings, remove comment

* add `:resource` to create_action

* Update Egg

* Update Egg v2

* Update 1

* trans cf info label

* Update charts

* more trans

* Update Webhook

* update Health

* Update Server

* Update Role

* Fixes

* Bulk Update

* AnotherOne

* Fix relation button label

* rename `admin1` to `admin`

Leftover from testing... oops

* More Translations

* Updates

* `pint` + Relation Manager Titles
2025-02-08 23:16:54 -05:00
Boy132
513117cc42 Fix event listeners for notifications (#971)
* fix event listeners for notifications

* fix "visit panel" url
2025-02-08 14:32:56 +01:00
MartinOscar
5797b790fd Fix ServerList Filter query (#977) 2025-02-08 12:45:36 +01:00
MartinOscar
9ec2f6eae1 Fix OAuthProvider & Add ColorPicker for Authentik (#975)
* Fix driver name

* Fix AuthentikProvider config & Add ColorPicker

* Add sqlite-journal to .gitignore
2025-02-07 17:28:06 +01:00
MartinOscar
77bf70b063 Add default Egg import url (#972) 2025-02-07 15:38:25 +01:00
MartinOscar
b8c1b68328 Add back TransientToken check (#968) 2025-02-05 12:58:10 +01:00
MartinOscar
431c1977e3 Filter out wings metadata in ListActivities (#961) 2025-02-02 15:07:03 +01:00
Lance Pioch
f8ad9a1805 Use PestPHP (#962)
* Install Pest

* Don’t use bootstrap file anymore

* Fix comment

* Think this is needed

* Reset this

* Switch dataproviders to attributes

* Fix these

* Support in memory databases

* Fix this migration

* Switch this back for now

* Add missing import

* Truncate and reseed database

* These are replaced now

* Switch ci to use pest
2025-01-30 16:39:17 -05:00
Lance Pioch
635cc6a029 Add PHP 8.4 Support (#858)
* Add php 8.4

* Update ide helper

* Add php 8.4

* Update laravel sanctum

* Update laravel framework

* Hash rounds were increased

* This is always false

* Extend model now

* This does nothing

* Move model validation methods to trait

* Remove base model

* Backup routes were previously referenced by uuids

* Remove commented code

* Upgrade laravel/framework

* Fix migration

* Update ide helper

* Update sanctum

* Add version to composer

* Add this back in, fixed

* Make this protected to be safer
2025-01-30 16:39:00 -05:00
Charles
20125dbc6f Add front end badges (#960)
* Add front end badges

* I identify as a `string`

* Display even if there's no limit

* use `const`'s

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-01-30 06:21:28 -05:00
Boy132
d5b8a4c501 Fix file download link (#959)
* fix mount of DownloadFiles

* fix path in download url
2025-01-29 08:32:51 +01:00
MartinOscar
dde5305b3f Add validation & missing reserved vars to EggVariables (#954)
* Add validation & Add missing reserved vars

* env_var not env_name 🤦‍

* Custom validationMessages
2025-01-28 14:22:03 +01:00
MartinOscar
e352754e6f Fix CopyAction & Add to Server Settings page (#950)
* Fix & Add to Server Settings page

* Add `request()->isSecure()`

CopyAction only works on SSL, no point in showing it when its not SSL

---------

Co-authored-by: notCharles <charles@pelican.dev>
2025-01-27 19:41:57 +01:00
MartinOscar
7cde90a39a Fix schedules (#949)
* Fix schedules

* Only explode when payload isn't a power action

* Run only on first day of the month

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-01-27 17:57:17 +01:00
Boy132
3202a59b07 Activity log list improvements (#939)
* handle "server:crashed" log

* update activity log list

* add event filter

* add email to user column

* fix phpstan

* only show the email if the actor is the server owner/ a subuser or if the viewing user is an admin

* Apply same logic from ViewAction & make sure user is admi for url

* Add pagination to avoid showing 2000 records at once

* update can check & pagination

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-01-27 09:46:39 +01:00
Boy132
71f3abe464 File manager improvements (#936)
* add separate button for "save & close"

* make language selection for editor work

* fix download url

* add info banner for .pelicanignore files

* small cleanup

* fix import

* Move File Lang

* add `ctrl+shift+s` for save & close

* fix keybind

* cleanup and fix default value for edit

* remove unnecessary File::get & trait

* More EditorLanguages not matching their names

* mdx has its own highlighter

---------

Co-authored-by: notCharles <charles@pelican.dev>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-01-26 14:29:53 +01:00
Alexander Featherson
401026efa1 [Fix] Websocket Tokens Refresh issue (#944)
* - Temporary fix for token refresh issue.

More testing is needed.

* Update server-console.blade.php

Removal of final old token var (no longer needed as livewire will handle it through piping)
2025-01-25 22:29:01 +01:00
MartinOscar
654143addc Fix ServerList Filter badge count (#946) 2025-01-25 22:24:55 +01:00
Scai
37f9725f27 chore: add codeowners (#941) 2025-01-24 21:00:15 +02:00
dependabot[bot]
98c915490d Bump vite from 6.0.7 to 6.0.9 (#940)
* Bump vite from 6.0.7 to 6.0.9

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.0.7 to 6.0.9.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.0.9/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Also bump laravel-vite-plugin

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-01-24 14:06:00 +02:00
Boy132
6fb54e32f1 Use tabs instead of filter for server list (#937)
* use tabs instead of filter for server list

* move "all servers" to end
2025-01-24 08:29:07 +01:00
Boy132
fef19b9fdd files tooltip for activity logs (#938)
* add files tooltip to activity logs

* fix when "files" isn't an array
2025-01-24 08:28:40 +01:00
Josh
6a4963200c Rootless Docker/Optimized build (#932)
* Rootless Dockerfile/Optimized build

Add unneeded files to .dockerignore
Split Dockerfile into more stages to allow Composer/Yarn to run concurrently
Don't log supervisord to a file, as file logging in a Docker container makes no sense
Redirect process output to container output for log processors
Run all processes as non-root
Minimize files with write permission for non-root user
Move docker folder out of .github, as it has nothing to do with GitHub

* Remove install-php-extensions utility after use and name final stage

* Test arm64 runner

* Allow Docker workflow caching multi-arch separately

* Fix Docker publish workflow branches

* Move Caddyfile/crontab config into docker directory, remove redundant supervisord user

* Further restrict permissions

* Supervisord logs
2025-01-23 11:01:14 +02:00
Boy132
37ba62410f Fix translations for activity logs (#907)
* fix translations for activity logs

* add backwards compatibility for old logs

* update lang file

* small cleanup

* fix singular/ plural for "file"

* fix for "rename" + disable bulk move (because it's not working)
2025-01-23 09:05:23 +01:00
MartinOscar
262e2fd09a Add roles to owner selector on Create/Edit Server page (#935)
* Add roles to owner selector on Create/Edit Server page
2025-01-23 02:47:13 +01:00
Boy132
9e8b9cd599 Update node record after updating (#929)
* refresh node model after updating

* update record so form is correctly filled
2025-01-19 01:28:52 +01:00
Boy132
3411e5e65c NodeStorageChart: Format data after math (#931) 2025-01-19 01:09:54 +01:00
Charles
7e6769c96e Match the owner selection on create server (#927) 2025-01-19 00:21:58 +01:00
Boy132
03eaddb126 Fix server access for admins without subuser (#919)
* fix server access for admins without subuser

* add permission checks to power buttons

* add permission check for console command sending

* fix tests

* fix websocket token permissions

* fix sftp access

* fix server api + small cleanup

* it's "update", not "edit"...

* fix tests

* fix permission const for "activity read"

* fix activity subuser permission
2025-01-17 23:04:22 +01:00
Boy132
61bdf0dcd7 Alert banner improvements: auto-refresh, fixes & "closeable" (#924)
* fix websocket error always displaying

* use livewire component with polling for alert banner container

* add id to alert banner

* cleanup blade file and add "closeable" property
2025-01-17 23:03:34 +01:00
Charles
cbacc18e56 get value of suspended (#922) 2025-01-16 21:18:00 -05:00
Lance Pioch
ad1a9cd33f Update phpstan to latest (#804)
* Fix these

* Update phpstan

* Transform these into their identifiers instead

* Fix custom rule

* License is wrong

* Update these

* Pint fixes

* Fix this

* Consolidate these

* Never supported PHP 7

* Better evaluation

* Fixes

* Don’t need ignore

* Replace trait with service

* Subusers are simply the many to many relationship between Servers and Users

* Adjust to remove ignores

* Use new query builder instead!

* wip

* Update composer

* Quick fixes

* Use realtime facade

* Small fixes

* Convert to static to avoid new

* Update to statics

* Don’t modify protected properties directly

* Run pint

* Change to correct method

* Give up and use the facade

* Make sure this route is available

* Filament hasn’t been loaded yet

* This can be readonly

* Typehint

* These are no longer used

* Quick fixes

* Need doc block help

* Always true

* We use caddy with docker

* Pint

* Fix phpstan issues

* Remove unused import

---------

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-01-16 14:53:50 -05:00
Quinten
02c4eb19f0 ci: move ARM Docker builds to native ARM runner (#920) 2025-01-16 20:26:31 +02:00
MartinOscar
3a25d0f976 Actually use nodeUpdateService not only for keys (#914)
* Actually use nodeUpdateService not only for keys

* Add behind proxy & ignore panel config updates

* Don't Halt

* Prevent double notification

* Revert "Add behind proxy & ignore panel config updates"

This reverts commit 0147888c6c.
2025-01-16 11:50:08 +01:00
Scai
634b8dec55 Merge pull request #918 from QuintenQVD0/speedup-docker
feat(docker): copy PHP extensions from builder stage to speedup the b…
2025-01-16 10:23:33 +02:00
Quinten
43d0b78742 feat(docker): copy PHP extensions from builder stage to speedup the build
- Reuse compiled PHP extensions from composer stage instead of building them twice
2025-01-16 09:20:54 +01:00
Scai
6b77e69e43 Merge pull request #917 from QuintenQVD0/docker
Fix the docker build
2025-01-16 09:45:36 +02:00
Quinten
efbf4df2a2 Fix the docker build 2025-01-16 08:24:58 +01:00
Boy132
4ec9171017 OAuth improvements (#903)
* rework oauth provider creation & lodaing

* add separate setup form

* use wizard for setup

* add provider class for discord

* cleanup and fixes

* don't throw exception when creating duplicate provider

* update profile and login pages

* did not mean to remove the whole else, oops

* use import
2025-01-15 18:29:06 +01:00
Boy132
885e03ee06 Alert banners (#892)
* add alert banner

* replace old server conflict banner with alert banner

* improve color and icon size

* add alert for websocket errors

* update file loading error to alert banner

* remove old events

* add back `console-status` event

* move @php block under @isset

* remove phpstan ignore

so I'm not getting force choked
2025-01-15 18:23:09 +01:00
MartinOscar
7c6b3a03db Fix Suspendall & Server Condition (#913) 2025-01-15 17:46:27 +01:00
MartinOscar
fe43539ea7 Use temp config for mail testing (#912)
* Use temp config

* Change port when changing encryption

* Pint

* Use finally

* Pint please do your job next time

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-01-15 16:07:12 +01:00
Charles
e145fcdc56 Use Filament labels. (#906)
* Use Filament labels.

* use `trans`

* Show more files

No reason for this to be its own pr...
2025-01-13 09:31:37 -05:00
Charles
8078f2ca4e Edit Node Listing, Enable Storage Graph (#905)
* Remove limits in listing

* Enable Storage Graph

* Wings gives us bytes, use helper function

* Use Node Model

* Remove `?? 0`

* Re-Add `?? 0` remove local

* Add Locale on chart

* We should convert these too...

convert_bytes_to_readable follows the prefix config, so we should do it here too.

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-01-13 09:31:31 -05:00
MartinOscar
d1007ad2fe Make sure variables are unique per egg (#902)
* Add unique validation

* Also make their name unique

* Custom message
2025-01-10 22:22:47 +01:00
Boy132
7f3b1fd758 Fix server reinstall action (#901)
* fix server reinstall action

* use reinstall service
2025-01-09 23:25:36 +01:00
Josh
d088e79e5e Fix deleting database host when it has assigned nodes (#899)
* Cascade delete from database_host_node when the database host is deleted

* Update database/migrations/2025_01_09_143607_database_host_node_foreign_delete_cascade.php

Remove migration rollback

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>

* Update 2025_01_09_143607_database_host_node_foreign_delete_cascade.php

Fix brace position

---------

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-01-09 20:21:44 +01:00
Boy132
9cfd87090f Update health page with tailwind classes (#893)
* update health page with tailwind classes

* Move php from Blade to Page

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2025-01-09 08:25:10 +01:00
MartinOscar
a7a7c5ba4d Fix Latest version error (#890)
* Retry if it fails

* Pint
2025-01-08 13:48:36 +01:00
Charles
b14e8fd724 Update colors (#891) 2025-01-07 21:11:05 -05:00
Boy132
c93a836ad8 Remove DaemonConnectionException (#885)
* remove DaemonConnectionException

* update tests
2025-01-07 22:58:04 +01:00
Boy132
6fcf4173d3 Strip http/ https from steam oauth allowed_host (#889)
* strip http/ https from steam oauth allowed_host

* fix param order
2025-01-07 22:47:23 +01:00
Boy132
7449b82f41 adjust path for server panel (#884) 2025-01-07 09:34:13 +01:00
Boy132
af4ac1db92 Update admin area navigation (#881) 2025-01-07 08:24:43 +01:00
Scai
6707d1ccf6 Merge pull request #880 from pelican-dev/feature/vite
Remove old client area and switch to vite
2025-01-07 02:06:27 +02:00
Lance Pioch
b197e73173 Use route instead 2025-01-06 17:35:05 -05:00
Scai
e5418491c8 chore: lint files 2025-01-06 20:08:32 +02:00
Scai
98ebc75965 fix: wrong class used on auth 2025-01-06 20:06:17 +02:00
Scai
121ebe6017 refactor: move assets to service provider 2025-01-06 20:03:10 +02:00
Scai
fc27b24783 fix: remove path on panel default 2025-01-06 20:01:41 +02:00
Scai
8049ef462e refactor: revert oauth routes 2025-01-06 20:01:29 +02:00
Scai
17bb23b5b8 refactor: route redirect links 2025-01-06 19:58:32 +02:00
MartinOscar
8926f9712f Add back denylist (#872) 2025-01-06 16:54:19 +01:00
Scai
e4849d89d7 refactor: replace old index with new filament app 2025-01-06 17:33:32 +02:00
Scai
af11888b82 chore: lint files 2025-01-06 17:15:53 +02:00
Scai
1845f2955f fix: job workflows for releasing 2025-01-06 17:15:44 +02:00
Scai
a2b315ba74 fix: build workflows #1 try 2025-01-06 17:13:06 +02:00
Scai
76c3632d14 chore: update git workflows 2025-01-06 17:06:58 +02:00
Scai
4facaecea0 feat: register assets js/css 2025-01-06 17:04:43 +02:00
Scai
a55a2cce6e feat: impl vite tailwindcss 2025-01-06 17:04:33 +02:00
Boy132
448fe41e78 Add role permission for health page (#878) 2025-01-06 15:43:29 +01:00
Boy132
7f37b3b099 Fix namespace for role permission icons (#877) 2025-01-06 15:42:47 +01:00
Scai
ef54d52866 refactor: remove old provider 2025-01-06 15:49:45 +02:00
Scai
7bd66c3d85 refactor: unused files 2025-01-06 15:48:50 +02:00
Scai
74efc6e8c1 refactor: redirect to new login page 2025-01-06 15:47:16 +02:00
Scai
a7b767ae78 chore: delete old assets 2025-01-06 15:46:54 +02:00
Scai
a3ecf3994b feat: set filament main client ui 2025-01-06 15:46:43 +02:00
Scai
158fa24fff feat: add logo to filament 2025-01-06 15:46:26 +02:00
Scai
e5069e754d chore: unused files & code related to old auth 2025-01-06 15:42:49 +02:00
Scai
cdd46de274 chore: clean base routes 2025-01-06 15:38:44 +02:00
Scai
ff5812e87b chore: remove old auth 2025-01-06 15:38:04 +02:00
Scai
20ce0ca8e6 chore: purge old configs 2025-01-06 15:22:41 +02:00
Scai
66ec86694f chore: delete old client ui 2025-01-06 15:20:20 +02:00
Boy132
295134fb6c Add client_id to steam oauth config (#875) 2025-01-06 12:32:35 +01:00
MartinOscar
ae445840f7 Discard ipAddresses cache if wings is offline + Switch to Select (#862)
* Change TextInputColumn to SelectColumn

* Discard cache if wings is offline

* Return 0.0.0.0 instead of an empty array

* Adjustment & remove dns resolve
2025-01-06 03:37:39 +01:00
MartinOscar
77fd54fdc2 Fix/suspend server offline node (#871)
* Use handle instead of toggle & use const isnstead of string

* Avoid rollback if node is unreachable

* Use Enum & remove default action

* Remove useless test
2025-01-06 03:07:06 +01:00
MartinOscar
18fe4f1123 Show suspended servers (#870) 2025-01-06 01:48:04 +01:00
Charles
2525af8f02 Revert "Listen to more framework webhook events (#728)" (#866)
This reverts commit 7a4c4ce02a.
2025-01-05 19:07:01 -05:00
Charles
7cc4358a04 Fix 500 on duplicate ports (#861)
* Fix 500 on duplicate ports

This should also address N+1 issues from the last PR

* Combine into one method

* Pint

* Add missing type

* Add 0.0.0.0

* Add notifications to help the user

* Pint

* Too verbose

* Show notification here

* Simplify code

* Reset the ports if the ip changes

* Don’t limit these anymore

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2025-01-04 22:30:37 -05:00
MartinOscar
168d37b996 Add missing externalId on Server creation (#859)
* Add missing externalId on server creation

* Pint

* Fix mobile layout

* fix layout

---------

Co-authored-by: notCharles <charles@pelican.dev>
2025-01-04 19:58:51 +01:00
MartinOscar
df615f6915 Remove validated override (#860) 2025-01-04 13:36:22 -05:00
Charles
17805f676e Add OAuth Settings to Settings (#839)
* Replace tabler icon package

* Use new filled icons

note: not everything has a filled icon

* Add OAuth Settings to Settings Page

* Fix authentik base url

* replace hard coded oauth
2025-01-04 12:35:07 -05:00
Lance Pioch
23d515c3e5 Convert to bytes beforehand (#857) 2025-01-04 12:34:26 -05:00
Charles
7a5dd87385 Change limits section on front end (#853)
* Edit Front end settings

* Use helpers

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2025-01-04 11:48:26 -05:00
Charles
8f51502c6d Remove First/Last Name for Users (#855)
* Update Tests

* Update Translations

* Add Migration

* Remove First/Last Names
2025-01-03 17:13:44 -05:00
MartinOscar
9d48799c28 Remove required (#852) 2025-01-02 23:36:36 +01:00
Lance Pioch
133c1a511f Replace some guzzle exceptions and fix server creation failures (#848)
* Replace guzzle exceptions

* Pint fixes

* Fix test

* Remove unused imports

* Catch & Notify the user instead of 500

* Update app/Filament/Admin/Resources/ServerResource/Pages/CreateServer.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2025-01-01 15:20:16 -05:00
Lance Pioch
3a7ddfca5e Scope power buttons to current server (#849)
* Scope setServerState to current server

* Use match statement

* Reset this
2025-01-01 15:20:02 -05:00
MartinOscar
00ae3b8b61 Hide Startup + Show Activity on Server panel when in conflictState (#850)
* Hide startup if isInConflictState

* Show ActivityLog regardless of isInConflictState

* Update app/Filament/Server/Pages/Startup.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-12-31 14:19:18 +01:00
MartinOscar
b5733715a6 Remove useless rightJoin (#851) 2024-12-31 14:05:14 +01:00
Lance Pioch
9a859cdec3 Move role resource under the advanced settings (#847) 2024-12-29 18:15:25 -05:00
MartinOscar
1571e3cb24 Rework Schedules (#843) 2024-12-28 16:03:21 -05:00
Charles
a8680c7aed Mobile + Layout Changes (#836)
* Update Server Listing

* Update Edit/Create Server Pages

Re-arrange limits, CPU->Memory->Disk

* Remove auto focus

its cancer on mobile...

* Hide Title, Quick yaml fix

* Hide columns on mobile

* Hide backup locked on mobile

* Fix schedules for mobile

* Hide Notes on mobile

* Consolidate and clean these up

* Simplify

* Remove unused imports

* Replace tabler icon package

* Update app/Filament/Server/Resources/FileResource/Pages/EditFiles.php

Co-authored-by: Lance Pioch <git@lance.sh>

* Allow the unit to be changed

* Use existing method

* Update composer and pint

* Update resources/views/tables/columns/server-entry-column.blade.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Simplify html and add small margin

* Unused

* Add enum

---------

Co-authored-by: Lance Pioch <git@lance.sh>
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-12-28 16:02:24 -05:00
Scai
66a17879a0 fix: use options instead relationship (#845) 2024-12-27 16:14:05 -05:00
Scai
f684da997c Fix deleting node with database host
* fix: delete database host when node is deleted

* chore: revert change to file
2024-12-27 16:12:49 -05:00
Boy132
00644c2c60 Health page (#469)
* add spatie health

* change slug for health page

* add check for panel version

* only check for debug mode if env isn't local

* add check for node versions

* improve short summary

* fix outdated check

* run pint

* fix health checks during tests

* add count to ok message

* fix typo

* temp fix for phpstan job

* fix pint...

* improve "outdated" count

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>

* run pint

* skip node versions check if no nodes are created

* auto run health checks if they didn't run before

* small refactor

* update navigation

Co-authored-by: Charles <sir3lit@gmail.com>

* fix errors if tests didn't run yet

* fix disk usage check

* remove plugin and use own page

* use health status indicator from spatie

* fix after merge

* update icon

* update color classes

* fix after merge

* add back imports

oops...

* wrong import

oops²...

* update spatie/laravel-health to latest

* move Health page to correct namespace

* update NodeVersionsCheck

* use style instead of tailwind classes

workaround until we have vite

* cleanup custom checks

---------

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: Charles <sir3lit@gmail.com>
2024-12-24 19:09:16 +01:00
Boy132
02a0c5c3eb Fix wrong language formatting in charts (#832) 2024-12-17 13:08:12 +01:00
Boy132
993e2c4244 Add CreateUser page (#825) 2024-12-13 09:21:37 +01:00
pelican-vehikl
7a4c4ce02a Listen to more framework webhook events (#728)
* Add new framework events to listen to

* Add simple test for framework events

* Update app/Models/WebhookConfiguration.php

Co-authored-by: Lance Pioch <git@lance.sh>

* Update app/Models/WebhookConfiguration.php

Co-authored-by: Lance Pioch <git@lance.sh>

* Update app/Models/WebhookConfiguration.php

---------

Co-authored-by: Vehikl <go@vehikl.com>
Co-authored-by: Lance Pioch <git@lance.sh>
2024-12-13 01:03:35 -05:00
Boy132
914f3dcdbd Add own action class for "rotate database password" (#822) 2024-12-12 18:34:52 +01:00
Boy132
d43b99792f (Admin) UI Consistency (#824)
* update phpdocs

* replace deprecated $label and $pluralLabel

* update record title attributes and labels

* update create pages

* run pint
2024-12-12 18:26:37 +01:00
Boy132
771eece01e Properly handle 404 for editing files (#816) 2024-12-12 18:26:01 +01:00
Boy132
026494c353 Catch correct Exceptions when updating/ deleting subusers (#828) 2024-12-12 17:32:39 +01:00
Charles
663b097d22 Add Edit/Delete on Tasks (#826) 2024-12-12 10:31:33 -05:00
Boy132
d09227659e Add database notifications (#817)
* add database notifications to all panels

* add successful param to Installed event

* add listener for Installed event

* create event for subuser creation

* add listener for SubUserAdded event

* always send Installed event

* create event for subuser removal

* add listener for SubUserRemoved event

* add prefix to server name

* remove view action from SubUserRemoved notification
2024-12-12 14:38:45 +01:00
Boy132
eb819032bc Add own action classes for egg actions (+ add empty state) (#823)
* add own action classes for egg actions

* add empty state to ListEggs

* put Import before Create
2024-12-12 14:29:02 +01:00
Boy132
5af507b54b Add own column class for node health (#820) 2024-12-12 14:14:52 +01:00
Boy132
bbee45592f Move custom columns to new namespace (#821) 2024-12-12 14:14:37 +01:00
Boy132
640ff9f5b3 Remove unused DatabaseResource (#819) 2024-12-12 14:03:16 +01:00
Charles
d6f814b7a3 Move schedule buttons (#815)
* Move buttons around

* change to Save
2024-12-10 17:57:06 -05:00
Charles
8a122fa99c Add redirect after save (#813) 2024-12-10 17:43:23 -05:00
Boy132
3ffb54503f Custom error pages (#810)
* add custom error pages

* move icon in front of header text

* show exception message if user is root admin

* add missing page for very important error: 418

* Update resources/views/errors/layout.blade.php

* Update resources/views/errors/layout.blade.php

* add dark mode to error pages

---------

Co-authored-by: Lance Pioch <lancepioch@gmail.com>
2024-12-10 23:42:43 +01:00
Charles
53460b8d1b Update File Manager (#814)
* Make Everything Sortable

* Replace app calls
2024-12-10 17:40:11 -05:00
Boy132
0051d9fefc Allow admins to change server egg (#811)
* add service that handles egg changing

* add "change egg" action to EditServer page

* add toggle for keeping old variables or not
2024-12-10 23:38:40 +01:00
Lance Pioch
ef1ae72d06 Dynamic server status (#803)
* Better readability

* Force refresh the server instance

* Use kebab case for these

* Fix phpstan

* Retry a little longer

* Updates

* Add pint

* Don’t need this

* Pint fix
2024-12-10 17:36:14 -05:00
Boy132
3dfdc70790 Make use of Laravels AboutCommand (#809)
* add pelican info to laravel AboutCommand

* simplify p:info command
2024-12-10 23:07:59 +01:00
Boy132
8460c52534 Add Run now button for schedules & add status field (#806)
* add `Run Now` button to schedules

* add status to schedule view/ edit

* only show status on "view"
2024-12-09 23:31:03 +01:00
Lance Pioch
2bfc788e13 Allow searching for port when associating allocations (#801) 2024-12-08 16:24:00 -05:00
Lance Pioch
839ff96271 Fix power buttons (#799) 2024-12-08 16:19:15 -05:00
Lance Pioch
5d2b892eab Better IP addresses (#800)
* Unique ip addresses

* Only ipv4 addresses for now

* Switch to selects
2024-12-08 16:19:04 -05:00
MartinOscar
c953b97009 Force width (#798) 2024-12-08 20:27:16 +01:00
MartinOscar
9716b1e64d Only allow one * (#797) 2024-12-08 20:23:37 +01:00
Boy132
8358e410dc Move installer to correct namespace (#795) 2024-12-08 19:57:00 +01:00
Boy132
f6c586bf5b Add persistFiltersInSession to server list (#796) 2024-12-08 19:14:56 +01:00
Charles
feadaa2caf Add Kill button to console (#791)
* Add Kill button to console

* Add confirm, and warning
2024-12-08 12:01:44 -05:00
Charles
23246eb134 Fix #784 (#790)
* Remove +1

* Update app/Filament/Server/Pages/Settings.php

---------

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-12-08 11:47:01 -05:00
Charles
6921c8b350 Fix power actions (#789) 2024-12-08 17:34:47 +01:00
Charles
8cc91b0747 Small updates (#787)
* increase action size on console

* fix layout on create database
2024-12-08 11:19:35 -05:00
Charles
157fa45234 Fix forever expanding code editor (#782)
* Update CSS

* Update Placeholder
2024-12-07 22:44:13 -05:00
Charles
fd5016809a Enable Global Search (#783) 2024-12-07 22:43:44 -05:00
Lance Pioch
a0f5ef13d6 Show login failure message (#781)
* Show login failure message

* Update resources/scripts/components/auth/LoginContainer.tsx

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>

---------

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-12-07 22:03:56 -05:00
Lance Pioch
67f1e91236 Fix Issue 763 (#780)
* Fix path to moved component

* Fix actual issue #763
2024-12-07 20:44:41 -05:00
Charles
cc3a7a2d0d Update Server Console, Again... (#776)
* More console changes

* Update Console Page

* Edit console input

* oops

* Remove failed attempt of clearing input when server offline

* Update File Editor to match console

* a touch more style

* Show not-allowed on read-only input

* round bottom corners of command input

* Move custom css to file
2024-12-07 19:22:18 -05:00
Charles
d908fb9a9d Remove unsaved changes alert (#778)
* Remove unsaved changes alert

* Remove this also

* Remove this also...
2024-12-07 11:39:00 -05:00
Boy132
6b96c9dbda Fix admin discover (#777) 2024-12-07 17:06:57 +01:00
Boy132
e27f23b1b6 Move admin pages & resources into own namespace (#741)
* move admin pages & resources into own namespace

* fix imports for resource pages
2024-12-07 15:51:27 +01:00
Charles
4ad2997566 Update database creation (#775)
Updates database creation flow to account for new database host to many nodes change.
2024-12-06 22:46:36 -05:00
pelican-vehikl
7e7f0be7df Allow Database Hosts to have multiple Nodes (#767)
* WIP

* Update laravel and migrations

* WIP

* fix tests

* Update composer

* Fix transformer

* Fix filament pages

* WIP

* Update DatabaseHostTransformer

* fix: tests

* pint this files pls

* resolve merge better

* Update migration

* Update Migration, Again

* Update down migration

---------

Co-authored-by: Vehikl <go@vehikl.com>
2024-12-06 20:24:30 -05:00
Boy132
5b3ae995e6 Show full client api key after creation (#771)
* show notification when api key is created

* remove hardcoded redirect url
2024-12-06 16:31:58 -05:00
Charles
2a34795ab1 More console changes (#774) 2024-12-06 16:21:05 -05:00
Charles
d3da1b0a58 Update Server Console, Address Overflows (#764)
* Update Console

Updates console to be more better <3.

Light Mode still needs some love, haven't figured that out with filaments light/dark options yet as it does not use the "bright<color>" colors...

* Add overflow to... Everything?

* Oops, Add Name label back

* Actually handle Transfer Status & remove useless switch

* Use switch case

* Readonly command input if server can't receive one

* lint

* Update app/Filament/Server/Widgets/ServerConsole.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Use filament::icon instead of raw svg

* Update resources/views/filament/components/server-console.blade.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-12-06 09:46:10 -05:00
Boy132
5317f97870 Display roles as badge in user list (#772) 2024-12-06 13:02:37 +01:00
Boy132
b50acfdba2 Add config value for display width to other pages (#770) 2024-12-06 09:45:06 +01:00
Charles
066bdbdf78 Server Listing tweaks. (#760)
* Server Listing tweaks.

* Use filament::icon instead of raw svg & add hover title

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-12-05 08:34:47 -05:00
MartinOscar
8103ba6338 Remove unique (#765) 2024-12-05 08:55:04 +01:00
Boy132
44b879215f Add filters to server list (#762)
* add server owner filter

* add egg filter

* replace SelectFilter with TernaryFilter
2024-12-05 08:31:34 +01:00
Charles
d2a7d7708c Add Display Width setting (#759)
Allow users to pick how "wide" the panel is.
2024-12-04 09:41:47 -05:00
Boy132
efc37dd45a Hide sidebar on server list (#761) 2024-12-04 09:50:49 +01:00
MartinOscar
09eac71f05 Delete subuser on owner change (#748)
* Delete subuser on owner change

* Move logic to Model
2024-12-03 23:55:02 +01:00
Boy132
6d42a15ec3 Handle token expiring and token expired websocket events (#755)
* handle `token expiring` and `token expired` events

* fix "getToken"

* Move logic to Widget instead of blade & add user check

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-12-03 23:54:40 +01:00
Boy132
bbfdee356b Fix timezone for file timestamps (#757) 2024-12-03 14:27:06 +01:00
Charles
994852ca00 Tweak EditNode layout for mobile (#752)
* Tweak EditNode layout for mobile

* Replace hidden with toggle
2024-12-03 05:30:04 -05:00
MartinOscar
141baeb035 Empty array if user->oauth is null (#754) 2024-12-03 08:48:47 +01:00
Boy132
bd51191da6 Add role permissions for webhooks (#742) 2024-12-02 23:53:35 +01:00
Boy132
1337767049 Small changes for new client area (#751)
* add placeholder to allocation notes

* add button to open server in admin area

* use new client area for "console" button on EditServer

* hide schedule presets on view

* use arrow functions for auth checks

* add placeholder to schedules last run

* change icon of "open in admin"

* fix parentheses
2024-12-02 22:27:35 +01:00
Boy132
918ba02075 Remove exception methods because of memory bombing (#750)
* remove exception methods

* throw Halt instead of return

* manually throw Halt to make phpstan happy
2024-12-02 22:27:25 +01:00
Charles
c6977e57c8 Fix Subuser issues. (#747)
* Better Error handling

* Remove unique, make email lowercase in request

* Remove 'kill' option, not used.

* Prevent users from editing them selves

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-12-01 20:17:27 -05:00
MartinOscar
6d1c153d09 Add config panel.editable_server_descriptions check (#734)
* Add config panel.editable_server_descriptions check

* Hide the field rather then disabling it
2024-12-01 23:27:07 +01:00
Boy132
e5433b7aab Auto update resources on server list (#737)
* auto update resources on server list

* use Arr::get helper
2024-12-01 18:12:58 +01:00
Boy132
355810c549 Combine status & uptime, add address on ServerOverview (#739) 2024-12-01 18:12:28 +01:00
Boy132
4fd1937c54 Hide global search button for now (#738) 2024-12-01 18:04:24 +01:00
Lance Pioch
fea1c51337 feat: Client UI translate to Filament (from React) (#416)
* Add new panel

* Add some basic resource pages

* Wip

* Wip terminal

* Wip

* Add new panel

* Add some basic resource pages

* Wip

* [Sub-Users] Add Invite

TODO: The logic with permissions

* [Sub-Users] Fix Creation

* [Cron] Add basics

* Add basic auth and messages

* Add basic buttons

* WIP on issue/353

* WIP on issue/353

* Add Database page

* Update Database Page

* Start of Backup Page

* Composer Update

* Changes

* Send input

* Remove this includes

* Better offline handling

* Consolidate top nav config

* Update Backups Page

* Update Backups

* Change name

* Add Assign All, Layout Fixes.

* conflict

* update schedule pages

* fix phpstan

* update pint.json

* add cron presets to schedule

* fix tests

* fix task creation

* schedules: disable task creation if limit is reached & disable backup action if backup limit is 0

* update activity pages

* update resources

* Update Edit User

TODO: actually save permissions when they're changed.
TODO: Figure out why Control does not update it's state... but the rest do...

* .... Sure it works.

TODO: Update permissions when you save editing a sub user.

* user: update canAccessPanel & canAccessTenant

* add helper to convert bytes into readable format

* very basic file explorer

* files: fix some stuff & remove dummy data

* files: better error handling

* files: basic file editor

* files: add some actions

* File manager updates

* files: fix paths

* Revery Composer Upgrade, Fixes SQLite

* fix: Pint (#517)

feat: MenuItems to and from admin

* Update File Editing

Updated File Editing to its own page,
Added Permission checks for file manager.

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* add enum for editor langs

* files: add upload & pull actions

* fix build

* files: handle images

* Update to Filament v3.2.98

* files: add remaining actions

* use `authorize` instead of `hidden`

* fix canAccessTenant

* update date columns

* files: testing & fixes

* Fix File Names

Co-authored-by: lancepioch <git@lance.sh>

* Combine Pull/Upload

* Fix BulkDelete

* Uncontained tabs

* Hide Lang Selection, Move Actions

* Update Monaco, more custom

* Add livewire config

livewire limits uploads to 12MB... who knows why...
Fixed uploading a single files failing

* files: fix record url

* basic setup for settings & startup page

* make abstract class for simple app pages

* Basic Startup Page

* Update nav sort

* small cleanup

* startup: fix shouldHideComponent & getSelectOptionsFromRules

* startup: fix non editable fields & set default value

* startup: add todo for save button

* Save Variables after update & off click

Variables update when the user clicks off the input.

* Notifications are cool

* Add rule validation

* Sort variables by sortid

* pint

* Settings Page + Startup Changes

* settings: cleanup

* refactor: use server model for ServerFormPage (formerly known as SimplePage)

* Use Repeater for variables

* Add Network, Remove breadcrumbs

* Add paginated to file explorer

* Fix updating variables

* Add link to go to new client area

* fix after merge

* Add graphs to console page

Graphs still need to get the data from the web socket.

* fix pint & phpstan

* fix authorizeAccess for EditFiles and Startup page

* Fix rules on startup page

* Update console size

* Fix node name

* add "global search" to files list

requires https://github.com/pelican-dev/wings/pull/44

* remove debug dummy data

* update view action on ListServers

* enable SPA mode for app panel

* remove colors from app panel

they are defined globally in AppServiceProvider

* update global search ui a bit

(to be replaced with a custom page that is similar to the list files table)

* add own page for global search

untested - and route needs cleanup (if possible)

* fix File getRows

* remove "path" from SearchFiles (for now)

* fix caching for searched files

* add title and breadcrumbs to global search page

* make cpu & memory charts on console page working

* fix phpstan

* add missing import

* cleanup console views & widgets

* add overview stats to console

* don't be so lazy, console!

* make history working

* decode data to get array

* add missing On

* fix json_decode

* change polling to 1 sec

* hide "0" cpu/ memory

* add data to network chart

* Remove data labels

* fix data on network chart

* fix data on network chart (2nd try)

* WIP Network Stats

* Remove test

* Change MaxWidth

* run pint

* fix phpstan

* Fix storeStats cast

* make $data a string

this time for real

* update visible check for "admin" menu item

* remove account widget

* rebrand "Dashboard" to "Server List"

WIP - doesn't look good but is somewhat working

* fix canAccessPanel

* separate server list into own panel

* change path to avoid conflicts with old client area (and remove sidebar width)

* display correct icon and color on server list entries

* show total memory if server is offline

* replace custom server list page with ListRecords page

* fix tests

* fix namespace

* remove "open" button and make whole column clickable

* Update EditProfile

* run pint

* fix access to server list

* add new login page to panels

* fix next_run_at for new schedules

* use new DateTimeColumn

* add own column for file bytes

* return to server list when clicking title

* fix console loading

* handle server with "conflict state"

* add banner if server is in "conflict state"

* fix phpstan

* update docker image select

* fix permission checks on Settings & Startup pages

* fix query for activity log page

* fix activity log not being logged

* adjust ListActivities

* fix phpstan

* fix pint

* fix profile menu item link on server panel

* add ip tooltip to activity logs (and role permission)

* change backup icon

* update navigation sort

* general code cleanup

* more cleanup

* Disable Restart/Stop if server is offline

* Change rename notification

* Remove negation on abort_unless

* Add notification on save

* Single disabled closure & comment unused import

* Add required to Server Name & Nullable to description

* mutateFormDataBeforeSave doesn't work since we use forceFill

* Fix web socket connection not existing.

* Fix some subuser permissions

* add permission checks to resources

* do not allow self-deletion

* Update editing file permissions

* Fix of the previous fix

* add service for subuser updating

* Only allow save if they have file_update

* Remove unused import

* Update backup delete button

* Add Delete, remove bulks

* Update Database page

* Use Allocation Permissions

* add canAccess check to startup

* Add Permission checks to Settings page

* add service for subuser deletion

* Remove Kill permission

* Updates

* fix move files

* add redirects

* fix phpstan

* activity: remove properties from tans for now

* If alias, use that, else ip

---------

Co-authored-by: notCharles <charles@pelican.dev>
Co-authored-by: Boy132 <mail@boy132.de>
Co-authored-by: Senna <62171904+Poseidon281@users.noreply.github.com>
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-12-01 04:13:45 +01:00
Boy132
e0c6137b92 Installer: Shows errors on submit & move runMigrations (#722)
* catch Halt exception to make sure error notifications are displayed

* run migrations on submit to make sure the correct data is used
2024-12-01 04:04:40 +01:00
Charles
cd448cd9a7 Add Create Database btn on admin side (#721)
* Add Create Database btn on admin side

* Remove unused function

* readd function

* replace refreshform function

* add authorize, remove database limit check

* add random words, use proper name function, catch exceptions on creation

* add validation, match old client area more

* Add more authorize to Database tab

* Add confirmation to delete

* make password hidden / revealable

* better clarification

* Set default and remove placeholder.

* Remove server import, add database model to auth

* Make same changes for the database host page

* Update app/Filament/Resources/ServerResource/Pages/EditServer.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Update app/Filament/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Update app/Filament/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Remove each hidden

* Return nothing if user has no perms

* This is the way... Im done messing with it...

* Fix view permission for relationship manager

* Update app/Filament/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php

* Pint

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-11-30 22:04:10 -05:00
Boy132
b208835ed4 Add Oauth frontend and backend improvements (#718)
* better oauth provider loading

* add auth frontend

* add configs for all default providers

* add more default providers

* add env variables to enable oauth providers

* small refactor to link/ unlink routes

* add oauth tab to (admin) profile

* use redirects instead of exceptions

* add notification if no oauth user is found

* use import in config

* remove whmcs provider

* replace hardcoded links with `route`

* redirect to account page on unlink

* remove unnecessary controller and handle linking/ unlinking in action

* only show oauth tab if at least one oauth provider is enabled
2024-11-30 17:38:38 +01:00
MartinOscar
951fc73363 Add min length check (#730) 2024-11-27 09:02:41 +01:00
Boy132
ad9447e974 Add back force https (#726) 2024-11-26 23:27:58 +01:00
Boy132
d2d960ecf3 Update egg jsons (#725)
* re-import eggs

* re-import eggs (again)
2024-11-23 23:29:37 +01:00
Boy132
d555c42644 Update all dependencies (#712)
* update composer.lock

* run pint

* fix phpstan

* update migrations (sqlite `dropForeign`)

* fix migrations

* Reset these back for now

* Alphabetize the rules

* run `php artisan filament:upgrade`

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2024-11-22 09:27:57 +01:00
MartinOscar
f33f91698e Add exit admin to Menu (#723) 2024-11-21 17:49:19 +01:00
Boy132
90afae79db Fix permission check if user is subuser and admin (#720) 2024-11-20 08:41:37 +01:00
Boy132
54039e25a4 Make sure UTC is always used internally (#713)
* force app timezone to be UTC

* remove asDateTime overwrite

* add custom column to display dates in user timezone

* use `APP_TIMEZONE` as default timezone for new users

* revert accidental pinting
2024-11-15 20:41:33 +01:00
Boy132
408897cfcf Allow username on filament login page + make case insensitive (#714)
* allow login with username

* make login case insensitive

* fix tests
2024-11-15 20:39:06 +01:00
MartinOscar
24eb52f7d6 Merge pull request #709 from pelican-dev/charles/fixversio
Fix Panel Version Cache
2024-11-14 01:12:09 +01:00
notCharles
d87d3760a1 Fix Panel Version Cache 2024-11-13 19:08:46 -05:00
Boy132
fe4668a517 Update web installer (again) (#705)
* update web installer (again)

* set default values for mysql/ mariadb and redis

* add own step for queue setup

* create admin user in submit

* disable redis for queue if cache isn't redis

* remove separate user step and make session own step

* use `request()->isSecure()`
2024-11-13 18:15:48 -05:00
Lance Pioch
6125b07afa Remove old admin area (#648)
* Remove old admin

* Remove controller test

* Remove unused exceptions

* Remove unused files

* More small tweaks

* Fix doc block

* Remove unused service

* Restore these

* Add back autoDeploy

* Revert "Add back autoDeploy"

This reverts commit 630c1e08ac.

* Add these back

* Add back exception

* Remove ApiController again

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: Boy132 <mail@boy132.de>
Co-authored-by: notCharles <charles@pelican.dev>
2024-11-13 17:05:48 -05:00
Boy132
9717aa4b5f Cleanup SoftwareVersionService (#704)
* cleanup SoftwareVersionService

* fix old admin area

* show latest wings version on EditNode page

* even more cleanup
2024-11-13 16:26:10 -05:00
MartinOscar
9491322d8c Merge pull request #708 from pelican-dev/charles/fixbulk
Prevent Select All on Allocations
2024-11-13 22:25:21 +01:00
notCharles
8ed6bb4d8b pint 2024-11-13 16:22:12 -05:00
notCharles
a787af7a06 Prevent Select All
Prevent Select all on allocations, prevent people from trying to delete 30,000 ports at once ....
2024-11-13 16:21:27 -05:00
MartinOscar
d9016702d6 Merge pull request #707 from pelican-dev/charles/fixnode
Change 'exception'
2024-11-13 22:07:45 +01:00
notCharles
d565441b6a Change 'exception'
Remove the exception and just report the whole error.
2024-11-13 15:58:20 -05:00
Michael (Parker) Parker
cb522b24ef Merge pull request #706 from parkervcp/update/egg_version
use correct case for import
2024-11-09 13:59:38 -05:00
Michael (Parker) Parker
b85b17f080 use correct case for import
use lower case `v` instead of upper case `V`
2024-11-09 13:53:50 -05:00
Lance Pioch
47bd7289b1 Clear webhook cache when webhooks are deleted (#695)
* Clear webhook cache when webhooks are deleted

* fix: type casts

---------

Co-authored-by: Vehikl <go@vehikl.com>
2024-11-07 17:26:47 -05:00
Boy132
a9b76a0f51 Improve egg import error handling (#703)
* make sure read & write are successful

* show exception message in notification
2024-11-07 17:15:47 -05:00
MartinOscar
8eebb82eba Fix AutoDeploy & KeyCreationService (#701)
* Fix AutoDeploy & KeyCreationService

* Get rid of 2nd param & unset perm
2024-11-07 17:15:41 -05:00
Boy132
b3501be6ec Refactor api key permissions (#361)
* use RESOURCE_NAME for requests

* use RESOURCE_NAME for transformers

* add permissions field to api key

* add migration for new permissions field

* update tests

* remove debug log

* set column type to "json"

* remove default attribute to fix tests

* fix default value for permissions

* fix after merge

* fix after merge

* allow to "register" custom permissions

* add "role" to default resource names

* fix after merge

* fix phpstan

* fix migrations
2024-11-06 09:09:10 +01:00
Michael (Parker) Parker
ac67656d82 Merge pull request #700 from BlockyBlockling/skip-caddy-fix
Fixing Docker Environment variable only getting checked for existence instead of value
2024-11-04 11:51:05 -05:00
BlockyBlockling
968239beb3 Update entrypoint.sh
Fixed Syntax after last change
2024-11-04 13:07:57 +01:00
BlockyBlockling
7514206186 Update entrypoint.sh
Adding :- Syntax which ensures that, if SKIP_CADDY is unset, it will be treated as an empty string, which will not match "true". This avoids potential issues with unbound variables in some shell configurations where set -u (treating unset variables as an error) is enabled.

(ChatGPT)
2024-11-04 13:07:20 +01:00
BlockyBlockling
1a8321c937 Update entrypoint.sh
Fixing that its only checking for the existence of the environment variable „SKIP_CADDY“ instead of checking for its value
2024-11-04 12:43:40 +01:00
MartinOscar
340ae8099b Fix trusted proxies settings & Move ips to config & Add ipv6 (#692)
* Fix blank proxy & Move hardcoded cloudflare ips

* Add cloudflare's ipv6

* Pull from url innstead of hardcoded

* Remove Service
2024-11-01 18:16:59 -04:00
Boy132
9d02aeb130 Replace reCAPTCHA with Turnstile (#589)
* add laravel turnstile

* add config & settings for turnstile

* publish view to center captcha

* completely replace reCAPTCHA

* update FailedCaptcha event

* add back config for domain verification

* don't set language so browser lang is used
2024-11-01 18:15:04 -04:00
Charles
cf57c28c40 Update Webhooks to match other resources (#686)
* Move these

Move List/Create to their own pages to follow the flow of the other resources.

* Move EditPage aswell

* Move Save

* Labels

* Change Edit/Delete

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-11-01 18:14:20 -04:00
Boy132
382dcb3868 Fix redis connection check (#698) 2024-11-01 18:10:36 +01:00
Boy132
f793b49a81 Add egg filter to server mounts list (#697) 2024-11-01 18:10:24 +01:00
Lance Pioch
41ddae1ba0 Update ci.yaml (#643) 2024-10-31 05:39:42 -04:00
MartinOscar
e717e20996 Merge pull request #687 from RMartinOscar/fix/HealthVersion
Fix Node Health not refreshing live & Add tooltip
2024-10-30 01:58:37 +01:00
Lance Pioch
b5145b016b Update app/Models/Node.php 2024-10-29 19:53:12 -04:00
Lance Pioch
95a8f72058 Update app/Models/Node.php 2024-10-29 19:52:51 -04:00
Lance Pioch
19548338ee Update app/Models/Node.php 2024-10-29 19:52:32 -04:00
RMartinOscar
a8356fc5d2 Polishing & throw curl error 2024-10-29 20:36:44 +00:00
Boy132
7a447b04d5 Make sure roles always use web guard name (#690) 2024-10-29 18:29:25 +01:00
RMartinOscar
45699e1614 Set refresh rate 10s & Add tooltip for unreachable node 2024-10-29 15:01:30 +00:00
RMartinOscar
cde3546889 Add poll & tooltip 2024-10-29 03:28:51 +00:00
MartinOscar
3f9c1dbc3c Add prune & event blacklist (#682)
* Add prune & event blacklist

* Pinted 3times with --dirty bruh

* Add to Settings

* Fix prune & description

* Prune Logs not Configuration
2024-10-28 18:44:32 -04:00
Charles
bc2df22d78 Add unique (#685)
Usernames have to be unique, trying to make a new user with an existing username results in a 500, this fixes it.
2024-10-28 18:23:29 -04:00
Michael (Parker) Parker
1a3dc5c743 Update Egg Export Version to PLCN_V1 (#676)
* Update Egg Export Version to PLCN_V1

resolves #675

* correct version tag

* remove trailing space
2024-10-27 18:04:21 -04:00
Charles
fdd1b3798c add whereNull (#680)
Add where null to not include allocations already assigned to a server.
2024-10-27 18:01:09 -04:00
Charles
288cbee32f Fix Docker image selection (#674)
* Fix Docker image selection

Should address issue 672

Closes #672

* Fix Docker image selection in CreateServer page

---------

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-10-27 11:22:12 -04:00
MartinOscar
a70a060350 Add Soft Deletes to webhooks config table (#670) 2024-10-27 00:42:08 -04:00
MartinOscar
590569a131 Remove duplicated spa in AdminPanelProvider (#668) 2024-10-26 23:25:21 -04:00
Charles
7acc8782bb Make description required. (#667) 2024-10-26 22:06:34 -04:00
MartinOscar
f3de185508 Add back auto deploy (#627)
* Add Docker, Refactor, Fix Notification

Co-authored-by: notCharles <charles@pelican.dev>

* Pint

* Required adjustments

* Remove deprecated

* Third time's the charm

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-10-26 20:43:19 -04:00
Charles
291b514e24 Webhook updates (#666) 2024-10-26 20:40:19 -04:00
Colin DeCarlo
86c369d7ce Implement Webhooks (#548)
* feat: First Webhook PoC draft

* feat: Dispatch Webhooks PoC

* fix: typo in webhook configuration scope

* Update 2024_04_21_162552_create_webhooks_table.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update 2024_04_21_162552_create_webhooks_table.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update 2024_04_21_162544_create_webhook_configurations_table.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update 2024_04_21_162544_create_webhook_configurations_table.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update DispatchWebhooks.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update DispatchWebhooksJob.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update DispatchWebhookForConfiguration.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update DispatchWebhookForConfiguration.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update DispatchWebhookForConfiguration.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update DispatchWebhooksJob.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update DispatchWebhooksJob.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* Update DispatchWebhooksJob.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* chore: Implement Webhook Event Discovery

* we got a test working for webhooks

* WIP

* Something is working!

* More tests

* clean up the tests now that they are passing

* WIP

* Don't use model specific events

* WIP

* WIP

* WIP

* WIP

* WIP

* Do it sync

* Reset these

* Don't need restored event type

* Deleted some unused jobs

* Find custom Events

* Remove observers

* Add custom event test

* Run Pint

* Add caching

* Don't cache every single event

* Fix tests

* Run Pint

* Phpstan fixes

* Pint fix

* Test fixes

* Middleware unit test fix

* Pint fixes

* Remove index not working for older dbs

* Use facade instead

---------

Co-authored-by: Pascale Beier <mail@pascalebeier.de>
Co-authored-by: Lance Pioch <lancepioch@gmail.com>
Co-authored-by: Vehikl <go@vehikl.com>
2024-10-26 20:35:25 -04:00
Quinten
5f77deb1fd Panel: Fix wings stoplogic (#407)
* Panel: FIx wings stoplogic

* do not make an expetion for `^C` let wings handle this

* remove withspaces
2024-10-26 19:21:14 -04:00
Charles
5f4429e2c3 Remove Bulk Delete from Nodes (#665)
* Remove Bulk Delete from Nodes

Removes bulk delete option from nodes.

* pint
2024-10-26 18:59:06 -04:00
Lance Pioch
1df3e8d5b0 Don't allow NodeStatisticsJob to be in the queue multiple times (#664)
* Make job unique

* Pint fix
2024-10-26 18:53:32 -04:00
Michael (Parker) Parker
ecb195b2c4 Merge pull request #662 from BlockyBlockling/docker-workflow-rework
Adding fix for forks to use a variable for Docker image reference instead of hard String
2024-10-26 18:45:59 -04:00
BlockyBlockling
86e8a6371e Update docker-publish.yml
Adding fix for forks to use a variable for Docker image reference

Source of information: https://docs.github.com/en/actions/use-cases-and-examples/publishing-packages/publishing-docker-images
2024-10-24 22:05:46 +02:00
Michael (Parker) Parker
d653edb22e Merge pull request #660 from BlockyBlockling/main
Fixing Critical error on Webserver on Pelican Panel Docker Image
2024-10-24 15:21:48 -04:00
BlockyBlockling
741252e395 Update supervisord.conf
Adding username and password dummy to get rid of critical error message
2024-10-24 21:15:03 +02:00
Michael (Parker) Parker
308601e6fe Merge pull request #659 from pelican-dev/issue/629
Make sure the .env can be accessed by the webserver when running Docker
2024-10-24 08:59:34 -04:00
Lance Pioch
3933222d98 Make sure the .env can be accessed 2024-10-23 21:36:48 -04:00
Boy132
c53ef78d89 Make sure schedules run with UTC (#657)
* make sure schedules use UTC for `next_run_at`

* use function from Utilities
2024-10-23 21:59:13 +02:00
Boy132
60792c05c2 Fix required for pinned threads input (#656) 2024-10-23 12:50:09 +02:00
Boy132
94420d06be Add UI for cpu pinning (#652)
* add ui for cpu pinning

* create "advanced" section
2024-10-22 23:34:46 +02:00
Fredrik Falk
6655ccca6e Speed up docker start (#647)
Starting the docker container is hampered due to setting `chown -R www-data:www-data /var/www/html/` on every start, causing it to traverse the entire directory which in our use case is very slow. This PR instead changes it to set permissions as part of the build process.

Sidenote: Is `LE_EMAIL` supposed to be used in addition to `ADMIN_EMAIL`?
2024-10-21 12:46:42 -04:00
Boy132
a193b4f5ab Installer: fix argument types for testConnection & return type for submit (#650)
* fix argument types for `testConnection`

* fix return type of submit
2024-10-21 18:43:16 +02:00
Boy132
3d5c8d14bd Add back trustedproxy config (#651) 2024-10-21 18:43:05 +02:00
Lance Pioch
de002324d7 Deselect all table records when switching primary allocation (#645) 2024-10-21 12:27:23 -04:00
Lance Pioch
bcbacb47cd Fix #606 - Prevent database hosts bulk selection if host has any databases (#640)
* Prevent hosts with databases from being selected for bulk actions

* Add icons

* Update input to select

* Update app/Filament/Resources/DatabaseHostResource/Pages/ListDatabaseHosts.php

* Add placeholder
2024-10-20 14:20:32 -04:00
Lance Pioch
e9f6fbadd4 Merge pull request #638 from pelican-dev/lance/pint-fixes
Reenable Disabled Pint Rules
2024-10-20 11:59:20 -04:00
Lance Pioch
c621d2dad5 Remove superfluous doc block 2024-10-20 11:55:47 -04:00
Lance Pioch
64943aa50c Merge branch 'main' into lance/pint-fixes 2024-10-20 11:53:10 -04:00
Lance Pioch
020e41cbbc Merge pull request #639 from pelican-dev/lance/phpstan-return-types
Enforce return and parameter types
2024-10-20 11:50:48 -04:00
Lance Pioch
e162374e15 Add return types 2024-10-20 11:41:46 -04:00
Lance Pioch
81c75f7966 Merge branch 'main' into lance/phpstan-return-types 2024-10-20 11:39:04 -04:00
Lance Pioch
2be8168468 Merge pull request #637 from pelican-dev/lance/enforce-di
Enforce Dependency Injection
2024-10-20 10:03:14 -04:00
Lance Pioch
465a372000 Merge pull request #641 from pelican-dev/lance/fix-node-create-redirect
Redirect to configuration file tab after creating the node
2024-10-20 10:00:53 -04:00
Lance Pioch
f0c536c045 Merge pull request #642 from pelican-dev/lance/fix-installer-redirect
Redirect to Admin Panel Dashboard after installer finishes
2024-10-20 10:00:37 -04:00
Lance Pioch
6a8e630444 Redirect to Admin Panel Dashboard after installer finishes 2024-10-19 22:16:55 -04:00
Lance Pioch
71aed151d9 Redirect to configuration file tab after creating the node 2024-10-19 22:11:24 -04:00
Lance Pioch
bb5955cff4 Have to make this match the trait 2024-10-19 21:19:59 -04:00
Lance Pioch
38be89a71e Pint 2024-10-19 21:16:33 -04:00
Lance Pioch
deb6603840 Revert "Add concat_space rule"
This reverts commit 96acd268be.
2024-10-19 21:14:41 -04:00
Lance Pioch
c7a307af6e Enforce return and parameter types 2024-10-19 21:02:49 -04:00
notCharles
8740f0f645 Change MaxWidth 2024-10-19 18:52:08 -04:00
Lance Pioch
466f9f7edc Add phpdoc_separation rule 2024-10-19 18:46:05 -04:00
Lance Pioch
d21740d458 Add phpdoc_align rule 2024-10-19 18:42:23 -04:00
Lance Pioch
1bf6a880fb Add nullable_type_declaration_for_default_null_value rule 2024-10-19 18:41:08 -04:00
Lance Pioch
96acd268be Add concat_space rule 2024-10-19 18:30:34 -04:00
Lance Pioch
c0a41acf1f Add class_attributes_separation 2024-10-19 18:29:44 -04:00
Lance Pioch
75e89b2d4c Prevent double ci checks 2024-10-19 17:25:02 -04:00
Lance Pioch
54ea55d426 Enforce DI 2024-10-19 17:22:03 -04:00
Boy132
207d875df8 Fix default value for dns check on EditNode (#635) 2024-10-18 08:24:49 +02:00
Boy132
ff0215afed Add permission check to delete button on EditServer (#633) 2024-10-18 08:24:14 +02:00
Boy132
f357c9501f Auto-check eggs for update (#620)
* add command to check eggs for update

* add "update" button to ListEggs

* fix "unset"

* rename class

* add confirmation modal to update button
2024-10-15 22:54:06 +02:00
Boy132
71116e81ba Cleanup .env.example and configs (#624)
* add back some configs to add some defaults

* cleanup .env.example
2024-10-15 22:37:05 +02:00
Boy132
f2063d7506 Follow up installer fixes (#621)
* enable installer on docker first run

* add SESSION_COOKIE to compose file

* `APP_ENVIRONMENT_ONLY` is long gone

* session env vars no longer needed after #624

* set defaults to null if sqlite is selected
2024-10-15 22:36:35 +02:00
Boy132
c5c05150d8 Remove no longer needed View::share (#625)
* remove no longer needed `View::share`

* hardcode values so the old admin area doesn't break

* add todo comment
2024-10-15 22:35:59 +02:00
Michael (Parker) Parker
214eb5874f Merge pull request #626 from RMartinOscar/patch-1
Fix docker build workflow
2024-10-14 18:49:01 -04:00
MartinOscar
b14f6e1645 Update Dockerfile 2024-10-14 23:05:47 +02:00
RMartinOscar
04b251d125 Disable Caddy admin endpoint 2024-10-14 20:52:05 +00:00
MartinOscar
5f9ee09ebd Add yarn timeout & cleanup 2024-10-14 22:13:01 +02:00
Michael (Parker) Parker
2fb85f8236 Merge pull request #598 from Freddo3000/feature/docker-workflow
Add Docker build/publish action
2024-10-14 09:38:19 -04:00
Fredrik Falk
4eba5b3f7a Update .github/workflows/docker-publish.yml
Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-10-13 15:10:39 +02:00
Charles
f95ba6447c Add Filament Optimize (#619) 2024-10-12 10:58:18 -04:00
Boy132
c0eedc16e0 Update web installer (#614)
* update web installer

* make sure we have a user

* save SESSION_SECURE_COOKIE as text so it's written correctly to the .env

* set `SESSION_COOKIE` so session doesn't expire when changing the app name

* Allow enter to go to next step

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-10-12 10:19:52 -04:00
Boy132
3c5da1cd70 Replace all number_format with Number::format (#617) 2024-10-12 16:12:56 +02:00
Lance Pioch
8638e53f2b Merge pull request #601 from RMartinOscar/issue/600
Add can check to fix #600
2024-10-08 17:58:54 -04:00
Boy132
3ec90264bd Update API for roles (#611)
* remove `guard_name` from api and add id to transformer

* disallow update/ delete for root admin role via api

* disallow assigning root admin via api

* add api to remove user roles

* fix assignRoles & removeRoles
2024-10-08 23:46:28 +02:00
Boy132
e23a4a667a Fix escaping for EnvironmentWriterTrait (#610)
* fix escaping for EnvironmentWriterTrait

* remove alphaNum from app name field

* add test for `'` escaping
2024-10-08 23:46:06 +02:00
Boy132
a946669dc8 Add warning about database data to database settings command (#612) 2024-10-08 23:45:50 +02:00
MartinOscar
6a8ff1a186 Update app/Filament/Resources/ServerResource/Pages/ListServers.php
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-10-07 18:50:57 +02:00
Boy132
b003404aea Collection of small admin area changes (#604)
* enable tags for nodes

* update icon for cpu column

* disable inline for "force outgoing ip" label

* change label for database hosts resource

* add custom empty state for database hosts & api keys

* add icons to egg tabs

* fix typo

* rename node "Automatic Allocation" to avoid confusion

* run code cleanup

* remove regex for node name

* only check count for application api keys

* replace "New" with "Create"

* change sidebar width to fit "Database Hosts"
2024-10-04 01:15:08 +02:00
MartinOscar
45b73debc2 Switch to authorize
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-10-02 08:03:48 +00:00
RMartinOscar
329a3993c1 Add can check 2024-10-02 05:13:23 +00:00
Fredrik Falk
da7cba3203 Add docker-publish.yml workflow 2024-10-01 17:03:48 +02:00
Charles
6c205a744d Enable spa (#594) 2024-10-01 04:58:45 -04:00
Charles
e78f7bc054 Just some houseKeeping (#593)
* Just some houseKeeping

* ... pint
2024-10-01 04:37:21 -04:00
Boy132
12a189f585 Remove old queue worker args in docker supervisord (#596) 2024-09-30 14:43:35 +02:00
Boy132
af4cba341a Add config option to disable server descriptions for users (#581)
* add config option to disable server descriptions

* only disable server descriptions for users but not for admins

* Add ,

* invert

* unset description in server transformer if disabled

* remove testing leftover

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-09-29 00:35:57 +02:00
Lance Pioch
aafe17174f Do not show installer by default 2024-09-27 18:44:56 -04:00
Lance Pioch
a067419d6e Merge pull request #313 from pelican-dev/issue/311
Docker
2024-09-27 18:01:00 -04:00
Michael (Parker) Parker
6117282909 update to use supervisord
Update the dockerfile to use supervisord
Update supervisord config to use start caddy unless configured not to.
Updated entrypoint to handle caddy skip for supervisord.
2024-09-27 17:36:45 -04:00
Lance Pioch
967d02612d Add cron and queue 2024-09-27 16:50:34 -04:00
Lance Pioch
0cd20eb444 We don’t do this yet 2024-09-27 16:50:18 -04:00
Lance Pioch
4dba73163b Switch this back 2024-09-27 16:50:10 -04:00
Boy132
aab3817244 Fix role permissions model name (#591) 2024-09-27 22:49:01 +02:00
Lance Pioch
1785883c55 Don’t need this anymore 2024-09-27 15:54:00 -04:00
Lance Pioch
4c19144640 Don’t need separate file 2024-09-27 15:53:44 -04:00
Lance Pioch
a8a2668754 Revert the composer lock 2024-09-27 15:43:04 -04:00
Boy132
6734fe3be6 Replace fonts.googleapis.com with fonts.bunny.net (#586) 2024-09-27 21:38:30 +02:00
Charles
ff0cde5152 Auto Login After Install (#585)
* Auto Login After Install

* pint
2024-09-27 15:34:26 -04:00
Lance Pioch
b098d20afb Make this work 2024-09-27 15:34:22 -04:00
Lance Pioch
3ca77765e6 Small installer updates 2024-09-27 15:33:51 -04:00
Lance Pioch
476eccca53 Add mysql 2024-09-27 15:33:18 -04:00
Lance Pioch
f686eda718 Allow absolute path in database file 2024-09-27 15:32:41 -04:00
Lance Pioch
0f58643cf2 Fix order of params 2024-09-27 15:32:31 -04:00
Lance Pioch
83ba05d7fb Update installer 2024-09-27 15:32:22 -04:00
Lance Pioch
66841f5fab Merge pull request #590 from pelican-dev/filament-update
Update Filament to 115
2024-09-27 14:29:20 -04:00
notCharles
c03ef43767 Fix server deletion with databases 2024-09-27 14:28:32 -04:00
notCharles
805461aaf0 Update Filament to 115 2024-09-27 14:04:20 -04:00
Michael Parker
6f15537d77 add ability to skip starting caddy
dockerfile
  cmd updated to just start php-fpm

entrypoint
  now starts caddy unless SKIP_CADDY has been set.

compose file
  updated ports to work properly.
  updated networks to use the correct network.
  added commented port and variable to disable caddy
  added further notes.
2024-09-26 18:29:46 -04:00
Lance Pioch
4fc8d98a0f Revert "wip"
This reverts commit 649e82d0c06f068f08b024a1f8fc4837b488cb3d.
2024-09-26 18:29:46 -04:00
Lance Pioch
9779365432 wip 2024-09-26 18:29:46 -04:00
Lance Pioch
6e998498e3 Update composer 2024-09-26 18:29:45 -04:00
Lance Pioch
7d0b9af21a Add logs volume 2024-09-26 18:29:05 -04:00
Lance Pioch
116175ba60 Store caddy config and certs in a volume 2024-09-26 18:29:05 -04:00
Lance Pioch
1e841ac40d Update variables 2024-09-26 18:29:05 -04:00
Lance Pioch
3401703ccd Use this one primarily 2024-09-26 18:29:05 -04:00
Lance Pioch
f7cb42e008 Remove old one 2024-09-26 18:29:05 -04:00
Lance Pioch
b6e55795c1 Docker 2024-09-26 18:29:05 -04:00
Lance Pioch
17c0041bfd Already have defaults 2024-09-26 18:29:05 -04:00
Lance Pioch
478948c81b Use variables 2024-09-26 18:28:11 -04:00
Lance Pioch
6b706de23d Don’t include this 2024-09-26 18:28:11 -04:00
Lance Pioch
508e1c9645 Add some docker 2024-09-26 18:28:11 -04:00
Boy132
3e7c29d264 Add artisan command for setting up redis (#580) 2024-09-26 21:53:34 +02:00
Boy132
fc643f57f9 Admin Roles (#502)
* add spatie/permissions

* add policies

* add role resource

* add root admin role handling

* replace some "root_admin" with function

* add model specific permissions

* make permission selection nicer

* fix user creation

* fix tests

* add back subuser checks in server policy

* add custom model for role

* assign new users to role if root_admin is set

* add api for roles

* fix phpstan

* add permissions for settings page

* remove "restore" and "forceDelete" permissions

* add user count to list

* prevent deletion if role has users

* update user list

* fix server policy

* remove old `root_admin` column

* small refactor

* fix tests

* forgot can checks here

* forgot use

* disable editing own roles & disable assigning root admin

* don't allow to rename root admin role

* remove php bombing exception handler

* fix role assignment when creating a user

* fix disableOptionWhen

* fix missing `root_admin` attribute on react frontend

* add permission check for bulk delete

* rename viewAny to viewList

* improve canAccessPanel check

* fix admin not displaying for non-root admins

* make sure non root admins can't edit root admins

* fix import

* fix settings page permission check

* fix server permissions for non-subusers

* fix settings page permission check v2

* small cleanup

* cleanup config file

* move consts from resouce into enum & model

* Update database/migrations/2024_08_01_114538_remove_root_admin_column.php

Co-authored-by: Lance Pioch <lancepioch@gmail.com>

* fix config

* fix phpstan

* fix phpstan 2.0

---------

Co-authored-by: Lance Pioch <lancepioch@gmail.com>
2024-09-21 12:27:41 +02:00
ash
68a0cbbf10 Update placeholders & panel error command (#576) 2024-09-16 10:16:25 -04:00
Charles
8497e8b009 Update egg-bungeecord.json (#571) 2024-09-07 12:45:25 -04:00
notCharles
8c64a4ad55 Make MySQL Happy
MySQL complains when we try to change the rules column to json before we change the data... If we change the data, then change the column its happy. :)
2024-09-07 09:47:39 -04:00
notCharles
49e93c1379 Fix Migration
Fix rule migration reversal.
2024-09-06 15:50:42 -04:00
Boy132
d7b5966e1b Remove required from smtp username (#565) 2024-09-01 17:42:15 +02:00
notCharles
e152efc5f9 Add toggle for starting server after install 2024-08-24 21:05:43 -04:00
notCharles
58307c15a3 App Name AlphaNum
Closes https://github.com/pelican-dev/panel/issues/562
2024-08-24 19:16:33 -04:00
Boy132
40810877e0 Add redis connection check to installer (#556) 2024-08-22 22:20:11 +02:00
Boy132
818781ca66 Fix isViable for Nodes with "unlimited" resources (#559) 2024-08-22 22:19:56 +02:00
Boy132
05477c711f Create missing server variables on EditServer page (#560)
* create missing server variables on editserver page

* remove count check
2024-08-22 22:19:38 +02:00
Boy132
20b06b7b39 Fix variables on CreateServer page (#558) 2024-08-20 22:45:41 +02:00
Boy132
c2b1a98d29 Convert variable "rules" to array (#507)
* convert variable "rules" to array

* allow importing eggs with string rules

* fix tests

* update stock eggs to rules array
2024-08-19 08:33:53 +02:00
notCharles
0ff429215d Revert "Test Runners"
This reverts commit d1ca21de9f.
2024-08-18 11:54:12 -04:00
notCharles
d1ca21de9f Test Runners 2024-08-18 11:41:36 -04:00
Boy132
d0c89b0729 ix installer cache (#554) 2024-08-18 17:23:02 +02:00
Boy132
ffadf9ac16 Clear cache before running migrations (#553) 2024-08-18 16:43:40 +02:00
Boy132
bf23389dba Fix default value for mailgun secret (#552) 2024-08-18 16:11:40 +02:00
MartinOscar
68e24896ae Patch for node 18 (#539) 2024-08-16 16:50:09 -04:00
Boy132
1864fff04f Update default image for new eggs (#540) 2024-08-16 22:44:12 +02:00
Boy132
155f2d6476 Add migration to fix allocations server_id foreign key (#542)
* add migration to fix allocations server_id foreign key

* fix the fix...
2024-08-13 19:43:16 +02:00
notCharles
bad5409d9c Fix saving SMTP without encryption 2024-08-10 19:39:41 -04:00
notCharles
3158bdfef8 Fix Single Egg Import 2024-08-10 18:20:21 -04:00
Boy132
1fba700096 Improve error handling for Installer (#532)
* make sure migrations ran

* add loading indicator to finish button

* make error notification persistent

* fix migration checker

* cleanup traits
2024-08-09 08:23:03 +02:00
MartinOscar
7f8fb3f650 Patch Env CLI (#528)
* Remove unused option

* Add redis user

* Adapt lang

* Change default redis username

* Cleanup

* Update app/Traits/Commands/RequestRedisSettingsTrait.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-08-08 17:59:28 -04:00
MartinOscar
d6e0421aaf Update StoreNodeRequest.php (#531) 2024-08-08 17:59:16 -04:00
MartinOscar
e8e1958969 Make default favicon path absolute to avoid 404 on admin (#529) 2024-08-06 06:31:52 -04:00
Boy132
2e094605e9 Round memory, swap and disk limits for wings (#523) 2024-08-04 22:21:23 +02:00
Boy132
953ee940aa Installer followup (#519)
* remove queue worker service creation from installer

* auto check redis
2024-08-04 18:53:54 +02:00
Boy132
496eaaaf83 Web Installer (#504)
* simplify setup command

* add installer page

* add route for installer

* adjust gitignore

* set colors globally

* add "unsaved data changes" alert

* add helper method to check if panel is installed

* make nicer

* redis username isn't required

* bring back db settings command

* store current date in "installed" file

* only redirect if install was successfull

* remove fpm requirement

* change "installed" marker to env variable

* improve requirements step

* add commands to change cache, queue or session drivers respectively

* removed `grouped` for better mobile view
2024-08-03 21:13:17 +02:00
MartinOscar
18cf6e9338 Update SetupTOTPDialog.tsx (#518) 2024-07-31 15:10:58 -04:00
Charles
525a106e81 Change TextArea -> Textarea...
Makes no sense as we have TextInput, TagsInput and KeyValue... But TextArea is an issue...
2024-07-30 14:12:29 -04:00
Charles
d22f975684 More Mobile UI
Closes https://github.com/pelican-dev/panel/issues/512
2024-07-30 12:58:16 -04:00
Charles
c4864feaa5 Whoops 2024-07-30 10:45:12 -04:00
Charles
b7b72d7336 Merge branch 'main' of https://github.com/pelican-dev/panel 2024-07-30 10:43:30 -04:00
Charles
686c4375bc Layout fix for mobile 2024-07-30 10:43:24 -04:00
Boy132
3f40256f8b Settings page followup (#514)
* remove group for toggle buttons

* fix default for APP_DEBUG

* correctly handle bool values

* fix pint

* small cleanup for example .env
2024-07-30 16:07:20 +02:00
Boy132
a58e159478 Settings page (#486)
* remove old settings stuff

* add basic settings page

* add some settings

* add "test mail" button

* fix mail fields not updating

* fix phpstan

* fix default for "top navigation"

* force toggle buttons to be bool

* force toggle to be bool

* add class to view to allow customization

* add mailgun settings

* add notification settings

* add timeout settings

* organize tabs into sub-functions

* add more settings

* add backup settings

* add sections to mail settings

* add setting for trusted_proxies

* fix unsaved data alert not showing

* fix clear action

* Fix clear action v2

TagsInput expects an array, not a string, fails on saving when using `''`

* Add App favicon

* Remove defaults, collapse misc sections

* Move Save btn, Add API rate limit

* small cleanup

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-07-29 12:14:24 +02:00
Boy132
d89af243a8 Fix user search on "create server" (#508) 2024-07-29 12:13:29 +02:00
Boy132
bddd6af8af Fix user deletion in no interactive mode (#506) 2024-07-29 12:13:08 +02:00
MartinOscar
e1bdf95971 Update SetupTOTPDialog.tsx (#476) 2024-07-29 05:58:20 -04:00
Lance Pioch
465a03bf0e Update readme.md 2024-07-24 20:10:45 -04:00
Boy132
2c2e52b18a fix phpstan (#503) 2024-07-23 11:32:32 +02:00
notCharles
fcef8d69ae Remove breadcrumbs 2024-07-20 19:15:01 -04:00
notCharles
8662806dfd Fix 500 if update url is blank 2024-07-20 18:51:38 -04:00
MartinOscar
acf43f2826 Ability to create allocations on EditServer page (#494)
* Ability to create allocation on edit page + Ability to assign allocation to server on creation

* Disable dehydrate for readonly

* set these to false

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-07-20 11:38:34 -04:00
Boy132
dfba8e3993 Command to cleanup docker images (#495)
* add command to cleanup docker images

* automatically cleanup images daily

* fix request

* fix empty check

* run pint
2024-07-20 17:23:03 +02:00
Boy132
56484a2282 Increase guzzle timeout when running tests (#485)
* increase guzzle timeout when running tests

* catch correct exception
2024-07-20 17:18:45 +02:00
MartinOscar
56b4938dc2 Fix #489 (#490)
* Fix #489

* Update app/Filament/Resources/NodeResource/Pages/EditNode.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Update app/Filament/Resources/NodeResource/Pages/EditNode.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Update app/Filament/Resources/NodeResource/Pages/EditNode.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-07-17 16:22:12 -04:00
Boy132
10806d6d6b Fix SQLite foreign keys (#478)
* start migration to fix sqlite foreign keys

* add remaining foreign keys

* add ".sqlite.backup" files to gitignore
2024-07-17 14:43:04 +02:00
Boy132
a04937d698 Fix PORT_FLOOR check and CIDR_MAX_BITS in AssignmentService (#491)
* fix max cidr

* fix port floor
2024-07-17 13:01:13 +02:00
Boy132
8a3d67ada0 Fix update egg from url (#492) 2024-07-17 13:00:54 +02:00
Charles
833ae30e59 Add timeouts (#483)
* Add timeouts

Add Timeouts to github call.

* use config value
2024-07-15 19:09:52 -04:00
Charles
1fdff43ae7 Add Node CPU/Memory Graphs (#459)
* Update Node Stats

Soon TM

* Update

* Make these smaller

* Change graphs

* Remove this.

Didn't work anyways.

* Update Graphs

* Use User TZ and config var

* Fix math

* Change to per thread.
2024-07-14 16:48:14 -04:00
Boy132
bb7c0e0e66 Add "Delete files" task (#470)
* started "delete files" task

* add logic to DeleteFilesService

* add frontend

* make nicer

* move description to right place
2024-07-10 09:25:15 +02:00
Boy132
447e889a4f Fix default timestamp for activity logs (#468)
* fix default timestamp for activity logs

* fix phpstan
2024-07-10 08:36:24 +02:00
Exotical
1c1c8c0cc6 Fix client Activity tab issues; fixes #465 (#466)
* Remove deploy.locations from validator

* Change location data to optional for backwards compat

* Better styling

* Add back comma to follow coding style

* Remove EventServiceProvider from providers file

Fixes duplicated auth messages in the client Activity tab.

* Add null check on $model->actor

Prevents the client Activity tab page from breaking when an authentication attempt has failed.

* Proper type checking on $model->actor

Chose instanceof as it seems to be the best in terms of type safety.

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>

* Revert removal of EventServiceProvider

* Remove subscription of AuthenticationListener

* Remove subscriptions for auth events

* Remove unused import Dispatcher

* Remove unused import AuthenticationListener

---------

Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
2024-07-09 21:30:12 -07:00
notCharles
7dad2d0e42 Fix #464 2024-07-07 19:33:25 -04:00
notCharles
212c93c2ba Fix #462 2024-07-05 18:24:07 -04:00
Boy132
7557dc1c8d Restart queue worker when changing email settings (#457) 2024-07-05 16:17:35 +02:00
Boy132
07735464c7 Add contributing guide (#460) 2024-07-05 01:15:45 +02:00
notCharles
8ba15538a9 Fix ToolTip 2024-07-03 16:33:32 -04:00
Charles
c115c6ddf5 Add Update URL to stock eggs 2024-07-03 10:36:34 -04:00
Charles
160ea1ed50 Enable Update URL
Since importing an egg via url was added, we can enable this.
2024-07-03 10:27:57 -04:00
MartinOscar
7164951085 Update EditServer.php (#455) 2024-07-02 13:31:35 -04:00
Charles
40721a2cb8 Fix #452
Prob not the best solution, but it works

Closes: https://github.com/pelican-dev/panel/issues/452
2024-07-02 08:01:17 -04:00
MartinOscar
c464b321dd Update EditProfile.php (#454) 2024-07-02 07:05:00 -04:00
MartinOscar
0f8c27a297 Update ContainerStatus add Starting|Stopping|Default (#449)
* Update ContainerStatus add Starting

* Update ContainerStatus add Stopping

* Update ContainerStatus add Default

* Update Icons, PHPStan

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-06-30 10:13:08 -04:00
notCharles
40819cf171 Use correct action 2024-06-29 18:02:53 -04:00
Boy132
133b94ab08 Add missing user timezone stuff (#446) 2024-06-29 23:42:46 +02:00
Charles
82c0568129 Reduce Reuse (#443)
* Reduce Reuse

Reduce the repetitiveness of \Form\Component\Blah along with all the others...

* PHPStan Fix
2024-06-29 17:38:18 -04:00
MartinOscar
75d35e6ee8 Add ability to create User on Create Server page (#442)
* Add ability to create a User on Create Server page

* pint

* Fix creating user without password

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-06-29 17:18:42 -04:00
Boy132
2a740b43e6 Fix schedules running every minute (second try) (#444) 2024-06-29 23:16:28 +02:00
Charles
818a8a42ad Closes #439 (#440)
* Update readme.md

* Update readme.md

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2024-06-27 19:09:50 -04:00
Lance Pioch
67dbf772d5 Separate these out in the navigation (#434) 2024-06-27 05:54:21 -04:00
Lance Pioch
efb834c8f7 Combine Server states and statuses and resolve #362 (#417)
* Simplify states and statuses and resolve #362

# Conflicts:
#	app/Models/Server.php

* Move Random button...

Moves button to the info tab

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-06-25 20:30:06 -04:00
Lance Pioch
cf37994c3b Allow user to switch time zones (#332)
* Description not required

* Overwrite to use user’s time zone

* Allow users to change time zones

* Update app/Filament/Resources/UserResource/Pages/EditProfile.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>

* Pint fix

---------

Co-authored-by: Charles <charles@pelican.dev>
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-06-25 20:17:08 -04:00
Boy132
fc92a87993 Add connection test to database hosts (#410)
* add connection test to database hosts

* fix phpstan
2024-06-25 18:42:55 -04:00
Lance Pioch
f459987458 Allow manual (force) updates to eggs (#427)
* Update labels

* Add force imports

* Not multiple

* pint + changes

---------

Co-authored-by: Charles <charles@pelican.dev>
2024-06-25 15:37:12 -04:00
MartinOscar
5290b8f8bb Update ListUsers Prevent bulkdelete of yourself/last admin (#425)
* Update ListUsers.php

* Update ListUsers.php

* Update app/Filament/Resources/UserResource/Pages/ListUsers.php

---------

Co-authored-by: Lance Pioch <lancepioch@gmail.com>
2024-06-24 21:41:42 -04:00
MartinOscar
e08cbdecd4 Update EnvironmentWriterTrait to allow empty string in CLI (#421) 2024-06-24 13:52:52 -04:00
Boy132
70c31eef8f Refactor UserTransformers (#423)
* remove AccountTransformer and update UserTransformer (client api) to match UserTransformer (application api)

* rename "toVueObject"

* fix tests

* forgot to rename this

* backwards compat

* fix tests
2024-06-23 16:33:18 +02:00
Boy132
5409532ca1 Fix the fix (#424) 2024-06-23 16:23:11 +02:00
Lance Pioch
a1190c12e0 Add required to editing server variables and fix #413 (#415)
* Add required to editing server variables

* Misplaced
2024-06-21 16:17:44 -04:00
notCharles
42ca4e7fba This never happened... 2024-06-20 16:15:56 -04:00
notCharles
d6b71885ec Add env. to egg upgrader 2024-06-20 16:00:17 -04:00
Boy132
7b0a15e746 Remove hard coded queue name for RunTaskJob (#420) 2024-06-19 16:04:00 +02:00
Boy132
7813b6060c Make oauth nullable & remove middleware from oauth callback (#418)
* make oauth nullable

* fix oauth callback middleware
2024-06-18 22:05:08 +02:00
Charles
c431775b7e [Create Server] Fix 500 when changing egg
When changing from one egg to nothing, a 500 is displayed due to it expecting startup to have a value
2024-06-17 12:24:52 -04:00
Lance Pioch
6692942f6f Group servers (#412)
* Group servers

# Conflicts:
#	app/Filament/Resources/ServerResource/Pages/ListServers.php

* Can be null apparently

* pint

---------

Co-authored-by: Charles <charles@pelican.dev>
2024-06-17 12:12:56 -04:00
MartinOscar
276b51f477 Remove locationId in MakeNodeCommand (#405)
* Concat + Default

* Concat + Default + Enforce scheme

* fix typo

---------

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-06-17 08:51:04 -04:00
MartinOscar
d4eecdd53d Update OAuth migration (#409) 2024-06-17 07:03:36 -04:00
Senna
d7316c4dfe Dashboard update. Update section (#390)
* Created command

* Pint Fixes

* Removed old upgrade command translations

* Update to Dashboard and linting Dashboard view

* Pint Fixes

* A few small improvements

* Delete modifications to upgrade command

* Revert "Removed old upgrade command translations"

This reverts commit 31315a0d9e.

* Pint Fixes

* Boy132's Suggestions
2024-06-16 17:54:49 -04:00
notCharles
011579451d Merge branch 'main' of https://github.com/pelican-dev/panel 2024-06-16 14:21:33 -04:00
notCharles
6b5b480902 Update database section on EditServer 2024-06-16 14:21:25 -04:00
MartinOscar
87dc8066c9 Update required (#401) 2024-06-16 14:01:27 -04:00
MartinOscar
aa08e774a1 Fix varchar(191) by replacing with 255 #135 (#376)
* Add Nullable

* Edit filament & AppServiceProvider

* Pint

* Patch tests

* Actually patching tests

* Actually patching tests

* Remove length

* Remove defaultStringLength

* Let’s see the differences

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2024-06-16 13:56:18 -04:00
notCharles
482e8ed6b2 Add Databases to Edit Server 2024-06-16 13:50:28 -04:00
Boy132
59bbb63739 Fix queue worker file when using redis (#399) 2024-06-15 23:20:08 +02:00
Charles
f4c3c89c17 Also add that here
Prevent 500's on server create
2024-06-15 12:36:15 -04:00
Charles
fe4e6271fb Set minValue
Closes #397
2024-06-15 12:33:33 -04:00
Boy132
8ee5d6aabd Add missing "search" translations (#393) 2024-06-15 14:46:10 +02:00
Boy132
42ecd2951d Update p:info command (#389) 2024-06-14 17:17:49 +02:00
Boy132
7a6edab79a Remove unnecessary json_encode in oauthcontrollers (#391) 2024-06-14 17:17:34 +02:00
MartinOscar
4f43e9171a Rename OauthController.php to OAuthController.php (#388)
Fixes Class App\Http\Controllers\Base\OAuthController located in ./app/Http/Controllers/Base/OauthController.php does not comply with psr-4 autoloading standard (rule: App\ => ./app). Skipping.
2024-06-13 23:52:53 -04:00
Boy132
5a3c606627 Add OAuth backend (#386)
* add socialite backend

* fix redirect url

* small cleanup

* fix "oauth" type

* changes from review
2024-06-13 21:06:31 +02:00
Boy132
6916b89638 Fill startup & image from egg if missing in request (#384) 2024-06-13 15:48:36 +02:00
Boy132
0da184c56e Get latest Panel & Wings version from github api (#379)
* get latest panel % wings version from github api

* fix tests

* remove unused CdnVersionFetchingException
2024-06-13 08:23:45 +02:00
Boy132
ce1163d387 Hide task delay on frontend if queue driver is set to sync (#375) 2024-06-13 08:23:24 +02:00
Boy132
cd4fc1a95d Add config variable to change between MiB and MB (#374) 2024-06-13 08:22:29 +02:00
Boy132
0c0b468525 Change allowed_ips to non-nullable (#373)
* change `allowed_ips` to non nullable

* fix default value

* show "allowed_ips" input
2024-06-13 08:21:56 +02:00
notCharles
12518bc5d6 Allow more searchable
Allow more columns to be searchable.
2024-06-12 19:30:02 -04:00
Boy132
7c829fb9cf Fix egg export (#380) 2024-06-12 18:18:24 +02:00
Boy132
61f3e965ba Refactor egg services (#358)
* combine importer and updateimport

* integrate egg parser into importer

* remove EggCreationService and EggUpdateService

* run pint

* revert change to composer.json

* use egg exporter directly instead of old admin route
2024-06-11 21:01:31 +02:00
Boy132
10796f8916 Dedicated MariaDB driver (#365)
* dedicated tests for mariadb

* fix migrations

* update database config

* update database setup command
2024-06-11 21:01:14 +02:00
Djordy Koert
1d66d4c320 PHPStan workflow + PHPStan fixes (#339)
* add PHPStan to workflow

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: Djordy <djordy@lap-0394-djordy-koert.local>
Co-authored-by: Lance Pioch <lancepioch@gmail.com>
2024-06-11 15:00:51 -04:00
Lance Pioch
e95cd0cd98 Update bounties.md 2024-06-11 14:58:42 -04:00
MartinOscar
46a24a087b Update CreateServer.php (#364) 2024-06-11 14:36:22 -04:00
MartinOscar
f216376265 Update EditProfile (#368)
* Update EditProfile.php
2024-06-11 14:32:55 -04:00
Lance Pioch
6d6b50c27d Create bounties.md 2024-06-11 12:48:04 -04:00
MartinOscar
58bfa12280 Cleanup unused vars (#366)
* Update app/Exceptions/Handler.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-06-11 12:22:37 -04:00
MartinOscar
8e5660a1b9 Add default for Automatic Allocation in CreateNode (#367)
* Update CreateNode.php
* Update app/Filament/Resources/NodeResource/Pages/CreateNode.php

Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
2024-06-11 12:21:51 -04:00
MartinOscar
beac4cd3f6 Update AllocationsRelationManager.php (#369)
* Update AllocationsRelationManager.php

* Update app/Filament/Resources/ServerResource/RelationManagers/AllocationsRelationManager.php

---------

Co-authored-by: Lance Pioch <lancepioch@gmail.com>
2024-06-11 12:21:13 -04:00
kubi
9184441763 Update release workflow for new parameter format (#363)
action-gh-release combined their artifact uploader action with their create release action.  Combine these into a single step.
2024-06-10 15:08:18 -07:00
kubi
3ac23d1514 Update version of upload release actions in release workflow 2024-06-10 14:55:14 -07:00
kubi
6295ea34de Update tests to use mariadb 10.3
Update version of mariadb used by tests since this is our minimum required version.
2024-06-10 14:45:32 -07:00
kubi
3cadbbc60c Run build on commits 2024-06-10 14:41:02 -07:00
kubi
60c5f826d6 Run build and tests on commits 2024-06-10 14:32:36 -07:00
Boy132
1047e8f948 Make egg list searchable and sortable (#359)
* make egg list searchable and sortable

* run pint
2024-06-10 09:11:12 -04:00
Lance Pioch
f3501d8b14 Merge pull request #343 from Boy132/phpstan-fixes
Fix remaining phpstan issues for #339
2024-06-09 15:13:44 -04:00
Charles
9114685680 Use Wizard for server/node create pages (#352)
* Update create server flow

* Update create node & buttons

* Remove duplicate

* Composer Update

Update some of the packages <3

* Small adjustments

* pint

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2024-06-09 15:07:33 -04:00
notCharles
8080435eca It's Late... 2024-06-07 22:28:53 -04:00
notCharles
c5824ff26c Whoops.... Fix env replacement...
Somehow this got copy pasta'd and yeh.... its not right...
2024-06-07 22:18:12 -04:00
Charles
dd7a01aa04 Merge pull request #345 from Boy132/show-git-version
Show update info on dashboard & show git commit (when using git)
2024-06-07 20:00:04 -04:00
Boy132
55badb5644 update colors 2024-06-08 00:43:25 +02:00
Boy132
93f059025c show update info on dashboard, show git commit (when using git) 2024-06-08 00:38:46 +02:00
Charles
7be0cd6928 Merge pull request #323 from Boy132/feature/node-sftp-alias
Add alias for node sftp address
2024-06-07 18:04:44 -04:00
Boy132
0156456919 Merge branch 'pelican-dev:main' into feature/node-sftp-alias 2024-06-07 23:49:38 +02:00
Charles
b9d1ce4438 Merge pull request #334 from pelican-dev/issue/297
Better exception handling
2024-06-07 17:46:33 -04:00
Charles
9ce262bf56 Merge pull request #316 from pelican-dev/issue/node-update
Fix Node Updating
2024-06-07 17:44:10 -04:00
notCharles
7ee52affb2 Update token rotation 2024-06-07 17:38:58 -04:00
Charles
93bfe925b9 Merge pull request #333 from pelican-dev/issue/2
Remove unused parameters
2024-06-07 17:32:40 -04:00
Boy132
cc1ac1eba1 Allow importing eggs via url (#344)
* allow importing eggs via url

* refactor

* run pint

* turn back into one button

* fix empty check

* small cleanup

* removed container for tabs

* Update URL function

* Use sys temp

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-06-07 17:31:34 -04:00
Charles
02d24b8a36 Fix the egg variable disaster... (#331)
* Migrations to update existing eggs in db

* Update stock eggs

* Update Eggs on import

* Also update updated versions of eggs that are uploaded

* Redo this..

Tests passed locally.

* Pint & Update replace

* Squash Migrations, simplify logic

* Maybe this way...

* Swap them over to single call

---------

Co-authored-by: Lance Pioch <git@lance.sh>
2024-06-07 16:23:25 -04:00
Charles
16fac3b5c6 Merge pull request #337 from Boy132/fix/schedules-run-every-minute
Fix schedules running every minute
2024-06-07 05:43:56 -04:00
Boy132
6b249b9545 fix tests 2024-06-07 09:17:10 +02:00
Boy132
70fc84309f revert some changes in EditProfile 2024-06-07 09:11:40 +02:00
Boy132
f43fb985a2 fix phpstan in Node and EditProfile 2024-06-07 08:59:00 +02:00
Lance Pioch
eb99f53d87 Reset this for now 2024-06-07 00:08:41 -04:00
Lance Pioch
643e4168b9 Add required rule separately 2024-06-06 19:39:46 -04:00
Lance Pioch
51cd7a8e81 Remove unused route files 2024-06-06 16:15:35 -04:00
Boy132
91bf38b63d fix schedules running every minute 2024-06-06 15:53:29 +02:00
Charles
e3699f34d8 Merge pull request #336 from Boy132/fix/default-database-path
Use env value instead of config value for database path
2024-06-06 06:09:51 -04:00
Charles
dc3da2dc98 Merge pull request #335 from Boy132/add/mounts-helper-text
Add helper text to mounts on EditServer page
2024-06-06 06:05:27 -04:00
Boy132
d245751c97 use env value instead of config value 2024-06-06 11:59:24 +02:00
Boy132
e0d7a094ab add helper text to mounts 2024-06-06 10:18:05 +02:00
Lance Pioch
3010e3d61e Better default 2024-06-05 23:37:12 -04:00
Lance Pioch
d68e7218a8 Reformat as table 2024-06-05 23:37:09 -04:00
Lance Pioch
a4435a7454 Pint fix 2024-06-05 22:12:53 -04:00
Lance Pioch
df26c4f9f5 Better exception handling 2024-06-05 21:49:09 -04:00
Lance Pioch
6f1de67523 Remove extraneous parameters 2024-06-05 16:03:04 -04:00
Charles
6f009ee126 Remove cli from php
Every workflow run hangs at attempting to add the cli package and adds ~1 min to the workflow.
2024-06-05 14:15:33 -04:00
Boy132
328e159c6b Merge branch 'pelican-dev:main' into feature/node-sftp-alias 2024-06-05 08:47:20 +02:00
Boy132
f9fd426aca change column type to string
Co-authored-by: Lance Pioch <lancepioch@gmail.com>
2024-06-05 08:47:11 +02:00
Lance Pioch
6166fac929 Merge pull request #322 from Boy132/fix/make-user-db-test
Replace DB check in MakeUserCommand
2024-06-04 17:33:47 -04:00
Lance Pioch
4bd1070025 Merge pull request #324 from Boy132/patch-1
Remove maxLength from `variable_value` input
2024-06-04 17:30:16 -04:00
Lance Pioch
2d6e30b646 Merge pull request #326 from Boy132/fix/artisan-queue-again
Another call fix in AppSettingsCommand
2024-06-04 17:29:48 -04:00
Lance Pioch
f61c6b9dc2 Merge pull request #327 from Boy132/patch-2
Fix default sqlite database path in setup command
2024-06-04 17:28:45 -04:00
Lance Pioch
5e29737dc5 Merge pull request #328 from Boy132/fix/pelicanignore
Replace `panelignore` with `pelicanignore`
2024-06-04 15:43:09 -04:00
Boy132
d996019204 fix eslint 2024-06-04 17:49:04 +02:00
Boy132
91d8dbd084 replace panelignore with pelicanignore 2024-06-04 17:48:02 +02:00
Boy132
bb03ddda50 listen on all queues 2024-06-04 17:26:19 +02:00
Boy132
1c66681c0e make default sqlite database path relative 2024-06-04 13:26:05 +02:00
Boy132
0728266826 restart queue service if service already exists 2024-06-04 13:14:54 +02:00
Boy132
d81c9faac6 improve prompts 2024-06-04 13:01:52 +02:00
Boy132
cff54f1969 show output when running p:environment:queue-service 2024-06-04 13:01:24 +02:00
Boy132
201563a13b remove maxLength from variable_value input 2024-06-04 11:20:40 +02:00
Boy132
8f2261f6cd add alias for node sftp address 2024-06-04 09:17:36 +02:00
Boy132
29cc92f0dc replace db check in MakeUserCommand 2024-06-04 08:33:54 +02:00
Lance Pioch
33f10cbcb9 Merge pull request #312 from RMartinOscar/patch-1
Update EditUser.php
2024-06-03 10:35:31 -04:00
Lance Pioch
b538532e34 Merge pull request #314 from RMartinOscar/patch-2
Update EditDatabaseHost.php
2024-06-03 10:35:07 -04:00
Lance Pioch
a892821b4f Merge pull request #319 from RMartinOscar/patch-3
Update AllocationsRelationManager to allow big endian
2024-06-03 10:34:27 -04:00
Lance Pioch
5a3b50b31f Apply suggestions from code review 2024-06-03 10:34:08 -04:00
Lance Pioch
51b217571b Merge pull request #320 from Boy132/fix/artisan-call
Fix artisan call in AppSettingsCommand
2024-06-03 10:33:00 -04:00
Boy132
6e75c76c60 cleanup 2024-06-03 13:46:48 +02:00
Boy132
e22c5c3e0a fix artisan call in app settings command 2024-06-03 13:43:11 +02:00
MartinOscar
f3171939a4 Update AllocationsRelationManager.php
Remove useless range order
2024-06-03 07:11:09 +02:00
MartinOscar
189d564f87 Update AllocationsRelationManager.php 2024-06-03 06:30:05 +02:00
MartinOscar
7926f97c8e Update EditDatabaseHost.php 2024-06-03 04:09:36 +02:00
MartinOscar
f4d39c1c68 Update EditDatabaseHost.php 2024-06-03 04:02:31 +02:00
Lance Pioch
6c2d0a2d50 Remove shenanigans 2024-06-02 21:59:12 -04:00
MartinOscar
f6899301fd Update EditDatabaseHost.php 2024-06-03 03:54:33 +02:00
MartinOscar
cbb4ef1da2 Update EditUser.php 2024-06-03 03:52:39 +02:00
notCharles
f6ef76d98e Disable delete for own user. 2024-06-02 21:00:11 -04:00
notCharles
65a697d8f7 add variables to .env 2024-06-02 18:04:02 -04:00
Charles
9515a82a75 Merge pull request #280 from pelican-dev/charles/rework-server
Rework Server Pages
2024-06-02 17:54:00 -04:00
Lance Pioch
44f5ea567f Merge branch 'main' into charles/rework-server
# Conflicts:
#	app/Filament/Resources/ServerResource/Pages/EditServer.php
2024-06-02 17:46:45 -04:00
Charles
88f910f3e7 Merge pull request #307 from pelican-dev/issue/287
Allow Servers to have Mounts
2024-06-02 17:42:13 -04:00
Lance Pioch
020f028008 Add new component 2024-06-02 17:38:07 -04:00
Lance Pioch
0cb7f737b0 Set the node 2024-06-02 17:38:00 -04:00
notCharles
53aa52f519 Add migration to update stock egg uuids 2024-06-02 17:06:42 -04:00
notCharles
e884eda5a7 Update stock eggs to have UUIDs 2024-06-02 16:50:55 -04:00
notCharles
58d1fd3917 Add Mounts + Icons 2024-06-02 15:05:45 -04:00
notCharles
0b0952650e Remove labels/mounts if empty. 2024-06-02 13:43:25 -04:00
notCharles
aa55a7ed83 Update .gitignore, again... 2024-06-02 10:51:48 -04:00
notCharles
c7fa7a1bad Add to .gitignore 2024-06-02 10:48:45 -04:00
Lance Pioch
4a3bdd78ef Update readme 2024-06-02 00:38:54 -04:00
Lance Pioch
a1067fd4aa Allow mounts to be added to servers 2024-06-02 00:34:35 -04:00
Lance Pioch
110cc1248b Fix relationship 2024-06-02 00:33:58 -04:00
Lance Pioch
04a1ccc97e Merge branch 'main' of github.com:pelican-dev/panel 2024-06-01 19:26:25 -04:00
Lance Pioch
5e7f5c2a4c Allow adding new allocations to existing servers 2024-06-01 19:26:23 -04:00
kubi
b804878d7b Fix labels position in server config 2024-06-01 20:42:44 +00:00
notCharles
118977c8c5 Merge branch 'main' into charles/rework-server 2024-06-01 15:54:03 -04:00
notCharles
c31b7b8c6a Correctly save labels on create 2024-06-01 15:52:13 -04:00
Charles
eefe59b153 Merge pull request #300 from pelican-dev/issue/286
2FA Profile
2024-06-01 13:07:32 -04:00
Lance Pioch
cd4b7cbf9e Refresh this 2024-06-01 13:03:46 -04:00
Lance Pioch
67cb3d4816 Show backup tokens better 2024-06-01 12:49:36 -04:00
Lance Pioch
7762e68a6c Make qr code visible on light mode 2024-06-01 12:49:19 -04:00
Lance Pioch
7a327ea378 Remove clockwork 2024-06-01 12:36:11 -04:00
Lance Pioch
b3ca7b7ac9 Merge pull request #284 from Boy132/replace/encrypt-decrypt
Replace encrypt/decrypt with `encrypted` casting to resolve #4
2024-05-31 19:50:07 -04:00
Charles
abc99cd928 Merge pull request #303 from pelican-dev/issue/290
Allow updating of existing eggs via upload
2024-05-31 18:52:20 -04:00
Charles
cb638369cf Merge pull request #302 from pelican-dev/issue/294
Only show application api keys
2024-05-31 18:49:35 -04:00
notCharles
9174de2d8c Add Labels 2024-05-31 17:24:03 -04:00
Boy132
7cda358b66 add missing import 2024-05-31 23:07:50 +02:00
Boy132
33f6551b21 run pint 2024-05-31 23:06:46 +02:00
Boy132
b1928e89b4 Merge branch 'pelican-dev:main' into replace/encrypt-decrypt 2024-05-31 23:04:43 +02:00
Lance Pioch
c956cd0106 Update old keys 2024-05-31 17:03:14 -04:00
notCharles
5081cc3f63 Fix badge, update table 2024-05-31 16:39:23 -04:00
Lance Pioch
8eb2c23420 Fix creating new node 2024-05-31 16:03:12 -04:00
notCharles
cfe385f53a Add uuid to egg exproter
Add UUID to egg exporter.
2024-05-31 16:01:15 -04:00
Lance Pioch
264d3498a6 Allow mailgun to work #257 2024-05-31 15:44:21 -04:00
Lance Pioch
065f3f2468 Activity log fix #257 2024-05-31 15:18:04 -04:00
Lance Pioch
957638d4ac Fill previously existing egg 2024-05-31 15:14:22 -04:00
Lance Pioch
7d0ce1627b Remove unused imports 2024-05-31 02:00:38 -04:00
Lance Pioch
8cec7368ab Only show application api keys 2024-05-31 01:59:33 -04:00
Lance Pioch
5519931ee5 Pint 2024-05-31 01:42:02 -04:00
Charles
97ac0fe54b Add Reset Daemon Key Button (#298) closes #292 2024-05-31 01:41:21 -04:00
Lance Pioch
7657364208 Cache per user and show backup tokens temporarily 2024-05-31 01:38:32 -04:00
Lance Pioch
ef1a208b95 Add 2fa setup 2024-05-31 01:26:28 -04:00
Lance Pioch
aa82c6dd04 Update this 2024-05-31 01:20:25 -04:00
Lance Pioch
8ecabef6b5 Add customization 2024-05-29 19:24:02 -04:00
notCharles
a6d07ede5a Soon-TM 2024-05-29 19:18:09 -04:00
Boy132
f6325c07c4 Fix overallocation -1 and close #268 (#283) 2024-05-29 18:57:30 -04:00
Exotical
7674ee0e2b Make deploy.locations optional in the api (#295) 2024-05-29 18:54:07 -04:00
Senna
5760e72b8f Added 2 badges (#296) 2024-05-29 18:51:45 -04:00
Boy132
b6e46f758d Remove hashids (#282) and close #269 2024-05-29 18:41:44 -04:00
notCharles
e980877bbc Fix Node Creation
Add missing defaults
2024-05-29 18:28:21 -04:00
notCharles
dd223b47c0 WIP Server Transfer 2024-05-29 18:27:54 -04:00
Boy132
639fa3399d run pint 2024-05-28 15:27:33 +02:00
Boy132
82fd547484 replace encrypt/ decrypt with encrypted casting 2024-05-28 15:24:20 +02:00
notCharles
d461242f08 Improve Logic on buttons
If a server is suspended, disable transfer/toggle/reinstall as they will unsuspend the server due to the status change.

Also properly updates server state and container status.
2024-05-27 21:51:24 -04:00
notCharles
dec1cf8e74 Rework Edit Server Page
a WIP, Also functional
2024-05-27 20:02:13 -04:00
notCharles
15caac51fb fix auth redirect
closes https://github.com/pelican-dev/panel/issues/278
2024-05-27 13:41:46 -04:00
notCharles
183c274a0d Correct Tags to KeyVal 2024-05-27 13:37:59 -04:00
Lance Pioch
a8b2fb440f Merge branch 'main' of github.com:pelican-dev/panel 2024-05-25 20:59:54 -04:00
Lance Pioch
f8e4514998 Update filename 2024-05-25 20:51:52 -04:00
Lance Pioch
deeebf73d3 Update gitignores 2024-05-25 20:51:41 -04:00
Boy132
422fc102c9 Improve "no interaction" mode for queue worker service command (#270) 2024-05-25 20:48:02 -04:00
Boy132
e715e92f9d correctly transform eggs that use inheritance (application api) (#217) 2024-05-25 20:47:27 -04:00
Lance Pioch
73babfa2b3 Merge pull request #274 from pelican-dev/issue/267 and fix #267 2024-05-24 21:15:14 -04:00
Lance Pioch
e0a92d733b I swear I already did this 2024-05-24 20:58:19 -04:00
Jordan Adams
1e67cd9944 Fix mumble host to allow IPv6 (#264) 2024-05-24 19:36:18 -04:00
Lance Pioch
3946116dff Merge pull request #265 from pelican-dev/issue/222
Simplify node deployment service, add filtering with tags instead of locations
2024-05-24 19:35:06 -04:00
Lance Pioch
b77fd3d653 Fix #267 2024-05-24 19:34:23 -04:00
Lance Pioch
f4672c6cb1 Pint fix 2024-05-22 03:15:29 -04:00
Lance Pioch
5b9e4b1729 Always limit by nodes, was like this before anyways 2024-05-22 03:10:33 -04:00
Lance Pioch
48f715ae69 Fix directory 2024-05-22 02:52:49 -04:00
Lance Pioch
51460782cc Merge branch 'main' into issue/222
# Conflicts:
#	app/Http/Controllers/Api/Application/Nodes/NodeDeploymentController.php
#	app/Http/Requests/Api/Application/Nodes/GetDeployableNodesRequest.php
#	app/Services/Deployment/FindViableNodesService.php
#	app/Services/Servers/ServerCreationService.php
#	tests/Integration/Services/Deployment/FindViableNodesServiceTest.php
2024-05-22 02:47:37 -04:00
Lance Pioch
b007e63937 Pint fixes 2024-05-22 02:35:20 -04:00
Boy132
4dd833562b Add CPU limit to node (#239) to resolve #233
* add node cpu limit to backend

* update makenodecommand

* add node cpu limit to frontend

* add migration and update mysql schema

* run pint

* fix typo in mysql schema

* forgot this assert

* forgot to setCpu here

* run pint

* adjust migration

* Fix db migration

* make cpu optional

* set default value for cpu in node deployment

* update mysql schema

---------

Co-authored-by: notCharles <charles@pelican.dev>
2024-05-22 02:34:43 -04:00
Lance Pioch
b579f14f3f Backwards compatibility 2024-05-21 22:04:12 -04:00
Lance Pioch
eadaec1b30 Simplify now that keys are fixed 2024-05-21 21:48:16 -04:00
Lance Pioch
a9e58bb493 Fix database path for sqlite 2024-05-21 21:48:04 -04:00
Lance Pioch
5c33c7495a Ignore this for now 2024-05-21 21:45:26 -04:00
Lance Pioch
f9aa8cf218 Simplify viable nodes service 2024-05-21 21:44:49 -04:00
Lance Pioch
da698a3666 Remove exception 2024-05-21 21:02:11 -04:00
Lance Pioch
2808a3dd35 Simplify buttons 2024-05-20 14:38:48 -04:00
Lance Pioch
7ea365e8de Pint 2024-05-19 23:25:40 -04:00
Lance Pioch
ae399f9bad Add port validation rule for #68 2024-05-19 23:25:12 -04:00
Lance Pioch
53a5ff6e6d Update api docs 2024-05-19 23:24:21 -04:00
Lance Pioch
54ae4b3dc1 Merge pull request #261 from pelican-dev/charles/docker-tags
Add docker container labels
2024-05-19 21:36:26 -04:00
notCharles
859a721e17 mysql vs sqlite... 2024-05-19 21:30:25 -04:00
notCharles
03cbdd5bdd update edit/create pages 2024-05-19 21:15:43 -04:00
notCharles
4c43fd1683 Add docker_labels 2024-05-19 20:55:37 -04:00
notCharles
0c61a63191 Add id to allocation table 2024-05-19 20:23:59 -04:00
Boy132
b1f99ca8a3 Add api for mounts (#160)
* add application api endpoints for mounts

* run pint

* add mounts resource to api key

* add includes to mount transformer

* forgot delete route for mount itself

* add migration for "r_mounts" column

* add mounts to testcase api key
2024-05-19 08:50:15 -07:00
notCharles
0a5810358a Update jdbc string
should also update the password here.
2024-05-18 18:17:20 -04:00
notCharles
1bae239971 Fix db password rotation
updates the password textbox when password is rotated.
2024-05-18 18:13:06 -04:00
notCharles
597f74f105 reload form data after save
closes https://github.com/pelican-dev/panel/issues/251
2024-05-18 18:08:55 -04:00
notCharles
5344d99a40 Update Mobile View 2024-05-18 17:47:33 -04:00
Boy132
1db1a1a3e0 set default db username to "pelican" to match docs (#254) 2024-05-18 12:38:11 -07:00
Boy132
712b6a285b Add artisan command to create queue worker service (#253)
* add command to create queue worker service file

* remove comments from service file that are no longer needed

* only create queue worker service file if queue driver is not "sync"

* make "database" the recommended queue driver, again
2024-05-18 10:31:02 -07:00
notCharles
38b92ae21d Fix user->admin
closes https://github.com/pelican-dev/panel/issues/197
2024-05-17 22:58:17 -04:00
notCharles
c18d291f8f database page updates 2024-05-17 20:56:12 -04:00
Charles
45c0cfe4d8 Merge pull request #240 from Boy132/backport/ptero-backup-node-check
backups: ensure requesting node is checked
2024-05-17 20:21:57 -04:00
Charles
89d555f308 Merge pull request #244 from pelican-dev/charles/fix-newuser
fix: Creating User
2024-05-17 20:20:10 -04:00
notCharles
9b2e00ead2 pint 2024-05-17 20:10:53 -04:00
notCharles
d0997dca1a Remove hints 2024-05-17 19:59:41 -04:00
notCharles
cca723d21e Update unique, remove dehydrates 2024-05-17 19:59:04 -04:00
Lance Pioch
68dbd6e329 Remove ref 2024-05-17 19:50:34 -04:00
Lance Pioch
544364f061 Merge branch 'main' of github.com:pelican-dev/panel 2024-05-17 19:49:36 -04:00
Lance Pioch
649f319776 Swap route key 2024-05-17 19:49:33 -04:00
notCharles
6ffe800e0d Forgot to delete these. 2024-05-17 19:14:29 -04:00
notCharles
12af8fe51e This is better... 2024-05-16 20:34:37 -04:00
notCharles
9f5d27896a Pint 2024-05-16 18:44:59 -04:00
notCharles
15969da41e Fix New User
Removes the required password field for making new accounts, triggers email for user to make their own password.
2024-05-16 18:43:05 -04:00
Charles
628a6e54e3 Merge pull request #243 from pelican-dev/charles/remove-log
Remove Log Viewer
2024-05-16 18:04:46 -04:00
notCharles
edcd406b82 Remove Log Viewer 2024-05-16 17:18:27 -04:00
Boy132
1742061807 Merge branch 'pelican-dev:main' into backport/ptero-backup-node-check 2024-05-16 17:32:19 +02:00
Charles
289eda64ad Merge pull request #238 from Boy132/fix/236
Add default for disk/ memory and overallocation
2024-05-16 11:31:25 -04:00
Boy132
cc46c463ac run pint 2024-05-16 17:28:49 +02:00
Boy132
e6dded61a4 backups: ensure requesting node is checked
Co-authored-by: matthewpi <matthew@pterodactyl.io>
2024-05-16 11:53:18 +02:00
Boy132
921b76f1e1 add default for disk/ memory and overallocation 2024-05-16 08:43:09 +02:00
Lance Pioch
91a3bb969e Better scrambling to fix #235 2024-05-16 00:23:29 -04:00
Lance Pioch
8b62df6c53 Composer update 2024-05-16 00:15:35 -04:00
Lance Pioch
3c14e1ffa4 Update edit images to match create and fix #229 2024-05-16 00:04:13 -04:00
Lance Pioch
095fff7ad6 Merge branch 'main' of github.com:pelican-dev/panel 2024-05-15 22:33:59 -04:00
notCharles
0cd03e95f4 Update database view 2024-05-15 21:21:57 -04:00
notCharles
00dda7dbe4 update composer file 2024-05-15 20:26:44 -04:00
notCharles
eee1260fcc upgrade 2024-05-15 19:58:17 -04:00
notCharles
71c91e086f Update sidebar width 2024-05-15 19:51:12 -04:00
Lance Pioch
94bbf46659 Small adjustments for now 2024-05-15 15:14:17 -04:00
Lance Pioch
558b8b2ea7 Update funding 2024-05-15 14:16:30 -04:00
Lance Pioch
4bb16887c4 Add top navigation config 2024-05-15 14:14:31 -04:00
Lance Pioch
0c72833af7 Show blank if only 0 2024-05-15 14:11:09 -04:00
Lance Pioch
ee3f8cd3ec No longer need this 2024-05-15 14:10:56 -04:00
Lance Pioch
b513366f35 Merge branch 'main' of github.com:pelican-dev/panel 2024-05-15 13:24:44 -04:00
Lance Pioch
b1d056a301 Merge pull request #232 from Poseidon281/Navigation-Sidebar
Update: Navigation sidebar
2024-05-15 13:24:25 -04:00
Poseidon281
c72d3f1338 Added topNavigation 2024-05-15 16:57:30 +02:00
Poseidon281
7e6231e6de Run Pint 2024-05-15 16:48:32 +02:00
Poseidon281
4ad837ff14 Added count badge to navigation sidebar 2024-05-15 16:45:35 +02:00
Poseidon281
d7ebde5f5f Composer update because of error 2024-05-15 16:40:48 +02:00
Boy132
6bdd1b3ccb Add api for server transfers (#153)
* add application api endpoint to start server transfer

* add basics for "cancel transfer" endpoint

* wire up wings cancel

* lint
2024-05-15 07:37:56 -07:00
Boy132
afd9f2eb0e Add api for database hosts (#159)
* add application api endpoints for database hosts

* run pint

* forgot to lint this one

* Update app/Http/Controllers/Api/Application/DatabaseHosts/DatabaseHostController.php

Co-authored-by: Devonte W <devnote.dev75@gmail.com>

* Update routes/api-application.php

Co-authored-by: Devonte W <devnote.dev75@gmail.com>

* rename all "databaseHost" to "database_host"

---------

Co-authored-by: Devonte W <devnote.dev75@gmail.com>
2024-05-15 07:37:38 -07:00
notCharles
8a617d416e Add Log Viewer
If you `ln /var/log/pelican/wings.log /var/www/pelican/storage/logs/wings.log` &  `chmod 755 /var/log/pelican/wings.log` They will show in the viewer <3
2024-05-14 22:08:26 -04:00
Charles
7f4cc64d11 Update readme.md 2024-05-14 21:19:50 -04:00
Charles
38e117e304 Update readme.md
Does an SVG work?
2024-05-14 21:16:39 -04:00
notCharles
4d272a1234 WIP: show databases on database host edit screen 2024-05-14 20:10:27 -04:00
notCharles
e9dc6cd32c Update database hosts 2024-05-14 19:30:07 -04:00
notCharles
98ba2c1b8b Update node pages 2024-05-14 19:22:14 -04:00
Charles
2d643ec79f Merge pull request #225 from Boy132/update/gb-to-gib
Update GB to GiB + minValues for resources + other stuff
2024-05-14 18:59:33 -04:00
Charles
2b4625e9b9 Merge pull request #228 from Boy132/patch-1
Add back config variable for redis client
2024-05-14 18:47:02 -04:00
Boy132
9f40ed2f84 add back config variable for redis client 2024-05-14 19:05:52 +02:00
Boy132
af797b3018 run pint 2024-05-14 11:40:01 +02:00
Boy132
e5146e0dbb add helper to cpu input 2024-05-14 11:21:58 +02:00
Boy132
586d1b413c set default overallocation to 0 2024-05-14 10:53:28 +02:00
Boy132
7d239de7f6 add min values for resources 2024-05-14 10:53:04 +02:00
Boy132
5f13c15c70 convert chart data from bytes to GiB 2024-05-14 10:50:26 +02:00
Boy132
4e3f919d8e change all GB/ MB to GiB/ MiB 2024-05-14 10:41:06 +02:00
Lance Pioch
7efa04f1ef Merge pull request #215 from Boy132/remove-brandName
Remove hardcoded brandName
2024-05-14 00:55:51 -04:00
notCharles
35ac1f863a Move save buttons to the top. 2024-05-13 19:58:01 -04:00
notCharles
68195ab0b7 Remove ports, >1024 | <65535 2024-05-13 19:57:42 -04:00
notCharles
f79dac2d13 Show associated servers on edit egg page 2024-05-13 19:39:28 -04:00
notCharles
4f176c47d2 Fix saving servers when egg variable is blank
closes https://github.com/pelican-dev/panel/issues/201
2024-05-13 19:18:04 -04:00
Charles
f7e7864dfe Merge pull request #216 from Boy132/update/storeschedulerequest
Add missing fields to StoreScheduleRequest
2024-05-13 19:14:51 -04:00
Charles
2f8a15facd Merge pull request #210 from Boy132/patch-1
Use correct variable name for mail driver
2024-05-13 19:14:27 -04:00
Charles
7bf175190b Merge pull request #206 from Boy132/update-default-drivers
Update default drivers
2024-05-13 19:14:02 -04:00
Charles
8866ca3d96 Merge pull request #207 from Boy132/rename/oom_disabled
Convert `oom_disabled` to `oom_killer`
2024-05-13 19:12:59 -04:00
Boy132
703e5480ff add missing fields to StoreScheduleRequest 2024-05-13 18:55:59 +02:00
Boy132
45a6c37594 add back env variable for APP_NAME 2024-05-13 18:24:26 +02:00
Boy132
340085cc9b remove hardcoded brandName 2024-05-13 18:23:17 +02:00
Boy132
ef9d1ab614 use env value as default for driver choice 2024-05-13 08:57:06 +02:00
Boy132
55a0bfdf7e remove "MAIL_DRIVER" from phpunit.xml 2024-05-13 08:53:14 +02:00
Boy132
d6f3934f80 use correct variable name for mail driver
closes #209
2024-05-13 08:51:12 +02:00
notCharles
f9e8adad30 Update EditServer egg variables to match CreateServer
validation is still broken on `nullable|<##>` rules
2024-05-12 22:37:40 -04:00
notCharles
08dc5753d4 Merge branch 'main' of https://github.com/pelican-dev/panel 2024-05-12 22:34:53 -04:00
notCharles
0c851ea075 Fix database host saving of password
Closes https://github.com/pelican-dev/panel/issues/203
2024-05-12 22:34:41 -04:00
kubi
cf3ea38e65 Update FUNDING.yml 2024-05-12 15:42:02 -07:00
Boy132
b813de0467 run pint 2024-05-12 22:24:37 +02:00
Boy132
399bed7576 fix typo 2024-05-12 22:21:22 +02:00
Boy132
5aa7128b9c backwards compatibility 2024-05-12 22:21:22 +02:00
Boy132
92d167eb10 add migration to db schemas 2024-05-12 22:21:22 +02:00
Boy132
f02eb5bfba rename "oom_disabled" to "oom_killer" and invert logic 2024-05-12 22:21:22 +02:00
Boy132
f348ac9f0a update example .env file 2024-05-12 22:19:30 +02:00
Boy132
893b2dca89 update drivers in setup command 2024-05-12 22:18:22 +02:00
notCharles
1f5217a9d9 Add Egg ID to page 2024-05-12 16:16:13 -04:00
notCharles
e84b47410a move some stuff 2024-05-12 14:30:35 -04:00
notCharles
76cf4391ae Add advanced node setting tab 2024-05-12 14:11:17 -04:00
notCharles
7688006574 Pint 2024-05-12 14:11:00 -04:00
notCharles
ed36041a7e Allow alias to be edited on edit server page 2024-05-12 12:44:44 -04:00
notCharles
bb52485606 Update Allocation Relationship
Allow editing of alias, and ip after allocation is created.
2024-05-12 12:35:08 -04:00
notCharles
615b70f9a2 Fix rule validation? 2024-05-12 00:55:44 -04:00
Lance Pioch
3609873c4c These are emails 2024-05-11 23:44:59 -04:00
Lance Pioch
7f6e4a18c1 Validate these 2024-05-11 23:44:12 -04:00
Lance Pioch
c5b441e54a Merge branch 'main' of github.com:pelican-dev/panel 2024-05-11 22:08:30 -04:00
Lance Pioch
30452890f5 Fix mounts 2024-05-11 22:08:23 -04:00
notCharles
af18a3704f Fix Creating Eggs 2024-05-11 22:02:57 -04:00
Lance Pioch
2c98693bd2 Replace hard coded url 2024-05-11 21:56:12 -04:00
Lance Pioch
259599b441 Merge branch 'main' of github.com:pelican-dev/panel 2024-05-11 21:50:04 -04:00
Lance Pioch
2da058be49 Force reset allocations 2024-05-11 21:50:00 -04:00
Lance Pioch
8d33e20f6c Create these one by one 2024-05-11 21:49:12 -04:00
Lance Pioch
b4e8f0586a Limit to valid ports 2024-05-11 21:48:46 -04:00
Lance Pioch
6f8f5e2746 Don’t handle livewire 2024-05-11 21:48:36 -04:00
notCharles
37cc3ae20d Oopsie Woopsie 2024-05-11 21:39:00 -04:00
Lance Pioch
9fc46b9ae5 Add default in 2024-05-11 21:01:15 -04:00
Lance Pioch
d409ff037c Fix route 2024-05-11 21:01:07 -04:00
Lance Pioch
000363cd17 Pint 2024-05-11 21:01:01 -04:00
Lance Pioch
2beb12c04f Swap over routes 2024-05-11 20:50:10 -04:00
Lance Pioch
373ede8548 Make sure transaction is finished 2024-05-11 20:19:56 -04:00
notCharles
e286100197 Fix migrations to work with SQLite without needing SQLite CLI 2024-05-11 20:09:22 -04:00
notCharles
082163389a update gitignore 2024-05-11 18:56:55 -04:00
notCharles
f9247c9318 Update Nav Bar, '/new-admin' > '/panel'
We cannot replace `/admin` as some functions still call the old admin area, Exporting Eggs
2024-05-11 18:54:47 -04:00
notCharles
5a00b8690d update name 2024-05-11 18:43:48 -04:00
notCharles
c0ca189536 Update CreateEgg to match EditEgg
Creating Eggs still broken.
2024-05-11 18:42:24 -04:00
kubi
84a3ceeae3 Update release.yaml 2024-05-11 14:44:58 -07:00
Lance Pioch
1c499d84cf Merge branch 'main' of github.com:pelican-dev/panel 2024-05-11 17:39:01 -04:00
Lance Pioch
871e93a38c Add scramble api docs 2024-05-11 17:38:44 -04:00
notCharles
1481338eb9 Fix Egg delete button logic 2024-05-11 17:21:06 -04:00
kubi
1e4fadda24 Update release.yaml (#196) 2024-05-11 12:31:15 -07:00
Lance Pioch
585fe8d1a1 Add basic widgets for now 2024-05-11 15:25:37 -04:00
Lance Pioch
f58c697d28 Add this for the future 2024-05-11 14:10:06 -04:00
Lance Pioch
b32f8966e1 Revert "Remove yarn"
This reverts commit 602c1ed9a6.
2024-05-11 00:55:35 -04:00
Lance Pioch
b18ebeefdc Merge branch 'main' of github.com:pelican-dev/panel 2024-05-10 22:20:20 -04:00
Lance Pioch
5fd7e419d9 Run pint 2024-05-10 22:20:14 -04:00
Lance Pioch
602c1ed9a6 Remove yarn 2024-05-10 22:19:51 -04:00
Lance Pioch
39bc87c2e2 Swap suspend over 2024-05-10 22:19:17 -04:00
notCharles
44cc5a8132 Sort server vars for front end 2024-05-10 21:31:32 -04:00
Lance Pioch
0c7ae26313 Fix faker 2024-05-10 20:24:01 -04:00
Lance Pioch
102955bf6a Merge branch 'main' of github.com:pelican-dev/panel 2024-05-10 19:59:57 -04:00
Lance Pioch
72eb3ce467 Generate a new key if it doesn’t exist 2024-05-10 19:59:33 -04:00
notCharles
d656f21cd9 Add view link on server listing 2024-05-10 19:33:53 -04:00
notCharles
8da5afb35e disable delete if node has servers 2024-05-10 17:57:42 -04:00
notCharles
44e9da93b6 Add variable permission to edit/create egg + export 2024-05-10 17:53:16 -04:00
notCharles
29e1bd4757 Color Export link 2024-05-10 17:01:39 -04:00
notCharles
f1493c5139 Fix creating api keys 2024-05-10 16:42:05 -04:00
notCharles
30a668c84a Fix making databases when using sqlite for panel 2024-05-10 16:26:29 -04:00
notCharles
9f4bf8777e encrypt the database hosts password 2024-05-10 16:15:10 -04:00
notCharles
dfe2e9d629 Pint & Add application features to create page 2024-05-09 19:43:46 -04:00
notCharles
607e186082 Remove author variable from cli help 2024-05-08 20:20:02 -04:00
notCharles
e60c86a87e un-break ui building wf 2024-05-08 20:17:13 -04:00
Lance Pioch
577479edaf Merge pull request #188 from QuintenQVD0/main
Some simple updates
2024-05-08 10:28:23 -04:00
Quinten
4423baa1e7 7z was already their. 2024-05-08 12:14:44 +02:00
Quinten
d967681227 Swap all docker images and add java 21 to all minecraft eggs 2024-05-08 12:05:14 +02:00
Quinten
f391edda27 Fix minecraft Eula link 2024-05-08 11:44:59 +02:00
Quinten
255030136f allow decompressing .7z files 2024-05-08 11:43:47 +02:00
Lance Pioch
f79d304586 Remove facade usage 2024-05-08 00:04:57 -04:00
Lance Pioch
60772b1775 Add new cluster 2024-05-07 23:54:53 -04:00
Lance Pioch
bf3ef435ae Update config 2024-05-07 22:17:28 -04:00
Lance Pioch
30411ccd13 Don’t need this anymore 2024-05-07 22:14:04 -04:00
Lance Pioch
bd8ca0abcf Don’t run this for the merfolk 2024-05-07 22:13:54 -04:00
Lance Pioch
6621ece3a1 Don’t ask for the author 2024-05-07 22:13:46 -04:00
Lance Pioch
8f4b68617a Use the current user as the new author 2024-05-07 22:00:40 -04:00
Lance Pioch
1b3017222e Time zone should always be UTC
Will implement display time zones on a per user basis
2024-05-07 22:00:24 -04:00
Lance Pioch
a050fbd2d3 Copy example env over for user 2024-05-07 21:52:51 -04:00
notCharles
fe3bf88ea4 Fix editing server resources 2024-05-07 21:44:44 -04:00
notCharles
94f583fef0 Pint 2024-05-07 20:55:02 -04:00
Lance Pioch
8da0017eaf Make things work
Co-authored-by: notCharles <charles@pelican.dev>
2024-05-07 20:47:58 -04:00
Lance Pioch
4e838201c6 Merge branch 'main' of github.com:pelican-dev/panel 2024-05-07 20:00:08 -04:00
Lance Pioch
111b8b3cda Add specific logic for CF 2024-05-07 20:00:02 -04:00
Lance Pioch
d0d388534b Add http status code enum 2024-05-07 19:59:52 -04:00
Lance Pioch
939b7354e4 Return basic response 2024-05-07 19:59:41 -04:00
Lance Pioch
7077693da2 Comment this for now 2024-05-07 19:59:27 -04:00
notCharles
9c047d0a45 revert new buttons on server create 2024-05-07 18:19:51 -04:00
notCharles
f13dbfa766 Remove live on toggles 2024-05-07 17:01:55 -04:00
notCharles
d4dd1349da Add defaults to create server. 2024-05-07 16:52:34 -04:00
Boy132
1db8c209fb fix schedule process command (#187) 2024-05-06 23:55:05 -07:00
Lance Pioch
852d2b7431 Merge branch 'main' of github.com:pelican-dev/panel 2024-05-07 00:11:02 -04:00
Lance Pioch
6468f85cb0 Fix #164 and bypass the casting issue
https://github.com/filamentphp/filament/issues/12116#issuecomment-2097408424
2024-05-07 00:10:46 -04:00
kubi
5c61865dfb Update cla.yaml (#185)
Try using a new personal access token
2024-05-06 21:00:43 -07:00
kubi
3feb9d2304 Update cla.yaml (#184)
Update to the latest release and remove unnecessary permission when using a remote repository.
2024-05-06 20:50:15 -07:00
notCharles
f17ac6ffac Add new resource view to create server 2024-05-06 22:05:07 -04:00
notCharles
04675a73fd Make pretty 2024-05-06 22:05:03 -04:00
notCharles
e2353af0d8 Fix editing egg-variables 2024-05-06 22:05:00 -04:00
Lance Pioch
8eaf64b5fd Merge pull request #100 from Poseidon281/Command-Translations
Translation file for commands & tiny cleanup
2024-05-06 22:04:55 -04:00
Lance Pioch
e5c5bc40d9 Remove these casts for now 2024-05-06 22:03:59 -04:00
Lance Pioch
5286f446dc Merge pull request #139 from Boy132/database/sqlite
Support SQLite
2024-05-05 15:17:08 -04:00
Lance Pioch
abbf2038a7 Fix pint issue 2024-05-05 15:14:04 -04:00
Lance Pioch
52026ca9e4 Update egg creation process 2024-05-04 18:45:26 -04:00
Lance Pioch
0b0c4bb434 Switch to select 2024-05-04 15:26:08 -04:00
Lance Pioch
22aa56d306 Rearrange these 2024-05-04 15:25:52 -04:00
Lance Pioch
3b935a1eea No need to mess with this for now 2024-05-04 15:20:51 -04:00
Lance Pioch
146421ee52 Add suggestions for egg features 2024-05-04 15:20:10 -04:00
Lance Pioch
9875942191 Rearrange these 2024-05-04 15:19:57 -04:00
Lance Pioch
3d2b18140a Hide this 2024-05-04 15:19:40 -04:00
Lance Pioch
ec0882cd14 Redo how docker images work 2024-05-04 15:05:15 -04:00
Lance Pioch
48c97ee1cc Generate name automatically for server if egg is selected 2024-05-04 13:39:57 -04:00
Lance Pioch
17787fee18 Forbid built in webserver due to unresolvable issues 2024-05-04 13:12:33 -04:00
Boy132
f2a59002bc simplify AllocationSelectionService 2024-05-02 09:58:28 +02:00
Boy132
98419bc625 update sql schemas 2024-05-02 09:58:28 +02:00
Boy132
fb596fa4f9 update IntegrationTestCase 2024-05-02 09:58:28 +02:00
Boy132
7a4289cee1 add default value for "ignored_files" in backup factory 2024-05-02 09:58:27 +02:00
Boy132
488acce564 update database settings command 2024-05-02 09:58:27 +02:00
Boy132
3f3b500a14 update ci tests 2024-05-02 09:58:27 +02:00
Boy132
29803bbaf2 change default db driver in example .env to "sqlite" 2024-05-02 09:58:27 +02:00
Boy132
e07eabc579 set default value for "tags" 2024-05-02 09:58:27 +02:00
Boy132
e82a3b838c update AllocationSelectionService 2024-05-02 09:58:27 +02:00
Boy132
9761c3762d add config for sqlite 2024-05-02 09:58:27 +02:00
Lance Pioch
1ecfcc611f Pint fixes 2024-04-30 19:49:18 -04:00
Lance Pioch
ad60b437ce Merge pull request #165 from parkervcp/issue/fix_discord_button
make discord button blurple
2024-04-30 19:48:37 -04:00
Scai
cc5208cc6b fix prettier linting issue 2024-04-30 22:59:30 +03:00
Michael (Parker) Parker
a9212d9e7d remove extra comma 2024-04-30 08:16:06 -04:00
Michael (Parker) Parker
efcf22d837 make discord button blurple
changes the discord button in the admin page to discords official 'blurple' color.
2024-04-29 22:55:53 -04:00
Lance Pioch
d4a02336aa Merge branch 'main' of github.com:pelican-dev/panel 2024-04-29 22:42:21 -04:00
Lance Pioch
386eba28e6 Allow searching by tags 2024-04-29 22:42:15 -04:00
Lance Pioch
651b887a0e Allow this to be changed 2024-04-29 22:42:04 -04:00
Lance Pioch
2982757649 Don’t need to show this 2024-04-29 22:41:58 -04:00
Lance Pioch
04a8999e0b Default this to true 2024-04-29 22:41:46 -04:00
Lance Pioch
41ee9e563c Fix saving tags 2024-04-29 22:41:39 -04:00
notCharles
16a16dc390 Add console button 2024-04-29 22:13:54 -04:00
notCharles
80155a17e5 remove add allocation btn 2024-04-29 21:42:02 -04:00
notCharles
26da0c5e74 Add server url to allocations relationship manager 2024-04-29 21:35:16 -04:00
notCharles
27059e7b99 Fix edit server docker image selection 2024-04-29 21:34:49 -04:00
notCharles
fdc51e03ac Change colors 2024-04-29 21:34:27 -04:00
Lance Pioch
549ab12048 Pint 2024-04-29 20:17:14 -04:00
Lance Pioch
fb95a3d923 Replace with relation manager 2024-04-29 20:15:59 -04:00
Lance Pioch
70da7c0f51 Add allocations to node pages 2024-04-29 20:06:34 -04:00
Lance Pioch
d7051bb7ed Add icon to tab 2024-04-29 20:06:18 -04:00
Lance Pioch
dd8f28b864 Increase cache 2024-04-29 15:02:12 -04:00
Lance Pioch
8b060e8834 Style fixes 2024-04-29 14:29:33 -04:00
Lance Pioch
7b66e1ce33 Merge branch 'main' of github.com:pelican-dev/panel 2024-04-29 14:29:10 -04:00
Lance Pioch
5d2248ab1f Implement container statuses from wings 2024-04-29 14:29:04 -04:00
Lance Pioch
7df5f12c75 Show select box for specific egg variables 2024-04-28 17:43:26 -04:00
Lance Pioch
b0dadc60f2 Make this form look nicer 2024-04-28 17:43:15 -04:00
Lance Pioch
36b7998714 Remove dd 2024-04-28 17:42:40 -04:00
notCharles
d42fc88535 Update Server Resources, remove defaults 2024-04-28 14:25:40 -04:00
Lance Pioch
4ebc67aab0 Fix updating server variables and some small cleanup 2024-04-28 12:57:56 -04:00
Lance Pioch
5bef99611b Remove unused imports 2024-04-27 23:08:49 -04:00
Lance Pioch
191f1456ee Update passed in hidden data to include actual changed server variable values 2024-04-27 23:07:21 -04:00
Lance Pioch
a839078c7d Merge branch 'main' of github.com:pelican-dev/panel 2024-04-27 22:49:36 -04:00
Lance Pioch
2d7804311d Populate these fields for server variables 2024-04-27 22:49:27 -04:00
Lance Pioch
6b0c1d136b Prevent duplicated server variables 2024-04-27 22:49:18 -04:00
notCharles
383845ca62 fix saving/editing server egg vars 2024-04-27 22:35:10 -04:00
Lance Pioch
a9b755ae2d Merge branch 'main' of github.com:pelican-dev/panel 2024-04-27 22:18:34 -04:00
Lance Pioch
6ed85cfdc6 Better icon 2024-04-27 22:18:25 -04:00
notCharles
137b6040ab Fix Backups 2024-04-27 22:08:51 -04:00
notCharles
da08b60f20 hide checkbox if servers > 0 2024-04-27 21:39:37 -04:00
iamkubi
267952d750 Merge pull request #162 from pelican-dev/backup_fix
Fix backups
2024-04-27 02:02:17 -07:00
kubi
38aea0edbe Fix backups 2024-04-27 08:52:27 +00:00
Charles
51bb60c3b1 Add emptyState 2024-04-26 06:49:11 -04:00
Lance Pioch
8f2413dc7e Add front end translations
Co-authored-by: Miniontoby <tobias.gaarenstroom@gmail.com>
2024-04-25 23:33:08 -04:00
Lance Pioch
1bdef318f0 Start adding translations to backend
Co-authored-by: Miniontoby <tobias.gaarenstroom@gmail.com>
2024-04-25 23:29:19 -04:00
Lance Pioch
2efb807f0b Merge branch 'main' of github.com:pelican-dev/panel 2024-04-25 22:44:45 -04:00
Lance Pioch
be35692125 Add basic relationship manager for allocations 2024-04-25 22:36:59 -04:00
Lance Pioch
076125485d Don’t need to specify this param 2024-04-25 22:36:36 -04:00
Lance Pioch
1800f105d7 Simplify logic greatly 2024-04-25 20:31:46 -04:00
Lance Pioch
933e693897 Put something here 2024-04-25 20:31:38 -04:00
Lance Pioch
97ff693e5c Don’t update status/state 2024-04-25 19:48:46 -04:00
Lance Pioch
7853cdc9ed Return default 2024-04-25 19:15:45 -04:00
notCharles
cba00d822c minor fixes for random stuff 2024-04-25 18:57:21 -04:00
Lance Pioch
00502f6d4d Allow suspension of servers 2024-04-25 17:45:49 -04:00
Lance Pioch
7ffd7019a2 Always default this 2024-04-25 17:35:35 -04:00
Lance Pioch
ea146f4715 Resource changes 2024-04-25 17:35:27 -04:00
notCharles
85b250d016 Fix deleting servers 2024-04-23 20:33:54 -04:00
notCharles
7bbbba37f5 Add force delete for servers 2024-04-23 20:03:57 -04:00
notCharles
07244c38eb refactor resources 2024-04-23 19:45:11 -04:00
notCharles
50f9dde280 Render egg variables by sort 2024-04-23 17:57:20 -04:00
notCharles
76a3197022 Remove un-needed code 2024-04-23 17:55:43 -04:00
Charles
f26628a546 remove unused imports / options 2024-04-23 06:40:12 -04:00
Charles
ceb365b95c Split create/edit server pages 2024-04-23 06:28:23 -04:00
notCharles
b0a2bae0b5 Don't need to display the mount id 2024-04-22 19:04:39 -04:00
notCharles
426b82754d remove search bar 2024-04-22 18:48:09 -04:00
notCharles
2f82229048 Fix Container/Server Status + Mobile Styling 2024-04-22 18:03:34 -04:00
notCharles
65bfda1034 Add Server list to node page 2024-04-22 17:47:16 -04:00
notCharles
2328f07473 fix egg variables on server edit page 2024-04-22 17:02:47 -04:00
Scai
ad2e48cfc1 Merge pull request #138 from Boy132/update/webpack
Update Webpack & change to node LTS version for Dockerfile
2024-04-22 19:37:43 +03:00
Boy132
cca5e4a4c0 add php 8.3 to composer.json 2024-04-22 09:10:01 +02:00
Boy132
17ec5c7acf use node lts version for dockerfile 2024-04-22 08:58:05 +02:00
Boy132
4708105104 set min node version to 18 2024-04-22 08:57:08 +02:00
Boy132
19d2066a1a update webpack to 4.47.0 2024-04-22 08:55:49 +02:00
Lance Pioch
ae3a355a99 Create security.md 2024-04-21 21:32:42 -04:00
Lance Pioch
1996ffe724 Update license 2024-04-21 21:25:13 -04:00
Lance Pioch
edf9bc6f4d Merge pull request #137 from pelican-dev/feature/72
Allow Egg Variables to be orderable/sortable
2024-04-21 21:21:35 -04:00
notCharles
c31eafaf4f Pint 2024-04-21 21:16:05 -04:00
notCharles
1a884c0cdf Save sort order 2024-04-21 21:11:18 -04:00
notCharles
e343de00c0 Merge branch 'feature/72' of https://github.com/pelican-dev/panel into feature/72 2024-04-21 21:09:36 -04:00
Lance Pioch
0f360fcdd1 Merge branch 'main' into feature/72
# Conflicts:
#	app/Filament/Resources/EggResource.php
2024-04-21 21:08:57 -04:00
Lance Pioch
a9a18464dd Wip 2024-04-21 21:06:21 -04:00
Lance Pioch
e47beb59d2 Merge branch 'main' of github.com:pelican-dev/panel 2024-04-21 20:53:22 -04:00
Lance Pioch
d4ff502e08 Make error message more helpful 2024-04-21 20:52:24 -04:00
Lance Pioch
8c9c2c080a Fix creating egg variables 2024-04-21 20:52:18 -04:00
Lance Pioch
aaf7429298 New Crowdin updates (#125) 2024-04-21 17:33:35 -04:00
notCharles
329268697b Merge branch 'main' into feature/72 2024-04-21 16:22:48 -04:00
Lance Pioch
0b950832c2 Merge branch 'main' of github.com:pelican-dev/panel 2024-04-21 16:18:37 -04:00
Lance Pioch
788056d55d Small updates 2024-04-21 16:18:13 -04:00
Lance Pioch
dfaff50ca1 Fix egg variable saving 2024-04-21 15:57:15 -04:00
notCharles
145568237c Rename columns 2024-04-21 15:50:46 -04:00
notCharles
9baaff53cd Update node allocation page 2024-04-21 15:27:05 -04:00
Lance Pioch
3ad622dd69 Add new completed language 2024-04-21 15:16:03 -04:00
Lance Pioch
906a1d7f3e Merge pull request #66 from pelican-dev/issue/fix-3
Change columns
2024-04-21 14:21:16 -04:00
Lance Pioch
ba7a5d5126 Be explicit about this being a string 2024-04-21 14:17:32 -04:00
notCharles
693c65995d Merge branch 'issue/fix-3' of https://github.com/pelican-dev/panel into issue/fix-3 2024-04-21 14:09:35 -04:00
notCharles
85f7bf30b9 fix daemon_base 2024-04-21 14:08:40 -04:00
notCharles
53ad87a349 update egg configuration tab 2024-04-21 13:30:55 -04:00
Scai
7a034c1abf Merge pull request #103 from Boy132/update/dockerfile 2024-04-21 17:33:17 +03:00
notCharles
eeee5779ba Merge branch 'main' into feature/72 2024-04-21 10:14:21 -04:00
Charles
6ff9568760 Merge pull request #115 from pelican-dev/feature/mult-egg-upload
Allow importing of multiple eggs at once
2024-04-21 10:06:21 -04:00
notCharles
7de4cf1417 Allow desc to be null
Desc's are allowed to be null as they're not a required field.
2024-04-21 10:04:16 -04:00
notCharles
db67c64da0 We already know we're importing eggs... 2024-04-21 09:52:08 -04:00
Charles
8476f89f19 Merge branch 'main' into feature/mult-egg-upload 2024-04-21 09:47:46 -04:00
Boy132
01f89d7855 add nodejs 21 to build workflow 2024-04-21 15:14:57 +02:00
Boy132
fa46f78fd5 update dockerfile to php 8.3
add php intl extension
change to official nodejs image and to nodejs 21
2024-04-21 15:14:57 +02:00
Lance Pioch
3e239f9caa Fix tabs 2024-04-21 01:00:48 -04:00
Lance Pioch
204734914d Rename to normal 2024-04-20 22:55:21 -04:00
Lance Pioch
67edf4f472 Adding and deleting api keys 2024-04-20 21:01:41 -04:00
Lance Pioch
7693106a44 Order in reverse chronological order 2024-04-20 20:22:40 -04:00
Lance Pioch
d8f5e1506c Persist this for now 2024-04-20 20:22:17 -04:00
Lance Pioch
330b3bb496 Update languages 2024-04-20 20:21:45 -04:00
notCharles
ac3a36e489 Updates 2024-04-20 18:08:05 -04:00
notCharles
22c03c8075 add sort column 2024-04-20 17:57:14 -04:00
Lance Pioch
bc972da982 Merge branch 'main' of github.com:pelican-dev/panel 2024-04-19 22:33:01 -04:00
Lance Pioch
d9738949c1 Some progress 2024-04-19 22:32:57 -04:00
Lance Pioch
1c0e91a301 Show missing if we can’t connect 2024-04-19 22:32:52 -04:00
Lance Pioch
3db6593b0e Cast the enum to a string 2024-04-19 22:32:30 -04:00
Lance Pioch
2bb1caf308 Better color 2024-04-19 22:32:20 -04:00
Lance Pioch
807a6f02fd New Crowdin updates (#110) 2024-04-19 22:31:46 -04:00
Lance Pioch
367b9bd154 Fix this up 2024-04-19 21:59:11 -04:00
Lance Pioch
d30accbc71 Switch this back to datalist 2024-04-19 21:58:45 -04:00
Lance Pioch
716d298b75 Styling fixes 2024-04-19 18:08:17 -04:00
Charles
05c4610654 Allow uploading multiple eggs
I'm sure there is a cleaner way to do it, but this works :)

Also ran pint...
2024-04-19 12:59:29 -04:00
Charles
82c294ab63 Make allocations mobile friendly 2024-04-19 10:18:51 -04:00
Lance Pioch
ee142a26b0 Small refactor 2024-04-19 01:33:14 -04:00
Lance Pioch
dea310e9ab Do some fancy ports 2024-04-19 01:33:06 -04:00
Lance Pioch
daf2cb0ebc Specify split keys 2024-04-19 00:36:22 -04:00
Lance Pioch
2812129d00 Pull ip addresses into selector 2024-04-19 00:36:02 -04:00
Lance Pioch
89b6f70cde Merge pull request #108 from NeonSpectrum/fix/daemon-http-params
Fix missed adjustments on http parameters
2024-04-19 00:34:11 -04:00
Lance Pioch
ad372a754e Update app/Repositories/Daemon/DaemonFileRepository.php 2024-04-19 00:33:42 -04:00
NeonSpectrum
c0b1345e90 Remove withQueryParameters on get request 2024-04-19 11:37:02 +08:00
NeonSpectrum
11e6430d42 Fix missed adjustments on http parameters 2024-04-19 11:29:35 +08:00
Lance Pioch
1e10f250b4 Merge branch 'main' of github.com:pelican-dev/panel 2024-04-18 23:15:18 -04:00
Lance Pioch
4b23703f99 Cache the statuses for a bit 2024-04-18 23:07:15 -04:00
Lance Pioch
bab4315bb7 Don’t allow eggs to be selected for deletion 2024-04-18 23:06:57 -04:00
Lance Pioch
c4839708ce New Crowdin updates (#106) 2024-04-18 22:13:30 -04:00
Lance Pioch
fa379be99b Single quotes 2024-04-18 21:56:19 -04:00
iamkubi
12eee6f6a2 Merge pull request #107 from Boy132/fix/tests
Fix tests
2024-04-18 15:37:29 -07:00
Boy132
50240933a0 fix "uuid must be a string" 2024-04-18 23:58:55 +02:00
Lance Pioch
69b70bf649 Merge branch 'master' into issue/fix-3 2024-04-18 17:20:23 -04:00
notCharles
3e01e483fb Allow variables to be sorted
todo: save order in db in a new column 'sort'
2024-04-18 17:13:17 -04:00
Lance Pioch
ae189748f1 Fix styling 2024-04-18 17:08:10 -04:00
Lance Pioch
679c72d70e Merge branch '3.x'
# Conflicts:
#	composer.lock
#	resources/scripts/components/auth/LoginFormContainer.tsx
2024-04-18 16:50:39 -04:00
Lance Pioch
49e02a2574 Merge branch 'feature/filament' of github.com:pelican-dev/panel into feature/filament 2024-04-18 16:46:18 -04:00
Lance Pioch
ee735c9b77 Add skeleton for adding new allocations 2024-04-18 16:46:08 -04:00
Lance Pioch
e25ca5dfc1 Add separated repositories for eggs 2024-04-18 16:21:40 -04:00
Lance Pioch
422fc1a6b2 Add github for funding 2024-04-18 16:21:22 -04:00
Lance Pioch
0949362da5 Merge pull request #89 from pelican-dev/issue/fix-mobile
Improve Mobile Experience
2024-04-18 16:14:27 -04:00
Lance Pioch
65f59c446e Merge branch 'feature/filament' of github.com:pelican-dev/panel into feature/filament
# Conflicts:
#	composer.lock
2024-04-18 04:02:42 -04:00
Lance Pioch
556ab76fc5 Basic server status implementation 2024-04-18 03:53:28 -04:00
Lance Pioch
4c5072b5c0 When editing set the custom image selector correctly 2024-04-18 03:52:55 -04:00
Lance Pioch
25177d1685 Wip 2fa 2024-04-18 03:51:25 -04:00
Lance Pioch
5469dce6ca Remove unused variables 2024-04-18 03:50:45 -04:00
Lance Pioch
d659bf4349 Allow primary allocation to be changed 2024-04-18 03:50:33 -04:00
Lance Pioch
c5008a43e7 Use new enum 2024-04-18 03:50:20 -04:00
Lance Pioch
256a961e1b Add enums 2024-04-18 03:48:30 -04:00
iamkubi
03574ce4b3 Delete migrated CLA signatures 2024-04-17 22:57:14 -07:00
iamkubi
56dbac6f81 Fix CLA workflow missing access token 2024-04-17 22:49:15 -07:00
iamkubi
8801d1db59 Update cla.yaml 2024-04-17 20:19:47 -07:00
iamkubi
dd913008c1 Update CLA workflow
Store signatures in a separate repo
2024-04-17 20:15:07 -07:00
github-actions[bot]
f6d068be2c @Poseidon281 has signed the CLA in pelican-dev/panel#94 2024-04-17 14:11:17 +00:00
Lance Pioch
d642987df4 Better phrasing 2024-04-17 01:32:47 -04:00
Lance Pioch
7d0fc80a80 Switch to components 2024-04-17 01:30:05 -04:00
Lance Pioch
fa0bc96611 Merge pull request #88 from pelican-dev/feature/code-editor
Add Monaco
2024-04-17 01:28:56 -04:00
Lance Pioch
c492fa285f Update languages 2024-04-17 00:23:35 -04:00
notCharles
11494bbad6 Should enable this, so it ya know.. works <3 2024-04-16 20:56:47 -04:00
notCharles
c83cc073f0 Major Mobile Improvements <3 2024-04-16 18:47:12 -04:00
notCharles
b7c0829af9 Add Monaco
Known issues...
Changing themes does not reload editor, F5 required.
Editing a variable/docker images clears code box render, not sure how to fix this? reload on view?
2024-04-15 19:00:49 -04:00
github-actions[bot]
5c450900fd @MikkelHebel has signed the CLA in pelican-dev/panel#86 2024-04-15 13:42:46 +00:00
Lance Pioch
e899acbdbe Add docker container status enum 2024-04-15 02:15:06 -04:00
Lance Pioch
1f95430507 Update Laravel to latest version 2024-04-15 02:14:54 -04:00
Lance Pioch
b70ab0e6cc Adjust these 2024-04-15 01:39:59 -04:00
Lance Pioch
8ec4dc1b6e Cool status bars 2024-04-15 01:34:27 -04:00
Lance Pioch
9b9875a31b Whoops 2024-04-15 01:34:17 -04:00
Lance Pioch
56e2cac85f Always just start automatically for now 2024-04-15 01:34:07 -04:00
Lance Pioch
65359f87d0 Nobody needs to see my mistakes 2024-04-15 01:15:09 -04:00
Lance Pioch
058371ba7d Merge branch 'feature/filament' of github.com:pelican-dev/panel into feature/filament
# Conflicts:
#	app/Filament/Resources/ServerResource.php
2024-04-14 22:24:30 -04:00
Lance Pioch
2743698e2c Fix these again 2024-04-14 21:23:41 -04:00
notCharles
dc8d7aa3da Fix mariadb? 2024-04-14 20:53:50 -04:00
Scai
e1c6545507 styled database hosts layout 2024-04-15 01:55:44 +03:00
Scai
5c8097d9b7 cleanup server boilerplate 2024-04-15 01:34:55 +03:00
notCharles
6118ed91fa oops, readd this 2024-04-14 15:23:15 -04:00
notCharles
0814b82b7e pint 2024-04-14 15:23:03 -04:00
Lance Pioch
0195e36ccf Update Crowdin configuration file 2024-04-14 13:54:15 -04:00
Lance Pioch
867777f2e4 Update Crowdin configuration file 2024-04-14 13:18:59 -04:00
Lance Pioch
288d3a2cff Nobody look 2024-04-14 02:48:21 -04:00
Lance Pioch
e2399eb4e2 Hide this again 2024-04-14 02:41:56 -04:00
Lance Pioch
bfe8fc66ce Merge branch 'feature/filament' of github.com:pelican-dev/panel into feature/filament
# Conflicts:
#	app/Filament/Resources/ServerResource.php
2024-04-14 02:38:50 -04:00
Lance Pioch
dd1b25604a Do the additional allocations 2024-04-14 02:36:32 -04:00
Lance Pioch
b488253c76 Unused 2024-04-14 02:31:30 -04:00
Lance Pioch
56f96348f4 Allow disabling block io balancing 2024-04-14 02:31:19 -04:00
Lance Pioch
18cbaf7458 Add deletion button 2024-04-14 02:31:06 -04:00
Lance Pioch
9add408b6b Filter out null entries 2024-04-14 02:30:57 -04:00
github-actions[bot]
e96dd13170 @notAreYouScared has signed the CLA in pelican-dev/panel#66 2024-04-14 01:59:18 +00:00
notCharles
54eaf8ab0f Change colums
Closes https://github.com/pelican-dev/panel/issues/3
2024-04-13 21:51:22 -04:00
iamkubi
7860710cca Merge pull request #65 from pelican-dev/iamkubi-license-update
Update license
2024-04-13 16:33:25 -07:00
iamkubi
67fa753e7b Update license 2024-04-13 16:30:02 -07:00
Scai
32a3b8dd9b add servers relationship to users 2024-04-14 01:50:43 +03:00
github-actions[bot]
3b0c5540a7 @iamkubi has signed the CLA in pelican-dev/panel#64 2024-04-13 21:40:08 +00:00
github-actions[bot]
3e940e8c48 Creating file for storing CLA Signatures 2024-04-13 21:39:29 +00:00
iamkubi
b39e1c6f78 Add CLA and workflow for CLA bot 2024-04-13 14:31:16 -07:00
Lance Pioch
06c773c3b1 Prevent deleting nodes if there are active servers 2024-04-13 16:49:53 -04:00
Lance Pioch
18e5c17ebe Add languages to profile edit 2024-04-13 16:21:44 -04:00
Lance Pioch
287c657e60 Merge branch 'feature/filament' of github.com:pelican-dev/panel into feature/filament
# Conflicts:
#	app/Filament/Resources/ServerResource.php
#	app/Filament/Resources/ServerResource/Pages/CreateServer.php
2024-04-13 15:55:29 -04:00
Lance Pioch
f69d0823f4 Small updates 2024-04-13 15:52:54 -04:00
Scai
f26373dfd5 linting 2024-04-13 16:30:20 +03:00
Scai
c54217f236 Merge pull request #56 from pelican-dev/feature/mounts
Mounts: Relationships for Eggs & Nodes
2024-04-13 16:25:31 +03:00
Scai
25c1b251a3 added eggs, nodes relationship, structured the layout 2024-04-13 16:23:05 +03:00
Scai
9fafe2f42c remove timestamp columns 2024-04-13 14:52:22 +03:00
Lance Pioch
f25bd33f06 Add data lists 2024-04-12 14:59:54 -04:00
Scai
de02e8853d add mounts icons columns 2024-04-12 20:36:30 +03:00
Scai
4c09905503 fix error on no node created 2024-04-12 20:15:57 +03:00
Lance Pioch
a9a39ae502 Set defaults 2024-04-12 13:05:12 -04:00
Lance Pioch
99693367d3 Simplify and restrict api keys 2024-04-12 13:05:04 -04:00
Lance Pioch
05e9f12dc4 Switch default path 2024-04-12 12:52:00 -04:00
Lance Pioch
0b1712f653 Merge branch 'feature/filament' of github.com:pelican-dev/panel into feature/filament 2024-04-12 12:19:25 -04:00
Lance Pioch
8575f1b036 More icons and a couple tweaks 2024-04-12 12:18:41 -04:00
Scai
4c2278a7f2 fix route missing on database hosts 2024-04-12 19:09:01 +03:00
Scai
af4d1d1fee lower the size of logo on login 2024-04-12 18:19:39 +03:00
Scai
d52cb4c7d7 round the avatar 2024-04-12 18:01:24 +03:00
Lance Pioch
65acb3fd94 Add more icons 2024-04-12 02:31:31 -04:00
Lance Pioch
ecf54a3025 Double down on this to fix validation 2024-04-12 02:31:25 -04:00
Lance Pioch
180bfc30a8 Add server name generator 2024-04-12 02:29:39 -04:00
Lance Pioch
cbc255ddf8 Add server variables 2024-04-12 02:04:22 -04:00
Lance Pioch
15971aaa94 Auto expand the startup command 2024-04-12 02:04:03 -04:00
Lance Pioch
695ebd35a4 No another create 2024-04-12 02:03:36 -04:00
Lance Pioch
21247e91c7 Do the icons 2024-04-12 02:03:20 -04:00
Lance Pioch
d30471ae6a Fix this around 2024-04-11 21:03:06 -04:00
Lance Pioch
7c575205d3 logo and favicon changes
# Conflicts:
#	resources/scripts/components/auth/LoginFormContainer.tsx
#	resources/scripts/components/elements/PageContentBlock.tsx
#	resources/views/layouts/admin.blade.php
2024-04-11 21:01:03 -04:00
Lance Pioch
03292bb02d logo and favicon changes 2024-04-11 20:59:35 -04:00
Lance Pioch
297e292e06 Switch favicon 2024-04-11 20:59:00 -04:00
Lance Pioch
01f63f7122 Don’t bother running this locally, it’s not meant to 2024-04-11 20:34:57 -04:00
Lance Pioch
0a6c43ba4f Merge branch '3.x' of github.com:pelican-dev/panel into 3.x 2024-04-11 20:19:08 -04:00
Lance Pioch
ef1bd0098b Remove hard requirement on posix 2024-04-11 20:18:57 -04:00
Lance Pioch
f32aa8609d Add toggle for custom image 2024-04-11 11:41:29 -04:00
Lance Pioch
f8550334dd Helper text for creating new allocations 2024-04-11 11:41:03 -04:00
Lance Pioch
da1bf320dd Auto select latest node 2024-04-11 11:31:51 -04:00
Lance Pioch
27f05b5f95 Expand text area to make it look nicer 2024-04-11 11:31:38 -04:00
Lance Pioch
203289fd38 This isn’t required 2024-04-11 11:31:25 -04:00
Lance Pioch
f9b93f284c Servers 2024-04-11 03:11:51 -04:00
Lance Pioch
24f9a8aeb1 Use default 2024-04-11 03:11:27 -04:00
Lance Pioch
c6eb6dc054 Return all allocation ids back 2024-04-11 03:11:19 -04:00
Lance Pioch
a16ef9743b Add missing relationship 2024-04-11 03:09:19 -04:00
Lance Pioch
6c8816c289 Liven this up 2024-04-11 03:08:56 -04:00
Lance Pioch
d4f325e6c5 Force usage of global search 2024-04-11 00:55:30 -04:00
Lance Pioch
93ec3bdfc4 Rename 2024-04-11 00:51:36 -04:00
Lance Pioch
a4fb9eea40 Get docker images working 2024-04-11 00:45:58 -04:00
Lance Pioch
f201a5eaf6 Easier to understand 2024-04-11 00:45:33 -04:00
Lance Pioch
6689e796a7 Better description 2024-04-11 00:45:26 -04:00
Lance Pioch
b2e5b4862d Add nice new intro page 2024-04-11 00:45:20 -04:00
Lance Pioch
546dc5c449 Fix from demo 2024-04-11 00:45:12 -04:00
Lance Pioch
cbca669e10 Merge pull request #7 from Huguitis/3.x
Add Spanish Translations
2024-04-10 20:31:05 -04:00
Huguitis
2d93c90060 messages.php correction. 2024-04-10 23:27:36 +02:00
Huguitis
3e90484125 passwords.php correction. 2024-04-10 23:26:23 +02:00
Lance Pioch
f3085afcbc Styling 2024-04-10 17:10:51 -04:00
Lance Pioch
f660611ed3 Add skeleton new page 2024-04-10 17:10:25 -04:00
Lance Pioch
89a507de69 Better email 2024-04-10 17:10:13 -04:00
Lance Pioch
3cc29ba7b6 Small adjustments 2024-04-10 16:11:27 -04:00
Lance Pioch
1660af94a5 New revolution 2024-04-09 21:07:14 -04:00
Lance Pioch
c51687246e Better icon 2024-04-09 21:02:02 -04:00
Lance Pioch
bc72d6103c We are stars 2024-04-09 21:01:57 -04:00
Lance Pioch
cf44e46490 Rename to owner 2024-04-09 21:01:51 -04:00
Lance Pioch
8311669e6c Show valid ip address 2024-04-09 21:01:46 -04:00
Lance Pioch
195557373c Clarify the resource name 2024-04-09 21:01:30 -04:00
Lance Pioch
f6eede37aa Populate tags for nodes 2024-04-09 20:08:55 -04:00
Lance Pioch
8ce84239e1 Populate new tags 2024-04-09 19:24:04 -04:00
Lance Pioch
e7055242e1 More small adjustments 2024-04-09 18:45:51 -04:00
Lance Pioch
6020b8d6a8 Small adjustments 2024-04-09 18:45:43 -04:00
Lance Pioch
7c14a2edff Remove the top bar 2024-04-09 18:45:31 -04:00
Lance Pioch
6307919546 Add database hosts 2024-04-09 18:45:01 -04:00
Lance Pioch
2dd53eee27 Clean up 2024-04-08 01:20:07 -04:00
Lance Pioch
4e0aaedc86 Add api keys 2024-04-08 00:59:55 -04:00
Lance Pioch
970d2b0f0f Add better profile page 2024-04-08 00:33:00 -04:00
Lance Pioch
b1cc4ef45c Squish them 2024-04-08 00:10:19 -04:00
Lance Pioch
17c20d6b91 Shorten nav sidebar 2024-04-07 20:13:39 -04:00
Lance Pioch
d05332662b Add some of these 2024-04-07 01:35:30 -04:00
Lance Pioch
42728fd9b9 Small tweaks 2024-04-07 01:35:20 -04:00
Lance Pioch
732db9a5b4 User resource adjustments 2024-04-06 23:58:10 -04:00
Lance Pioch
a19c8e72b3 Fix password saving 2024-04-06 22:56:57 -04:00
Lance Pioch
2e3d17b94a Redis is no longer the default 2024-04-06 10:17:17 -04:00
Lance Pioch
b0067c4e4b Top right user menu 2024-04-06 10:11:10 -04:00
Lance Pioch
a133503256 Simplify 2024-04-04 21:45:57 -04:00
Lance Pioch
3465d2fc64 Revert "Not used"
This reverts commit 1728cbf28b.
2024-04-04 21:45:21 -04:00
Lance Pioch
05ae2b2ecf Add home url 2024-04-04 21:43:31 -04:00
Lance Pioch
e00d9ed273 Add some allocations 2024-04-04 21:43:18 -04:00
Lance Pioch
bf8f90f479 More specific 2024-04-04 21:26:18 -04:00
Lance Pioch
978a4ac0a2 Adjust the mounts 2024-04-04 21:26:10 -04:00
Lance Pioch
aac522232f Update database form 2024-04-04 21:25:59 -04:00
Lance Pioch
95570724e6 Use tabs instead 2024-04-04 20:16:14 -04:00
Lance Pioch
a96c53f407 Make this hidden by default 2024-04-04 20:15:56 -04:00
Lance Pioch
f79ec37f5e Move this over 2024-04-04 20:15:41 -04:00
Lance Pioch
5d38f2ece6 Adjustments 2024-04-04 18:59:42 -04:00
Lance Pioch
cf13bfb1e4 Add dns checking field 2024-04-04 18:59:34 -04:00
Lance Pioch
051b5d6bea Move this up 2024-04-04 18:59:12 -04:00
Lance Pioch
a8532d1cd2 Fix colspan 2024-04-04 18:58:40 -04:00
Lance Pioch
a7d8f3b79f Better account for ip addresses 2024-04-04 18:58:19 -04:00
Lance Pioch
e634dd81b1 Take these out 2024-04-04 18:58:01 -04:00
Huguitis
2849f8a36a Create user.php (Spanish) 2024-04-03 22:38:00 +02:00
Huguitis
1dcb08ccc0 Create server.php (Spanish) 2024-04-03 22:37:30 +02:00
Huguitis
c07f015ccd Create node.php (Spanish) 2024-04-03 22:36:49 +02:00
Huguitis
0213e7dfec Create eggs.php (Spanish) 2024-04-03 22:36:07 +02:00
Huguitis
5d4713e0de Create messages.php (Spanish) 2024-04-03 22:34:27 +02:00
Huguitis
c328f5cd9b Create account.php (Spanish) 2024-04-03 22:33:19 +02:00
Huguitis
43a250ac31 Create index.php (Spanish) 2024-04-03 22:32:32 +02:00
Huguitis
4c4ec54981 Create users.php (Spanish) 2024-04-03 22:31:29 +02:00
Huguitis
20875d8d3f Create activity.php (Spanish) 2024-04-03 22:30:21 +02:00
Huguitis
9120e81514 Create auth.php (Spanish) 2024-04-03 22:28:25 +02:00
Huguitis
2225d50b9a Create exceptions.php (Spanish) 2024-04-03 22:27:34 +02:00
Huguitis
f805219ddc Create pagination.php (Spanish) 2024-04-03 22:25:37 +02:00
Huguitis
79e8842228 Create passwords.php (Spanish) 2024-04-03 22:24:58 +02:00
Huguitis
9b29ba8e30 Create strings.php (Spanish) 2024-04-03 22:24:15 +02:00
Huguitis
a61c07a04c Create validation.php (Spanish) 2024-04-03 22:21:25 +02:00
Lance Pioch
c6f4ee3d57 Increase this slightly 2024-04-01 12:33:22 -04:00
Lance Pioch
f47b420785 Better display of tablular data 2024-04-01 12:33:16 -04:00
Lance Pioch
1add3ca605 Allow this to be swappable from here in the future 2024-03-31 02:20:23 -04:00
Lance Pioch
2b172e6d8b User adjustments 2024-03-31 02:09:23 -04:00
Lance Pioch
1728cbf28b Not used 2024-03-31 01:57:59 -04:00
Lance Pioch
766c6c08f4 Easy to copy and paste 2024-03-31 01:39:24 -04:00
Lance Pioch
400e4d783b Redirect them directly to the config 2024-03-31 01:07:03 -04:00
Lance Pioch
a8b3e2bfa4 Just prevent the user altogether 2024-03-31 01:06:49 -04:00
Lance Pioch
57649d1c08 Show warning to user 2024-03-31 00:14:48 -04:00
Lance Pioch
dc794c64ce This is supposed to be sent, but isn’t because it’s disabled, even though it’s dehydrated 2024-03-31 00:14:15 -04:00
Lance Pioch
eda3959748 Too slow for now 2024-03-31 00:13:17 -04:00
Lance Pioch
f5a0a0f8ba Better helper text 2024-03-31 00:12:25 -04:00
Lance Pioch
6e4f3f7191 Set better default 2024-03-31 00:11:56 -04:00
Lance Pioch
e276a07f1b Hide this for now 2024-03-30 20:32:48 -04:00
Lance Pioch
db9b3e9b67 Set the name to the first part of the domain 2024-03-30 20:32:20 -04:00
Lance Pioch
d32d0692f8 Icons 2024-03-30 20:31:36 -04:00
Lance Pioch
ebdca47fbc Go nuts with icons 2024-03-30 02:30:29 -04:00
Lance Pioch
957a335817 Prevent root from getting rid of last root 2024-03-30 02:29:57 -04:00
Lance Pioch
71a27862bd This isn’t used 2024-03-30 02:16:02 -04:00
Lance Pioch
a2b03895d7 Switch icon set 2024-03-30 02:15:56 -04:00
Lance Pioch
a93ebfd7bf Add licensing 2024-03-29 00:58:13 -04:00
Lance Pioch
3c43f3aa18 Don’t need this anymore 2024-03-28 17:01:09 -04:00
Lance Pioch
eb5c304f69 Remove these mount usages 2024-03-28 13:29:24 -04:00
Lance Pioch
0925e141b4 These don’t work 2024-03-28 13:27:14 -04:00
Lance Pioch
ad8d087fd9 Lazy load statuses 2024-03-27 00:07:21 -04:00
Lance Pioch
e50e3509bd More adjustments 2024-03-26 22:36:32 -04:00
Lance Pioch
090b2e6f1b Move this over for the import 2024-03-26 22:34:42 -04:00
Lance Pioch
0af0bea90d Update views 2024-03-26 22:00:39 -04:00
Lance Pioch
f452280cdb Favicon adjustments 2024-03-26 21:59:45 -04:00
Lance Pioch
8c892ac05d Adjustments 2024-03-26 20:52:56 -04:00
Lance Pioch
65384250d6 Add attribute 2024-03-26 20:52:32 -04:00
Lance Pioch
3e7bff2446 Consolidate these 2024-03-25 10:26:57 -04:00
Lance Pioch
06f66027dd Whoops, add this in real quick before anybody notices! 2024-03-24 14:43:25 -04:00
Lance Pioch
b6d39c66d1 Allow adjusting timeout 2024-03-24 14:42:54 -04:00
Lance Pioch
03e1733b7d Update users 2024-03-24 14:42:45 -04:00
Lance Pioch
039ac40cf7 Update nodes 2024-03-24 14:42:36 -04:00
Lance Pioch
039c669fc7 Customize the domain 2024-03-24 01:48:21 -04:00
Lance Pioch
2664ba0774 Baseline 2024-03-24 01:48:03 -04:00
Lance Pioch
90efb4e827 Simplify the parsing 2024-03-24 01:47:30 -04:00
Lance Pioch
946d597a13 Switch route key over 2024-03-24 01:37:24 -04:00
Lance Pioch
0961d6314c Eggs should not be manually created 2024-03-24 01:36:32 -04:00
Lance Pioch
0ef015bb0e Allow admins to access filament 2024-03-23 20:17:48 -04:00
Lance Pioch
36ca708850 Add filament provider 2024-03-23 20:17:33 -04:00
Lance Pioch
1c539ff50c Add filament css and js 2024-03-23 20:17:21 -04:00
Lance Pioch
49d0865010 Add filament dependencies 2024-03-23 20:17:14 -04:00
Lance Pioch
0bfcf000f1 Rewrite this 2024-03-23 17:47:18 -04:00
Lance Pioch
d5783811c8 Switch to link to discussions 2024-03-23 17:28:22 -04:00
Lance Pioch
e1eb79e4e5 Simplify using helper 2024-03-23 17:25:10 -04:00
Lance Pioch
b39f843d0f Update funding for now 2024-03-23 17:17:15 -04:00
Lance Pioch
1b4566d123 Latest squash 2024-03-23 16:51:13 -04:00
Lance Pioch
e8bf5dbfcc Squash the migrations 2024-03-23 16:49:20 -04:00
Lance Pioch
bbe3361607 Bump php version 2024-03-23 16:37:33 -04:00
Lance Pioch
96c30b6a34 This option is deprecated 2024-03-23 16:34:10 -04:00
Lance Pioch
7e0e0908de Bump php versions 2024-03-23 16:34:02 -04:00
Lance Pioch
21465a0d93 Clean up 2024-03-23 16:26:56 -04:00
Lance Pioch
9560e18798 Easier to read 2024-03-23 16:26:43 -04:00
Lance Pioch
358ac96ac1 Swap http client out 2024-03-23 16:10:47 -04:00
Lance Pioch
1ffc65897b Daemon grammar 2024-03-23 12:43:41 -04:00
Lance Pioch
b8b4750f46 Simplify locales 2024-03-23 12:43:01 -04:00
Lance Pioch
08d98581aa Migrate config 2024-03-23 12:32:10 -04:00
Lance Pioch
675c289780 Set content type 2024-03-23 12:31:31 -04:00
Lance Pioch
f795b38db5 Better way 2024-03-23 11:27:26 -04:00
Lance Pioch
e3947e4b50 Only check first token 2024-03-23 11:20:15 -04:00
Lance Pioch
146965fcba We don’t need this anymore 2024-03-23 11:07:00 -04:00
Lance Pioch
cea1a3eccc Discord link 2024-03-23 11:03:59 -04:00
Lance Pioch
a507434422 Don’t need these anymore 2024-03-23 10:58:21 -04:00
Lance Pioch
41f35d6956 Official discord link 2024-03-23 10:40:09 -04:00
Lance Pioch
227ce5ec89 These are no longer needed 2024-03-23 10:39:41 -04:00
Lance Pioch
18ad46fe16 Use php locale instead 2024-03-23 10:39:19 -04:00
Lance Pioch
62d56099d7 Add default name 2024-03-23 08:21:57 -04:00
Lance Pioch
119ef075da Small static analysis adjustments 2024-03-23 08:14:06 -04:00
Lance Pioch
f7bc9f005f Styling fixes 2024-03-23 08:10:28 -04:00
Lance Pioch
49de8fae3e Shouldn’t be testing controllers in this case… 2024-03-23 08:07:54 -04:00
Lance Pioch
ae0882740a Better this 2024-03-23 08:07:35 -04:00
Lance Pioch
7e5d21a889 Do all exceptions here 2024-03-23 08:07:21 -04:00
Lance Pioch
796a236ef4 Use new context to log the request id 2024-03-23 08:07:00 -04:00
Lance Pioch
03b1fc4636 Update this 2024-03-22 21:34:19 -04:00
Lance Pioch
654aad06bb This test is useless 2024-03-22 21:32:19 -04:00
Lance Pioch
0d2e63f590 Better route model binding 2024-03-22 21:32:12 -04:00
Lance Pioch
0c5b449c4e Fix password resets 2024-03-22 18:02:07 -04:00
Lance Pioch
3d740907db This is no longer needed 2024-03-20 03:02:35 -04:00
Lance Pioch
cd9044753f Re-register these providers 2024-03-20 03:02:24 -04:00
Lance Pioch
add838d42f This has to match up with the parent 2024-03-20 02:19:20 -04:00
Lance Pioch
7df31a1eeb This is amazing, this bug was apparently fixed 2024-03-20 02:19:07 -04:00
Lance Pioch
0eef1c9bbc Use new lang path 2024-03-20 02:11:15 -04:00
Lance Pioch
798ac6d4c1 Style fixes 2024-03-19 21:13:55 -04:00
Lance Pioch
582f9e03d8 No longer need to manually specify this 2024-03-19 21:12:59 -04:00
Lance Pioch
29b3debee2 Use Laravel’s same return types 2024-03-19 21:12:27 -04:00
Lance Pioch
f5269e7e5c Fix tests visibility 2024-03-19 21:09:16 -04:00
Lance Pioch
6d3da18bf6 Use new method, property is deprecated 2024-03-19 21:08:49 -04:00
Lance Pioch
899b8836fb Use anonymous migrations instead 2024-03-19 21:03:50 -04:00
Lance Pioch
375c32f767 Update the whole lot 2024-03-19 21:03:22 -04:00
Lance Pioch
afe6068f4f Fallback to old key 2024-03-19 21:02:30 -04:00
Lance Pioch
e7316ba973 Simplification 2024-03-19 21:02:19 -04:00
Lance Pioch
ab4c3eedc3 Re-register service providers 2024-03-19 20:44:21 -04:00
Lance Pioch
ec38f7567e Consolidate service providers 2024-03-19 20:42:40 -04:00
Lance Pioch
dcdfd2cea9 Re-register middleware 2024-03-19 20:38:01 -04:00
Lance Pioch
0ce1739b9f New bootstrap 2024-03-19 17:03:30 -04:00
Lance Pioch
7c39c00400 Update env vars 2024-03-19 17:03:01 -04:00
Lance Pioch
1f9c98ba61 Simplify configs 2024-03-19 16:59:53 -04:00
Lance Pioch
e1869ed9e6 Update these 2024-03-19 16:49:42 -04:00
Lance Pioch
9347f776e6 Don’t need these anymore 2024-03-19 16:49:09 -04:00
Lance Pioch
301976e984 Move to lang dir 2024-03-19 16:48:46 -04:00
Lance Pioch
b4532d9d10 Use more fluent methods 2024-03-19 16:47:52 -04:00
Lance Pioch
d4d3ffc96c Use faker methods instead of properties 2024-03-19 16:47:02 -04:00
Lance Pioch
c124d403ff Use nullsafe operator 2024-03-19 16:46:25 -04:00
Lance Pioch
44b9eb2358 Remove event dispatcher explicit usage 2024-03-19 16:14:24 -04:00
Lance Pioch
1d96ed8869 Replace service 2024-03-19 15:48:11 -04:00
Lance Pioch
627442e40f Add logo 2024-03-19 15:42:19 -04:00
Lance Pioch
d58496a355 Replace with helper 2024-03-19 05:11:41 -04:00
Lance Pioch
d9cfb62a12 Use config helper instead 2024-03-19 04:59:19 -04:00
Lance Pioch
b11810588a Branding 2024-03-19 04:54:39 -04:00
Lance Pioch
c4c4834acc Fix this 2024-03-19 04:52:43 -04:00
Lance Pioch
3a95105931 Style fixes 2024-03-19 04:48:57 -04:00
Lance Pioch
25001c54a8 Update funding 2024-03-19 04:37:08 -04:00
Lance Pioch
c01330dc06 Remove service 2024-03-19 04:30:26 -04:00
Lance Pioch
139c70e52b Merge branch '3.x' of panel into 3.x 2024-03-19 04:23:12 -04:00
Lance Pioch
d012b895e1 Merge pull request #1 from lancepioch/dependabot/npm_and_yarn/npm_and_yarn-security-group-b2e1eb7815
build(deps): bump the npm_and_yarn group across 1 directory with 1 update
2024-03-18 21:36:50 -04:00
Lance Pioch
c4a471f91a Handle deletion better 2024-03-18 21:23:13 -04:00
Lance Pioch
2aa9be62a1 Use route model binding 2024-03-17 20:57:06 -04:00
Lance Pioch
c8c3b55be8 Remove baseline that’s unused 2024-03-17 20:37:19 -04:00
Lance Pioch
a3f33eea3f No need for function 2024-03-17 14:27:24 -04:00
Lance Pioch
0dacfc31ac Use built in casts 2024-03-17 14:15:06 -04:00
Lance Pioch
4cc123aed5 Styling fix 2024-03-17 14:04:12 -04:00
Lance Pioch
37094ffc1f Best of both worlds because of mockery 2024-03-17 13:59:21 -04:00
Lance Pioch
a97e3ee3e8 Better baseline 2024-03-17 13:52:02 -04:00
Lance Pioch
b8d0cb0745 Styling 2024-03-17 13:49:19 -04:00
Lance Pioch
6030a0e890 Specify typehint 2024-03-17 13:49:14 -04:00
Lance Pioch
7c0a46deaa Yet more static analysis 2024-03-17 13:46:01 -04:00
Lance Pioch
e9ea5b1cae Even more static analysis! 2024-03-17 13:16:39 -04:00
Lance Pioch
c7bf124a15 This one was me! laravel/framework#44807 2024-03-17 13:13:22 -04:00
Lance Pioch
861aeb0c5c More static analysis 2024-03-17 13:03:04 -04:00
Lance Pioch
3cea8ca979 Better static analysis 2024-03-17 12:52:22 -04:00
Lance Pioch
53c1626805 Put these back too 2024-03-17 02:15:36 -04:00
Lance Pioch
b4610ce2c9 Should be using http fakes… but this works for now 2024-03-17 02:13:49 -04:00
Lance Pioch
088a7cd5a7 Move this over to integration testing 2024-03-17 01:47:36 -04:00
Lance Pioch
c7fba40ba3 Adjust this back 2024-03-17 01:47:29 -04:00
Lance Pioch
c3529acb22 Adjustments 2024-03-17 01:08:48 -04:00
Lance Pioch
daca4d1d5b Small ci updates 2024-03-17 00:51:35 -04:00
Lance Pioch
f7c2c1a84c Formatting 2024-03-17 00:40:18 -04:00
Lance Pioch
1172fec6e5 Remove record not found exception 2024-03-16 23:34:45 -04:00
Lance Pioch
dece74c185 Remove config repository 2024-03-16 23:29:54 -04:00
Lance Pioch
80c5a97038 Use logger helper 2024-03-16 23:27:24 -04:00
Lance Pioch
80d3827e4e Remove config repository usage 2024-03-16 23:24:10 -04:00
Lance Pioch
38d68d8221 Use view helper instead 2024-03-16 23:23:07 -04:00
Lance Pioch
8808a94154 Small clean up 2024-03-16 23:20:58 -04:00
Lance Pioch
67c2bb53e0 Remove unused repository interface 2024-03-16 23:09:32 -04:00
Lance Pioch
49749ebfcc Remove these repository references 2024-03-16 23:02:17 -04:00
Lance Pioch
aa93cd65c1 Remove backup and mount repositories 2024-03-16 23:01:45 -04:00
Lance Pioch
9d3a6ae494 Remove DatabaseHost Repository 2024-03-16 22:41:36 -04:00
Lance Pioch
449f875d20 Remove egg variable repository 2024-03-16 22:13:13 -04:00
Lance Pioch
50fa260a38 Remove node repository 2024-03-16 21:34:09 -04:00
dependabot[bot]
fc343aca46 build(deps): bump the npm_and_yarn group across 1 directory with 1 update
Bumps the npm_and_yarn group with 1 update in the / directory: [follow-redirects](https://github.com/follow-redirects/follow-redirects).


Updates `follow-redirects` from 1.15.5 to 1.15.6
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-17 01:18:10 +00:00
Lance Pioch
f988cc8cfa Remove database repository 2024-03-16 20:56:37 -04:00
Lance Pioch
ba95045583 Remove settings repository 2024-03-16 20:30:31 -04:00
Lance Pioch
df37de4d2d Remove egg repository 2024-03-16 20:14:50 -04:00
Lance Pioch
89477421e1 Remove api key repository 2024-03-16 20:00:31 -04:00
Lance Pioch
ea417cf45e Remove allocation repository 2024-03-16 19:52:32 -04:00
Lance Pioch
ca543a3b91 Add license 2024-03-16 19:36:14 -04:00
Lance Pioch
384612360e Remove server variable repository 2024-03-16 19:32:24 -04:00
Lance Pioch
a0cc4b3d5f Put this back down for now 2024-03-16 19:29:16 -04:00
Lance Pioch
666634ae88 Small fixes 2024-03-16 19:28:31 -04:00
Lance Pioch
191e0adc58 Remove recovery token repository 2024-03-16 19:28:25 -04:00
Lance Pioch
a496be67b8 Remove api permission repository 2024-03-16 19:22:52 -04:00
Lance Pioch
60c32cdb81 Remove schedule and task repositories 2024-03-16 19:20:55 -04:00
Lance Pioch
1813e6f549 Remove user repository 2024-03-16 19:10:31 -04:00
Lance Pioch
f27f673615 Array mail in tests 2024-03-16 18:55:07 -04:00
Lance Pioch
2aa06fc009 Small replacement fixes 2024-03-16 18:54:57 -04:00
Lance Pioch
521aa203b8 Better handling of our permissions 2024-03-16 18:53:53 -04:00
Lance Pioch
9b2dfb4212 Simplify this 2024-03-16 18:53:20 -04:00
Lance Pioch
4969aed383 Remove daemon command repo 2024-03-16 15:11:10 -04:00
Lance Pioch
4e42cd784a Remove server repository and interface 2024-03-16 15:01:41 -04:00
Lance Pioch
4ea5341e97 Remove daemon transfer repository 2024-03-16 14:35:13 -04:00
Lance Pioch
41c3f1336a More static analysis 2024-03-16 14:26:08 -04:00
Lance Pioch
095bc89aee Basic fixes from phpstan 2024-03-16 14:19:40 -04:00
Lance Pioch
6b5e990a1c Add phpstan to help with static analysis 2024-03-16 14:19:32 -04:00
Lance Pioch
afc22a2787 Don’t force the platform 2024-03-16 14:12:25 -04:00
Lance Pioch
a9774718d2 Fix the repo links 2024-03-16 14:05:38 -04:00
Lance Pioch
e4cee4d69d Remove locations 2024-03-14 02:23:30 -04:00
Lance Pioch
9fb0c451f5 Run the tests 2024-03-14 01:30:34 -04:00
Lance Pioch
a296084d6e Remove nests 2024-03-14 01:27:50 -04:00
Lance Pioch
05681641d3 Update default mail driver 2024-03-14 01:22:26 -04:00
Lance Pioch
aa85727156 Force add these 2024-03-14 01:15:18 -04:00
Lance Pioch
cd51705b58 Add readme 2024-03-14 01:10:56 -04:00
Lance Pioch
2f3d4e2819 Remove telemetry 2024-03-12 22:47:49 -04:00
Lance Pioch
883314b74a Small updates 2024-03-12 22:47:32 -04:00
Lance Pioch
c83dd86a41 Switch namespace back to App 2024-03-12 22:39:16 -04:00
Matthew Penner
f0489f677b Update README.md 2023-12-29 22:09:21 -07:00
Matthew Penner
8abf2d8106 ui(server): fix defaultValue not being used with VariableBox select 2023-10-20 19:30:25 -06:00
Matthew Penner
341eda7855 egg(rust): change ordering of mod frameworks 2023-10-20 19:29:21 -06:00
Matthew Penner
742e352c67 Update CHANGELOG.md 2023-10-12 13:55:53 -06:00
Matthew Penner
a62e8b1a67 egg(rust): use yolk image instead of the deprecated one 2023-10-12 13:54:42 -06:00
Matthew Penner
35159b3715 Update CHANGELOG.md 2023-10-10 13:13:00 -06:00
Matthew Penner
7fa0c26d80 Update README.md 2023-10-02 17:06:05 -06:00
Boy132
5a417e9adb app(setup): replace mail with sendmail driver (#4750) 2023-08-22 19:18:05 -06:00
Boy132
51cee7688a app: update prune-backup command description (#4754) 2023-08-22 19:17:18 -06:00
Boy132
67b2d944a6 ui(client): allow MassActionBar to be clicked through (#4753) 2023-08-22 19:12:57 -06:00
Matthew Penner
57d27293d2 github(template): update paste domain (#4757)
Switch from `bin.ptdl.co` to `pteropaste.com`
2023-08-22 15:08:14 -10:00
Boy132
1af200c464 Replace bin.ptdl.co with pteropaste.com
ptdl.co always has cert issues. pteropaste is used anywhere else (e.g. in Discord bot commands)
Also increased the line number to 150.
2023-08-22 15:05:55 -10:00
Matthew Penner
97049f48c3 ui(server): hide sensitive information in copy-on-click notifications (#4761) 2023-08-22 15:04:35 -10:00
Vadym
2d4071ca25 do not show strings with password in notification text 2023-08-22 15:03:47 -10:00
Matthew Penner
5cd2697be3 api(client): allow setting empty server description
Closes https://github.com/pterodactyl/panel/issues/4752
2023-08-22 15:02:56 -10:00
Robert Nisipeanu
85f1259709 fix(4752): check if description field present on request 2023-08-22 15:01:49 -10:00
Matthew Penner
bf1768406b ui(server): fix permissions check on file manager (#4793) 2023-08-22 15:01:14 -10:00
Boy132
a83058668f only files check for "read-content", check folders for "read"
fixes #4792
2023-08-22 15:00:25 -10:00
Matthew Penner
987440c8ca app: fix formatting 2023-08-22 18:59:34 -06:00
Matthew Penner
341fa0a52d docker: fix log directory (#4839) 2023-08-22 14:59:12 -10:00
Michael Parker
aa2f797f6f fix panel log folder
resolves #4838

Fixes an issue with the log symlink as well
2023-08-22 14:57:45 -10:00
Matthew Penner
04d83edd36 app: fix getMySQLTimezoneOffset() truncating seconds
Previously the `getMySQLTimezoneOffset()` function would truncate the
seconds part of a time offset (returning `+9:00` instead of `+9:30`) for
example. This only affects timezones with offsets that contain minutes.

Closes https://github.com/pterodactyl/panel/issues/4821
Superseeds https://github.com/pterodactyl/panel/pull/4827

Co-authored-by: danny6167 <daniel@barteck.com.au>
2023-08-22 18:54:59 -06:00
Matthew Penner
15860613b6 Update README.md 2023-08-22 18:50:11 -06:00
Matthew Penner
3cd15d6f21 ci(docker): skip login on pull requests 2023-07-11 20:52:09 -06:00
Matthew Penner
29783ed240 egg(rust): add support for Carbon
Rebased version of #4734 to 1.0-develop
2023-07-11 20:37:14 -06:00
Matthew Penner
7c8bdfc4d8 Update README.md 2023-06-28 20:23:53 -06:00
Matthew Penner
b23f3114e4 Update README.md 2023-05-12 23:08:43 -06:00
Matthew Penner
8bfcffc477 Update README.md 2023-03-11 14:11:34 -07:00
Matthew Penner
1d38b4f0e2 Laravel 10 (#4706) 2023-02-23 12:30:16 -07:00
Matthew Penner
ad4ddc6300 nix: update flake 2023-02-23 12:24:47 -07:00
Devonte W
b746c3ead1 fix(api/client): add validation for backup request body (#4704) 2023-02-23 12:23:12 -07:00
Devonte W
aea5c474db fix(resources/api): allow svg xml format (#4705) 2023-02-23 12:19:58 -07:00
Matthew Penner
2a7833ca17 Update README.md 2023-02-06 10:22:21 -07:00
Alex
9b47403e00 egg(rust): add server.queryport option (#4681) 2023-02-04 14:42:04 -07:00
Matthew Penner
43f7c10617 Update CHANGELOG.md 2023-01-27 12:24:55 -07:00
Matthew Penner
866b6df4b0 api(task): ensure sequence_id always starts at 1 2023-01-24 16:19:34 -07:00
Matthew Penner
2b14e46eec api: fix sequence_id being ignored in server task API
Closes #4434
2023-01-24 15:57:24 -07:00
Matthew Penner
20f23a0b27 db: add uuid column to failed_jobs table
Refer to
<https://laravel.com/docs/8.x/upgrade#failed-jobs-table-batch-support>
for more information regarding this change.

Closes #4652
2023-01-24 14:02:41 -07:00
Matthew Penner
a27ea3d1bc config(queue): default to redis driver
Updates the default `QUEUE_CONNECTION` value to be `redis`
instead of `sync`.  This can cause problems if users skip
the initial setup or select the prefilled options rather
than the recommended ones.

Closes #4660
2023-01-24 13:48:34 -07:00
Matthew Penner
fbdac5b63f ui(server): fix reinstall_failed conflict state 2023-01-17 15:21:31 -07:00
Jelco
c74314d2ab Fix file repository not catching 404 responses (#4637) 2023-01-17 15:12:22 -07:00
Matthew Penner
dd595437e6 Update README.md, fix CI status badge 2023-01-17 15:06:56 -07:00
Boy132
2ed7f1c912 Fix MAIL_FROM_ADDRESS in EmailSettingsCommand (#4648) 2023-01-17 15:01:53 -07:00
Matthew Penner
a2fb319ff5 Update README.md sponsors 2023-01-01 15:26:38 -07:00
Omar Kamel
e43da311fe api(client): keep existing server description when empty (#4619) 2022-12-14 14:19:45 -07:00
Matthew Penner
ac53e7b061 Update CHANGELOG.md 2022-12-12 16:09:09 -07:00
Matthew Penner
8978da335e app(telemetry): disable server_usage for eggs and nests 2022-12-12 16:07:33 -07:00
VibeGAMESNL
680bce6d94 api(client): fix decompress timeout (#4568) 2022-12-12 16:07:13 -07:00
Matthew Penner
428311e854 database: fix mail settings migration 2022-12-12 15:47:48 -07:00
Matthew Penner
6df31e1923 database: fix migration transaction failure? 2022-12-12 15:26:47 -07:00
Matthew Penner
c8c648f0e5 php-cs-fixer 2022-12-12 15:14:37 -07:00
Matthew Penner
0751eeec97 database: add migration for new mail config keys 2022-12-12 15:12:03 -07:00
Matthew Penner
24e1c56378 Update SECURITY.md 2022-12-12 14:35:24 -07:00
Matthew Penner
4626118d77 app: fix remaining email config keys 2022-12-12 14:31:49 -07:00
Matthew Penner
6377e3309a config(queue): fix queue names 2022-12-12 14:29:19 -07:00
Matthew Penner
c14fc1ccb0 config(mail): fix SERVER_NAME; closes #4600 2022-12-12 14:26:07 -07:00
Matthew Penner
63a179d7f3 app: fix email config keys 2022-12-12 14:21:47 -07:00
Matthew Penner
3432cadd4a ci(docker): fix version starting with v prefix 2022-12-05 15:43:10 -07:00
Matthew Penner
411017198e Update CHANGELOG.md 2022-12-05 13:16:03 -07:00
Matthew Penner
e763c72d63 ci(docker): fix version in app.php 2022-12-05 12:39:07 -07:00
Matthew Penner
a2970cd784 ci: tweak docker and release workflows 2022-12-05 09:58:13 -07:00
Matthew Penner
ca4aa795be ci(docker): fix latest tag 2022-12-04 18:37:45 -07:00
Matthew Penner
c802b49b7a ci(docker): fix app version 2022-12-04 18:36:26 -07:00
Matthew Penner
7d93f1566c ci: overhaul workflows 2022-12-04 17:40:17 -07:00
Matthew Penner
598c956e4e ui(server): fix file uploads being canceled instead of completed 2022-12-04 16:36:53 -07:00
Matthew Penner
158facd534 eslint: fix prettier config 2022-12-04 16:32:15 -07:00
Matthew Penner
dd69652942 Fix No application encryption key has been specified error while trying to generate said key 2022-12-04 16:09:42 -07:00
Matthew Penner
73b27aea8e Update CHANGELOG.md 2022-12-04 15:27:21 -07:00
Matthew Penner
fa7503816a Add telemetry prompt in p:environment:setup command 2022-12-04 14:59:45 -07:00
Matthew Penner
250c557e23 telemetry: include more detailed server egg and nest usage 2022-12-01 12:09:27 -07:00
Matthew Penner
6272bb6710 api(remote): cleanup 2022-12-01 11:52:22 -07:00
Matthew Penner
3c278a8c51 api(remote): check if transfer is present before trying to update status 2022-12-01 11:51:26 -07:00
Matthew Penner
794248d4d7 routes: fix imports 2022-12-01 11:51:26 -07:00
Wunderharke
c8f7bdf9cb egg(teamspeak): fix database support (#4513) 2022-11-28 12:04:56 -07:00
TaktischerSpeck
75f36839df egg(teamspeak): port and argument updates (#4546) 2022-11-28 11:59:48 -07:00
Charles Morgan
a4e547dc67 ui(server): fix console searchbar z-index (#4587) 2022-11-27 19:38:28 -07:00
Matthew Penner
1bb1b13f6d Update CHANGELOG.md 2022-11-22 13:40:58 -07:00
Matthew Penner
5b36313c57 Update README.md 2022-11-22 13:39:57 -07:00
Matthew Penner
ee033d6d08 Telemetry (#4564) 2022-11-22 13:39:43 -07:00
Dane Everitt
df9a7f71f9 Support canceling file uploads (#4441)
Closes #4440
2022-11-21 13:58:55 -07:00
Lance Pioch
a4f6870518 server: track reinstall failures differently from initial install failures (#4531) 2022-11-21 13:53:54 -07:00
Matthew Penner
039ad4abf0 api(server): log activity when server description is changed 2022-11-21 13:43:19 -07:00
Devonte W
634c9353e3 fix(transformers): force object type for properties (#4544) 2022-11-21 13:28:46 -07:00
Matthew Penner
c3521e0221 api(server): fix undefined header 2022-11-21 13:20:50 -07:00
Matthew Penner
2f4a60c961 ui(admin): change MB suffixes to MiB
Closes #4542
2022-11-21 13:10:00 -07:00
Matthew Penner
c1584d9a5b Update CHANGELOG.md 2022-11-14 20:31:03 -07:00
Matthew Penner
897ca48ded github: re-enable blank issues 2022-11-14 18:28:02 -07:00
Matthew Penner
df2402b54f Streaming Transfers (#4548) 2022-11-14 18:25:07 -07:00
Boy132
032e4f2e31 Apply node maintenance mode to servers (#4421) 2022-11-06 16:02:30 -07:00
Lance Pioch
4032481a4f Update validation rules for remote activity logs (#4526) 2022-11-06 15:42:48 -07:00
Lance Pioch
9b218f2190 URL encode password in JDBC connection string (#4527) 2022-11-06 15:24:33 -07:00
Alex
c068f57e4e fix(forge): validate only input and not length (#4528)
Only allows digits, dots and dashes in the input, which is what Forge versions consists of. Removes arbitrary char limit.
2022-11-06 15:15:12 -07:00
Matthew Penner
f8ec8b4d5a Merge branch 'develop' into 1.0-develop 2022-10-31 12:10:04 -06:00
Matthew Penner
d466934103 Laravel Sail (#4508) 2022-10-31 11:38:56 -06:00
Matthew Penner
846ff7644f Fix missing email sender 2022-10-31 11:02:34 -06:00
Matthew Penner
b7a65436fa Merge branch '1.0-develop' into develop 2022-10-31 10:59:35 -06:00
Matthew Penner
1b78030291 Fix compatibility with old queue names 2022-10-31 10:58:32 -06:00
Quinten
e21aab2537 Update mumble egg (#4437) 2022-10-31 10:29:29 -06:00
Lance Pioch
16c2b606b4 Add ManifestDoesNotExistException and Solution (#4455)
Co-authored-by: Matthew Penner <matthew@pterodactyl.io>
2022-10-31 10:29:10 -06:00
Boy132
f2095e815e Allow users to change the server description (#4420) 2022-10-31 10:20:53 -06:00
Matthew Penner
b1abae8106 Update README.md 2022-10-30 13:58:29 -06:00
Lance Pioch
548affba84 Fix linting (#4504) 2022-10-29 17:58:55 -06:00
Matthew Penner
5f57e63fe4 ci(lint): install composer dependencies 2022-10-26 10:45:43 -06:00
Matthew Penner
6f0bb43314 ci: cleanup, add dedicated lint workflow 2022-10-26 10:43:05 -06:00
Jelco
5c78b380c5 Fix InMemoryFilesystemAdapter (#4489) 2022-10-26 10:26:56 -06:00
Matthew Penner
d31ece1c75 nix: add flake with dev shell 2022-10-24 09:48:30 -06:00
Lance Pioch
e49ba65709 Fix config key names (#4464) 2022-10-23 18:51:20 -06:00
Matthew Penner
7266c66ebf un-type getRulesForUpdate; fixes #4463 2022-10-23 18:14:50 -06:00
Lance Pioch
860b2d890b Fix php artisan up (#4457) 2022-10-21 11:31:59 -06:00
Matthew Penner
5331fd2cdb ci(docker): build local code checkout, add caching to dev build 2022-10-20 14:32:23 -06:00
Matthew Penner
4dd30fe2f0 composer: update lock 2022-10-19 22:47:53 -06:00
Dane Everitt
d1beb2e1ad Fix file verification on upload; just block folders (#4442) 2022-10-16 17:24:49 -06:00
Matthew Penner
9c6822f62d Update CHANGELOG.md 2022-10-16 12:34:36 -06:00
Matthew Penner
2828a4b1e0 fix AssetManifestService error when loading the panel 2022-10-14 11:00:10 -06:00
Matthew Penner
cbcf62086f Upgrade to Laravel 9 (#4413)
Co-authored-by: DaneEveritt <dane@daneeveritt.com>
2022-10-14 10:59:20 -06:00
Matthew Penner
95e15d2c8a Cleanup FQDN validation logic, fallback to old hostname check (#4409)
Co-authored-by: DaneEveritt <dane@daneeveritt.com>
2022-10-09 16:19:16 -06:00
Dane Everitt
c748fa9842 fix: exclude any permissions not defined internally when updating or creating subusers (#4416) 2022-10-09 16:14:16 -06:00
Cubxity
597821b3bb fix: byte units (#4419) 2022-10-09 16:09:24 -06:00
Dane Everitt
e0e0689846 feat: bump account key limit to 25 (#4417)
Closes #4394
2022-10-08 15:14:03 -06:00
DaneEveritt
2e61a4db13 fix: eslint errors 2022-10-08 11:30:14 -07:00
Matthew Penner
ba10646e8a Update CONTRIBUTING.md and SECURITY.md 2022-10-05 10:31:06 -06:00
Matthew Penner
ac8629d449 Update CHANGELOG.md 2022-10-04 20:49:03 -06:00
Devonte
9b531d5fd9 Include oom_disabled in application API request (#4262) 2022-10-04 20:12:46 -06:00
Aspect
d7b387be3e Show UptimeDuration for starting servers (#4284) 2022-10-04 20:12:07 -06:00
Matthew Penner
7b91c38396 Lookup both A and AAAA records for node FQDNs (#4398)
Allows IPv6 addresses to be used, instead of IPv4 being required.

Closes <https://github.com/pterodactyl/panel/issues/4011>
2022-10-04 20:03:52 -06:00
Matthew Penner
815e1e4c4d Ensure server is not in a conflicting state before initiating a transfer (#4403) 2022-10-04 19:57:24 -06:00
Matthew Penner
ff37c51eef Use different clone logic for arrays (#4402)
Closes <https://github.com/pterodactyl/panel/issues/3985>
2022-10-04 19:48:08 -06:00
Matthew Penner
44598bf724 Support configuring storage class for S3 backup uploads (#4399)
Closes <https://github.com/pterodactyl/panel/issues/4072>
2022-10-04 19:39:25 -06:00
diamkil
6aede6b63d Allow uploading multiple files via web UI (#4392) 2022-09-29 17:43:20 -06:00
Matthew Penner
16c110a489 Update FUNDING.yml 2022-09-26 11:23:48 -06:00
Matthew Penner
2dcc46ecd6 backups: support Cloudflare R2 by listing uploaded parts from Wings 2022-09-26 11:15:52 -06:00
Matthew Penner
0dc77aec25 Update README.md 2022-09-25 19:12:08 -06:00
Matthew Penner
9bcafd983f admin: fix rendering of egg descriptions 2022-09-25 19:00:49 -06:00
Pascal Zarrad
1ca4b08b48 backups: add S3 part size configuration (#4382) 2022-09-25 14:38:49 -06:00
Matthew Penner
68e9100e57 admin(eggs): add force_outgoing_ip option (#4323)
Closes #3841
2022-09-25 13:24:54 -06:00
Boy132
b04a47a4a4 Handle "in:true,false" variable rules as checkbox (#4334) 2022-09-25 13:18:13 -06:00
Matthew Penner
8e1a21563e server: add configuration for install notifications (#4331)
* server: track `installed_at`, only send install notification on first install
* server: add configuration for install notifications
2022-09-25 13:16:58 -06:00
SS
23124c9b08 docker: update README.md (#4388) 2022-09-25 13:11:45 -06:00
Harry W
a6b250913b fix: page title for SSH keys (#4391) 2022-09-25 13:05:53 -06:00
DaneEveritt
e040fd1ebd Fix display of database rows when password is not available
closes #4381
2022-09-17 11:50:40 -07:00
DaneEveritt
bf2456d0fc Ensure eggs endpoint always returns an object, even when empty
closes #4296
2022-09-17 11:36:41 -07:00
Cam White (Jex)
b050174f90 Bump fork-ts-checker-webpack-plugin to 6.5.2 (#4357) 2022-09-05 14:01:03 -04:00
hz-ad
ab08afb2da Updating sponsors (#4345) 2022-09-01 15:47:17 -04:00
DaneEveritt
be29fe1db2 Break activity log values ignoring word boundaries
Not my favorite approach, but it'll work. closes #4305
2022-08-07 15:00:43 -04:00
DaneEveritt
2da8042b0f Fix clock() usage causing errors in prod environments 2022-07-24 20:43:14 -04:00
DaneEveritt
07f1ef4262 Update security versions 2022-07-24 19:45:49 -04:00
DaneEveritt
f614b443dd Update CHANGELOG.md 2022-07-24 19:37:15 -04:00
DaneEveritt
03a6e26c4d Improve create directory dialog 2022-07-24 19:23:45 -04:00
DaneEveritt
8d82aa2124 Improve design of drag & drop overlay 2022-07-24 18:59:20 -04:00
DaneEveritt
4458822c60 Cleanup file upload behavior 2022-07-24 18:50:47 -04:00
DaneEveritt
1cfa4100ad Show an error if a user attempts to upload a folder 2022-07-24 18:22:50 -04:00
DaneEveritt
1d5d92f678 Use a different styling for file uploads 2022-07-24 18:03:45 -04:00
Boy132
12242848b0 File upload status (v2 backport) (#4219) 2022-07-24 17:18:32 -04:00
DaneEveritt
2eda1995b9 Send server name and description to wings to make available to replacers 2022-07-24 17:15:24 -04:00
DaneEveritt
abac317802 Make recaptcha domain configurable 2022-07-24 17:13:17 -04:00
DaneEveritt
f8c48214a5 Track file uploads on Wings, not the panel 2022-07-24 17:13:17 -04:00
Alex
6a11c32bb2 fix: do not style 2fa QR code (#4278)
Dark rounded background shadow around the QR code makes it more difficult or impossible to scan on some devices. Replaces it with a white shadow to make easier scanning.
2022-07-24 17:10:59 -04:00
Michael (Parker) Parker
eb503c5523 fix docker builds (#4249)
Updates php to 8.1
Resolves the issue when running docker-compose unconfigured redirects to https.
2022-07-16 08:48:40 -04:00
simonmicro
1250713299 Changed scroll down indicator icon (#4231)
Co-authored-by: Dane Everitt <dane@daneeveritt.com>
2022-07-16 08:48:10 -04:00
Simon Stjernholm
5700dd6a8e fixes loading overlay to console only (#4246)
Co-authored-by: DaneEveritt <dane@daneeveritt.com>
2022-07-16 08:30:00 -04:00
DaneEveritt
d4708e9e63 Always show IP address to admins 2022-07-10 14:56:19 -04:00
DaneEveritt
d6c30092ec Utilize a unique ID for activity logs to improve rendering perf 2022-07-10 14:53:29 -04:00
DaneEveritt
e878015109 Correctly wrap content in pre tag so it doesn't overflow 2022-07-10 14:53:15 -04:00
DaneEveritt
edbbe520a7 Fix missing padding on overflowing dialogs 2022-07-10 14:52:57 -04:00
DaneEveritt
7558c0380e Don't log SFTP logins, it just is noisy 2022-07-10 14:30:11 -04:00
DaneEveritt
8b59c1c1a8 Support new sftp event types 2022-07-10 13:47:19 -04:00
DaneEveritt
33ab762f5a Add support for tracking more SFTP specific events 2022-07-09 19:30:38 -04:00
DaneEveritt
2e01891074 Account for natural event naming 2022-07-09 17:53:07 -04:00
DaneEveritt
1eee55b27c Add endpoint needed for recieving and processing activity 2022-07-09 17:45:38 -04:00
DaneEveritt
9b8479e85d Update README.md 2022-07-09 12:01:24 -04:00
DaneEveritt
26d7d7e0e0 Fix SWR key logic 2022-07-04 18:22:58 -04:00
DaneEveritt
d6b6ac6dab Key activity log cache to the server instance, not the user instance. 2022-07-04 18:13:15 -04:00
DaneEveritt
4a8c3c4a34 Add activity tracking for console/power actions 2022-07-04 18:11:53 -04:00
DaneEveritt
dc90d8b505 Include the "user_uuid" claim on JWTs for easier Wings user tracking 2022-07-04 17:34:56 -04:00
DaneEveritt
74c3b00828 Update CHANGELOG.md 2022-07-03 19:51:12 -04:00
DaneEveritt
15aaa2b3c3 Fix display issues due to removal of quirks mode 2022-07-03 14:44:00 -04:00
DaneEveritt
0216e3fd5b Don't log activity if the email wasn't actually changed 2022-07-03 14:29:01 -04:00
DaneEveritt
2d836156d2 Update totp disable modal; require password for enable operation 2022-07-03 14:27:37 -04:00
DaneEveritt
92926ca193 Cleanup logic powering totp enabling modal 2022-07-03 13:43:54 -04:00
DaneEveritt
a4feed24a8 Improve dialog logic, add "asDialog" helper 2022-07-03 13:29:23 -04:00
DaneEveritt
822949408f Use new two-step configuration modal 2022-07-02 18:53:03 -04:00
DaneEveritt
870a964050 Fix checkboxes 2022-07-02 18:27:29 -04:00
DaneEveritt
e49e6ee802 Better dialog setting logic 2022-07-02 18:27:22 -04:00
DaneEveritt
7a6440988b Support tooltip on disabled buttons, support click action 2022-07-02 17:24:49 -04:00
DaneEveritt
25d61525b3 Update new input styling 2022-07-02 17:24:24 -04:00
DaneEveritt
7c4028f8f1 Update dialog logic to support defining buttons/icon from anywhere 2022-07-02 17:24:12 -04:00
DaneEveritt
48af9bced1 Fix activity log rendering; closes #4208 2022-06-30 21:06:50 -04:00
DaneEveritt
0d0c595909 Show starting/stopping correctly in stats; closes #4209 2022-06-30 20:33:09 -04:00
DaneEveritt
3120e1d4a0 Fix console rendering on Safari; closes #4189 2022-06-30 20:30:01 -04:00
Boy132
003afb271b fix: java version modal default value (#4216) 2022-06-30 20:23:40 -04:00
VinGal
cc06d1faa9 Fixes rounding when 0.001% or less on CPU usage. (#4207) 2022-06-30 20:23:27 -04:00
Arnaud Lier
ccea09c9d9 Enable standards mode (#4194) 2022-06-30 20:23:15 -04:00
DaneEveritt
4fa735da3f Update CHANGELOG.md 2022-06-27 21:01:24 -04:00
DaneEveritt
20a7794a18 Fix incorrect type definitions 2022-06-27 20:54:58 -04:00
DaneEveritt
4aa163b76f Hide IP addresses from activity logs not generated by the user themselves 2022-06-27 20:52:27 -04:00
DaneEveritt
b570769a34 Fix permission matching on routes; closes #4181 2022-06-27 20:41:49 -04:00
DaneEveritt
bd278b2688 Fix install warning display and make it reactive 2022-06-27 20:36:24 -04:00
Boy132
2dda151a49 fix: correct route for console (#4178)
fixes #4177
2022-06-27 20:21:12 -04:00
DaneEveritt
7886251cd8 Fix infinity display 2022-06-27 20:16:43 -04:00
DaneEveritt
050d4e7a36 Show the resource limits next to numbers 2022-06-27 20:14:55 -04:00
DaneEveritt
5f156e193a Improve the graph display; hide the bottom bar when no data exists. 2022-06-27 19:59:36 -04:00
DaneEveritt
bf287c45d6 Logic improvements, move stat blocks to right side 2022-06-27 19:56:26 -04:00
DaneEveritt
ad6e9f076b Fix copy to clipboard when clicking server address
closes #4187
2022-06-27 19:18:58 -04:00
DaneEveritt
72f545259f Roll back changes to conversion unit (1000->1024)
closes #4183
2022-06-27 18:46:36 -04:00
Ziga Zajc
1b5d77dc17 Changed Mb to MB (#4171) 2022-06-27 18:30:46 -04:00
Boy132
ac997cd7a6 fix: use correct network stat (#4175) 2022-06-27 18:30:21 -04:00
Boy132
63cf6ee96e fix: round cpu usage in chart (#4182)
fixes #4168
2022-06-27 18:30:00 -04:00
DaneEveritt
16725e656b Bundle the new eslintrc config file 2022-06-26 21:18:53 -04:00
Argonaut Network
9bcf90db93 Fix grammatical error (#4138) 2022-06-26 21:17:02 -04:00
Torsten Widmann
8f2defc6f8 add new map to description (#4142) 2022-06-26 21:16:39 -04:00
Alex
3339a316ca feat: use max percentage instead of xmx (#4146)
Replaces Xmx with a percentage-based argument, in this case leaving 5% overhead.

Resolves issue of container OOM/freezing when all memory is allocated to the java application or when users attempt to use unlimited memory of 0. That's because all the allocated memory is set to Xmx by default. Causes Wings resource overhead allocation to be unnecessary.

Expands Forge installer exit code to provide instructions regarding increasing Wings installer resource limits when using unlimited memory (0) as the default 1024MB is not enough to run the installer.

The percentage is set as a floating point, because of a JDK 8 bug with integers
2022-06-26 21:16:26 -04:00
DaneEveritt
c9ab0abba9 Use node 16 for all build actions 2022-06-26 21:09:40 -04:00
DaneEveritt
446562fcff Update NodeFactory.php 2022-06-26 21:00:19 -04:00
DaneEveritt
80ae600fe1 Correctly update dependencies for release 2022-06-26 17:31:47 -04:00
DaneEveritt
13bdb66ff0 Revert "Package updates prior to release"
This reverts commit af2a84d379.
2022-06-26 17:19:12 -04:00
DaneEveritt
af2a84d379 Package updates prior to release 2022-06-26 17:11:55 -04:00
DaneEveritt
3f2bd78563 Generate a more unique username 2022-06-26 16:37:43 -04:00
DaneEveritt
43156e8d53 Improve error messaging for validation exceptions 2022-06-26 16:31:48 -04:00
DaneEveritt
271197e823 Fix cs-fix run 2022-06-26 16:21:07 -04:00
DaneEveritt
c166f1305b Remove unused deps 2022-06-26 16:14:32 -04:00
DaneEveritt
d172d2829f Update CHANGELOG.md 2022-06-26 15:42:11 -04:00
DaneEveritt
fc6c8f1d82 remove old eslint config 2022-06-26 15:30:30 -04:00
DaneEveritt
922d75f471 fix remaining eslint error 2022-06-26 15:30:05 -04:00
DaneEveritt
dc84af9937 Apply new eslint rules; default to prettier for styling 2022-06-26 15:13:52 -04:00
DaneEveritt
f22cce8881 Update eslint parsers for new typescript version 2022-06-26 14:38:58 -04:00
DaneEveritt
1eb3ea2ee4 Some code cleanup, add jest coverage and begin using it for utility functions 2022-06-26 14:34:09 -04:00
DaneEveritt
ca39830333 allow filtering servers by description; closes #4150 2022-06-26 13:26:12 -04:00
DaneEveritt
b3a57bd0ad fix includes for client API keys on admin accounts; closes #4164 2022-06-26 13:23:22 -04:00
DaneEveritt
82d8713b5d Fix allocation display when a description is present 2022-06-25 21:41:52 -04:00
DaneEveritt
47d6235ea0 Keep server address at the top 2022-06-25 21:31:10 -04:00
DaneEveritt
00338e431b Automatically hide the kill modal when server stops 2022-06-25 21:29:41 -04:00
DaneEveritt
76f3b996fe Auto resize values when they'd overflow the container 2022-06-25 21:27:18 -04:00
DaneEveritt
182507ff0e Upgrade charts to ChartJS 3 and improve UI for them 2022-06-25 20:51:49 -04:00
Dane Everitt
980f828edd Update README.md 2022-06-24 10:51:39 -04:00
DaneEveritt
54c619e6ba Some mobile improvements for the UI; make console fill space better 2022-06-21 18:43:59 -04:00
DaneEveritt
faff263f17 First pass at new server console design 2022-06-20 17:26:47 -04:00
DaneEveritt
61018b5e67 Update more of the UI to use new design elements 2022-06-20 15:28:27 -04:00
DaneEveritt
2824db7352 Update file manager design a bit 2022-06-20 14:16:42 -04:00
DaneEveritt
8bd518048e Fix excessive re-rendering due to route changesd 2022-06-20 13:19:40 -04:00
DaneEveritt
7b0e2ce99d Button styling cleanup, prop consistency 2022-06-20 12:38:23 -04:00
DaneEveritt
7dd74ecc9d Modal cleanup, begin transitioning towards the new dialog 2022-06-20 11:17:33 -04:00
DaneEveritt
3834aca3fe Use nicer avatars when showing activity log 2022-06-19 13:46:15 -04:00
DaneEveritt
76472411e3 Some better activity translations 2022-06-18 16:36:19 -04:00
DaneEveritt
cf01490883 Support hiding activity from admin accounts not associated with the server 2022-06-18 15:48:22 -04:00
DaneEveritt
95de4c30fc Abuse the translation engine to handle more of the formatting for us 2022-06-18 15:28:42 -04:00
DaneEveritt
b052d29a5f Fix failing integration test 2022-06-18 14:25:24 -04:00
DaneEveritt
7224ca81de Fix bug preventing the creation of API keys with CIDR ranges 2022-06-18 14:21:20 -04:00
DaneEveritt
d47a05881b Show when an event was triggered via the API directly 2022-06-18 12:52:26 -04:00
DaneEveritt
4f3651b578 Fix typo with identifier 2022-06-18 12:16:54 -04:00
DaneEveritt
0520014c0f Add support for tracking when an activity event is triggered from an API key 2022-06-18 12:07:44 -04:00
DaneEveritt
92c1c162af Code cleanup for facades 2022-06-18 12:07:32 -04:00
DaneEveritt
6ffe5730da Log when an API key is blocked due to IP restrictions 2022-06-18 12:04:51 -04:00
DaneEveritt
0be96cfd26 Update README.md 2022-06-16 20:36:15 -04:00
DaneEveritt
cd97936179 Improve mobile support 2022-06-12 15:40:14 -04:00
DaneEveritt
68a654f9e8 Selectively show the additional metadata if it isn't in the display string at all 2022-06-12 15:30:49 -04:00
DaneEveritt
88987fb6c7 Correctly pull button styles 2022-06-12 15:17:14 -04:00
DaneEveritt
2f1c8ae91d Add basic server activity log view 2022-06-12 15:16:48 -04:00
DaneEveritt
0b4936ff1c Break out rows for activity; show metadata icon 2022-06-12 15:08:26 -04:00
DaneEveritt
33823b65de Fix dialog and tooltip design 2022-06-12 15:07:52 -04:00
DaneEveritt
064a942574 Little bit of language cleanup 2022-06-12 13:36:42 -04:00
DaneEveritt
b50e722948 Add account related routes to router file 2022-06-12 13:33:25 -04:00
DaneEveritt
7197d28815 Chunk out the different routers and clean up feature logic 2022-06-12 11:56:00 -04:00
DaneEveritt
04e97cc67e Make it easier for plugins to extend the navigation and add routes 2022-06-12 11:36:55 -04:00
DaneEveritt
88a7bd7578 Make the delay less goofy when mousing over elements 2022-06-12 09:39:20 -04:00
DaneEveritt
f860fd2cfe Improve usability of icon buttons in header with tooltip 2022-06-12 09:35:02 -04:00
DaneEveritt
9c957952fb Improve mobile display of activity log 2022-06-12 09:09:01 -04:00
DaneEveritt
4d30cc9e7e Add translation values to activity log output 2022-06-11 14:52:41 -04:00
DaneEveritt
06427f8d13 Don't make two API calls for activity log data 2022-06-11 14:52:33 -04:00
DaneEveritt
986c375052 Improve support for use of i18next; rely on browser caching to keep things simple 2022-06-11 14:04:09 -04:00
DaneEveritt
8e02966935 Use a normal HTML tag for this 2022-06-11 11:05:03 -04:00
DaneEveritt
e17c2ec262 Add base activity log strings 2022-06-11 11:03:40 -04:00
DaneEveritt
278d8b7bf6 Update CHANGELOG.md 2022-06-11 10:04:44 -04:00
DaneEveritt
0bfba306bf Add filtering support for activity logs 2022-06-05 19:23:25 -04:00
DaneEveritt
c6e8b893c8 Add basic activity log view 2022-06-05 18:35:53 -04:00
DaneEveritt
d1da46c5aa Fix incorrect API definitions 2022-06-05 18:28:08 -04:00
DaneEveritt
2a2fc42e37 Add support for tooltips 2022-06-05 18:27:54 -04:00
DaneEveritt
1a5465dc34 Update react, add some V2 components for V1 usage 2022-06-05 14:56:42 -04:00
DaneEveritt
921da09a63 Update to Tailwind 3; support normal tailwind usage without twin.macro 2022-06-05 14:34:29 -04:00
DaneEveritt
21ca91abd0 Allow SES region configuration; closes #4124 2022-06-05 13:32:36 -04:00
DaneEveritt
8771597560 Fix database deletion; closes #4114
Co-Authored-By: Dawid <minerpl03@gmail.com>
2022-06-05 13:28:46 -04:00
Harry W
c0a3dea6d8 Disable autocapitalization on console input (#4120) 2022-06-05 13:22:41 -04:00
Kevin Brekelmans
7743d00aee Update README.md (#4104) 2022-05-30 18:18:10 -04:00
DaneEveritt
03a497fb8a Use a post request to delete SSH keys, some hashes use slashes which cause 404 errors; closes #4100 2022-05-30 17:28:42 -04:00
DaneEveritt
5143faa4b1 Update changelog 2022-05-30 11:40:21 -04:00
DaneEveritt
4213775b5c Fix mounting behavior to work correctly when adding to a server 2022-05-30 11:33:42 -04:00
DaneEveritt
dbc9846320 Fix cache busting when creating a new server 2022-05-30 11:09:51 -04:00
Boy132
025e1a21ae fix validator import (#4094) 2022-05-30 10:24:59 -04:00
DaneEveritt
8cf1311b84 Update dependencies prior to release tag 2022-05-29 20:43:52 -04:00
DaneEveritt
e5fec9934d Update CHANGELOG.md 2022-05-29 20:42:55 -04:00
DaneEveritt
9300e1116d Fix failing tests 2022-05-29 20:39:51 -04:00
DaneEveritt
a5521ecb79 Add support for returning transforming activity logs on the front-end 2022-05-29 20:34:48 -04:00
DaneEveritt
e15985ea39 Add support for automatically pruning activity logs 2022-05-29 19:45:00 -04:00
DaneEveritt
9b7af02690 Add activity logging to most of the endpoints 2022-05-29 19:26:28 -04:00
DaneEveritt
287fd60891 Log activity when modifying account details 2022-05-29 18:48:35 -04:00
DaneEveritt
0b2c0db170 Remove last references to audit logs 2022-05-29 18:20:54 -04:00
DaneEveritt
0621d8475d Return tests to passing now that we don't ignore a critical event... 2022-05-29 17:52:14 -04:00
DaneEveritt
09832cc558 Ensure we can properly create an activity log entry; always return soft-deleted models 2022-05-29 17:07:54 -04:00
DaneEveritt
f1c1699994 Fix tests with model events 2022-05-29 17:07:34 -04:00
DaneEveritt
2fc5a734f9 Update backup logic to use activity logs, not audit logs 2022-05-29 16:19:04 -04:00
DaneEveritt
cbecfff6da Add activity logging for files 2022-05-29 13:56:39 -04:00
DaneEveritt
0999ad7ff0 Add activity logging for authentication events 2022-05-28 17:03:58 -04:00
DaneEveritt
5bb66a00d8 Add new activity logging code to replace audit log 2022-05-28 15:36:26 -04:00
DaneEveritt
c14c7b436e Pass along new fields to Wings instance when endpoint is used; closes #4048 2022-05-28 13:45:23 -04:00
DaneEveritt
3fceb588fb Fix router logic to account for logged out users; closes #4085
Middleware was removed from the `/` route to redirect users without authentication, so now we need to handle this on the front-end properly.
2022-05-28 13:32:35 -04:00
DaneEveritt
b051718afe Fix up API handling logic for keys and set a prefix on all keys 2022-05-22 19:03:51 -04:00
DaneEveritt
8605d175d6 Ensure admin endpoints continue to work 2022-05-22 18:56:22 -04:00
DaneEveritt
3f99b00cf7 Fix display exception handling 2022-05-22 18:21:38 -04:00
DaneEveritt
dca53611ff Ensure we don't cause a mess with the auth providers 2022-05-22 18:16:47 -04:00
DaneEveritt
3ae70efc14 Use existing method to handle the login 2022-05-22 17:26:32 -04:00
DaneEveritt
4d3362b24f Perform a bit of code cleanup 2022-05-22 17:23:48 -04:00
DaneEveritt
be88e4e893 Ignore migrations, pass credentials 2022-05-22 17:01:39 -04:00
DaneEveritt
56f15c15a1 We can make this middleware significantly simpler 2022-05-22 16:54:07 -04:00
DaneEveritt
0fa33e0438 Mark a request as being stateful if a cookie for the session is provided at all
This accounts for poorly configured API clients that try to use cookies for authentication purposes. Treat everything with a session cookie as being a stateful request from the front-end.
2022-05-22 16:50:36 -04:00
DaneEveritt
33bafe9277 Simplify transformer logic 2022-05-22 16:23:22 -04:00
DaneEveritt
f7fc67344e Ensure tokens are found in the database using the expected logic 2022-05-22 16:05:58 -04:00
DaneEveritt
e9c633fd03 Update transformers and controllers to no longer pull an API key attribute 2022-05-22 15:37:39 -04:00
DaneEveritt
bd37978a98 Initial pass at implementing Laravel Sanctum for authorization on the API 2022-05-22 14:57:06 -04:00
DaneEveritt
e313dff674 Massively simplify API binding logic
Changes the API internals to use normal Laravel binding which automatically supports nested-models and can determine their relationships. This removes a lot of confusingly complex internal logic and replaces it with standard Laravel code.

This also removes a deprecated "getModel" method and fully replaces it with a "parameter" method that does stricter type-checking.
2022-05-22 14:10:01 -04:00
DaneEveritt
f1235c7f88 Update CHANGELOG.md 2022-05-21 17:02:40 -04:00
DaneEveritt
05f41a2ca8 Don't trim strings on file manager endpoints; ref #4081 2022-05-21 16:58:06 -04:00
Alex
d0b6ae00dc fix: update Paper API (#4080)
Paper api endpoints have been updated to api.papermc.io/v2 from the old papermc.io/api/v2
2022-05-21 15:50:07 -04:00
DaneEveritt
d4bf6bd46a Add test coverage and fix permissions mistake 2022-05-15 17:30:57 -04:00
DaneEveritt
8483db755d Fix SSH key factory 2022-05-15 16:47:58 -04:00
DaneEveritt
a9364061c1 Store keys in standard format; query with fingerprint not public key 2022-05-15 16:41:15 -04:00
DaneEveritt
b563f13d09 Trim the key provided to query correctly; don't increment throttles when keys aren't found 2022-05-15 16:23:17 -04:00
DaneEveritt
3d6a30c9fd Oops, don't make this abstract 2022-05-15 16:06:00 -04:00
DaneEveritt
412ac5ef39 Have the panel handle all of the authorization for both public key and password based attempts 2022-05-15 16:00:08 -04:00
DaneEveritt
e856daee19 Reject requests for public key auth when the user has no keys 2022-05-15 15:47:06 -04:00
DaneEveritt
12927a3202 Update SFTP authentication endpoint to support returning user public keys 2022-05-15 15:37:58 -04:00
DaneEveritt
cca0010a00 Update egg import/update logic to all use the same pathwaus 2022-05-15 14:40:19 -04:00
DaneEveritt
6554164252 Add test coverage for the SSH key endpoints 2022-05-14 18:08:48 -04:00
DaneEveritt
97280a62a2 Add support for storing SSH keys on user accounts 2022-05-14 17:31:53 -04:00
DaneEveritt
5705d7dbdd Run php-cs-fixer 2022-05-14 16:03:50 -04:00
DaneEveritt
65f27d41a2 Switch to more recent Laravel route definition methods 2022-05-14 15:51:05 -04:00
DaneEveritt
62b178ed02 Show network usage on the server console view 2022-05-13 23:00:59 -04:00
DaneEveritt
8791d681bc Fix server image selection not... existing 2022-05-13 22:09:20 -04:00
DaneEveritt
3e1f70570b Update CHANGELOG.md 2022-05-13 21:54:24 -04:00
DaneEveritt
97a7959096 Support outputting all of the nodes on the instance 2022-05-13 21:49:06 -04:00
DaneEveritt
3f47d7a12c Allow returning the node configuration from the CLI; closes pterodactyl/panel#4047 2022-05-13 21:30:16 -04:00
DaneEveritt
100d4ee726 Remove more unnecessary translations 2022-05-12 17:53:29 -04:00
Alex
0e3e14aa93 fix: artisan translations (#4069) 2022-05-08 11:28:17 -04:00
DaneEveritt
44bb8b4abf Fix bad config for PHP 8.1 2022-05-07 18:33:41 -04:00
DaneEveritt
a6df0afefd Update CHANGELOG.md 2022-05-07 18:30:12 -04:00
DaneEveritt
6d5ca5a811 Update java version modal to only suggest allowed images 2022-05-07 18:18:14 -04:00
DaneEveritt
c8faf64059 Support naming docker images on eggs; closes #4052
Bumps PTDL_v1 export images to PTDL_v2, updates the Minecraft specific eggs to use named images.
2022-05-07 17:45:22 -04:00
DaneEveritt
53207abcb3 Add base model layout from V2 for frontend 2022-05-07 16:52:58 -04:00
DaneEveritt
634b80ed42 Add support for filtering allocations to determine if they're assigned or not; closes #3872 2022-05-07 16:16:11 -04:00
DaneEveritt
1ae98604a4 Mark the 2FA field as a one-time-password field for autocomplete; closes #4038 2022-05-07 15:25:50 -04:00
DaneEveritt
e88d24e0db Don't allow allocations to be deleted by users if no limit is defined; closes #3703 2022-05-07 15:05:28 -04:00
DaneEveritt
c751ce7f44 Allow more values for remote field when creating a database; closes #3842 2022-05-07 14:17:10 -04:00
DaneEveritt
b07fdc100c Don't run schedules when a server is suspended or installing; closes #4008 2022-05-04 20:41:53 -04:00
DaneEveritt
ab37ee8633 Remove dusk tests, they're not used 2022-05-04 20:41:32 -04:00
DaneEveritt
66da520e11 Simplify testing process for integration tests, don't require second connection 2022-05-04 20:41:04 -04:00
DaneEveritt
8c63eebf13 Fix fractal errors 2022-05-04 19:35:10 -04:00
DaneEveritt
530558b0f8 Update deprecated JSON response creation and unnecessary middleware 2022-05-04 19:23:01 -04:00
DaneEveritt
f5ad9b9e11 Replace debug bar with clockwork 2022-05-04 19:19:00 -04:00
DaneEveritt
4252014d18 Update includes definition to match updated package requirements 2022-05-04 19:11:42 -04:00
DaneEveritt
34ffaebd3e Run cs-fix, ensure we only install dependency versions supporting 7.4+ 2022-05-04 19:01:29 -04:00
DaneEveritt
3e55a79439 Don't default to redis on the first runs, causes errors when trying to setup environment 2022-05-04 17:48:09 -04:00
DaneEveritt
21685d6fc6 Update composer dependencies 2022-05-04 17:46:15 -04:00
Jelco
af4616ccf2 Add cron cheatsheet (#3866) 2022-03-28 12:43:45 -07:00
Jim C K Flaten
2680fe4c8e Feature/task order (#3807) 2022-03-28 12:31:35 -07:00
FabianS
82818414a3 Ability to create nodes with artisan (#3319) 2022-03-28 12:28:16 -07:00
Георгий Пронюк
281256e17c Grant all necessary permissions to generated SQL users (#3800)
* grant all necessary permissions to users

* fix CREATE TEMPORARY TABLES

Co-authored-by: A248 <theanandbeh@gmail.com>

Co-authored-by: A248 <theanandbeh@gmail.com>
Co-authored-by: Matthew Penner <me@matthewp.io>
2022-03-28 12:22:37 -07:00
Mrxbox98
a9ebf5b883 Added build workflow (#3963) 2022-03-28 12:13:27 -07:00
Alex
695c2647c8 fix(paper): fetching older versions (#3998)
Limit the results to a single match to prevent results such as "true true true" since the current version check expects only a single match
2022-03-28 12:12:21 -07:00
root
14cc98f75f Tempest Hosting added (#4007) 2022-03-28 10:25:40 -07:00
Dane Everitt
61d6fa3168 Update contribution guidelines to clarify what types of PRs will be accepted 2022-02-20 10:59:58 -05:00
Dane Everitt
a071676be4 Update webpack HMR for new dev environment 2022-02-12 13:18:08 -05:00
Dane Everitt
0bd182c2a7 Lower the default guzzle timeouts; ref pterodactyl/panel#3936 2022-02-05 12:33:54 -05:00
Alex
5120590e47 ref: remove google analytics (#3912) 2022-02-05 09:08:43 -08:00
Mrxbox98
0ff60d83eb Fix incorrect alignment on 2FA boxes due to incorrect TW breakpoints (#3914) 2022-02-05 09:08:11 -08:00
Alex
5c229d60e3 feat(tf2): add GSLT variable (#3927)
Add GSLT variable similar to CS:GO.
2022-02-05 09:05:47 -08:00
Alex
edfd97e0b4 feat(pid_limit): expand list of errors for pid_limit feature (#3942)
Expands the list of errors for pid_limit egg feature to support Steam PID errors and re-organize the list to be prettier
2022-02-05 09:05:36 -08:00
Alex
05bdffcd61 ref: set redis as default option for env drivers setup (#3915)
Redis is the recommended value yet the default options are different, e.g cache being file.
2022-02-05 09:05:18 -08:00
Dane Everitt
8dee69e78f Add fields for game and image details 2022-01-30 09:04:54 -08:00
Alex
7866c19007 feat(docker): automated certificate renewal with certbot (#3916)
* feat(docker): automated certificate renewal with certbot

Executes cron on the first day of every month at 23:00 to reduce the load on LE when everyone else is doing it at 00. Certificate that expires in less than 30 days will be renewed.

closes #3907
2022-01-28 08:32:33 -08:00
Dane Everitt
0a4ba6a7dc Force https on URLs when behind proxy; closes #3623 2022-01-23 12:58:44 -05:00
Dane Everitt
60b82343b2 Update SECURITY.md 2022-01-19 18:10:51 -08:00
Dane Everitt
dfa329ddf2 [security] ensure session is only for that request when authenticating user API key
https://github.com/pterodactyl/panel/security/advisories/GHSA-7v3x-h7r2-34jv
2022-01-19 21:09:17 -05:00
Mrxbox98
21f74a835c Fixed error (#3870) 2022-01-19 17:06:31 -08:00
Dane Everitt
ee870d45e8 Update CHANGELOG.md 2022-01-19 19:55:33 -05:00
Alex
0ff2f28ced feat(egg): Add Steam out of disk space modal (#3891) 2022-01-18 13:00:10 -07:00
Mrxbox98
1f3217c3c5 fix(server/files): duplicate entry when making a nested folder (#3813) 2022-01-18 12:49:06 -07:00
Alex
5f308feb3f feat(model/pid): lowercase error array element (#3892) 2022-01-18 12:34:44 -07:00
Alex
e881285ef1 ci(release): add ESLint config (#3747) 2022-01-17 20:17:13 -07:00
Wuzado
99ebd2e75c Add the DB_PORT environmental variable to the example Docker Compose config (#3796) 2022-01-17 20:12:14 -07:00
Boy132
7d0d71baec Checkbox & Dropdown for Startup Variables (#3769) 2022-01-17 20:08:53 -07:00
Paperboypaddy16
e7884e4f0b Fixed link for docker-compose.yml under Setup (#3829) 2022-01-17 20:05:04 -07:00
Charles Morgan
aed9f85bce Add PID Modal (#3845) 2022-01-17 20:02:10 -07:00
Matthew Penner
1eaf411cb4 node: lowercase fqdn in letsencrypt path (#3890) 2022-01-17 19:56:57 -07:00
Alex
28f7a809a5 fix: exception localization (#3850)
resolves #3849
2022-01-15 08:10:37 -08:00
Wuzado
49dd719117 fix(docker): handle cases where DB_PORT is not defined (#3808)
Co-authored-by: Alex <admin@softwarenoob.com>
2022-01-15 08:10:19 -08:00
Paul Vogel
04656f8da8 Fix anchor in link to docker docs (#3793)
The former version does not "scroll" to the section
2022-01-15 08:10:01 -08:00
Jelco
95ff5f88c3 update required versions (#3881) 2022-01-12 13:53:36 -08:00
Dane Everitt
f2e92d80ac Adjust copyright in footer to be more consistent 2022-01-02 07:25:07 -08:00
Dane Everitt
a6a9b31278 Avoid having to update the license each year 2022-01-02 07:21:56 -08:00
Dane Everitt
4dc6121e5c Update README.md 2022-01-02 07:19:16 -08:00
SirEpiclyAmazing
e771d36d41 Disallow crawlers (#3832) 2021-12-28 08:02:08 -05:00
Boy132
1d02365efe Fix eslint warnings (#3814) 2021-12-19 09:50:18 -08:00
wingdings255
1564742606 Update egg-ark--survival-evolved.json (#3809) 2021-12-19 09:44:32 -08:00
Mrxbox98
66c56b0da8 CPU Graph change (#3804) 2021-12-12 10:19:06 -08:00
Mrxbox98
15619fb8e4 Fixes overlapping Two Factor Authentication Box (#3803) 2021-12-12 10:15:44 -08:00
Alex
4e6fe112b0 fix(forge): actually fix forge regex (#3801)
For whatever reason, stupid me rebased the wrong branch in previous PR #3783 and didn't notice it, which contained the old egg instead.

This one actually fixes the regex and includes more debugging steps for easier troubleshooting.

Easy to view diff: <https://www.diffchecker.com/3iJ9lVzH>
2021-12-12 10:14:25 -08:00
Mrxbox98
f04b87a37c FireFox Font Fix (#3805) 2021-12-12 10:14:09 -08:00
hz-ad
928b060647 Include HostEZ in sponsors list (#3788)
Update to append HostEZ to the sponsors list
2021-12-06 11:00:29 -08:00
Alex
b8bf537737 cmd(setup): validate email input, closes #3175 (#3716) 2021-12-04 10:52:09 -08:00
Charles Morgan
0d5ff6afac Add Pug / Jade to file editor, closes #3512 (#3514) 2021-12-04 10:51:52 -08:00
Alex
5cde059f21 docs(docker): display correct variable for certificates (#3723)
Docker image and compose file uses `LE_EMAIL` and not `LETSENCRYPT_EMAIL`

Co-authored-by: Matthew Penner <me@matthewp.io>
2021-12-04 10:51:15 -08:00
Alex
0db772a82b eggs: update source install script (#3604)
Installing basic packages are unnecessary as they already exist in yolks installer image. This also gets rid of Debian 10 lib32gcc package not being found, since installer image is Debian 11.
2021-12-04 10:50:50 -08:00
Paul Vogel
dcbc1360a9 Improve test coverage for LocationController (#3779)
By adding tests for create, update, delete
2021-12-04 10:50:36 -08:00
Patrick R
622b939f00 Show ipv6 with correct in-url syntax (#3776) 2021-12-04 10:35:55 -08:00
Lukas Moucka
e8e2911a92 Change order of docker images in JavaVersionModalFeature (#3782)
This changes the order of the Docker images in JavaVersionModalFeature, and also sets the default state to Java 17. Previously it was Java 16, even though the first entry in the list was Java 8, that confused a lot of people
2021-12-04 10:35:39 -08:00
Boy132
96c3338e96 Add the MC 1.18 message to Java Version Modal (#3778) 2021-12-04 10:35:20 -08:00
Alex
49d5ef271d ARM64 support for the Panel Docker image, closes #3580 (#3709)
Co-authored-by: Dane Everitt <dane@daneeveritt.com>
2021-12-04 10:33:42 -08:00
Boy132
4cc8658334 GSL Token Modal Feature (#3746) 2021-12-04 10:29:24 -08:00
Yusta
a6e0e5dbda Add app_url for mail sender (#3753)
Co-authored-by: Dane Everitt <dane@daneeveritt.com>
2021-12-04 10:26:00 -08:00
Desjardins Jérôme
10aaf00e83 use DB_PORT for mysql database connection (#3762)
DB_PORT is the env variable defined for the mysql port into Panel Configuration.
2021-12-04 10:25:02 -08:00
Paul Vogel
b9d73afb63 Fix typo in messsage when deleting a database (#3777) 2021-12-04 10:24:06 -08:00
Alex
59d47e746b fix: Forge version regex for 1.17+ JPMS (#3783)
For 1.17 JPMS arguments, fix regex to match`^1\.(17|18|19|20|21|22|23)` or latest instead of only dot . minor versions, which is something I didn't notice in a previous PR. This should future proof it.

Changes Java image display order defaulting to 17, which the 1.17+ requires for unix args.
2021-12-04 10:23:37 -08:00
Alex
01e7a45cc5 fix(eggs): Forge latest version fetching (#3770)
Fixes a typo in fetching the latest versions. It was overwritten to "recommended" by mistake.

Easy to read diff: <https://www.diffchecker.com/U04gJTRu>
2021-11-29 10:14:08 -08:00
Dane Everitt
30bb629bad Update CHANGELOG.md 2021-11-16 20:36:53 -08:00
Dane Everitt
bf9cbe2c6d Add consistent CSRF token verification to API endpoints; address security concern with non-CSRF protected endpoints 2021-11-16 20:02:18 -08:00
Matthew Penner
cc31a0a6d0 tests(integration): don't expect non-required fields 2021-11-15 11:29:22 -07:00
Alex
01871d8a6c add Java 17 LTS image to Minecraft eggs (#3744)
* feat: add Java 17 LTS for Minecraft

* feat: add java 17 option to java modal
2021-11-15 08:15:27 -08:00
Dane Everitt
17c03e9a4d Fix broken session management for application api 2021-11-03 21:33:21 -07:00
Dane Everitt
e8a8405899 Remove tests 2021-11-03 21:22:14 -07:00
Dane Everitt
60eff40a0c Fix session management on client API requests; closes #3727
Versions of Pterodactyl prior to 1.6.3 used a different throttle pathway for
requests. That pathway found the current request user before continuing on to
other in-app middleware, thus the user was available downstream.

Changes introduced in 1.6.3 changed the throttler logic, therefore removing this
step. As a result, the client API could not always get the currently authenticated
user when cookies were used (aka, requests from the Panel UI, and not API directly).

This change corrects the logic to get the session setup correctly before falling
through to authenticating as a user using the API key. If a cookie is present and a
user is found as a result that session will be used. If an API key is provided it is
ignored when a cookie is also present.

In order to keep the API stateless any session created for an API request stemming
from an API key will have the associated session deleted at the end of the request,
and the 'Set-Cookies' header will be stripped from the response.
2021-11-03 20:51:39 -07:00
Alex
d0663dcbd4 fix: use POST for admin logout route (#3710)
Quick fix for logging out from the admin panel as the auth route was changed from GET to POST.
2021-10-30 13:27:59 -07:00
Alex
4dca4f0aa9 change display format of the container uptime (#3706)
* change display format of the container uptime

Display `day, hour, min` if days is more than 0, otherwise default to existing `hour, min, sec`. Removes pads to make it more clean in this new format.

* clean the return
2021-10-24 14:41:01 -07:00
Samuel Ryberg
c4ab318d5a Update docker-compose.example.yml (#3707) 2021-10-24 10:21:58 -07:00
Alex
ef4410bac6 expose uptime to client resources API endpoint (#3705)
resolves #3704
2021-10-24 10:12:17 -07:00
Anders G. Jørgensen
72680fc954 Don't force enable-query (#3700)
But make sure the query.port is set correctly, if query is enabled.
2021-10-23 13:11:45 -07:00
Dane Everitt
d65e2978d0 Update CHANGELOG.md 2021-10-23 13:02:25 -07:00
Dane Everitt
45999ba4ee (security) use POST for logout rather than GET
see https://github.com/pterodactyl/panel/security/advisories/GHSA-m49f-hcxp-6hm6
2021-10-23 13:00:21 -07:00
Dane Everitt
22a8b2b3a2 Use more standardized rate limiting in Laravel; apply limits to auth routes 2021-10-23 12:17:16 -07:00
Alex
f77932a617 cmd(upgrade): Attempt to gain users attention during upgrade (#3678)
* cmd(upgrade):  Attempt to gain users attention during upgrade

Changes color of the user and group to gain attention, common issue is having wrong user/group which breaks the panel. Outputs termination message when users spam enter skipping the upgrade wondering why it didn't upgrade.

Reminder to update wings, because users forget it.

* cmd(upgrade): Display wings upgrade documentation link
2021-10-10 11:08:22 -07:00
Alex
c12f1463b0 eggs(forge): Add support for 1.17+ Forge (#3676)
Support new 1.17+ Forge JPMS arguments that don't ship any executable jar. It will use unix_args.txt file for 1.17+ when one exists, otherwise defaults to using the jar file

Fix forge latest build version option to actually use latest instead of recommended
Set build version input rules to only accept valid values of the latest and recommended
Remove spaces from the version variables to avoid issues with curl. Forge site displays versions with spaces to end users
2021-10-10 10:50:01 -07:00
Alex
5b6de4df6f eggs(rust): custom map url (#3625)
Introduces custom map URL variable. If none is provided, it will default to using normal map size and seed. Otherwise, it will use the custom map and remove map size/seed from the startup as required.
2021-10-09 10:31:47 -07:00
Waseem Hassan Shahid
8b236c6907 Fix SSL config docker (#3616)
* Don't copy default nginx config at build time

* Use http.d folder for nginx configs

* Add default config back

* Change the panel config name
2021-10-09 10:31:29 -07:00
Matthew Penner
4fa38b8e9c Fix wings receiving wrong suspended status on sync (#3667)
Due to wings pulling the server configuration rather than the Panel pushing it,
wings gets the wrong status for a server if both the status update and sync request
are ran in a transaction due to the status not being persisted in the database.

Fixes #3639
2021-10-07 08:46:09 -07:00
Cyra
de0d5c9b8a Updated CHS sponsor entry to use new domain (#3659)
Updated CHS sponsor entry to use new domain
Updated from captiolsolutions.cloud to chs.gg
2021-10-04 08:23:10 -07:00
Dane Everitt
81ba333270 If uptime is present in stats output, display it for the server; closes #3653 2021-10-03 12:59:44 -07:00
Dane Everitt
63e01f9aee Update SECURITY.md 2021-10-02 08:21:04 -07:00
Dane Everitt
c57eb2c9e6 Update CHANGELOG.md 2021-09-21 21:36:29 -07:00
Dane Everitt
4a84c36009 Fix security vulnerability when authenticating a two-factor authentication token for a user
See associated security advisory for technical details on the content of this security fix.

GHSA ID: GHSA-5vfx-8w6m-h3v4
2021-09-21 21:30:08 -07:00
Dane Everitt
5fdb0a5909 Correctly expose OOM disable state for a server 2021-09-13 21:02:12 -07:00
Dane Everitt
f5a1ce13b8 Update CHANGELOG.md 2021-09-13 20:47:30 -07:00
Matthew Penner
bc25468802 server: fix build modification not being persisted (#3610) 2021-09-12 23:18:17 -06:00
Dane Everitt
dbb061d6f3 Update CHANGELOG.md 2021-09-12 11:26:37 -07:00
Dane Everitt
8f0eda21c5 Fix all screens on the panel unintentionally loading the root directory for a server 2021-09-11 14:17:20 -07:00
Dane Everitt
52588beeb0 Fix state management of overrides not properly resetting loader; closes #3429 2021-09-11 13:24:57 -07:00
Dane Everitt
7b429831ce Fix missing user agent headers to store an empty string rather than null value 2021-09-11 13:00:53 -07:00
Boy132
5e5d7d6689 Update egg-garrys-mod.json (#3606)
Co-authored-by: Dane Everitt <dane@daneeveritt.com>
2021-09-11 12:20:15 -07:00
Matthew Penner
4d7140bd3b actions(tests): backport v2 workflow (#3558)
Co-authored-by: Dane Everitt <dane@daneeveritt.com>
2021-09-11 12:20:04 -07:00
Dane Everitt
0b521c011f Fix test workflow matrix for databases 2021-09-11 12:13:15 -07:00
Dane Everitt
db74b0024d Merge branch 'develop' of github.com:pterodactyl/panel into develop 2021-09-11 12:02:24 -07:00
Dane Everitt
fde0660e6c Return tests to passing state 2021-09-11 12:02:15 -07:00
Alex
a775f3ccf2 egg(ark): Fix inverted OR operation (#3605) 2021-09-11 11:45:48 -07:00
Dane Everitt
e96ead4c4d Update API calls to Wings to only pass the required details with the changes to the installer system 2021-08-29 14:09:43 -07:00
Dane Everitt
869bc22103 Update CHANGELOG.md 2021-08-29 13:42:49 -07:00
Dane Everitt
2d47f986ee Replace calls to server patch with a manual sync method 2021-08-29 13:32:55 -07:00
Dane Everitt
d8d1eacb42 Don't require Wings API call to pass in order to update server details 2021-08-29 13:19:24 -07:00
Matthew Penner
7330a747b7 migrations: add foreign keys for mount relations (#3574) 2021-08-24 13:12:35 -06:00
Josh Miles
bd271e2e62 Consistency in Java version modal (#3569) 2021-08-24 12:42:58 -06:00
Alex
e1a667aaaf Disable blank issues (#3566) 2021-08-24 11:35:30 -06:00
Omar Kamel
b67aceb685 Add environment variable for per_schedule_task_limit (#3557)
The environment variable `PTERODACTYL_PER_SCHEDULE_TASK_LIMIT` can be used to change the maximum number of tasks per schedule.
2021-08-20 11:07:05 -06:00
Matthew Penner
b4cae916ac transfers: fix allocation array merging logic (#3551) 2021-08-18 12:58:41 -06:00
Alex
b94d69bbab Introduce OOM Killer to Server Creation (#3548) 2021-08-18 12:32:45 -06:00
Cam White
5d41ac09fd Grammatical fix on SetupTwoFactorModal (#3549) 2021-08-18 11:48:06 -06:00
Dane Everitt
ddf43bb4c5 Update README.md 2021-08-15 18:32:40 -07:00
Dane Everitt
2b3303c46b Fix changing a user password to not incorrectly handle logging out old sessions; closes #3531 2021-08-15 17:37:12 -07:00
Dane Everitt
25d9ba4779 Run php-cs-fixer 2021-08-15 17:20:36 -07:00
Dane Everitt
d1199e59e6 Fix php-cs-fixer inspection in phpstorm 2021-08-15 17:15:05 -07:00
Dane Everitt
22f1341fea reformat 2021-08-07 09:19:21 -07:00
Dane Everitt
75e0a862e7 Add another sanity check for websocket permissions 2021-08-07 09:16:29 -07:00
Dane Everitt
9bffa6a94c Ignore files from V2 as well 2021-08-07 08:46:30 -07:00
Matthew Penner
10b357b71e ui(server): fix used backup count (#3526)
* ui(server): fix used backup count

* ui(server): refactor backup count code
2021-08-04 20:34:00 -07:00
Matthew Penner
7e91a33a67 Update CHANGELOG.md (#3524) 2021-08-03 20:51:18 -07:00
Matthew Penner
49c24b9c4c Merge pull request #3523 from parkervcp/fix_dockerfile
fix ghcr builds
2021-08-03 21:37:23 -06:00
Michael Parker
94fd987400 fix ghcr builds
Fix nginx conf file location
Fix php-fpm conf file location
2021-08-03 23:33:25 -04:00
Charles Morgan
0074c84001 Add javaversion to java eggs. (#3518)
Co-authored-by: Matthew Penner <me@matthewp.io>
2021-08-03 20:11:45 -07:00
Matthew Penner
81c788f524 cmd(upgrade): fix force and seed flags being ignored (#3519) 2021-08-03 19:48:34 -07:00
Matthew Penner
1c071b05aa ui: fix spinner z-index (#3520) 2021-08-03 19:46:00 -07:00
Matthew Penner
970f281859 backups: default is_successful to false (#3522)
* backups: default is_successful to false
* backups: properly query backups
2021-08-03 19:45:25 -07:00
Dane Everitt
b19a1640f0 Update CHANGELOG.md 2021-08-02 20:48:16 -07:00
Dane Everitt
4960bc7eec Merge branch 'develop' of github.com:pterodactyl/panel into develop 2021-08-02 20:45:04 -07:00
Matthew Hugley
cfb5b8c244 Updated formatting for the docker compose file to fix a error. (#3421)
This fixes the error message "There is an error in the yaml syntax: YAMLSemanticError: Map keys must be unique; "<<" is repeated" which is received if trying to deploy the docker compose using portainer it will not even allow you to click the button because of the formatting error. This is a page showing a example of what I did "http://yaml.org/type/merge.html" Instead of 2 merge requests docker/portainer only allows 1 merge request in this situation so they had to be combined into 1 line instead of 2.
2021-08-02 20:44:55 -07:00
Mia
bda1ff50ab [UI] Display the 2FA token, show spinner on load (#3367)
Co-authored-by: Dane Everitt <dane@daneeveritt.com>
2021-08-02 20:39:12 -07:00
Charles Morgan
924f00ac9a Java Docker image updater feature (#3430)
Co-Authored-By: Lance Pioch <me@lance.sh>
2021-08-02 20:32:10 -07:00
Linux123123
9c64fb29a4 Fix ScheduleEdit page not working directly by url (#3477) 2021-08-02 20:07:39 -07:00
Triassic
e8746feb97 Fix a typo in DisableTwoFactorModal.tsx (#3507) 2021-08-02 20:07:26 -07:00
VibeGAMESNL
208a547a2a Adding VibeGAMES as a sponsor (#3504) 2021-08-02 20:06:33 -07:00
Faye
a78404fdbe Update SECURITY.md (#3483) 2021-08-02 20:05:27 -07:00
Alex
556deedcc1 fix: enable editing paper and spongeforge version variable input (#3509)
Changes the paper and spongeforge version variable to be editable by users on the client view. There is no reason to have it as read-only. Other eggs have this value as editable
2021-08-02 20:04:23 -07:00
Alex
ba18f7d3c6 Update Ark Survival Evolved Egg (#3513)
Updates Ark Survival Evolved egg to fix some common issues and requests.

RCON Password is required for RCON to function and has been changed from nullable to required.

The option to disable RCON is removed because RCON is required.

Added additional arguments variable to resolve users' issues inserting them in the wrong place due to the complicated startup parameters.

Removed deprecated userInteraction and logslocation from the egg.
2021-08-02 20:04:13 -07:00
Alex
2bbe58e8ec fix: paper server jar input rule (#3494)
Changes Paper egg server jar variable input rule to match the other Minecraft eggs. Matches `a-zA-Z0-9_` and `.jar` at the end instead of hard-coded length value of 20.

Fixes #3492
2021-07-24 10:14:51 -07:00
Alex
e1d2a931b6 style(templates): Default title tag for issue templates (#3488) 2021-07-23 14:36:48 -07:00
Matthew Penner
1a79b4827c backups: allow updating a failed backup (#3470) 2021-07-18 08:46:20 -07:00
Dane Everitt
4a4af7deb7 Update bug report and feature request templates 2021-07-17 10:26:06 -07:00
Foks
0b6236aa2a Convert from Markdown to Issues Forms (#3457) 2021-07-17 10:04:27 -07:00
Charles Morgan
c54ce995a5 Remove userInteraction from 'config_startup' (#3465)
Removes UserInteraction from existing eggs in the panel, as its no longer supported.
2021-07-17 10:02:58 -07:00
Linux123123
2c2c35303a Fix backup dropdown permissions (#3469) 2021-07-17 10:02:37 -07:00
ClumsyAdmin
57987c0f79 Update Allocation.php (#3468)
Max port typo
2021-07-17 10:02:15 -07:00
Charles Morgan
91ea0a4f41 Update core eggs to new docker yolk images (#3382) 2021-07-17 10:02:00 -07:00
Leystryku
298e985d74 Permission for referencing other tables (foreign keys) (#3419) 2021-07-17 10:01:37 -07:00
Matthew Penner
801cb8e487 config: add ssl/tls options for mysql and redis (#3464) 2021-07-17 10:01:23 -07:00
Dane Everitt
682ca6cecd Merge branch 'develop' of github.com:pterodactyl/panel into develop 2021-07-11 12:15:42 -07:00
Dane Everitt
d3e3b1db38 Test that a deleted backup makes an audit log entry 2021-07-11 12:15:39 -07:00
Alex
ca2269fea1 Fix z-index of the mass delete modal (#3463)
Fixes the order of mass confirmation modal to correctly be displayed prominently on top of all elements
2021-07-11 11:27:52 -07:00
Matthew Penner
d33522c857 composer: upgrade dependencies (#3427) 2021-07-11 10:27:15 -07:00
Matthew Penner
1260965dfd ServerCreationService: send 'start_on_completion' option to wings (#3431) 2021-07-04 15:15:19 -07:00
iamkubi
cc05b0886b Fix CPU tooltip on server create page (#3416)
CPU usage is based on threads, however the create server page incorrectly specifies physical cores in the help text.
Relocate a BlockIO blurb at the end of the CPU usage text which seems to be in the wrong place.
2021-06-19 12:10:02 -07:00
Dane Everitt
d049839ffc Fix deleting a backup that is locked and failed; closes #3404 2021-06-13 10:26:47 -07:00
Fabian
725fc82657 fix eslint issues (#3410) 2021-06-12 10:46:10 -07:00
Alex
76fb8d26c1 patch: steamapps hotfix for steamcmd downloads (#3406)
* patch: steamapps hotfix for steamcmd downloads

* include new ark gen2 dlc map
2021-06-11 16:11:07 -07:00
Dane Everitt
aa3ea8b24b Update CHANGELOG.md 2021-06-05 09:02:21 -07:00
Mark Ross
d45c67a6e1 Allow to find servers by short UUID (Application API) (#3340) 2021-06-05 08:43:57 -07:00
Alex
e33b1792b1 Show CPU limit next to CPU usage (#3307) 2021-06-05 08:40:48 -07:00
Jakob
647d2cbf92 add scroll down helper to console (#2951) 2021-06-05 08:39:36 -07:00
Lukas
75d254a6a4 Add support for mailgun API endpoint (#3364) 2021-06-05 08:38:47 -07:00
notil
b79d6e9e64 Minor UI fixes (#3366)
* Added same spacing as CPU graph to RAM graph
* Have the "New Database" button be on the right when on mobile
2021-06-05 08:38:24 -07:00
Charles Morgan
482293578a Update eslint to latest verstions (#3380)
Updated Eslint to v7.27.0
Also updated all the related plugins to their latest versions.

Removed `eslint-plugin-standard`, no longer required with `eslint-config-standard` v16+   https://github.com/standard/standard/issues/1316
2021-06-05 08:37:44 -07:00
Stephen White
8459b11019 Allow database users to create/alter/drop routines (#3389)
Database users may wish to create/alter/drop stored procedures on their databases in order to use extra MySQL functionality.
2021-06-05 08:37:10 -07:00
Jelco
b3a1825b56 Fix server delete swal (#3391) 2021-06-05 08:36:59 -07:00
Alex
9656378783 Fix 401 error typo (#3393) 2021-06-03 13:35:51 -07:00
Dane Everitt
2fd16f441d Fix component stack depth crashes due to looping setState 2021-05-29 10:58:24 -07:00
Matthew Penner
c5b6d0bf45 Fix query to avoid pruning actively running backups (#3379) 2021-05-27 15:33:43 -07:00
Dane Everitt
010ef8621b [security]: remove external dependency for loading QR codes for 2FA 2021-05-16 12:45:04 -07:00
Dane Everitt
1f64086c67 Merge branch 'develop' of github.com:pterodactyl/panel into develop 2021-05-16 12:35:52 -07:00
Dane Everitt
6b16b9bc2a Cleanup logic for asModal to make it a little easier to use dynamically 2021-05-16 12:35:49 -07:00
Charles Morgan
3898e40fa4 Add list of files being deleted to delete modal (#3299)
Shows the first 15 file names being deleted. If more then 15, the first 15 will be shown then the last line will be ` + ## other(s)`
2021-05-16 11:28:52 -07:00
Alex
bd5472e2e6 Update voice server eggs (#3333)
* Remove numeric input rule from mumble

* Delete unnecessary file removal line
2021-05-16 11:27:55 -07:00
Charles Morgan
69ac2ca40b Allow MAB div to be clicked through (#3359)
Allows users to interact with files that are blocked by the div that renders the MassActionbar
2021-05-16 09:49:21 -07:00
Antony
9c3c5f6f71 Fixed a very small minor issue (#3360) 2021-05-16 09:48:55 -07:00
Charles Morgan
76ac1998cf Don't allow backups to be made via schedules if limit = 0 (#3323) 2021-05-16 09:47:36 -07:00
Dane Everitt
5a82dd6a18 Update to TypeScript 4 2021-05-08 10:37:18 -07:00
aussieserverhosts
0cd1362b05 Added Aussie Server Hosts to sponsors list (#3336) 2021-05-07 08:18:13 -07:00
Dane Everitt
5d5e4ca7b1 Add support for locking backups to prevent any accidental deletions 2021-05-03 21:26:09 -07:00
Dane Everitt
5f48712c28 Add test coverage for RunTaskJob 2021-05-01 12:24:42 -07:00
Dane Everitt
8ab3ad3f1a Update CHANGELOG.md 2021-05-01 11:54:23 -07:00
Dane Everitt
7a85c31553 Add internal code support for stopping tasks if server is not running or continuing through on task error 2021-05-01 11:52:02 -07:00
Dane Everitt
84483d36ee Fix use of onlyWhenOnline 2021-05-01 11:25:35 -07:00
Dane Everitt
ea057cb1cb Update UI to support setting "Continue on Error" for tasks 2021-05-01 11:24:18 -07:00
Dane Everitt
92cd659db3 Add underlying data changes necessary for new task & schedule features 2021-05-01 10:44:40 -07:00
Dane Everitt
cf1ac04e39 Merge pull request #3279 from Boy132/patch-1
Add group input to upgrade command
2021-04-25 11:06:34 -07:00
Dane Everitt
fd8259f33d Merge branch 'develop' into patch-1 2021-04-25 11:06:29 -07:00
Dane Everitt
4bd1fea52c Merge pull request #3292 from JulienTant/develop
Make it possible to manually run disable schedule
2021-04-25 11:06:18 -07:00
Julien Tant
b10f6184e0 remove the test preventing disabled schedule to be manually executed 2021-04-24 18:30:48 -07:00
Julien Tant
f7f972b33d rename now variable & fix condition 2021-04-24 18:18:29 -07:00
Julien Tant
2cd64c0af4 Merge remote-tracking branch 'upstream/develop' into develop 2021-04-24 17:14:18 -07:00
Dane Everitt
d0c7e2c0e6 Update CHANGELOG.md 2021-04-24 16:45:54 -07:00
Dane Everitt
30344c1339 Merge branch 'develop' of github.com:pterodactyl/panel into develop 2021-04-24 16:39:59 -07:00
Dane Everitt
6ef60633d3 Additional coverage to ensure values are wrapped as expected; ref #3287 2021-04-24 16:39:56 -07:00
Dane Everitt
257f7a293a Merge branch 'develop' into patch-1 2021-04-24 16:13:20 -07:00
Julien Tant
552b9d3c33 Add possibility to run disabled cron 2021-04-24 15:06:21 -07:00
Dane Everitt
2fc288e53a Merge pull request #3285 from Software-Noob/patch-4
Update forge download URL to match the new maven host
2021-04-22 08:22:33 -07:00
Alex
3858ca0807 fix download url 2021-04-22 00:11:45 +03:00
Dane Everitt
38a5f2dbbf Ensure allocations are persisted across page navigation correctly; closes #2729 2021-04-20 20:48:40 -07:00
Dane Everitt
d2955b9361 Only request servers as an admin if actually an admin; closes #3242 2021-04-20 20:41:08 -07:00
Peter Marheine
db64f54010 Drop explicit transaction from store_node_tokens_as_encrypted_value (#3280)
Migrations are executed in transactions anyway, and creating a savepoint can cause
spurious failures on databases that don't support transactional DDL (like
MySQL and MariaDB) when it attempts to commit a savepoint that was silently
not created because there wasn't an active transaction after some DDL was
executed.

While a better solution might involve splitting this migration into several so each
one is only DDL or only data manipulation, I don't think that can be done very
easily while maintaining compatibility with existing deployments.

Fixes #3229.
2021-04-20 20:37:11 -07:00
Boy132
c56e699985 Separated user from group 2021-04-20 17:39:34 +02:00
Boy132
2f6351ec00 Small fix 2021-04-20 10:08:21 +02:00
Boy132
3ca835e661 Add group input to upgrade command 2021-04-20 10:06:19 +02:00
Charles Morgan
b0995f6458 Update ---bug-report.md (#3272)
Spelling correction, Removed code block as they're useless...
2021-04-18 10:47:12 -07:00
Charles Morgan
2d97b51628 Update issue template (#3271)
Daemon was replaced with Wings, template updated to reflect that, Also askes for logs as they can be helpful, and reduce the amount of times we have to ask and wait for a reply.
2021-04-17 15:57:37 -07:00
Alex
38be4c9e4b More descriptive error for when backup limit is 0 (#3244) 2021-04-17 14:05:31 -07:00
aussieserverhosts
eb582f51f1 Added SERVER_NAME environment variable (#3110)
Added SERVER_NAME environment variable to stop laravel framework server name defaulting to localhost, causing mail relays such as Gmail to stop silently dropping emails due to sender name being localhost.
2021-04-17 12:18:13 -07:00
Dane Everitt
1e2f6495be Merge pull request #3226 from KaiDevrim/patch-1
Change relative docker compose to absolute path docker-compose
2021-04-17 12:16:57 -07:00
Dane Everitt
2ea5fc2e84 Merge pull request #3220 from Software-Noob/patch-2
Increase Rust server name length
2021-04-17 12:16:42 -07:00
Dane Everitt
7af08b1a39 Merge pull request #3243 from wingdings255/patch-1
Update egg-ark--survival-evolved.json
2021-04-17 12:16:33 -07:00
Dane Everitt
af3fb14254 Merge pull request #3256 from pterodactyl/lancepioch-patch-1
Change to actual function names to support MariaDB
2021-04-17 12:16:03 -07:00
Dane Everitt
ea7b0a1a67 Merge branch 'develop' into lancepioch-patch-1 2021-04-17 12:12:10 -07:00
Dane Everitt
e2e62b2dae Update tests.yml 2021-04-17 12:12:04 -07:00
Dane Everitt
a139fbfc8d Merge branch 'develop' into lancepioch-patch-1 2021-04-17 12:10:55 -07:00
Dane Everitt
1ebcb2b7fb Run tests on both MariaDB & MySQL 2021-04-17 12:10:40 -07:00
Dane Everitt
13919df603 Merge branch 'develop' into lancepioch-patch-1 2021-04-17 12:02:19 -07:00
Dane Everitt
f5ca391400 Get tests back in working order 2021-04-17 12:02:08 -07:00
Lance Pioch
77a3ca682f Change to actual function names to support MariaDB 2021-04-08 17:34:25 -04:00
Dane Everitt
f973285e04 Guard against unexpected panic conditions from wings 2021-04-04 10:45:33 -07:00
Dane Everitt
18e5ce310a Use updated response from wings 2021-04-04 10:25:54 -07:00
Dane Everitt
52308af74d Normalize this code. 2021-04-04 09:45:20 -07:00
Dane Everitt
c71c1e57db Update README.md 2021-04-03 11:18:16 -07:00
Dane Everitt
45680cab47 Don't use tagging, closes #3224 2021-04-03 10:53:41 -07:00
wingdings255
acc4395b53 Merge branch 'develop' into patch-1 2021-04-03 07:22:26 +00:00
Dane Everitt
a7b60c0f52 Merge pull request #3245 from harryfrommixmlhosting/patch-2 2021-04-02 18:18:30 -07:00
harryfrommixmlhosting
6034440061 Update README.md 2021-04-03 02:17:25 +01:00
Dane Everitt
da7e0705ba Merge pull request #3225 from MineDoubleSpace/add-bisecthosting 2021-04-02 18:12:42 -07:00
Dane Everitt
5b84372843 Merge branch 'develop' into add-bisecthosting 2021-04-02 18:12:39 -07:00
wingdings255
95f26bd0c4 Update egg-ark--survival-evolved.json
Updated the list of available ark maps to include the new CrystalIsles map
2021-04-01 20:19:23 +00:00
Dane Everitt
fa471c1a69 Merge pull request #3230 from tari/docker-errexit
docker: set errexit in the entrypoint script
2021-03-29 08:21:27 -07:00
Peter Marheine
9e4286a548 docker: set errexit in the entrypoint script
Currently container startup will ignore any errors, which will tend
to leave things in a broken state if operations like migrations or
certificate provisioning fail. Prefer to terminate the container
rather than try to limp on.
2021-03-28 12:38:25 +11:00
Kai Devrim
58d31fdd4a Change relative docker compose to absolute path docker-compose
The old version was relative and led to a 404 because the compose file is in /panel.
2021-03-26 21:27:18 -07:00
MineDoubleSpace
fe8136de22 add BisectHosting to readme 2021-03-27 16:41:14 +13:00
Dane Everitt
9a5486c0aa Cleanup and improve build docs 2021-03-26 09:50:46 -07:00
Dane Everitt
a072b9c5be Update license year, right on time 👹 2021-03-26 09:30:13 -07:00
Dane Everitt
b5f5185a9b Update CHANGELOG.md 2021-03-26 09:18:54 -07:00
Dane Everitt
48ad8f538e Always allow specifying a page size with the API; closes #3218 2021-03-26 09:03:51 -07:00
Alex
06fe47fc3c increase short limit 2021-03-25 00:03:39 +02:00
Dane Everitt
9b46d59045 Cache resource lookup results for 20 seconds for each server 2021-03-21 12:29:18 -07:00
Dane Everitt
c7375f09d3 Maybe fix issue with docker logs? ref #3045 2021-03-21 12:11:40 -07:00
Dane Everitt
29b4b52397 Set the current page in the dashboard URL to allow easy refreshing; closes #2993 2021-03-21 12:07:24 -07:00
Dane Everitt
7676f7dd66 Allow modification of server build settings even when node is offline 2021-03-21 11:49:42 -07:00
Dane Everitt
28148f4845 Don't force enable bungeecord query port; closes #3175 2021-03-21 10:53:27 -07:00
Dane Everitt
aa0b7977bb Fix error spam in logs due to missing cron month 2021-03-21 10:49:23 -07:00
Dane Everitt
8c7d785c9e Ensure a created_at value is set on recovery tokens; closes #3163 2021-03-21 10:43:01 -07:00
Dane Everitt
983a337fd4 Merge branch 'develop' of github.com:pterodactyl/panel into develop 2021-03-21 10:33:17 -07:00
Dane Everitt
a7e1900529 Fix UI for mobile views when showing docker images; closes #3186 2021-03-21 10:33:09 -07:00
Dane Everitt
84e3153e71 Merge pull request #3179 from pterodactyl/fix/backup-restore
fix: backup restore delete all files
2021-03-21 10:22:10 -07:00
Dane Everitt
62c08d17fb Merge pull request #3204 from iAtomPlaza/develop
typo
2021-03-21 09:56:45 -07:00
Dane Everitt
14c5db0c0c Merge pull request #3201 from ssh-sysadmin/patch-1
Change ByteAnia's link to a tracker-enabled one.
2021-03-21 09:56:02 -07:00
Steve Coulter
0e3d2f20dd typo 2021-03-20 17:03:30 -07:00
Samuel L
d34e374ce0 Change ByteAnia's link to a tracker-enabled one. 2021-03-20 03:40:20 -04:00
Dane Everitt
0b7151a306 Merge pull request #3200 from martmists-gh/develop
Add a message for users to apply different versions
2021-03-19 15:55:49 -07:00
Martmists
6a664bc479 Add a message for users to apply different versions 2021-03-19 23:45:44 +01:00
Dane Everitt
942136cb35 Merge pull request #3195 from pterodactyl/fix/console-copy
ui(server): fix keybinds not working in console
2021-03-18 08:22:09 -07:00
Matthew Penner
9057a4f9d8 ui(server): fix keybinds not working in console 2021-03-17 16:59:06 -06:00
Dane Everitt
1b3d1a4540 Merge pull request #3190 from Software-Noob/patch-1
Fix forge universal jar renaming
2021-03-15 12:57:26 -07:00
Alex
3358bea09f Fix universal jar renaming 2021-03-15 18:07:30 +02:00
Matthew Penner
5653b03ddb cleanup BackupContextMenu.tsx 2021-03-12 15:40:45 -07:00
Matthew Penner
582521f419 fix: backup restore delete all files 2021-03-12 14:47:49 -07:00
Dane Everitt
c8c9c3d3cb Merge pull request #3162 from Software-Noob/tar-patch
Fix artisan upgrade failing to download
2021-03-08 10:10:52 -08:00
Alex
76f507656c remove file archive flag 2021-03-08 12:19:20 +02:00
Dane Everitt
9d500f1c49 Update CHANGELOG.md 2021-03-07 17:38:42 -08:00
Dane Everitt
1476104b30 Fix inability to download files from the panel; closes #3151
Co-Authored-By: xcgc <74693042+xcgc@users.noreply.github.com>
2021-03-07 09:45:27 -08:00
Dane Everitt
7e0efbdecd Merge pull request #3148 from mammut53/develop
Fix displaying wrong backup number on pages
2021-03-06 19:15:26 -08:00
mammut53
8dca2140b3 Fix displaying wrong backup number on pages
By having multiplie pages the current number of backups broke
2021-03-07 01:57:02 +01:00
Dane Everitt
0baa74a517 Fix rust not seeding 2021-03-06 12:29:40 -08:00
Dane Everitt
ca6068fa6d Update CHANGELOG.md 2021-03-06 10:49:08 -08:00
Dane Everitt
5fa06e5672 Merge pull request #3144 from Sabinno/develop
Fix grammar
2021-03-06 10:45:47 -08:00
Dane Everitt
37d48c9972 Merge pull request #3146 from xcgc/patch-1
Inform users when their server successfully installed. Fixes #3140
2021-03-06 10:45:23 -08:00
xcgc
397df3bf71 Update ServerInstallController.php 2021-03-06 15:52:24 +08:00
Sabinno
9ca0ee99e9 Fix spelling
Changed "other's", implying a single other person's server, to "others'", implying the servers of multiple people.
2021-03-05 12:39:47 -05:00
Dane Everitt
4192bcab4b Update CHANGELOG.md 2021-03-03 21:17:20 -08:00
Dane Everitt
766a8f3fe8 Merge branch 'develop' of https://github.com/pterodactyl/panel into develop 2021-03-03 21:04:17 -08:00
Dane Everitt
9aa74a3a50 appease the eslint gods 2021-03-03 21:04:11 -08:00
Dane Everitt
94ad018e50 Merge pull request #3132 from ssh-sysadmin/develop
Add ByteAnia to Sponsors list
2021-03-03 21:03:03 -08:00
Dane Everitt
2edae052d8 Merge pull request #3138 from Software-Noob/patch-3
Fix ark rcon startup
2021-03-03 21:02:54 -08:00
Dane Everitt
1943c7a98b Prevent catastrophic boot failure in wings when a server egg has bad data; closes #3055 2021-03-03 21:02:11 -08:00
Alex
0723e6e3c1 Fix ark rcon startup 2021-03-04 06:41:10 +02:00
Dane Everitt
19279644df Show more user friendly error when allocation fails to parse; closes #3056 2021-03-03 20:19:00 -08:00
Dane Everitt
9a10078008 Delete Vagrantfile 2021-03-03 20:18:24 -08:00
Dane Everitt
68bc81f2f1 Try to handle terminal fit a bit better; closes #3121
I'm not sure how to fix this actually, but based on the light reading I did theoretically this should at least prevent it from trying to fit something that doesn't even exist?
2021-03-03 19:44:06 -08:00
Dane Everitt
bc87a9cf7d Don't break the entire server UI for a broken console, ref #3121 2021-03-03 19:31:39 -08:00
Samuel L
d86bcb50af Update README.md 2021-03-02 07:14:35 -05:00
Dane Everitt
f58db890df Update SECURITY.md 2021-02-24 20:44:08 -08:00
Dane Everitt
7d0f299b30 Fix sftp port being signed int; closes #2992 2021-02-23 21:28:33 -08:00
Dane Everitt
1b2c4931ee Add endpoint logic necessary to reset server states if they get stuck installing/restoring when wings restarts 2021-02-23 21:20:02 -08:00
Dane Everitt
3b60004392 Merge pull request #3114 from Software-Noob/patch-2 2021-02-23 06:46:38 -08:00
Dane Everitt
25fe9c10e0 Merge branch 'develop' into patch-2 2021-02-23 06:46:21 -08:00
Dane Everitt
7f981e9ade Merge pull request #3119 from pterodactyl/revert-3116-patch-2
Revert "2021_02_23_161404_UpdateDaemonSftp.php"
2021-02-23 06:45:37 -08:00
Dane Everitt
717fbf30d2 Revert "2021_02_23_161404_UpdateDaemonSftp.php" 2021-02-23 06:45:21 -08:00
Dane Everitt
06108b560e Merge pull request #3116 from VinGal0/patch-2
2021_02_23_161404_UpdateDaemonSftp.php
2021-02-22 21:14:53 -08:00
VinGal
5328cfd760 2021_02_23_161404_UpdateDaemonSftp.php
Migration File for DaemonSFTP
2021-02-23 01:13:46 +00:00
Dane Everitt
ef76f3cdca Merge pull request #3112 from Software-Noob/patch-1
Change Rust RCON Password input rule
2021-02-22 11:30:48 -08:00
Alex
03a14338d0 update regex rule 2021-02-22 20:46:56 +02:00
Alex
e636f69113 Fix server.jar renaming 2021-02-22 17:09:46 +02:00
Alex
d0afb29ae8 Change input rule 2021-02-22 15:47:34 +02:00
Dane Everitt
42aae1d9f1 Fix search/copy on osx 2021-02-17 21:32:36 -08:00
Dane Everitt
b92712e990 Remove max height; fixes overflow issues with small browser font sizes; closes #2799 closes #3084 2021-02-17 21:26:40 -08:00
Dane Everitt
94ea9c37d0 Don't require auto-allocation settings if not enabled; closes #3085 2021-02-17 21:11:23 -08:00
Dane Everitt
245989967b Merge branch 'dane/restore-backups' into develop 2021-02-17 20:59:40 -08:00
Dane Everitt
3171b8d559 Show correct server suspended image; closes #3092 2021-02-17 20:58:47 -08:00
Dane Everitt
6cee1084d6 Merge pull request #3087 from TekExplorer/update/vanilla-snapshot
Add Latest Snapshot to Vanilla Egg
2021-02-14 16:05:35 -08:00
Dane Everitt
fc6f3271a0 Merge pull request #3089 from WaffleThief123/develop
Adding CHS to readme as well as some typos
2021-02-11 14:37:16 -08:00
Cyra Westmere
d67cd5f221 Minor grammatical change to Spillhosting.no 2021-02-11 13:44:35 -08:00
Cyra Westmere
c9ebbf161e Rewrote CHS after talking to the team. 2021-02-11 13:36:53 -08:00
Cyra Westmere
deaeb3fa99 Fixed a typo on Line 10 "in isolated Docker container" -> "in isolated
Docker conatiners"
Fixed a typo in SpillHosting's Company: "which aims to cheap services" ->
"which aims for cheap services"
Added CHS to sponsors
2021-02-11 13:29:33 -08:00
Omar Kamel
d644387a33 remove unecessary bit 2021-02-10 17:07:43 -05:00
TekExplorer
48adca2c00 Add Latest Snapshot to Vanilla Egg 2021-02-10 20:53:17 +00:00
Dane Everitt
9af1b9c3ac Merge pull request #3072 from pterodactyl/matthewpi/fix-server-installs
api(remote): fix inproper reading of boolean for installation status
2021-02-08 10:04:45 -08:00
Matthew Penner
352910f897 api(remote): fix inproper reading of boolean for installation status 2021-02-06 10:16:08 -07:00
Dane Everitt
00da092e45 Fix tests 2021-01-30 19:12:22 -08:00
Dane Everitt
2f08456ed9 Merge branch 'dane/restore-backups' into develop 2021-01-30 18:51:16 -08:00
Dane Everitt
c8ecbe6e79 Update logic to listen for a restoration completion event 2021-01-30 18:43:46 -08:00
Dane Everitt
f558bc880a Correctly handle error; don't overwrite laravel method 2021-01-30 18:07:48 -08:00
Dane Everitt
32fb21d0b7 Update use of server error blocks 2021-01-30 18:01:32 -08:00
Dane Everitt
e30a765071 Simplify logic when a server is in an unsupported state 2021-01-30 13:28:31 -08:00
Dane Everitt
be26921fcc Merge branch 'develop' into dane/restore-backups 2021-01-30 10:10:29 -08:00
Dane Everitt
8c2d1cdffc Merge pull request #3050 from pterodactyl/fix/release-building
actions(release): copy .babel-plugin-macrosrc.js to release archive
2021-01-28 21:10:49 -08:00
Matthew Penner
6c2dcbce9c actions(release): copy .babel-plugin-macrosrc.js to release archive 2021-01-28 16:47:37 -07:00
Dane Everitt
5515871b2f Turns out I hate that huge space formatting, disable that mess 2021-01-27 20:52:11 -08:00
Dane Everitt
0ae90eacaa Don't try to store null values in the DB for variables; closes #3038 2021-01-27 20:45:26 -08:00
YinScape
8e7fcb484c Update "not viable" message to be more informative (#2987) 2021-01-26 21:13:13 -08:00
Charles Morgan
b8db5bc8b0 Allow copy on click for SFTP information (#3027) 2021-01-26 21:10:30 -08:00
Dane Everitt
25f656116a Merge pull request #3031 from Software-Noob/patch/rust_egg
Rust+ app support
2021-01-26 21:10:12 -08:00
Dane Everitt
b00def2537 Switch to JSON from TEXT when storing denylist items for an egg; closes #3034 2021-01-26 21:08:53 -08:00
Dane Everitt
0dd0f09238 Formatting cleanup for backups 2021-01-25 19:25:15 -08:00
Dane Everitt
0a2c89e9f4 Reeformat with new rules post merge 2021-01-25 19:20:51 -08:00
Dane Everitt
663143de0b Merge branch 'develop' into dane/restore-backups 2021-01-25 19:16:40 -08:00
Softwarenoob
dc5cf9ced5 Rust+ app support 2021-01-25 08:03:24 +02:00
Dane Everitt
b7d1c45bcc Merge pull request #3028 from zKoz210/patch-6
Fixed tests
2021-01-24 10:16:30 -08:00
Oreo Oreoniv
09078bc1d2 Fixed tests 2021-01-24 13:12:40 +03:00
Dane Everitt
d838ddb006 Merge branch 'dane/self-update' into develop 2021-01-23 16:33:41 -08:00
Dane Everitt
bf2291357f Just stop people right there. 2021-01-23 16:32:43 -08:00
Dane Everitt
2a8d336336 Ensure slow commands have time to run 2021-01-23 16:29:18 -08:00
Dane Everitt
fd9245b2c5 Make sure we chown the files at the end of the process 2021-01-23 16:27:23 -08:00
Dane Everitt
db5c9b3675 Allow specification of a version 2021-01-23 16:12:13 -08:00
Dane Everitt
fb98b1892d Add simple logic to download and unpack the archive 2021-01-23 16:07:49 -08:00
Dane Everitt
6f3ea462a7 Add command to execute all of the normal upgrade commands for the application 2021-01-23 15:52:57 -08:00
Dane Everitt
fa9431c54d Slightly cleanup 2021-01-23 14:12:15 -08:00
Dane Everitt
07798b7366 Update file contents 2021-01-23 13:59:52 -08:00
Dane Everitt
b480a9e4e2 Make php-cs-fixer work in phpstorm 2021-01-23 13:44:35 -08:00
Dane Everitt
91cdf08489 Update .php_cs.dist 2021-01-23 13:37:07 -08:00
Dane Everitt
29e0bebc73 Allow composer to run in local environments even without DB 2021-01-23 13:27:20 -08:00
Dane Everitt
c449ca5155 Use more standardized phpcs 2021-01-23 12:33:34 -08:00
Dane Everitt
a043071e3c Update to Laravel 8
Co-authored-by: Matthew Penner <me@matthewp.io>
2021-01-23 12:12:54 -08:00
Dane Everitt
028921b42a Merge pull request #2985 from pterodactyl/fix/docker-build-version
Properly add the version to Docker builds
2021-01-20 21:33:51 -08:00
Dane Everitt
8df44b3280 Merge pull request #2997 from gOOvER/ts3-query-fix
Teamspeak 3 Egg - added queryport and use default query port
2021-01-20 21:33:29 -08:00
Dane Everitt
ef1989f38b Merge branch 'develop' into ts3-query-fix 2021-01-20 20:12:53 -08:00
Dane Everitt
aab353d91e Merge pull request #3011 from AreYouRlyScared/addcronmonth
Adds months for schedules
2021-01-20 20:10:26 -08:00
Dane Everitt
914ee65ded Don't use a persisted setting when switching users; ref #3021 2021-01-20 20:07:52 -08:00
Dane Everitt
3053a896f4 Update CHANGELOG.md 2021-01-19 21:45:32 -08:00
Dane Everitt
63f945bc3a Add test coverage to cehck the authorization state of client resources 2021-01-19 21:20:55 -08:00
Dane Everitt
e8dcd30e0c [security] fix resources not properly returning an error when they don't match the server in the URL
Prior to this fix certain resources were accessible even when their assigned server was not the same as the server in the URL. This causes the resource server relationship to not match the server variable present on the request.

Due to this failed logic it was possible for users to access resources they should not have been able to access otherwise for some areas of the panel.
2021-01-19 21:19:17 -08:00
Dane Everitt
eecd550c48 Make debugging test failures easier 2021-01-19 20:11:00 -08:00
Dane Everitt
f24193801a Add endpoint for triggering restoration completion 2021-01-18 21:14:49 -08:00
Dane Everitt
e700b4da78 Whoops, don't store the model until we've successfully completed the transaction internals 2021-01-18 20:14:38 -08:00
Dane Everitt
8d69a60e28 Only allow restoring valid backups, set the server correctly on the repository 2021-01-18 20:11:49 -08:00
Dane Everitt
575eab9072 Less obtuse error messaging, include the request ID in the output 2021-01-17 20:51:41 -08:00
Charles Morgan
f5a97d4399 Edit UI
Moves cron time display under title bar.
2021-01-17 23:18:00 -05:00
Dane Everitt
187df97590 Add UI for restoring backup checkpoint text 2021-01-17 18:25:13 -08:00
Dane Everitt
ddc4c8e54b Fix route def 2021-01-17 17:57:34 -08:00
Dane Everitt
87371901c0 Add base logic to support sending a request to restore a backup for a server 2021-01-17 17:51:09 -08:00
Dane Everitt
805952ac38 Update typescript bindings with new status field 2021-01-17 16:13:49 -08:00
Dane Everitt
8db3a05498 ;-; 2021-01-17 16:08:41 -08:00
Dane Everitt
b38b8f6465 Mark some fields as deprecated in the API 2021-01-17 16:02:11 -08:00
Dane Everitt
cb40b280a4 Fix single failing test 2021-01-17 15:55:46 -08:00
Dane Everitt
a75a347d65 Remove suspended & installing fields, replace with single status field 2021-01-17 15:51:56 -08:00
Dane Everitt
4c29be2e54 Adjust some naming real quick 2021-01-17 15:25:49 -08:00
Dane Everitt
bfc6f34c50 Audit when a backup is successful or fails 2021-01-17 15:22:02 -08:00
Dane Everitt
291c65275a Update audit design 2021-01-17 11:52:44 -08:00
Dane Everitt
ccecaa6694 Add basic auditing for filesystem actions
Specifically skipping read actions since there isn't much to say there, and it generally wouldn't be very helpful (plus, likely to generate lots of logs).
2021-01-17 11:46:08 -08:00
Dane Everitt
b15679d3bb Add base logic for audit logging 2021-01-17 10:49:36 -08:00
Charles Morgan
ffeedf17e4 Adds months for schedules
Adds month variable for schedules
2021-01-16 22:07:39 -05:00
Torsten Widmann
34f5625450 added queryport and use default 2021-01-12 15:45:49 +01:00
Dane Everitt
9684456480 Add a todo for later 2021-01-10 17:05:41 -08:00
Dane Everitt
239984f92c Add internal support for file denylist on eggs; closes #569 2021-01-10 17:02:14 -08:00
Dane Everitt
ff21d83e2d Add endpoint to get all nodes meeting memory & disk requirements for a server; closes #1012 2021-01-10 13:08:43 -08:00
Matthew Penner
d964e1dce1 Fix formatting of docker workflow 2021-01-07 17:03:29 -07:00
Matthew Penner
8f183e6101 Properly add the version to Docker builds 2021-01-07 16:51:37 -07:00
Dane Everitt
ef3f8586c5 Update CHANGELOG.md 2021-01-06 21:45:06 -08:00
Dane Everitt
77082fdd26 Merge pull request #2979 from zKoz210/patch-5
Remove aria-description
2021-01-06 19:41:45 -08:00
Oreo Oreoniv
4125248b1b Remove aria-description 2021-01-05 13:54:41 +03:00
Dane Everitt
7666aee1c7 Merge pull request #2956 from pterodactyl/fix/files-urlencoding
fix urlencoding in the file manager
2021-01-03 17:19:42 -08:00
Dane Everitt
b352c04685 Merge pull request #2957 from pterodactyl/fix/password-reset-mail
URL encode mail address in password reset link
2021-01-03 17:15:50 -08:00
Dane Everitt
53d1b307b6 Merge pull request #2955 from TekExplorer/update/eggs/image-selection
Add image selection for minecraft java eggs for java 8 & 11
2021-01-03 17:12:53 -08:00
Omar Kamel
61a04df469 prioritize java 11 for paper egg 2021-01-03 19:30:25 -05:00
Omar Kamel
c72ae436a9 missed an array 2021-01-03 19:28:29 -05:00
Dane Everitt
7813f17046 Merge pull request #2964 from AreYouRlyScared/Fixes
Update browsers list, linting & Changed page title
2021-01-03 16:23:12 -08:00
Dane Everitt
e8c2b2b464 Merge pull request #2954 from pterodactyl/fix/file-manager-transitions
use children in routes instead of component prop
2021-01-03 16:09:26 -08:00
Charles Morgan
3d627a70ce Lint + lock update
Updates the browsers list
Remove unused import
Changed the title of the users page from `Subusers` to just `Users`
2021-01-02 21:32:03 -05:00
Jakob Schrettenbrunner
44c668e208 url encode email in password reset link 2021-01-02 03:30:27 +01:00
Jakob Schrettenbrunner
4fd2af028d fix urlencoding in the filemanager 2021-01-02 02:15:32 +01:00
TekExplorer
77ca03a2b0 oversight 2021-01-01 23:54:14 +00:00
TekExplorer
2af6dca75e add image selection for minecraft java eggs for java 8 and 11 2021-01-01 23:52:31 +00:00
Jakob Schrettenbrunner
8fb28fdf22 remove unused import 2021-01-01 23:14:29 +01:00
Jakob Schrettenbrunner
0f9b3a5722 use children in routes instead of component prop 2021-01-01 23:14:11 +01:00
Dane Everitt
5f284dad1d Update CHANGELOG.md 2020-12-30 18:13:28 -08:00
Dane Everitt
32d99c98ec Merge pull request #2934 from zKoz210/patch-3
Fix retry after header
2020-12-29 15:46:24 -08:00
Oreo Oreoniv
421d838e35 Fix retry after header 2020-12-29 19:11:47 +03:00
Dane Everitt
9f0708f86b Merge pull request #2925 from pterodactyl/fix/router-hot-reload
Fix hot-reloading breaking react-router-dom
2020-12-28 11:02:45 -08:00
Matthew Penner
b19406bf22 Fix hot-reloading breaking react-router-dom 2020-12-28 11:10:01 -07:00
Dane Everitt
dbb6f69e00 Use proper newline, not literal \n 2020-12-27 16:47:51 -08:00
Dane Everitt
794cf9d9dd Make backup throttling configurable 2020-12-27 16:41:53 -08:00
Dane Everitt
a7fef8b736 Correctly handle backups that fail without an upload_id attached to them 2020-12-27 11:56:28 -08:00
Dane Everitt
952715facc Fix handling of upload IDs on backups 2020-12-27 11:34:55 -08:00
Dane Everitt
8e06628409 Update package.json 2020-12-27 11:20:00 -08:00
Dane Everitt
2463c3f492 Cleanup and update some dependencies 2020-12-27 11:18:33 -08:00
Dane Everitt
7f8ae7a8f9 Make this an actual circle 2020-12-27 10:56:07 -08:00
Dane Everitt
621d652854 Fix focusring on disabled inputs 2020-12-27 10:52:40 -08:00
Dane Everitt
d54a8713d1 Fix width of dropdown menus 2020-12-27 10:49:33 -08:00
Dane Everitt
b2328b50c6 Fix checkbox design in file manager 2020-12-27 10:44:56 -08:00
Dane Everitt
4719124fd7 Merge branch 'dane/tailwind-2' into develop 2020-12-26 12:10:33 -08:00
Dane Everitt
bb2d3e4120 Slight UI tweaking to make life easier on people 2020-12-26 11:53:36 -08:00
Dane Everitt
1ba0f4fb16 Merge pull request #2914 from pterodactyl/fix/s3-backups
Store S3 upload_id in the database for backups
2020-12-26 11:34:31 -08:00
Matthew Penner
951d92b143 Store S3 upload_id in the database for backups 2020-12-26 11:59:21 -07:00
Dane Everitt
22687bd078 Stop caching stupid things and causing builds to die 2020-12-26 10:41:25 -08:00
Dane Everitt
c75f89889a Update to Tailwind V2 2020-12-26 09:50:09 -08:00
Dane Everitt
9b01734752 Require meta key to trigger search; change from "k" to "/"; closes #2785 2020-12-25 15:55:31 -08:00
Dane Everitt
0477e66bab Add server ID and node name to debug block; closes #2852 2020-12-25 15:52:15 -08:00
Dane Everitt
9193db9d46 Reset docker images correctly when changing egg; closes #2895 2020-12-25 15:43:44 -08:00
Dane Everitt
87e9d5e82a Throttle pulls 2020-12-25 15:09:02 -08:00
Dane Everitt
70afc51c9e Merge pull request #2883 from pterodactyl/matthewpi/transfer-improvements
Add Transfer Logs
2020-12-24 10:37:30 -08:00
Dane Everitt
2d081e5170 Merge branch 'develop' into matthewpi/transfer-improvements 2020-12-24 10:27:44 -08:00
Dane Everitt
4f23d1ab4c Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-12-24 10:23:09 -08:00
Dane Everitt
45a3533f1e Update WebsocketControllerTest.php 2020-12-24 10:23:04 -08:00
Dane Everitt
44575439d6 💣 2020-12-24 10:22:32 -08:00
Dane Everitt
d214b0b3a9 Merge pull request #2795 from parkervcp/update/paper
update paper egg
2020-12-24 10:20:35 -08:00
Dane Everitt
19c6d82e23 Updates for PR 2020-12-24 10:20:17 -08:00
Dane Everitt
158823603a Merge branch 'develop' into update/paper 2020-12-24 10:19:19 -08:00
Dane Everitt
6c39288def Clarify error messaging for transfers 2020-12-24 10:14:10 -08:00
Dane Everitt
a2548c14ac Fix logic since this accepts arrays now 2020-12-24 10:12:01 -08:00
Dane Everitt
25e53d9f22 Merge branch 'matthewpi/transfer-improvements' of https://github.com/Pterodactyl/Panel into matthewpi/transfer-improvements 2020-12-24 10:10:41 -08:00
Dane Everitt
2ee08a1a3d Update logic for server transfer controller 2020-12-24 10:10:40 -08:00
Dane Everitt
6c61577699 Simplify logic in websocket control 2020-12-24 09:20:23 -08:00
Dane Everitt
6fa24d4979 Merge branch 'develop' into matthewpi/transfer-improvements 2020-12-24 09:17:21 -08:00
Dane Everitt
f300577963 Nuke useless tests 2020-12-24 09:16:30 -08:00
Dane Everitt
9a57011071 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-12-24 09:15:05 -08:00
Dane Everitt
087c41d5ac Add endpoint to pull a remote file down 2020-12-24 09:15:03 -08:00
Dane Everitt
9c4c080a41 Merge pull request #2885 from pterodactyl/schrej-patch-1
remove mailtrap.io from example env config
2020-12-24 09:13:39 -08:00
Dane Everitt
2f17e75395 Merge pull request #2879 from pterodactyl/fix/backups-failing-early
Allow changing the prune age for backups
2020-12-24 09:12:59 -08:00
Dane Everitt
e678537cd5 Merge pull request #2838 from AreYouRlyScared/fix2807
Properly copy database-password
2020-12-24 09:11:51 -08:00
Dane Everitt
1f0883e746 Merge pull request #2904 from pterodactyl/matthewpi/archiver-tweaks
Archiver tweaks
2020-12-24 08:59:54 -08:00
Dane Everitt
dc4ead766c Merge pull request #2901 from vilhelmprytz/vilhelmprytz-update-sponge-egg
eggs: SpongeVanilla: update default version
2020-12-24 08:56:39 -08:00
Matthew Penner
4b9eab8950 Send ignored_files as a string to wings 2020-12-22 19:31:52 -07:00
Vilhelm Prytz
2e6bb4e7ba eggs: SpongeVanilla: update default version
* replaced 1.11.2-6.1.0-BETA-21 with 1.12.2-7.3.0 since it is the stable and recommended build
2020-12-22 17:48:28 +01:00
Matthew Penner
bb559422dc Make ESLint happy, fix minor issue with file manager breadcrumb 2020-12-19 11:51:26 -07:00
Matthew Penner
17ca3659c5 Change 'backups.prune_age' default to 6 hours 2020-12-19 11:50:35 -07:00
Jakob
fd93a4cda1 remove mailtrap.io from example env config 2020-12-18 00:08:01 +01:00
Matthew Penner
d8f75fa0b7 Fix failed transfers locking a server into a unaccessible state 2020-12-17 11:14:58 -07:00
Matthew Penner
37cfa151b6 Use ServerTransferringException 2020-12-17 10:37:14 -07:00
Matthew Penner
e69d9b2c26 Update comment in AuthenticateServerAccess.php 2020-12-17 10:35:54 -07:00
Matthew Penner
fd848985ee Add ServerTransferringException, use is_null 2020-12-17 10:35:54 -07:00
Matthew Penner
5668a780e2 Hopefully the last small tweaks and fixes to transfer logs 2020-12-17 10:35:54 -07:00
Matthew Penner
8d297a0918 Release reserved allocations upon archive failure 2020-12-17 10:35:54 -07:00
Matthew Penner
01926e2896 Improve logic for logging into the websocket of the target node 2020-12-17 10:35:54 -07:00
Matthew Penner
5c5e2e24f1 📯 tRaNsFeR lOgS 📯 2020-12-17 10:35:54 -07:00
Matthew Penner
e6c4a68e4a Update logic for tracking a server's transfer state 2020-12-17 10:35:54 -07:00
Dane Everitt
5d03c0d2e5 Properly handle loading files with special characters 2020-12-16 21:38:46 -08:00
Dane Everitt
0084b48d86 quick migration changes for refresh(ish) support; ref #2875
This still fails in a 2017 migration, but I don't care.
2020-12-16 20:38:21 -08:00
Matthew Penner
e34d31a58c Allow changing the prune age for backups 2020-12-16 14:15:07 -07:00
Dane Everitt
5bbb36b3cf Support updating docker image for a server from the frontend 2020-12-13 11:07:29 -08:00
Dane Everitt
1dacd703df Fix egg importing from seeder 2020-12-13 10:34:51 -08:00
Dane Everitt
638ea2e815 Support creating/updating docker images on eggs 2020-12-13 10:13:32 -08:00
Dane Everitt
78c4ac80bc Basic implemention of multiple selectable images for an egg
The admin side of this is quite ugly when creating/editing a server, but I'm not putting effort into that right now with React Admin soon™
2020-12-13 09:53:17 -08:00
Charles Morgan
9d6f4e00d7 Properly copy database-password 2020-12-09 00:42:56 -05:00
Dane Everitt
3e65a2d055 Pass one at unfucking the stupid file encoding issues 2020-12-08 21:24:17 -08:00
Dane Everitt
24417ac516 Slightly less obtuse way of handling this little checkbox 2020-12-08 20:34:31 -08:00
Dane Everitt
60f170e919 Merge pull request #2796 from acl1704/update/forge
Update Forge egg
2020-12-08 19:57:33 -08:00
Dane Everitt
24fcaba817 Merge pull request #2811 from TekExplorer/patch-2
Correct Typo in Bug Report template
2020-12-08 19:56:18 -08:00
Dane Everitt
a66ee9673b Merge pull request #2797 from pterodactyl/matthewpi/breadcrumb-patch-1
Add mb-4 to File Manager Breadcrumb when editing a file
2020-12-08 19:56:05 -08:00
Dane Everitt
f31a1288af Don't show file mode in the manager 2020-12-08 19:54:32 -08:00
Omar Kamel
6e7dd36a89 Correct Typo in Bug Report template
installating > installing
smh lol. I find the typo funny but also let's just fix that real quick.
fixes #2808
2020-12-08 22:25:07 -05:00
Dane Everitt
76b9fae4e9 Merge pull request #2801 from pterodactyl/issue/2800
Delete the oldest backup, not the newest backup
2020-12-08 14:57:04 -08:00
Matthew Penner
911d85c230 Delete the oldest backup, not the newest backup, closes #2800 2020-12-07 09:31:44 -07:00
Matthew Penner
2fafd4fbbf Add mb-4 to File Manager Breadcrumb when editing a file 2020-12-06 20:42:05 -07:00
Alex
854270e4e8 fix required version variable
fixes required FORGE_VERSION and renames minecraft version variable to avoid confusion
2020-12-06 17:55:41 -08:00
Michael Parker
159b977b35 update paper egg
Updates the paper egg for 1.17 support with java 11 by default
2020-12-06 20:53:00 -05:00
Dane Everitt
63eefaa695 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-12-06 15:44:31 -08:00
Dane Everitt
1fcffc7eb9 Update CHANGELOG.md 2020-12-06 15:44:26 -08:00
Dane Everitt
fcff9085b8 Merge pull request #2781 from pterodactyl/matthewpi/server-details-patch-1
Show installing status instead of offline when a server is installing
2020-12-06 15:27:03 -08:00
Dane Everitt
4a3c9040a7 Merge pull request #2792 from pterodactyl/matthewpi/backups-patch-1
Handle CompleteMultipartUpload and AbortMultipartUpload on the Panel
2020-12-06 15:26:44 -08:00
Dane Everitt
ef787bbd78 Update DeleteSubuserTest.php 2020-12-06 15:26:20 -08:00
Dane Everitt
3ad1e90bad Merge branch 'develop' into matthewpi/backups-patch-1 2020-12-06 15:17:12 -08:00
Matthew Penner
00429c3911 Cleanup remote backup controllers 2020-12-06 15:19:54 -07:00
Dane Everitt
f9ea96f45d Less strict type; closes #2681 2020-12-06 14:17:54 -08:00
Dane Everitt
d22456d9ca Block API access when 2FA is required on account; closes #2791 2020-12-06 13:56:14 -08:00
Matthew Penner
1ce6d3bbba Maybe we should keep that backup rate-limit 2020-12-06 13:55:45 -07:00
Matthew Penner
a5cebd6bcf s3 backups: handle CompleteMultipartUpload and AbortMultipartUpload on the panel instead of in wings, add BACKUP_PRESIGNED_URL_LIFESPAN environment variable 2020-12-06 13:53:55 -07:00
Matthew Penner
ac8b7fec28 Merge branch 'develop' into matthewpi/server-details-patch-1 2020-12-06 13:30:56 -07:00
Dane Everitt
5d23d894ae Update NodeUpdateServiceTest.php 2020-12-06 12:25:36 -08:00
Dane Everitt
79673ca440 Don't ever block storing node updates if wings returns an error; closes #2712 2020-12-06 12:23:58 -08:00
Dane Everitt
11054de5b3 Attempt revocation of JWT access when changing a server's owner
closes #2771
2020-12-06 12:16:12 -08:00
Dane Everitt
af360d49dd Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-12-06 12:01:43 -08:00
Dane Everitt
a8d9eccf9c Support pagination of server backups, closes #2787 2020-12-06 12:01:42 -08:00
Dane Everitt
a06f8e0d21 Merge pull request #2763 from AreYouRlyScared/hidedelifown
Hide delete button on own subuser if for the subuser looking at the page
2020-12-06 11:30:40 -08:00
Dane Everitt
7b9a8c8441 Merge pull request #2768 from pterodactyl/feature/chmod-files
Chmod Files from the File Manager
2020-12-06 11:30:33 -08:00
Dane Everitt
360d93bf2a Merge pull request #2777 from pterodactyl/matthewpi/file-manager-patch-1
Move file manager buttons beside the breadcrumb
2020-12-06 11:30:27 -08:00
Dane Everitt
21d8dd455e Merge pull request #2782 from TrixterTheTux/develop
Fix not being able to retrieve server's variables
2020-12-06 11:30:14 -08:00
Dane Everitt
0ca13fc9d0 Merge branch 'develop' into hidedelifown 2020-12-06 11:27:00 -08:00
Dane Everitt
e2be4e5ebf Merge branch 'develop' into feature/chmod-files 2020-12-06 11:26:58 -08:00
Dane Everitt
616a6b8ea3 Merge branch 'develop' into matthewpi/file-manager-patch-1 2020-12-06 11:26:56 -08:00
Dane Everitt
8241ea5f98 Merge branch 'develop' into matthewpi/server-details-patch-1 2020-12-06 11:26:54 -08:00
Dane Everitt
ef49d21b54 Merge branch 'develop' into develop 2020-12-06 11:26:45 -08:00
Dane Everitt
8a97b73a6c Fix failing tests 2020-12-06 11:25:26 -08:00
Dane Everitt
ec7bb22866 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-12-06 10:53:38 -08:00
Dane Everitt
7657d01c5c Update README.md 2020-12-06 10:53:36 -08:00
Dane Everitt
86c97433ca Merge pull request #2789 from TekExplorer/patch-1
Correct JDBC typo
2020-12-06 10:46:20 -08:00
Omar Kamel
ce0e9b7ded Correct JDBC typo
from `JBDC CONNECTION STRING` > `JDBC CONNECTION STRING`
2020-12-06 13:17:47 -05:00
Stepan Fedotov
e32c4d4f05 Documentate fix 2020-12-04 19:58:09 +02:00
Stepan Fedotov
7c2888641f Fix application API's ServerVariableTransformer 2020-12-04 19:56:44 +02:00
Matthew Penner
f9a1bc6c9b Show installing status instead of offline when a server is installing 2020-12-04 09:48:47 -07:00
Matthew Penner
3e1dbbaedd Fix validation rules for ChmodFilesRequest.php, again.. 2020-12-04 09:24:06 -07:00
Matthew Penner
bd0b7127d2 Fix validation rules for ChmodFilesRequest.php 2020-12-04 09:24:06 -07:00
Matthew Penner
ed5613e207 Show file mode on file listing, add ability to change file mode 2020-12-04 09:24:06 -07:00
Matthew Penner
8611ebb2d6 Add /api/client/servers/{server}/files/chmod endpoint 2020-12-04 09:24:06 -07:00
Matthew Penner
de1f7ea906 Move file manager buttons beside the breadcrumb, other tweaks 2020-12-04 09:23:17 -07:00
Dane Everitt
77abfd01ec Merge pull request #2780 from danny6167/patch-1
Allow 0 in first octet of database client IP address Fixes #2779
2020-12-04 08:20:06 -08:00
danny6167
b97ebcbe39 Allow 0 in first octet of database client IP address Fixes #2779
Allow user to enter database connection IP address that contains a a 0 in the first octet. Fixes #2779
2020-12-04 19:18:08 +08:00
Charles Morgan
76d671aa8a Update UserRow.tsx 2020-11-29 19:35:16 -05:00
Charles Morgan
947fdf72ed Update UserRow.tsx 2020-11-29 18:13:20 -05:00
Dane Everitt
2b5d5c9e55 Merge pull request #2718 from j00005h/patch-1
Update index.blade.php
2020-11-29 13:43:14 -08:00
Dane Everitt
9a1c9f3e46 Merge pull request #2691 from GravityCube/develop
Backup rotation for schedules.
2020-11-29 13:42:48 -08:00
Dane Everitt
7ebe04fb91 Don't allow blank passwords on the password change endpoint; closes #2750 2020-11-29 13:28:46 -08:00
Dane Everitt
16f49f8dc1 Close cleanup; only try to run power actions against non-suspended & installed servers; closes #2760 2020-11-29 12:50:22 -08:00
Dane Everitt
26d409c29c Don't try to flip null values; closes #2753 2020-11-29 11:50:20 -08:00
Dane Everitt
e54612d533 Merge pull request #2731 from AreYouRlyScared/fix2710
Rename duplicated input id
2020-11-29 11:07:23 -08:00
Dane Everitt
d68d5982b1 Merge pull request #2737 from zKoz210/patch-1
Fixed an error when trying to install dependencies without a .env file
2020-11-29 11:03:36 -08:00
Dane Everitt
b9e72c0034 Merge pull request #2739 from m0uka/develop
Add clickable URLs in console
2020-11-29 11:01:01 -08:00
Dane Everitt
8283de253f Merge pull request #2747 from booky10/develop
Changed "Mojang" to "Minecraft" in EulaModalFeature.tsx
2020-11-29 10:58:48 -08:00
Charles Morgan
ec99859590 Don't show delete button if its own user
Don't show the delete button if a sub-user is looking at sub-users, as they cannot delete themselves.
2020-11-28 14:48:35 -05:00
booky10
76958cc6e7 Changed "Mojang" to "Minecraft" in EulaModalFeature.tsx 2020-11-26 17:59:29 +01:00
m0uka
2a54ac4f52 Add clickable URLs in console 2020-11-24 22:04:44 +01:00
Oreo Oreoniv
99c14ca422 Fixed an error when trying to install dependencies without a .env file 2020-11-24 22:48:27 +03:00
Charles Morgan
bdad2621b2 Rename duplicated input id
Renames the field id so its unique and chrome dosen't complain <3

Closes https://github.com/pterodactyl/panel/issues/2710
2020-11-22 03:06:18 -05:00
GravityCube
8fbcbcec45 Merge branch 'develop' into develop 2020-11-20 21:26:49 -03:00
Josh Miles
4b1f320004 Update index.blade.php 2020-11-16 13:51:02 +00:00
Dane Everitt
1473bf9b8c Merge pull request #2714 from TekExplorer/patch-1
entrypoint.sh; docker/ directory change.
2020-11-15 14:43:17 -08:00
Omar Kamel
d030fcce34 entrypoint.sh; docker directory change.
update entrypoint script to mirror the directory change for the docker folder
2020-11-15 14:22:25 -05:00
Dane Everitt
d79b3a9cd0 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-11-14 20:46:49 -08:00
Dane Everitt
aaaa05be93 Fix docker build 2020-11-14 20:46:37 -08:00
Dane Everitt
280bbce69f Update docker.yml 2020-11-14 20:45:42 -08:00
Dane Everitt
043dc20427 Update docker.yml 2020-11-14 20:27:11 -08:00
Dane Everitt
509c4e577b Update docker.yml 2020-11-14 20:15:46 -08:00
Dane Everitt
89e10fd7f2 Update CHANGELOG.md [docker skip] 2020-11-14 20:14:16 -08:00
Dane Everitt
d18b7abf6c fixes [docker skip] 2020-11-14 20:06:58 -08:00
Dane Everitt
d31a228220 properly skip action [docker skip] 2020-11-14 20:04:55 -08:00
Dane Everitt
8065b7d9f5 use GitHub container registry [skip docker] 2020-11-14 20:03:32 -08:00
Dane Everitt
181e4fa282 Update docker.yml 2020-11-14 20:02:07 -08:00
Dane Everitt
e84008d19b Merge branch 'dane/docker' into develop 2020-11-14 20:01:25 -08:00
Dane Everitt
4ef04aa604 Update actions 2020-11-14 20:01:02 -08:00
Dane Everitt
9ffb5d2995 Add support for automated docker builds 2020-11-14 19:56:43 -08:00
Dane Everitt
7df3c1d013 Tweaks 2020-11-14 13:58:51 -08:00
Dane Everitt
83707079e8 Fixes for docker compose formatting and missing storage dir 2020-11-14 13:26:43 -08:00
Dane Everitt
fe725397eb Code cleanup and improvement 2020-11-14 13:10:11 -08:00
GravityCube
5eebc7221d Merge branch 'develop' into develop 2020-11-13 01:11:18 -03:00
Gonzalo Chavez
ebc8d40db8 Backup Rotation - Variable name changed 2020-11-11 16:03:57 -03:00
Gonzalo Chavez
e6a4a17922 Backup Rotation - Comment change 2020-11-11 16:02:39 -03:00
Gonzalo Chavez
7b8322e9c9 Backup Rotation - Minor changes 2020-11-11 10:52:28 -03:00
Dane Everitt
3b4a096ddb Merge pull request #2684 from mattmalec/develop
Fix API 500 error
2020-11-10 20:16:32 -08:00
Dane Everitt
0c8b7101c3 Merge pull request #2682 from AreYouRlyScared/minorfixes
Update database page layout to be more consistent with other pages, fixes text visibility issues
2020-11-10 20:15:26 -08:00
Dane Everitt
2f2d105a4f Fix test cases 2020-11-10 20:13:55 -08:00
Dane Everitt
a07e6bd36f Merge pull request #2687 from occanowey/fix/file_manager_404
Dont add trailing slash to file manager rows
2020-11-10 10:46:20 -08:00
Dane Everitt
9707da86e3 Merge pull request #2686 from occanowey/feature/command_history
Keep cursor at the end of the line when going through command history
2020-11-10 10:46:05 -08:00
Gonzalo Chavez
1eaf486eaa Backup Rotation - Minor Changes 2020-11-09 21:14:47 -03:00
Gonzalo Chavez
1f01c653f1 Backup rotation for schedules. 2020-11-09 20:35:57 -03:00
Griffin T
f65cdd2dfb Dont add trailing slash to file manager row NavLink 2020-11-09 16:22:52 +08:00
Griffin T
76e3bcaa42 Keep cursor at the end of line when going through history 2020-11-09 15:34:56 +08:00
Matt Malec
df64026449 Update AuthenticateIPAccess.php
Fix a 500 error when processing a request with an IP filter
2020-11-08 21:57:22 -05:00
Charles Morgan
4a234af7a3 Minor changes
Changes CopyOnClick to allow any.
Allows database information to be copied on click.
Changes layouts on database/backups to match the network tab.
Changes text to lighten it one level from 400 to 300 for easier visibility.
Moves database api endpoints to their own folder for some organization.
2020-11-08 21:09:22 -05:00
Dane Everitt
085fa8dcb5 Update CopyOnClick.tsx 2020-11-08 17:13:55 -08:00
Dane Everitt
842652a6b8 Update CopyOnClick.tsx 2020-11-08 17:13:33 -08:00
Dane Everitt
6795bae335 Fix server state not being updated correctly when adding/removing allocation; closes #2680 2020-11-08 17:12:07 -08:00
Dane Everitt
74e90e087f Fix allocation permission 2020-11-08 17:07:26 -08:00
Dane Everitt
2d19c12a5a Update CHANGELOG.md 2020-11-08 15:29:23 -08:00
Dane Everitt
e0a087f077 Attempt to save a transaction a few times when creating a server; closes #2674 2020-11-08 13:19:52 -08:00
Dane Everitt
7cf6b4bcfe Only load GA when valid key is provided; closes #2678 2020-11-08 13:18:15 -08:00
Dane Everitt
de943eac4a Merge pull request #2636 from AreYouRlyScared/copynetwork
Network info added to details + ClickToCopy
2020-11-08 11:48:45 -08:00
Dane Everitt
74b1776c00 Merge pull request #2646 from AreYouRlyScared/#2608
Add admin area link to view config
2020-11-08 11:48:22 -08:00
Dane Everitt
b602473436 Merge pull request #2657 from AreYouRlyScared/permissions
Add missing descriptions for permissions
2020-11-08 11:47:54 -08:00
Dane Everitt
802f88fc78 Merge branch 'develop' into permissions 2020-11-08 11:47:45 -08:00
Dane Everitt
ce425435d4 Merge pull request #2666 from Yomanz/patch-1
Use app key from environment
2020-11-08 11:47:26 -08:00
Charles Morgan
e340cf16bf remove permission based view
recent changes that were made always show the primary allocation to the end users even if they don't have the read permission.
2020-11-07 17:25:05 -05:00
Dane Everitt
c20d53bb17 Always return the primary allocation for a server, even without the allocation permissions 2020-11-07 09:57:53 -08:00
Dane Everitt
f99ac0ecde Fix some failing test cases 2020-11-06 22:33:39 -08:00
Dane Everitt
625fd92130 Fix URKL encoding hellscape; closes #2664 closes #2663 2020-11-06 20:47:03 -08:00
Daave
80574e991b Remove quotes and fix indentation 2020-11-06 13:23:05 +00:00
Daave
9c33288902 Change entrypoint so it doesn't overwrite app key.
APP_KEY is overwritten by a generated one even if it's in the environment.
2020-11-06 13:21:09 +00:00
Dane Everitt
009f9c297d Revoke JWT JTIs when modifying a subuser's permissions 2020-11-03 21:01:15 -08:00
Dane Everitt
c4df534722 Handle reconnect events for websocket errors 2020-11-03 20:33:05 -08:00
Dane Everitt
910a2d7a23 Back to checks all around 2020-11-03 19:07:52 -08:00
Charles Morgan
b2d2a931a9 Add missing descriptions for permissions 2020-11-03 16:11:59 -05:00
Dane Everitt
fb03c411ad Get EULA hook modal into working order and start server when accepted 2020-11-02 21:06:47 -08:00
Dane Everitt
aba7df3afa Basic concept for the EULA feature to demo how this will all work 2020-11-02 20:52:41 -08:00
Dane Everitt
505a9a6cbd Update MC eggs to enable EULA feature flag 2020-11-02 20:24:24 -08:00
Dane Everitt
95d605c1e3 Fix validation schema 2020-11-02 20:24:11 -08:00
Dane Everitt
7618f306bd Support functionality for per-egg features 2020-11-02 20:20:36 -08:00
Dane Everitt
7ec614ed2c Reset modal spinner state when dismissed; closes #2647 2020-11-02 20:03:28 -08:00
Dane Everitt
027c705733 Correctly overlay spinner over all modal elements 2020-11-02 20:03:02 -08:00
Dane Everitt
b482632af4 Remove unnecessary calls to Wings to add/remove mounts 2020-11-02 19:58:14 -08:00
Dane Everitt
ebd81e9d1d Properly pass along build information to Wings; closes #2552 2020-11-02 19:58:03 -08:00
Charles Morgan
274ed6c232 Update ServerDetailsBlock.tsx 2020-11-02 02:32:38 -05:00
Charles Morgan
40eee1220c Update ServerDetailsBlock.tsx 2020-11-02 02:31:57 -05:00
Charles Morgan
c75a621c52 Only show allocation if user has permission
prevents just a blank scetion in the details box if a sub user dosn't have the permission of `allocation.read`

Also fixes the server router where it was set to `allocations` and not `allocation` making it not showup period even if the sub user had the correct permissions.
2020-11-02 00:49:07 -05:00
Charles Morgan
6d909a4a97 Add admin area link to view config 2020-11-02 00:14:02 -05:00
Dane Everitt
964a1436ce Code cleanup for signed URL generation endpoint 2020-11-01 14:46:01 -08:00
Dane Everitt
6eff9d6211 Merge pull request #2634 from pterodactyl/issue/2599
Switch to s3 multipart uploads for backups
2020-11-01 14:34:03 -08:00
Matthew Penner
6af848ccea Tweaks to BackupRemoteUploadController.php 2020-11-01 15:27:43 -07:00
Matthew Penner
63ac81586d Tweaks to BackupRemoteUploadController.php 2020-11-01 15:27:43 -07:00
Matthew Penner
85af073438 Switch to s3 multipart uploads for backups 2020-11-01 15:27:43 -07:00
Dane Everitt
23d2352a9b Don't ever return per_page as a string here... 2020-11-01 14:27:14 -08:00
Dane Everitt
4082503190 Show next schedule run time 2020-11-01 14:07:31 -08:00
Dane Everitt
b946b20193 Avoid pass-by-reference issues in config parsing leading to duplicated responses; ref #2511 2020-11-01 13:07:00 -08:00
Dane Everitt
63f8f53367 Fix server pagination when using search queries; closes #2593 2020-11-01 12:28:14 -08:00
Dane Everitt
48cde2e007 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-11-01 12:25:04 -08:00
Dane Everitt
61f501abc9 Fix file parser failing if multiple configuration values are present on same line; closes #2604 2020-11-01 12:25:02 -08:00
Dane Everitt
0132b51642 Merge pull request #2637 from AreYouRlyScared/fix2434
Fixes for PR#2434
2020-11-01 11:45:31 -08:00
Dane Everitt
8c8feffcb7 Encode all parts of the URI individually, closes #2620 2020-11-01 11:44:47 -08:00
Charles Morgan
6ac5741d8a Update app.php 2020-11-01 03:19:28 -05:00
Charles Morgan
f029b7239e re-remove console limiting options 2020-11-01 03:16:30 -05:00
Charles Morgan
fc0f8ee48e Update ServerDetailsBlock.tsx 2020-11-01 02:55:29 -05:00
Charles Morgan
e80b125543 Add network info
Adds network info to the server details section, Also copied to clipboard when clicked.

Closes https://github.com/pterodactyl/panel/issues/2585
2020-11-01 02:50:35 -05:00
Dane Everitt
9ff691bfde Merge pull request #2554 from AreYouRlyScared/subusers
Duplicate save/invite button at top
2020-10-31 22:30:52 -07:00
Dane Everitt
fda50bb6e1 Merge pull request #2434 from pressstartearly/develop
Added Autoallocation Button
2020-10-31 22:30:16 -07:00
Dane Everitt
49c29aae47 Logic fixes 2020-10-31 22:30:03 -07:00
Dane Everitt
6cb21fb920 Add test coverage for allocation auto-assignment service 2020-10-31 22:17:32 -07:00
Dane Everitt
d493685518 Add test coverage for allocation assignment endpoint 2020-10-31 21:57:27 -07:00
Dane Everitt
b2be067f38 Support deleting an allocation for a server 2020-10-31 21:22:44 -07:00
Dane Everitt
365f5e0806 server_id is irrelevant at this stage 2020-10-31 14:59:06 -07:00
Dane Everitt
c6bd7ff661 Improve logic handle auto-allocation of ports for a server 2020-10-31 14:58:15 -07:00
Charles Morgan
aad3019747 Merge branch 'develop' into subusers 2020-10-31 17:32:10 -04:00
Charles Morgan
0f09dfed92 Update EditSubuserModal.tsx 2020-10-31 17:29:41 -04:00
Dane Everitt
7638ffccde Merge branch 'develop' into pr/2434 2020-10-31 14:12:13 -07:00
Dane Everitt
31ad238e8b Thanks for that highlight phpstorm... 2020-10-31 14:11:53 -07:00
Dane Everitt
db7e4e749f UI cleanup for add allocation button 2020-10-31 14:10:53 -07:00
Dane Everitt
abb043c1cc Merge branch 'develop' into pr/2434 2020-10-31 13:55:56 -07:00
Dane Everitt
283cb08e33 Remove unused 2020-10-31 13:55:45 -07:00
Dane Everitt
665a4dd8a4 Merge branch 'develop' into develop 2020-10-31 13:47:12 -07:00
Dane Everitt
7fd49dd823 Merge pull request #2610 from occanowey/feature/command_history
Add console command history.
2020-10-31 13:46:24 -07:00
Dane Everitt
8aeab889f4 Merge pull request #2624 from pterodactyl/matthewpi/configs-patch-1
Add more environment variables for S3 filesystem options
2020-10-31 13:45:48 -07:00
Dane Everitt
e157b8baf2 Merge pull request #2627 from pterodactyl/matthewpi/admin-patch-1
Tweaks to admin area
2020-10-31 13:45:26 -07:00
Dane Everitt
c757abfdc2 Merge pull request #2633 from AreYouRlyScared/changes
Network view changes
2020-10-31 13:45:09 -07:00
Charles Morgan
394cd815d2 Network tab changes
Allows address feild to be copied to the clipboard when clicked
If alias is used changes it to hostname instead of ip address ( might just make it say address as that would cover both? )
Fixed overflow for allocations with a long alias
2020-10-31 16:16:41 -04:00
Dane Everitt
c948a217a4 Update tests.yml 2020-10-31 13:10:52 -07:00
Dane Everitt
84ed2f8668 Update tests.yml 2020-10-31 12:34:54 -07:00
Dane Everitt
992f98b6c1 Add notification for discord hook 2020-10-31 12:27:18 -07:00
Dane Everitt
8eaa44411f Update ServerRow.tsx 2020-10-31 12:09:59 -07:00
Dane Everitt
87a8238c56 Correctly render suspended server in dashboard listing; closes #2613 2020-10-31 12:07:20 -07:00
Dane Everitt
ff64220741 Avoid N+1 location query for servers 2020-10-31 11:28:31 -07:00
Dane Everitt
c00e5b36a5 Return all servers for a node as a paginated response
Avoids crashing the PHP process and avoids a bad runaway N+1 query issue that previously existed.
2020-10-31 11:14:28 -07:00
Matthew Penner
d9ad4af6a7 admin: update description on Mounts index view 2020-10-30 11:02:55 -06:00
Matthew Penner
48013eddcc admin: update transfer server box on manage tab 2020-10-30 11:02:29 -06:00
Matthew Penner
fcdf154a12 Add more environment variables for S3 filesystem options 2020-10-29 19:39:55 -06:00
Griffin T
6e4261b3a7 Limit per server command history to 32. 2020-10-27 18:19:33 +08:00
Dane Everitt
73b795faba Correctly reset a schedule if there is an exception during the run stage; closes #2550 2020-10-26 20:54:15 -07:00
Dane Everitt
bffec5b3dc Don't abort the entire schedule running process if one schedule encounters an exception; closes #2609 2020-10-26 20:16:39 -07:00
Dane Everitt
200a78d77b Don't allow null schedule names anymore; ref #2609 2020-10-26 19:57:08 -07:00
Griffin T
a4d3e7db1b Add console command history. 2020-10-26 20:30:30 +08:00
Michael (Parker) Parker
e8e2206a40 Fix install scripts (#2600) 2020-10-25 18:17:12 -07:00
Dane Everitt
ad4df56f7c Update CHANGELOG.md 2020-10-25 18:12:22 -07:00
Dane Everitt
2bd2cdcd1c Update README.md 2020-10-25 18:06:07 -07:00
Dane Everitt
0a6cf5ba25 lint; skip ci 2020-10-25 17:31:24 -07:00
Dane Everitt
092c942764 Fix server owner filtering; improve searching for servers; closes #2581 2020-10-25 17:29:57 -07:00
Dane Everitt
39dddba1d6 Refactor subuser modal and fix to be less of a code monstrosity; closes #2583 2020-10-25 15:47:50 -07:00
Dane Everitt
21d4402a55 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-10-25 15:07:13 -07:00
Dane Everitt
996fb5b46f Set the DB timezone on each connection to match the APP_TIMEZONE value 2020-10-25 15:07:11 -07:00
Dane Everitt
8c6327fd32 Let MySQL do the time logic when looking for tasks 2020-10-25 15:06:54 -07:00
Michael (Parker) Parker
3ecf14d419 fix install scripts (#2587) 2020-10-25 13:16:18 -07:00
Anders G. Jørgensen
a271b59092 Change SameSite attribute on session cookies to "lax" (#2592) 2020-10-25 13:15:49 -07:00
Dane Everitt
cfaf41ce24 Merge pull request #2576 from AreYouRlyScared/patch-1
find != fund
2020-10-23 08:07:48 -07:00
Charles Morgan
404ad68e0d find != fund 2020-10-23 03:37:35 -04:00
Dane Everitt
23872b844a Fix unnecessary object structuring 2020-10-22 21:33:06 -07:00
Dane Everitt
7ed3c25d61 Merge pull request #2545 from wardpieters/develop
fix: duplicate 2FA error messages
2020-10-22 21:31:37 -07:00
Dane Everitt
fd3b11e9cc Update CHANGELOG.md 2020-10-22 21:27:15 -07:00
Dane Everitt
903b5795db Avoid breaking the entire UI when naughty characters are present in the file name or directory; closes #2575 2020-10-22 21:18:46 -07:00
Dane Everitt
65d04d0c05 Correctly handle schedule task deletion and avoid errors; closes #2534 2020-10-22 20:54:58 -07:00
Dane Everitt
e1fa6d4e55 Merge pull request #2573 from parkervcp/update_eggs
Update eggs
2020-10-21 16:49:12 -07:00
parkervcp
d522bc9150 update install scripts
change all install scripts to use debian:buster-slim

update mc install scripts
update steamcmd install scripts
update voice install scripts.
2020-10-21 19:33:45 -04:00
parkervcp
16422ebf7b remove unused eggs 2020-10-21 19:33:45 -04:00
Dane Everitt
26de4493dd Set notes to null when assigning allocation; ref #2553 2020-10-19 21:08:40 -07:00
Dane Everitt
1f5e0c0334 Update build modification service and cover logic with test cases
closes #2553
2020-10-19 21:07:07 -07:00
Dane Everitt
b3598b3b98 Update README.md 2020-10-19 15:27:06 -07:00
Charles Morgan
e0bc9ac50f Duplicate save/invite button at top
Adds the Save / Invite User button at the top also
2020-10-18 04:31:54 -04:00
Ward Pieters
1c4ee31491 fix: duplicate enable 2FA error messages 2020-10-18 00:46:46 +02:00
Ward Pieters
f5dfe86eff fix: duplicate disable 2FA error messages 2020-10-18 00:42:52 +02:00
Ward Pieters
f859d37b25 fix: duplicate 2FA error messages (https://github.com/pterodactyl/panel/issues/2455) 2020-10-18 00:02:46 +02:00
Dane Everitt
c370e08f65 [security] add login throttling to the 2FA verification endpoint 2020-10-17 14:46:10 -07:00
Dane Everitt
cbbe5b6fa9 Reset error messages between login screens; ref #2455 2020-10-17 14:45:33 -07:00
Dane Everitt
527ba1adc4 Fix recaptcha not resetting on login fail; closes #2397 2020-10-17 14:30:54 -07:00
Dane Everitt
9621f923f5 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-10-17 14:23:06 -07:00
Dane Everitt
5763493c6c Allow setting the backup limit via the API; closes #2535 2020-10-17 14:23:00 -07:00
Dane Everitt
d7262664fd Merge pull request #2544 from pterodactyl/matthewpi/mounts-patch-1
Deny certain paths when using server mounts
2020-10-17 13:56:19 -07:00
Dane Everitt
545d53e93d Merge branch 'develop' into matthewpi/mounts-patch-1 2020-10-17 13:56:08 -07:00
Dane Everitt
35f24e7f22 Fix theme stuff 2020-10-17 13:54:34 -07:00
Dane Everitt
0260efc966 Fix some PHPstorm nightmare 2020-10-17 13:47:21 -07:00
Dane Everitt
b95e40f298 Merge pull request #2543 from pterodactyl/issue/2541
Fix white highlight hiding console text
2020-10-17 13:43:37 -07:00
Dane Everitt
820d8f7560 Better logic for using theme values 2020-10-17 13:43:22 -07:00
Matthew Penner
8ba291afb2 Fix Mount.php validation rules 2020-10-17 14:43:07 -06:00
Matthew Penner
66b9169458 Cleanup code in MountController.php, again. 2020-10-17 14:42:08 -06:00
Matthew Penner
050075b835 Cleanup code in MountController.php 2020-10-17 14:37:35 -06:00
Matthew Penner
f7520b721b Deny /etc/pterodactyl as a source path for mounts 2020-10-17 14:29:29 -06:00
Matthew Penner
c52c5d6736 Deny certain paths for mounts 2020-10-17 14:28:02 -06:00
Matthew Penner
ebe3375897 Fix white highlight hiding console text (fixes #2541) 2020-10-17 14:25:44 -06:00
Dane Everitt
b02a49f42e Get everything on the same version 2020-10-17 12:23:25 -07:00
Dane Everitt
b8377b840f Update README.md 2020-10-17 12:11:14 -07:00
Dane Everitt
839e277763 Fix exception when passing location IDs to creation service; closes #2529 2020-10-17 11:52:21 -07:00
Dane Everitt
f54151e0f6 Merge pull request #2525 from Spirit55555/patch-2
Remove target="blank" from /admin link
2020-10-17 10:38:14 -07:00
Dane Everitt
6aeb467155 Merge pull request #2540 from HavilaQQ/user-delete-fix
Fix artisan p:user:delete not working
2020-10-17 10:35:48 -07:00
Nobody
10548c9d8f Update message and update query 2020-10-17 18:26:34 +01:00
Dane Everitt
e3fe46882f Merge pull request #2539 from pterodactyl/schrej-patch-1
use emoji directly instead of :names:
2020-10-17 10:26:08 -07:00
Jakob
652e93871d use emoji directly instead of :names: 2020-10-17 19:25:09 +02:00
Dane Everitt
aa879d0f62 Merge pull request #2538 from pterodactyl/schrej-patch-1
replace installation help issue template with link to discord
2020-10-17 10:20:18 -07:00
Jakob
18911d8fe4 remove installation help issue template 2020-10-17 19:19:42 +02:00
Jakob
eabc17eab3 add conact links to discord to issue creation page 2020-10-17 19:19:03 +02:00
Anders G. Jørgensen
7ad26fc456 Remove target="blank" from /admin link
This should be changed to make it consistent with the admin panel, where the link back to the user panel does not open in a new tab.
2020-10-16 15:49:35 +02:00
Dane Everitt
cd3572730b Add test coverage to ensure filters don't unexpectedly get broken 2020-10-15 21:52:26 -07:00
Dane Everitt
40d44598da Add test coverage for change to endpoint 2020-10-15 21:32:49 -07:00
Dane Everitt
a4abb2543b lint 2020-10-15 21:28:43 -07:00
Dane Everitt
f52f13600f Fix text wrap on long server names in search bar 2020-10-15 21:23:31 -07:00
Dane Everitt
f30dab053b Support much better server querying from frontend
Search all servers if making a query as an admin, allow searching by a more complex set of data, fix unfocus on search field when loading indicator was rendered
2020-10-15 21:21:38 -07:00
Dane Everitt
9726a0de46 Autofocus search when opening; closes #2522 2020-10-15 20:09:13 -07:00
Dane Everitt
5eda27933f Merge pull request #2512 from AreYouRlyScared/xtermstuff
Upgrade Xterm to v4.9, Add Search
2020-10-15 19:56:29 -07:00
Dane Everitt
2685295110 Merge branch 'develop' into xtermstuff 2020-10-15 19:56:09 -07:00
Charles Morgan
8f2e90d1e8 Update Console.tsx 2020-10-15 16:41:11 -04:00
Dane Everitt
14099c164b Add test coverage for schedule service 2020-10-14 21:17:57 -07:00
Dane Everitt
e7c64bc60e Add test coverage for schedule execution 2020-10-14 21:06:27 -07:00
Dane Everitt
c1ee0ac4f8 Add support for executing a scheduled task right now 2020-10-14 20:38:59 -07:00
Dane Everitt
f33d0b1d72 Update schedule view UI 2020-10-14 20:13:36 -07:00
Charles Morgan
28844bf62c Merge branch 'develop' into xtermstuff 2020-10-14 11:42:01 -04:00
Charles Morgan
807707c07e Update Console.tsx 2020-10-14 11:38:59 -04:00
Dane Everitt
33a43de723 Merge pull request #2515 from AreYouRlyScared/subuserfix
Update UsersContainer.tsx
2020-10-14 08:22:08 -07:00
Charles Morgan
cdb881efaf Fix naming 2020-10-14 09:54:06 -04:00
Charles Morgan
c53b14acef Close search bar on esacpe
Allows the searchbar to be closed when a user clicks escape, just like in the browser.
2020-10-14 07:23:02 -04:00
Charles Morgan
471cadda77 Update UsersContainer.tsx
Closes #2514
2020-10-14 04:54:17 -04:00
Charles Morgan
9dc0c3e2c3 Upgrade Xterm to v4.9, Add Search
Changes:
Added ` xterm-addon-search ` v0.7.0
Added ` xterm-addon-search-bar ` v0.2.0
Updated ` webpack ` v4.43.0 -> v4.44.2
Updated ` xterm `  v3.14.4 -> v4.9.0
Updated ` xterm-addon-fit `  v0.1.0 -> v0.7.0
Updated ` xterm-addon-attach ` v0.1.0 -> v0.4.0

With the added packages above, when a user does Ctrl + F a search box will apear within the console for them to search whats in the console.

This was requested in discord to allow the lines in the console to be searchable.
2020-10-14 02:34:53 -04:00
Caleb
ea778e9345 Merge branch 'develop' into develop 2020-10-13 15:35:38 -04:00
Caleb
b725e45ed1 Merge pull request #4 from pterodactyl/release/v1.0.1
Release/v1.0.1
2020-10-13 15:28:25 -04:00
Dane Everitt
110b2568d5 Update changelog 2020-10-12 21:12:31 -07:00
Pterodactyl CI
59305f14dd bump version for release 2020-10-13 04:04:58 +00:00
Dane Everitt
6274c451af COrrectly set the breadcrumbs when using browser back; closes #2485 2020-10-12 21:02:51 -07:00
Dane Everitt
7a0ac1d5c2 Revert "Merge pull request #2482 from AreYouRlyScared/fix-2386"
This reverts commit a967dbc6fc, reversing
changes made to 289de72aca.
2020-10-12 20:59:11 -07:00
Dane Everitt
49ddd63dbd Do not allow running the up or seed commands if migrations have not been run 2020-10-12 20:51:35 -07:00
Dane Everitt
d5f2242c89 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-10-12 20:15:22 -07:00
Dane Everitt
ef586bf752 Up the default API throttle for the client API to avoid issues with large numbers of servers 2020-10-12 20:15:12 -07:00
Dane Everitt
a967dbc6fc Merge pull request #2482 from AreYouRlyScared/fix-2386
Remove trailing slash if one is present
2020-10-12 20:14:05 -07:00
Dane Everitt
289de72aca Merge pull request #2497 from pterodactyl/fix/server-mounts
Fix server mounts
2020-10-12 20:13:35 -07:00
Dane Everitt
1ad8b3f37d Do not mark a server as "not installed" when updating it's startup arguments 2020-10-12 20:12:34 -07:00
Dane Everitt
2eccfcc1e3 Nuke existing server_transfers tables; done trying to be nice to plugin devs 2020-10-12 18:42:03 -07:00
Matthew Penner
3ef3c2a461 Remove commented code 2020-10-12 11:12:23 -06:00
Matthew Penner
abd60ee6f8 Fix 500 error when mounting a mount and fix the actual mount being deleted instead of the relation 2020-10-12 11:11:40 -06:00
Dane Everitt
d795668fc2 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-10-11 16:19:58 -07:00
Dane Everitt
d4db80b5c9 Update CHANGELOG.md 2020-10-11 16:19:56 -07:00
Charles Morgan
f7fd63dff9 Remove trailing slash if one is present
Closes https://github.com/pterodactyl/panel/issues/2386
2020-10-11 18:38:09 -04:00
Dane Everitt
9112de4bfb Merge pull request #2481 from AreYouRlyScared/fix-2435
Yeh Yeh.... Remove validation rules
2020-10-11 15:36:18 -07:00
Charles Morgan
4b8a275a78 Update AdvancedSettingsFormRequest.php 2020-10-11 18:33:25 -04:00
Dane Everitt
08dcb85e5d Merge pull request #2480 from AreYouRlyScared/fix-2435
Remove unused settings from admin side
2020-10-11 15:24:31 -07:00
Charles Morgan
5c105822b6 Remove unused settings
Closes https://github.com/pterodactyl/panel/issues/2435
2020-10-11 18:21:01 -04:00
Dane Everitt
18fce37565 Fix subuser permissions not migrating correctly from 0.7; closes #2309 2020-10-11 15:13:17 -07:00
Dane Everitt
1e08f7d2d2 Merge pull request #2454 from zKoz210/patch-1
Fixed phantom shadow when opening modal window
2020-10-11 12:36:49 -07:00
Dane Everitt
2041bc078a Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-10-11 12:36:02 -07:00
Dane Everitt
ebe3f6a32a Fix unit tests 2020-10-11 12:35:54 -07:00
Dane Everitt
2f5e080074 Remove unnecessary break-all 2020-10-11 12:34:48 -07:00
Dane Everitt
c6d6221711 Correctly fix the UI for API keys 2020-10-11 12:29:00 -07:00
Dane Everitt
d8e3e0a5f7 Merge branch 'develop' into pr/2454 2020-10-11 12:15:53 -07:00
Dane Everitt
78a3f933d1 Merge pull request #2476 from AreYouRlyScared/fix
Fix missing semi, Fixed task row overflow
2020-10-11 12:07:06 -07:00
Dane Everitt
bb9c0c968a Merge pull request #2466 from LeJeanbono/rename_cpu_thread
Rename CPU Threads for CPU Pinning
2020-10-11 12:06:54 -07:00
Dane Everitt
8697185900 Fix up database creation and handling code for servers; ref #2447 2020-10-11 11:59:46 -07:00
Charles Morgan
c8b00f0ccf Fix missing semi, Fixed task tow overflow
Was suppsoe to be correct in https://github.com/pterodactyl/panel/pull/2352 but seems to be picky. Should now correctly show a multiline text box and not a long skinny text box when the text overflows.

Also, fixed a missing semicolon. 👍
2020-10-11 04:35:26 -04:00
Dane Everitt
a4d7170fac Don't allow creation of a database with an identical name for the same server; closes #2447 2020-10-10 18:17:04 -07:00
Dane Everitt
7b0f998f0b Return the correct server & subuser counts for user listing; closes #2469 2020-10-10 18:06:42 -07:00
Dane Everitt
1f7fe093ae Correctly validate description for API keys to match model expectations; closes #2457 2020-10-10 17:15:30 -07:00
Dane Everitt
1f28fb94e2 Ensure the UUID is set correctly; closes #2450 2020-10-10 17:11:27 -07:00
Dane Everitt
a9e4587125 Ensure debug is false in tests to avoid accidentally masking exception responses wrongly 2020-10-10 16:51:44 -07:00
Dane Everitt
69f27ed807 Update and test variable validator logic 2020-10-10 16:46:56 -07:00
Dane Everitt
d8228f2da8 Allow passing empty values through for variables, covers with test, closes #2433 2020-10-10 16:45:24 -07:00
Dane Everitt
bf6e1ce966 Document what is being tested a little better so it isn't just a wall of code 2020-10-09 22:12:45 -07:00
Dane Everitt
c2db163731 Update node finding service logic to be single query; add test coverage 2020-10-09 22:01:25 -07:00
Dane Everitt
3decbd1f46 Temporarily disable flaky tests on Github 2020-10-09 21:14:06 -07:00
Dane Everitt
192a578a03 Add basic test coverage for server creation functionality 2020-10-09 21:08:27 -07:00
Dane Everitt
b2970e3117 Fastest way to passing tests is deleting the failing ones. 👍 2020-10-09 20:21:10 -07:00
Oreo Oreoniv
1e3f3fb053 Fixed incorrect button appearance 2020-10-09 12:15:23 +03:00
Dane Everitt
c59a2c436b Don't waste time on a service better suited to an integration test 2020-10-08 22:34:52 -07:00
Dane Everitt
2560163655 Modify how deletion service works (actually fixes #2085); cover changes with test 2020-10-08 21:08:55 -07:00
Dane Everitt
7a643beee0 Add test coverage for startup modification 2020-10-08 20:38:21 -07:00
Dane Everitt
d087bebc93 Add some additional test coverage and clean up modification service and suspension service 2020-10-07 21:56:44 -07:00
LeJeanbono
0b559f8acb Rename CPU Threads for CPU Pinning 2020-10-06 23:09:16 +02:00
Dane Everitt
83efb2d7b6 More fixes for broken unit tests 2020-10-05 21:54:29 -07:00
Dane Everitt
b9eb87deaa Fix node and schedule unit tests 2020-10-05 21:31:39 -07:00
Dane Everitt
0c2bd416ee Fix unit tests for eggs 2020-10-05 21:29:35 -07:00
Dane Everitt
0f4f2235a3 More Laravel-esq job processing 2020-10-05 20:46:41 -07:00
Oreo Oreoniv
ec313a7362 Fixed description for API keys 2020-10-05 12:36:03 +03:00
Oreo Oreoniv
62e111657c Fixed a bug with an incorrect size modal 2020-10-05 11:53:11 +03:00
Oreo Oreoniv
0fa503f923 Fixed phantom shadow when opening modal window 2020-10-05 11:36:47 +03:00
Dane Everitt
e1e079bc12 Update README.md 2020-10-03 21:49:26 -07:00
Dane Everitt
2d01c7b988 Reset is_processing state of a schedule when toggling active/inactive; closes #2425 2020-10-03 19:47:52 -07:00
Dane Everitt
57457f0e9c Oops, also include the server status 2020-10-03 19:37:36 -07:00
Dane Everitt
6b52a36b31 Significantly reduce the number of re-renders on the console page when stats are flowing 2020-10-03 19:36:26 -07:00
Dane Everitt
5fc4444f5a Refit terminal when screen is resized; closes #2365 2020-10-03 19:21:11 -07:00
Dane Everitt
2d56cacbab Don't trigger a 500 error with bad data; closes #2442
This whole chunk of code needs some cleanup but I'll defer that for the new admin area in the future
2020-10-03 19:05:04 -07:00
Dane Everitt
d1c30607cf UI updates for server rows to show current status 2020-10-03 16:36:31 -07:00
Dane Everitt
2a42ef5c62 Mobile responsiveness fixes 2020-10-03 16:25:39 -07:00
Dane Everitt
47d59ca20f Fix mobile UI for allocation rows 2020-10-03 15:48:31 -07:00
Dane Everitt
4ff5de7e1b decode before encoding URLs, closes #2440 2020-10-03 12:51:41 -07:00
Dane Everitt
99c9682f67 Fix errors with mounts; closes #2374 2020-10-03 12:42:27 -07:00
Dane Everitt
b4a9a7205d speeling is hard 2020-10-03 12:14:39 -07:00
Dane Everitt
fb482abb9c Also cache bust 2020-10-03 11:37:11 -07:00
Stepan Fedotov
62856556b9 Apply security fixes from #2441 to 1.0 2020-10-03 11:34:36 -07:00
Charles Morgan
3473e1dfbf Remove console logging (#2415)
Remove console logging, as its not an error being logged i see no reason for this to be printed when the startup page is viewed.
2020-10-03 11:23:16 -07:00
Oreo Oreoniv
10eeae0927 Fix text overflows through out the front end (#2406) 2020-10-03 11:22:37 -07:00
Oreo Oreoniv
6893f9bfcd Fixes for mobile responsiveness on the console page (#2411) 2020-10-03 11:21:09 -07:00
Dane Everitt
1616cf1318 Always show errors from HTTP exceptions correctly to the user; closes #2439 2020-10-03 11:18:14 -07:00
Caleb
4770af453b Removed loggin and reverted changes to webpack 2020-09-29 14:42:02 -04:00
Caleb
0017ab5397 Delete .env.bkup 2020-09-29 12:04:16 -04:00
Caleb
24cad5587b Update .gitignore 2020-09-29 12:03:14 -04:00
Caleb
fb33824e10 Added admin controls.
Removed the note in the server settings that stated that the allocations feature is currently not implemented.

Properly check to make sure that there are allocations available in range before trying to create it.
2020-09-29 12:00:59 -04:00
Caleb
d80660f047 Added admin configuration
This is not working just yet but the fields have been added to the admin control area.
2020-09-28 16:14:14 -04:00
Caleb
da30977364 Merge branch 'develop' of https://github.com/pressstartearly/panel into develop 2020-09-28 11:51:09 -04:00
Caleb
8f8bd0be83 Added Automatic Allocations
Known issues:
- Port range to auto create is hard coded
- React interface is still a WIP.
2020-09-28 11:50:34 -04:00
Dane Everitt
f31a6d3967 Fix parameter bindings for client API routes; closes pterodactyl/panel#2359 2020-09-27 10:39:18 -07:00
Dane Everitt
1db7e4db66 Request stats from wings when loading the console; closes pterodactyl/panel#2414 2020-09-27 09:45:37 -07:00
Dane Everitt
ff50940fa6 Fix keyboard save shortcut when saving a new file; closes #2427 2020-09-27 09:30:24 -07:00
Dane Everitt
da0b527715 Do not re-render rows excessively 2020-09-27 09:30:05 -07:00
Dane Everitt
3e899ffc51 Handle JWT expirations a little better 2020-09-27 09:22:09 -07:00
Dane Everitt
47697e07cf Add test coverage for creating a subuser 2020-09-26 17:25:14 -07:00
Dane Everitt
cc6f98c0fd Replace all instances of 255 as a max length with 191; ref #2421 2020-09-26 16:29:26 -07:00
Dane Everitt
4f21fa85f8 finish fixing folder names when lots of slashes exist; closes #2377 2020-09-25 20:44:40 -07:00
Dane Everitt
fe849789a2 Dont display server usage as red if unlimited; closes #2417 2020-09-25 20:32:10 -07:00
Dane Everitt
bcbd2c4996 Add new sponsor 2020-09-24 21:24:01 -07:00
Dane Everitt
3340ee7fd8 Fix bad encoding when handling files; closes #2399 2020-09-24 20:27:02 -07:00
Dane Everitt
711efe34bb Truncate auto-generated usernames to 64 characters 2020-09-24 19:37:39 -07:00
Dane Everitt
c0fc9125ed Fix database naming conventions; closes #2404 2020-09-24 19:31:42 -07:00
Dane Everitt
6a4914df3b Properly validate schedule names; closes #2405 2020-09-24 19:25:34 -07:00
Dane Everitt
48a104667f Fix re-rendering mess on allocation page 2020-09-24 19:20:19 -07:00
Caleb
e1a01fd595 changed package.json to be ignored 2020-09-24 14:43:22 -04:00
Dane Everitt
cbedd4539c Performance cleanup; check main box when all children are checked; closes #2379 2020-09-22 21:41:35 -07:00
Dane Everitt
2182a15494 Don't return variables to users that they should not be able to see; closes #2388 2020-09-22 21:12:00 -07:00
Dane Everitt
7968258004 appease TS 2020-09-22 20:52:37 -07:00
Dane Everitt
4bfc91a30e Fix mutation of directory name with slashes in it; closes #2377 2020-09-22 20:50:44 -07:00
Dane Everitt
36eb04893d Not used, make things less confusing 2020-09-22 20:42:48 -07:00
Dane Everitt
7f9b21e486 Correctly show number of servers a user belongs to; closes #2375 2020-09-22 20:13:54 -07:00
Dane Everitt
1b0a6252f1 Fix undefined index error; closes #2378; closes #2391 2020-09-22 19:58:30 -07:00
Dane Everitt
d4363cb36f Merge pull request #2362 from AreYouRlyScared/fixes
Remove unused imports
2020-09-22 19:46:25 -07:00
Charles Morgan
c928214a83 Fix overflows through out the front end (#2382)
* Fix overflows through out the front end

Fixed Server row overflow for servers name and description
Fixed Sub-user overflow for users with oddly long emails....
Fixed Server new overflow on console view.

See Attached images.

* Remove conflicting server name limits
2020-09-22 19:37:41 -07:00
Dane Everitt
c75ed20b26 Merge pull request #2396 from pterodactyl/fix-2361
Fix empty array in node config YAML
2020-09-22 19:36:41 -07:00
Anand Capur
dda13f80c7 Fix empty array in node config YAML 2020-09-22 16:09:28 -07:00
Charles Morgan
f6bec474f4 Remove unused imports 2020-09-18 03:43:33 -04:00
Dane Everitt
0908830003 Fix error when loading nodes 2020-09-17 20:44:33 -07:00
Dane Everitt
c9883b5caf Include resource total allocations; closes #1518 2020-09-17 20:44:24 -07:00
Dane Everitt
f420cd1354 Merge pull request #2352 from Sir3lit/bugfixes
Fix schedule layout
2020-09-17 14:27:20 -07:00
Charles Morgan
1b59c8dffe Update Schedule.php 2020-09-17 17:16:36 -04:00
Charles Morgan
98ed96d08a Merge branch 'bugfixes' of https://github.com/Sir3lit/panel into bugfixes 2020-09-17 00:07:30 -04:00
Charles Morgan
d1a325312d Update ScheduleTaskRow.tsx 2020-09-17 00:07:20 -04:00
Charles Morgan
857d311135 Merge branch 'develop' into bugfixes 2020-09-17 00:04:16 -04:00
Charles Morgan
607184e578 Schedule Fixes
Limiting Schedule name 75>255
Moved Payload to bottom of new task window
Closes #2346
2020-09-17 00:01:48 -04:00
Dane Everitt
cca537d650 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-09-16 20:28:53 -07:00
Dane Everitt
95b27a8d56 Remove unused views 2020-09-16 20:28:38 -07:00
Dane Everitt
1e4b50fa61 Remove socketio connections from server listing; closes #1942 2020-09-16 20:28:32 -07:00
Dane Everitt
7f9f81a859 Merge pull request #2335 from ZeProf2Code/patch-2
fix: only show download button if it's a file
2020-09-16 20:23:39 -07:00
Dane Everitt
28dbd0f02a Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-09-16 20:20:51 -07:00
Dane Everitt
353f2487a0 Correctly send backup ignored files from textarea; closes #2349
For some reason Formik can't handle the css macro on these fields? Concerning, but not wasting time this close to release to dig into it more.
2020-09-16 20:20:48 -07:00
Caleb
edeaa69dff Merge pull request #3 from pterodactyl/develop
Pull from upstream
2020-09-16 11:23:13 -04:00
Dane Everitt
dffc392c09 Merge pull request #2340 from kodehat/develop
Add Redis UNIX socket support besides to TCP
2020-09-16 08:11:53 -07:00
kodehat
d5f411d733 Add Redis UNIX socket support besides to TCP 2020-09-16 08:49:35 +02:00
Dane Everitt
3af9e92603 Codemirror cleanup 2020-09-15 20:53:23 -07:00
Dane Everitt
80e08572d6 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-09-15 19:27:11 -07:00
Dane Everitt
2d669a3059 Fix backups table not being removed correctly; closes #2343 2020-09-15 19:27:02 -07:00
Dane Everitt
0be5878e9e Merge pull request #2338 from pterodactyl/feature/codemirror
Replace Ace Editor with CodeMirror
2020-09-15 19:17:00 -07:00
Matthew Penner
9d7f4f954e Replace Ace editor with CodeMirror 2020-09-13 17:17:40 -06:00
Dane Everitt
79f616f791 Fix authentication lockout when doing multiple SFTP uploads; closes #2221 2020-09-13 13:54:41 -07:00
Dane Everitt
7b57d65edf Cleanup allocation repository 2020-09-13 12:47:05 -07:00
Dane Everitt
9410a54c98 Removed unused interface functions 2020-09-13 12:37:59 -07:00
Dane Everitt
8b4bd3945d Fix user search in admin area; closes #2100 2020-09-13 12:35:48 -07:00
Dane Everitt
88300e5448 Support searching servers in admin area using name; closes #2100 2020-09-13 12:26:15 -07:00
Dane Everitt
d8c338df3e Update all remaining code pathways to use new search tooling 2020-09-13 12:21:44 -07:00
Dane Everitt
12fe3f1a4e Fix failing integration tests 2020-09-13 12:02:39 -07:00
Dane Everitt
f31dd4706c Fix location controller searches 2020-09-13 11:59:52 -07:00
Dane Everitt
a66623d8e1 Fix user search via the API; ref #2100 2020-09-13 11:55:39 -07:00
Dane Everitt
703f55271d Remove all references to daemon keys from the codebase 2020-09-13 11:38:42 -07:00
Dane Everitt
4dddcaebb0 Start ripping out old search functionality for models 2020-09-13 11:29:47 -07:00
Dane Everitt
3c7ffaaadb Remove all references of packs from the Panel 2020-09-13 11:13:37 -07:00
Dane Everitt
f1978683cc More mobile cleanup 2020-09-13 10:49:57 -07:00
Dane Everitt
47283700a8 File manager cleanup for mobile devices 2020-09-13 10:33:12 -07:00
Dane Everitt
6ec2ae9df8 Fix casting 2020-09-13 10:04:30 -07:00
Rihan
9a4c0d8ba7 Make interface mobile responsive (#2273) 2020-09-13 10:02:25 -07:00
Dane Everitt
9a21584c42 Cleanup mount code; automatically include the mount in the configuration 2020-09-13 09:59:54 -07:00
Arnaud Lier
34117017ec fix: only show download button if it's a file 2020-09-13 09:35:35 +02:00
Dane Everitt
8c6c271916 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-09-11 23:18:02 -07:00
Dane Everitt
74767ed6a2 Disable buttons when not fully connected to instance 2020-09-11 23:18:01 -07:00
Dane Everitt
f711c1c046 Merge pull request #2328 from Sourack/develop
Update daemon_off_config_updated message core.json is now config.yml
2020-09-11 20:18:50 -07:00
Dane Everitt
83f9bebba9 Merge pull request #2327 from ZeProf2Code/patch-1
fix: remove ./ before wings for auto-configuration
2020-09-11 20:17:49 -07:00
Sourack
09071a43dc Update daemon_off_config_updated message core.json is now config.yml
This error message isn't updated for wings 1.0 .
2020-09-11 21:50:43 -04:00
Arnaud Lier
8da56df641 fix: remove ./ before wings for auto-configuration
on the docs, you're downloading it to /usr/local/bin so it's easier like this
2020-09-12 02:29:52 +02:00
Dane Everitt
1c00c3b234 Merge pull request #2323 from Sir3lit/patch-1
Arrange cron times in proper order to match
2020-09-10 20:20:51 -07:00
Dane Everitt
d946cba2f3 Merge pull request #2321 from Sir3lit/movetitles
Move page titles to PageContentBlocks
2020-09-10 20:20:35 -07:00
Dane Everitt
1077504c02 Rely on the test connection to the MySQL instance rather than trying to validate the host manually; closes #2311; closes #2282 2020-09-10 20:09:07 -07:00
Charles Morgan
735aae6df7 Arrange cron times in proper order to match
Moves the rendering of the time boxes to proper locations to match the view on the main schedules page and to match cron syntax
2020-09-10 01:02:44 -04:00
Dane Everitt
d86d0fedb4 Don't re-render entire file list when opening modals 2020-09-09 21:32:43 -07:00
Dane Everitt
deb61623b2 Don't try to upload dropped text 2020-09-09 21:22:13 -07:00
Dane Everitt
98d7b32036 Use fixed spinner overlay for uploads 2020-09-09 21:08:34 -07:00
Dane Everitt
6d922a7563 Show normal upload box when using upload button; closes #2294 2020-09-09 21:07:57 -07:00
Dane Everitt
6139b4e479 Fix chrome dismissing modals when dragging out of it; closes #2295 2020-09-09 20:55:23 -07:00
Dane Everitt
b4599a2561 Name changes for sponsor 2020-09-09 19:00:11 -07:00
Charles Morgan
861911ca49 Move page titles to PageContentBlocks 2020-09-07 23:26:18 -04:00
Dane Everitt
ed83ab8fe9 Clear error when navigating through file manager; closes #2314 2020-09-07 15:03:26 -07:00
Dane Everitt
631885d60c Handle a plugin not properly namespacing itself and causing migration errors; ref #2291 2020-09-01 20:24:25 -07:00
Dane Everitt
b707147b73 Better handling of values that may need to be wrapped in quotes within the environment file, closes #2304 2020-09-01 19:45:24 -07:00
Dane Everitt
6ac12fc156 Disable integrity hashes by default, allow enabling with environment
Cloudflare auto-minifies our minified code even more (wat), which leads to issues with the resource hash, and then nothing loads. This is less likely to lead to support requests now.
2020-09-01 19:37:05 -07:00
Dane Everitt
de9ec1eba6 Confirmation when deleting files via dropdown menu; closes #2293 2020-08-31 21:05:52 -07:00
Dane Everitt
981edb0d64 Require specific permission for reading the actual contents of a file; ref #2288 2020-08-31 19:36:30 -07:00
Dane Everitt
d87438621f Don't allow opening of files we know cannot be edited; closes #2286 2020-08-30 10:25:48 -07:00
Dane Everitt
906cfce81c Don't return a 403 when returning resources for a suspended server; closes #2279 2020-08-30 09:54:59 -07:00
Dane Everitt
6a442c1fd3 Don't send along egg information unecessarily 2020-08-30 09:40:19 -07:00
Dane Everitt
4ee19b6847 Tweak UI for dashboard 2020-08-29 18:20:12 -07:00
Dane Everitt
cd9494251b Update README.md 2020-08-29 16:09:51 -07:00
Dane Everitt
0f6a307bc9 Update README.md 2020-08-29 16:08:22 -07:00
Dane Everitt
e576eb27bf Update README.md 2020-08-29 15:48:57 -07:00
Caleb
f54d4f965c Merge pull request #2 from pterodactyl/develop
Update From Upstream
2020-08-29 08:57:06 -04:00
Dane Everitt
d735909124 Update README.md 2020-08-28 08:23:44 -07:00
Dane Everitt
90ba76c237 Return integration tests to passing state 2020-08-27 21:22:05 -07:00
Dane Everitt
1e19e02398 Fix integration tests to properly account for the rule position in the API 2020-08-27 21:19:01 -07:00
Dane Everitt
f293c73977 Return the broken rule in the validation error response 2020-08-27 21:15:23 -07:00
Dane Everitt
1967e3f7fd Better backup storage 2020-08-27 19:59:01 -07:00
Dane Everitt
4b919cabd2 Correctly validation API calls to mark a backup as completed
Also block modifying a backup that is already marked as completed via the endpoint
2020-08-27 19:35:22 -07:00
Dane Everitt
e863683582 Treat validation errors the same as a normal error; match the output exactly 2020-08-27 19:26:52 -07:00
Dane Everitt
8c98264eed Remove last calls to useServer 2020-08-25 22:09:54 -07:00
Dane Everitt
6bc51adad7 Merge branch 'develop' into dane/fix-performance-snafu 2020-08-25 22:02:45 -07:00
Dane Everitt
ac1559de5e Revert "Less obtuse mounting code"
This reverts commit 9d95c5ab32.
2020-08-25 21:54:41 -07:00
Dane Everitt
1598dac6f8 Remove more references to useServer 2020-08-25 21:39:00 -07:00
Dane Everitt
c4418640eb Start cleaning up the mess of useServer; make startup page update in real time 2020-08-25 21:25:31 -07:00
Dane Everitt
0e0b58ba5e Update wrapper.blade.php 2020-08-25 21:00:43 -07:00
Dane Everitt
179885b546 Add endpoint to return startup variables; send back modified startup when a variable is edited 2020-08-25 19:22:17 -07:00
Dane Everitt
d58fd72bf5 Correctly pass along startup variables for a server; closes #2255 2020-08-25 19:11:25 -07:00
Dane Everitt
9d95c5ab32 Less obtuse mounting code 2020-08-25 19:01:08 -07:00
Dane Everitt
96fef94578 Don't try to use the contents of the file as the file name when using the save shortcut... closes #2266 2020-08-25 18:47:26 -07:00
Dane Everitt
9e60cf9f53 Show server status 2020-08-24 21:17:15 -07:00
Dane Everitt
7e3ac2399b Merge pull request #2262 from Rems19/develop
Fix default values not applied in server creation
2020-08-24 19:08:49 -07:00
Dane Everitt
5b1456b58f Merge pull request #2263 from pterodactyl/fix/2253
Fix #2253
2020-08-24 19:08:36 -07:00
Matthew Penner
773c42e4f2 Fix #2253 2020-08-24 11:26:05 -06:00
Rémi Labergère
74cf92b2e1 Fix default values not applied in server creation 2020-08-24 18:50:25 +02:00
Dane Everitt
1e58e108ba Update last location using wrong column name 2020-08-23 20:23:42 -07:00
Dane Everitt
034a310702 Use checksum more broadly, not specifically SHA256 2020-08-23 18:06:47 -07:00
Dane Everitt
4cd44d2025 Hide checkbox when editing/creating files 2020-08-23 16:03:54 -07:00
Dane Everitt
55cd7d4d39 Allow editing files up to 4MB 2020-08-23 15:55:26 -07:00
Dane Everitt
89b18cbcac Fix pages not rendering 2020-08-23 15:55:10 -07:00
Dane Everitt
5173f1f7e8 Don't allow editing read only values; closes #2252 2020-08-23 14:56:05 -07:00
Dane Everitt
92929c45d5 Fix query bug returning _all_ variables; closes #2250 2020-08-23 08:45:39 -07:00
Dane Everitt
f21aca20b2 Mutate the store after uploading 2020-08-22 22:36:53 -07:00
Dane Everitt
b4c64d3dc0 Better handling of file uploads 2020-08-22 22:35:53 -07:00
Dane Everitt
f561089cad Fix the unholy hell that is drag events 2020-08-22 22:10:16 -07:00
Dane Everitt
56475d89bb Fix rendering when trying to access server from state 2020-08-22 19:05:43 -07:00
Dane Everitt
813a671571 Hide startup line from API response if user doesn't have startup permissions 2020-08-22 19:01:42 -07:00
Dane Everitt
9ae3c17913 Don't even render components if the user doesn't have permission 2020-08-22 19:01:29 -07:00
Dane Everitt
54f9c5f187 Merge branch 'develop' into feature/file-uploads 2020-08-22 18:33:09 -07:00
Dane Everitt
91cdbd6c2e Support modifying startup variables for servers 2020-08-22 18:13:59 -07:00
Dane Everitt
1b69d82daa Don't return things a user shouldn't be able to see via the API includes 2020-08-22 16:54:12 -07:00
Dane Everitt
9b16f5883c Refactor to a single transformer file 2020-08-22 15:46:13 -07:00
Dane Everitt
cae604e79d Include egg variables in the output from the API 2020-08-22 15:43:28 -07:00
Dane Everitt
3a2c60ce31 Store bytes as unsigned bigint; closes #2245 2020-08-22 13:26:03 -07:00
Dane Everitt
63bdc1b6eb Merge pull request #2249 from JanDevDE/patch-2
Fix schedules in Dockerfile
2020-08-21 13:02:26 -07:00
Jan
b5713ff7b7 Fix schedules in Dockerfile
The wrong directory to run PHP in, so schedules will not run
2020-08-21 15:10:17 +02:00
Dane Everitt
1e735cf0e8 Support failed backup display on the frontend; use SWR for backup pages 2020-08-20 21:44:33 -07:00
Dane Everitt
e3178ba6f0 backend: support is_successful state for backups rather than deleting it when failing
This allows the UI to correctly show failed backups to the user and require them to manually delete those backups, rather than them mysteriously disappearing.

We can also hook into this later to send a notification to the user when the backup fails.
2020-08-20 21:07:53 -07:00
Dane Everitt
6066fa40f4 Prune server backups from the DB after 30 minutes if they still have not completed 2020-08-20 20:48:08 -07:00
Dane Everitt
f144ba8394 Don't enter d i s c o m o d e when first opening the page; closes #2190
This was caused by the location.key being undefined when the page first renders (for some reason), and therefore the fade component just kept re-rendering since it wasn't using a unique key.
2020-08-19 21:30:45 -07:00
Dane Everitt
13ace83f42 Move the file selector out of the editor itself; closes #2147 2020-08-19 21:11:29 -07:00
Dane Everitt
540cc82e3d Don't resolve database hosts; closes #2237 2020-08-19 20:38:51 -07:00
Dane Everitt
61e9771333 Code cleanup for subuser API endpoints; closes #2247 2020-08-19 20:21:12 -07:00
Dane Everitt
57bb652d81 Whoops, don't always show this modal 2020-08-18 20:16:13 -07:00
Dane Everitt
e873c597bb Allow passing props through to determine modal options 2020-08-17 22:04:24 -07:00
Dane Everitt
c28cba92e2 Make modals programatically controllable via a HOC
This allows entire components to be unmounted when the modal is hidden without affecting the fade in/out of the modal itself.

This also makes it easier to programatically dismiss a modal without having to copy the visibility all over the place, and makes working with props much simpler in those modal components
2020-08-17 21:35:11 -07:00
Dane Everitt
d41b86f0ea Correctly pass along allowed IPs for client API keys, closes #2244 2020-08-17 19:48:51 -07:00
Dane Everitt
a6cc53793d Update README.md 2020-08-17 19:05:01 -07:00
Dane Everitt
1ced8da735 Update README.md 2020-08-17 19:04:23 -07:00
Caleb
d3a544ac5d Merge pull request #1 from pterodactyl/develop
Upstream Update
2020-08-16 12:00:54 -04:00
Dane Everitt
800b475ec5 Respond with the actual error from wings if available; closes #2224 2020-08-13 21:21:08 -07:00
Dane Everitt
231ff0386c Fix kill button not showing up when restarting 2020-08-13 20:47:16 -07:00
Dane Everitt
c0f7c9bbf3 Update README.md 2020-08-13 20:29:46 -07:00
Dane Everitt
9026808ad7 The first of our lovely sponsors 2020-08-12 21:25:14 -07:00
Dane Everitt
14c587eabe Correctly inject new directory into file manager 2020-08-06 20:33:17 -07:00
Dane Everitt
95e8492c5d What the heck are these abysmal timeouts; closes #2223 2020-08-06 20:25:35 -07:00
Dane Everitt
d1a28051f9 Support userInteraction and user_interaction because who needs this to be maintainable in the future... 2020-08-04 20:39:18 -07:00
Dane Everitt
c91c02f6a8 Fix for struct in Go 2020-08-04 20:38:24 -07:00
Dane Everitt
164d6ef2e4 Return egg "done" checks as an array rather than a string 2020-08-04 20:34:44 -07:00
Dane Everitt
26704a2d5f Clear reinstall messages when mounting; closes #2213 2020-08-03 20:58:15 -07:00
Dane Everitt
941da821e1 Merge pull request #2205 from Sir3lit/pagetitles2
Page Titles v2 - Using React Helmet
2020-08-01 21:27:23 -07:00
Dane Everitt
9387be3b0d Fix permissions on subuser rows 2020-08-01 21:25:28 -07:00
Charles Morgan
658c2b12ae Merge branch 'develop' into pagetitles2 2020-08-01 23:14:27 -05:00
Charles Morgan
a1f1e4294d conflict fix 2020-08-02 00:11:49 -04:00
Dane Everitt
b52fc0b4d9 Fix recaptcha handling during login & password reset flows; closes #2064 2020-08-01 21:08:35 -07:00
Charles Morgan
d3316f61d7 Titles on index / account pages
Also changed to use  `const { ..., name: serverName } = useServer();` where feasible
2020-08-01 23:49:00 -04:00
Charles Morgan
27f201f27e Merge branch 'develop' into pagetitles2 2020-08-01 22:10:58 -05:00
Dane Everitt
dd381f65a9 Don't try to be fancy, just pain 2020-08-01 20:06:17 -07:00
Charles Morgan
d604a4a5f2 Merge branch 'develop' into pagetitles2 2020-08-01 22:03:07 -05:00
Dane Everitt
a966613890 Fix task edit modal not filling the payload correctly 2020-08-01 19:52:13 -07:00
Dane Everitt
c58348735d Avoid double-click double-submit issues in modals; closes #2199 2020-08-01 19:49:38 -07:00
Dane Everitt
0c7f118f45 add withFlash() context HOC 2020-08-01 19:44:50 -07:00
Dane Everitt
b92c97060b Use a key that doesn't change to avoid re-render issues; closes #2203 2020-08-01 18:48:58 -07:00
Dane Everitt
21a4ce8043 Merge pull request #2034 from dblitt/patch-1
Fix outdated AdminLTE link in README.md
2020-08-01 16:55:50 -07:00
Dane Everitt
81f395bf5a Merge pull request #2174 from vilhelmprytz/remove-unused-import
Remove unused import
2020-08-01 16:55:35 -07:00
Dane Everitt
b5d97c00df Merge pull request #2184 from Sir3lit/scrollbar
Re-add scroll bar style, fix missed tw conversion
2020-08-01 16:55:23 -07:00
Dane Everitt
0d089acf3d Merge pull request #2191 from Sir3lit/googleanalytics2
Add Google Analytics Support
2020-08-01 16:55:06 -07:00
Dane Everitt
0fa90dd6bd Add listener for install start/end 2020-07-29 22:02:00 -07:00
Dane Everitt
874d928a50 Correctly handle response from daemon for server stats; #2183 2020-07-29 20:34:06 -07:00
Dane Everitt
4c558a8662 Fix date display for scheduled tasks; closes #2195 2020-07-29 20:23:46 -07:00
Charles Morgan
6d79ad23a5 Attempt 2?
80% sure this isn't how to use react-helmet.... but it works....
2020-07-26 23:32:24 -04:00
Charles Morgan
cb4f8efbe6 Add Google Analytics
Added Google Analytics to latest dev branch
2020-07-26 21:05:54 -04:00
Dane Everitt
4a27e56e08 Fix test 2020-07-26 10:55:30 -07:00
Dane Everitt
f0ac0725b6 [Security] Don't return all servers on the system when not a root admin and admin level servers are requested
Cleaned up the API endpoint by simplifying the logic and adds test case to cover this bug.

If you ever need to list _all_ of the servers on the system you should be using the application API endpoint for the servers most likely.
2020-07-26 10:43:46 -07:00
Charles Morgan
1fe254efc6 Re-add scroll bar style, fix missed tw conversion
Fixed backup message still using old method of "className" changed to use css={ts}
readded scrollbar styling from PR#2118
2020-07-22 01:54:49 -04:00
Dane Everitt
24db6d9128 Update FUNDING.yml 2020-07-19 14:35:47 -07:00
Dane Everitt
ff9f893dc3 Code cleanup for file manager 2020-07-18 10:45:41 -07:00
Dane Everitt
d644758986 Always return the status code from the daemon if possible 2020-07-18 10:23:28 -07:00
Dane Everitt
c2b1e7e6ab Use archive icon 2020-07-16 22:21:06 -07:00
Dane Everitt
3b80597899 Merge pull request #2178 from pterodactyl/feature/decompress
Fix empty request body to wings when decompressing a file
2020-07-15 18:46:44 -07:00
Matthew Penner
df385cef3a Add additional mimetypes to check if a file is an archive 2020-07-15 13:09:45 -06:00
Matthew Penner
b6e31096f0 Fix empty request body to wings when decompressing a file 2020-07-15 12:29:52 -06:00
Dane Everitt
1a6669aa5c Add endpoint support for decompressing files 2020-07-14 21:16:49 -07:00
Dane Everitt
78c76d6df4 Ensure errors from daemon are wrapped correctly 2020-07-14 21:16:38 -07:00
Dane Everitt
6c0d308348 Paginate servers on frontend; closes #2106 2020-07-14 20:48:41 -07:00
Vilhelm Prytz
6df54b7149 Remove unused import
importing SpinnerOverlay is redundant since it is not used
2020-07-14 00:52:35 +02:00
Dane Everitt
03abc1764d Merge pull request #2173 from pterodactyl/release-automation-fix-archive-1
add .env.example to panel.tar.gz in automated release
2020-07-13 11:39:03 -07:00
Jakob
a8e701daa7 add .env.example to panel.tar.gz in automated release 2020-07-13 19:56:35 +02:00
Matthew Penner
67ba3baff0 Fix lint warnings 2020-07-12 16:47:00 -06:00
Matthew Penner
1d2acbd5b4 Get basic file upload functionality working 2020-07-12 16:42:32 -06:00
Matthew Penner
3ebb6eadbf Add upload button and drag&drop modal 2020-07-12 15:20:37 -06:00
Dane Everitt
17c57d37bc Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-07-12 11:57:50 -07:00
Dane Everitt
90ab185dce Delete global.d.ts 2020-07-12 11:57:48 -07:00
Dane Everitt
cf366be06c Merge pull request #2171 from pterodactyl/fix/2165
Fix table search bar not rendering properly across browsers
2020-07-12 11:16:19 -07:00
Dane Everitt
01faa86c73 swr for servers on dash; fix whatever is going on with the spinner 2020-07-12 11:15:54 -07:00
Matthew Penner
f26226e465 Fix table search bar not rendering properly across browsers 2020-07-12 12:15:01 -06:00
Dane Everitt
4082f9e585 Merge pull request #2170 from DarthShmev/patch-4
Update DisableTwoFactorModal.tsx - Fix lint errors
2020-07-12 10:52:43 -07:00
DarthShmev
3dbb297645 Update DisableTwoFactorModal.tsx - Fix lint errors
Whoops! Trailing space after `<Button` on line 60.
2020-07-12 13:51:54 -04:00
Dane Everitt
be1888f8eb Merge pull request #2168 from DarthShmev/patch-2
Fix Two Factor Authentication Buttons colour and sizing. Closes #2167
2020-07-12 10:44:51 -07:00
Dane Everitt
474df81bf4 Merge pull request #2169 from DarthShmev/patch-3
Update ServerRow.tsx - Fix yarn compile errors.
2020-07-12 10:44:26 -07:00
Dane Everitt
85dcfd4cf5 Always tscheck, ignore eslint in prod 2020-07-12 10:43:37 -07:00
DarthShmev
156391ef6d Update ServerRow.tsx - Fix yarn compile errors.
"Unlimited" -> 'Unlimited'
Removed extra blank line
2020-07-12 13:41:41 -04:00
DarthShmev
c59698d055 Update colour of disable two factor confirmation button 2020-07-12 01:14:08 -04:00
DarthShmev
3b16a4c5ab Adjust size of close button for SetupTwoFactorModal 2020-07-12 00:59:34 -04:00
Dane Everitt
0d35ab95fd Merge pull request #1915 from pterodactyl/feature/server-mounts
Add configurable server mounts
2020-07-11 17:19:25 -07:00
Dane Everitt
831673755a Merge pull request #2105 from pterodactyl/fix/2071
Fix improper byte conversions
2020-07-11 17:18:45 -07:00
Dane Everitt
45a85938df Merge pull request #2164 from pterodactyl/fix/2163
Fix 2FA codes missing prepended 0s
2020-07-11 17:18:24 -07:00
Dane Everitt
3df4d433f0 Support checking all 2020-07-11 17:09:54 -07:00
Dane Everitt
cb3288500a Fix render performance and avoid re-rendering rows constantly 2020-07-11 16:57:30 -07:00
Dane Everitt
325626e46d Only render the modal when needed 2020-07-11 16:49:46 -07:00
Dane Everitt
80ecd58b30 Mass actions for moving files, mostly working? 2020-07-11 16:47:13 -07:00
Dane Everitt
121f163b81 Handle new file rename/move API 2020-07-11 16:20:42 -07:00
Dane Everitt
2653321fc2 Support renaming multiple files at once 2020-07-11 16:00:30 -07:00
Dane Everitt
43f8ec23b8 Show a message when the spinner is displayed 2020-07-11 15:45:28 -07:00
Dane Everitt
93cab68cc3 Handle mass actions for file deletion 2020-07-11 15:37:59 -07:00
Dane Everitt
82bc9e617b Add support for compressing items in the file manager 2020-07-11 13:38:49 -07:00
Dane Everitt
cb9eb918b2 Fix dropdown hiding under buttons 2020-07-11 13:19:28 -07:00
Matthew Penner
fbaabc2633 Merge branch 'develop' into fix/2163 2020-07-11 13:12:49 -06:00
Matthew Penner
984deab894 Remove debug log in LoginCheckpointContainer.tsx 2020-07-11 13:10:01 -06:00
Matthew Penner
55a3e76d99 Fix 2FA codes missing prepended 0s 2020-07-11 13:07:54 -06:00
Matthew Penner
295f09ca43 Merge branch 'develop' into feature/server-mounts 2020-07-11 12:29:30 -06:00
Matthew Penner
a9bb692112 Merge branch 'develop' into fix/2071 2020-07-11 12:29:04 -06:00
Dane Everitt
34a46a388f Update DropdownMenu.tsx 2020-07-11 11:19:38 -07:00
Dane Everitt
c63382532e Update DropdownMenu.tsx 2020-07-11 11:19:27 -07:00
Dane Everitt
117c1b1778 Support right click to use file context menu 2020-07-11 11:12:59 -07:00
Dane Everitt
6188b9287c Remove unused code 2020-07-10 23:09:37 -07:00
Dane Everitt
fa9800fa88 Fix some SWR funkiness 2020-07-10 22:53:52 -07:00
Dane Everitt
5da9824fb7 Continue with file manager code cleanup 2020-07-10 22:38:07 -07:00
Dane Everitt
2692e98cd8 Massive speed improvements to filemanager 2020-07-10 22:10:51 -07:00
Dane Everitt
fdec3cea80 Fix nested directories being created incorrectly 2020-07-10 22:10:41 -07:00
Dane Everitt
a430ebb89e Add test coverage for allocation routes 2020-07-10 21:17:28 -07:00
Dane Everitt
d040b3a242 Merge pull request #2161 from DarthShmev/patch-1
Remove colon from port field on allocations page. Closes #2160
2020-07-10 20:20:20 -07:00
DarthShmev
f2cb41c074 Remove colon from port field on allocations page. Closes #2160 2020-07-10 11:37:55 -04:00
Dane Everitt
4122486468 Fix failing tests (which caught a bug in the new client query) 2020-07-09 21:32:31 -07:00
Dane Everitt
82d7fa1c53 Support setting notes on allocations; closes #561 2020-07-09 21:00:03 -07:00
Dane Everitt
2278927fb6 Update allocations to support ids; protect endpoints; support notes 2020-07-09 20:36:08 -07:00
Dane Everitt
9c3b9a0fae Fix error handling and simplify showing http errors 2020-07-09 20:00:05 -07:00
Dane Everitt
fc9054312d Support modifying the primary allocation for a server 2020-07-09 19:56:46 -07:00
Dane Everitt
bfb28f949d [Breaking] Return server allocations automatically as a relation object 2020-07-09 19:17:24 -07:00
Dane Everitt
5c18fd1f0c Show allocated ports on settings page 2020-07-08 21:42:37 -07:00
Dane Everitt
7b5139b2b1 [Breaking] Return all server allocations in API response 2020-07-08 21:04:45 -07:00
Dane Everitt
d3c749ac56 Code cleanup & fix frontend searching servers; closes #2100 2020-07-06 21:25:00 -07:00
Dane Everitt
f0e18ba6f7 Code cleanup 2020-07-06 20:05:42 -07:00
Dane Everitt
a2201aaa38 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-07-05 13:56:06 -07:00
Dane Everitt
28992c5e43 Speed up animations throughout the panel 2020-07-05 13:56:04 -07:00
Dane Everitt
fd3385a8d9 Merge pull request #2152 from DarthShmev/patch-1
Fix AuthenticateServerAccess middleware spelling issue.
2020-07-05 12:53:00 -07:00
DarthShmev
06ece0e624 Fix AuthenticateServerAccess middleware spelling issue. 2020-07-05 15:48:02 -04:00
Dane Everitt
30b6ca8807 Merge pull request #2151 from schrej/ci/releases
add release automation
2020-07-05 10:47:14 -07:00
Dane Everitt
cbdede75a7 Fix suspense spinner to make it indistinguishable from other loading 2020-07-04 22:38:34 -07:00
Dane Everitt
db7f3e5fc0 Fix console and charting 2020-07-04 22:36:28 -07:00
Dane Everitt
becad7b3c7 Cut out all of the unused ace editor modes; significantly reduces bundle size 2020-07-04 22:16:06 -07:00
Dane Everitt
e9f553dede Reduce chart bundle size 2020-07-04 21:57:35 -07:00
Dane Everitt
cbea4078fb Remove lodash deps to reduce bundle size more 2020-07-04 21:46:49 -07:00
Dane Everitt
0403fa9517 Build fixes 2020-07-04 20:54:33 -07:00
Dane Everitt
7f5ee04978 Remove a hilarious number of unused dependencies 2020-07-04 19:01:49 -07:00
Dane Everitt
732594a164 Remove unused imports 2020-07-04 18:46:09 -07:00
Dane Everitt
c419d15907 eslint cleanup 2020-07-04 18:30:50 -07:00
Dane Everitt
922383e232 Cleanup unused code and simplify webpack 2020-07-04 18:19:46 -07:00
Jakob Schrettenbrunner
2d48781f8e disable ci on master and release branches 2020-07-05 03:13:53 +02:00
Jakob Schrettenbrunner
f24a741cbb add release automation 2020-07-05 03:09:38 +02:00
Dane Everitt
43fbefbdb6 Fix up file manager 2020-07-04 17:57:24 -07:00
Dane Everitt
7e8a5f1271 Update database screens 2020-07-04 17:15:49 -07:00
Dane Everitt
a288374027 Update schedule page 2020-07-04 17:00:19 -07:00
Dane Everitt
f3586056f4 Update users screens 2020-07-04 16:26:07 -07:00
Dane Everitt
d27bda1c74 Get settings page in working order 2020-07-04 15:58:14 -07:00
Dane Everitt
1e163aa792 Get server console page rendering (mostly) correctly 2020-07-04 15:40:41 -07:00
Dane Everitt
43ff67238c Fix search modal 2020-07-04 15:19:46 -07:00
Dane Everitt
82cf070c06 Fix styling on 2fa codes modal 2020-07-04 15:05:44 -07:00
Dane Everitt
1c97dd4e24 Correctly center the spinner in buttons 2020-07-04 14:34:43 -07:00
Matthew Penner
e4d141fa6f Merge branch 'develop' into fix/2071 2020-07-04 15:22:25 -06:00
Dane Everitt
8c20158e58 Fix login form 2020-07-04 14:21:28 -07:00
Matthew Penner
29876e023b Merge branch 'develop' into feature/server-mounts 2020-07-04 15:20:01 -06:00
Dane Everitt
02f83c58f5 Fix unhappy typescript 2020-07-04 13:31:00 -07:00
Dane Everitt
5473edc006 Get spinners back in working order 2020-07-04 12:39:55 -07:00
Dane Everitt
d260200947 Make the modal work again 2020-07-04 10:15:06 -07:00
Dane Everitt
ebe588718c Fix route transitioning 2020-07-04 09:46:26 -07:00
Dane Everitt
bcf0a0586d Support textareas and cleanup API page 2020-07-04 09:28:03 -07:00
Dane Everitt
baf35be8e8 Update fields to have a custom component 2020-07-04 09:13:41 -07:00
Dane Everitt
e8755ac598 Kind of get account stuff working; IDE is throwing a fit right now 2020-07-03 15:37:26 -07:00
Dane Everitt
7cea5e630c Temporary hack to get fonts working 2020-07-03 14:51:40 -07:00
Dane Everitt
d93e804a31 Get server listing design working mostly correct 2020-07-03 14:50:37 -07:00
Dane Everitt
94e3acb9c4 Get compilation back to working 2020-07-03 14:19:05 -07:00
Dane Everitt
2193916fe4 Get basic compiling working with new CSS setup 2020-07-03 13:55:33 -07:00
Dane Everitt
7b75e7a648 Support using recovery tokens during the login process to bypass 2fa; closes #479 2020-07-02 23:01:02 -07:00
Dane Everitt
795e045950 Display generated recovery tokens when enabling two factor 2020-07-02 22:23:25 -07:00
Dane Everitt
c522935403 Fix logic when generating recovery codes and update migration 2020-07-02 22:11:07 -07:00
Dane Everitt
a998b463e3 Generate recovery tokens when enabling 2FA on an account 2020-07-02 21:55:25 -07:00
Dane Everitt
7ee509d8c2 urlencode company name; closes #1690 2020-07-02 21:14:53 -07:00
Dane Everitt
e95a532da9 Make rate limit configurable; closes #1695 2020-07-02 21:11:16 -07:00
Dane Everitt
fde8465f35 Show a better error when JSON data cannot be parsed in the request 2020-06-30 20:05:11 -07:00
Dane Everitt
655a751ef3 Prefix command with sudo 2020-06-29 20:34:58 -07:00
Dane Everitt
2ed3763d21 cs fix 2020-06-28 15:43:44 -07:00
Dane Everitt
6143b656a3 Don't make tests fail just because of a style issue 2020-06-28 15:41:46 -07:00
Dane Everitt
d0a4d477eb Testing improvements; always run the integration & unit tests even if failure occurred 2020-06-28 15:40:02 -07:00
Dane Everitt
d6b765ed16 Run unit tests as well as integration tests 2020-06-28 15:31:06 -07:00
Dane Everitt
6b1b478cb9 Fix envrionment configuration 2020-06-28 15:26:09 -07:00
Dane Everitt
ce138d07a9 Test fixes 2020-06-28 15:22:39 -07:00
Dane Everitt
faca237049 First pass at getting integration tests running on Github actions 2020-06-28 15:17:36 -07:00
Dane Everitt
b7f5011abd Update FUNDING.yml 2020-06-28 15:09:17 -07:00
Dane Everitt
d7ab0a356f Add funding information 2020-06-28 15:04:54 -07:00
Dane Everitt
28c5729e48 Add test coverage for creating tasks 2020-06-28 14:41:22 -07:00
Dane Everitt
b9a451b528 Add test coverage for schedules 2020-06-28 13:50:07 -07:00
Dane Everitt
63bc4080d5 Add test coverage for reinstall & server renaming 2020-06-28 10:40:41 -07:00
Dane Everitt
4cb4dfecc8 Add test coverage for generating JWTs to connect to websocket 2020-06-28 10:16:15 -07:00
Dane Everitt
7546d54b4e Add test coverage for resource utilization 2020-06-27 12:32:27 -07:00
Dane Everitt
6312b627a3 Add test coverage for power toggling 2020-06-27 12:23:40 -07:00
Dane Everitt
8cfdb3acce Add test cases for sending a command to a server 2020-06-27 12:04:41 -07:00
Dane Everitt
4cb95d8063 Add test coverage for 2fa 2020-06-27 11:06:35 -07:00
Dane Everitt
fc261fe20c Add test cases for client servers endpoint 2020-06-27 10:35:02 -07:00
Dane Everitt
4a677aebae Fix the subtest to actually make enough keys for this to be useful 2020-06-25 22:39:45 -07:00
Dane Everitt
a81f6882f7 Add test coverage for API key generation and deletion 2020-06-25 22:36:58 -07:00
Dane Everitt
7a5f7b99a7 Add integration test covering account endpoint 2020-06-25 22:12:09 -07:00
Dane Everitt
8fb21a5048 Fix error while updating user 2020-06-25 21:42:21 -07:00
Dane Everitt
f0e3f0e474 Make quick iteration testing easier 2020-06-25 21:21:05 -07:00
Dane Everitt
da39d9177e Fix seed imports 2020-06-25 21:16:59 -07:00
Dane Everitt
b55767426f Update some server service tests 2020-06-24 22:18:48 -07:00
Dane Everitt
83a59cdf4f Fix node update tests 2020-06-24 21:54:56 -07:00
Dane Everitt
a5d9faf6b2 Get database unit tests back into passing shape 2020-06-24 20:47:52 -07:00
Dane Everitt
756a21ff04 Remove unused code 2020-06-24 20:38:13 -07:00
Dane Everitt
34916e7caf Fix job task runner test 2020-06-23 22:10:54 -07:00
Dane Everitt
536180ed0c Return Http test cases to a passing state 2020-06-23 21:59:37 -07:00
Dane Everitt
eaae74fe33 Fix immediately obvious deprecation notices while running command tests 2020-06-23 21:33:56 -07:00
Dane Everitt
86bc9da893 Add back some dev deps 2020-06-23 21:25:44 -07:00
Dane Everitt
c3aa257a2b Update dependencies to latest versions 2020-06-23 21:24:37 -07:00
Dane Everitt
ba0c78d2ab Revert "Add missing testing dependencies"
This reverts commit 6ed35ad83c.
2020-06-23 21:00:00 -07:00
Dane Everitt
066ed5cdda Don't prevent deletion if a DB host is unreachable and it is a force delete; closes #2085 2020-06-23 20:26:48 -07:00
Dane Everitt
4a0627d182 Don't trigger a 500 error due to unchecked data being inserted; closes #2087
This also clears up allowed values for the disk input and normalizes the messaging between edit and create screens.
2020-06-23 20:24:09 -07:00
Dane Everitt
497f73d820 Only show limit warnings when necessary and relevant 2020-06-23 20:13:58 -07:00
Dane Everitt
b78aa180ea Prevent creating a new database via the application API if server is at its limit; closes #2129 2020-06-23 20:07:37 -07:00
Dane Everitt
910a48ee8a Merge pull request #2128 from galeapatrik/develop
Fix #terminal css line formatting
2020-06-23 19:28:24 -07:00
Dane Everitt
1b54112129 Merge pull request #2118 from Sir3lit/stylingchanges
Add scrollbar styling + change syntax background color
2020-06-23 19:27:59 -07:00
Dane Everitt
173b75d44d Merge pull request #2089 from Sir3lit/changedatabases
Database page edits, Shows message x of x databases when limit > 0, removes create button once limit is reached.
2020-06-23 19:27:00 -07:00
Dane Everitt
24852b8982 Merge pull request #2088 from Sir3lit/changebackup
Backup page edits, Shows client x of x backups when limit > 0. Removes create button if limit is reached or limit is 0
2020-06-23 19:26:43 -07:00
Dane Everitt
3d99b50e15 Merge pull request #2031 from Sir3lit/showunlimited
Show "unlimited" not 0
2020-06-23 19:24:32 -07:00
Dane Everitt
9efac27020 Merge pull request #2063 from Sir3lit/adminoverview
Show Unlimited instead of 0MB for disk space on about page ( Admin Side )
2020-06-23 19:24:10 -07:00
Dane Everitt
76beab0db0 Merge pull request #2131 from vilhelmprytz/update-mumble-egg
Update default value for "MUMBLE_VERSION" to latest version
2020-06-23 19:23:48 -07:00
Dane Everitt
16e14621c8 Better error messaging when server is suspended 2020-06-22 20:22:52 -07:00
Vilhelm Prytz
b5b02207d3 Update default value for MUMBLE_VERSION to latest version 2020-06-22 11:59:18 +02:00
Dane Everitt
693b9eab0c Fix handling of backup tasks; closes #2067 2020-06-18 21:00:04 -07:00
galeapatrik
89844e0a0d Fix terminal css line formatting 2020-06-17 21:32:33 +02:00
Charles Morgan
ad0fd4bf72 Change syntax background
Matches the background of file editor, keeps lighter border to say defiend.
2020-06-14 03:47:37 -04:00
Charles Morgan
03f37e1fb9 Add global scrollbar styling
Addeding styling to the scroll bar so its not "out of place" from everything else. Open to changes to the style. Anything is better then what it was.

Maybe remove the hover color?
2020-06-14 03:45:56 -04:00
Dane Everitt
364b645b81 Actually link the save action; closes #2092 2020-06-13 10:07:16 -07:00
Dane Everitt
be91913f23 Return a null resource if an allocation has no server; closes #2117 2020-06-13 09:56:40 -07:00
Dane Everitt
b30d7429f3 Decode the filename when rendering it to the screen; closes #2101 2020-06-13 09:49:32 -07:00
Matthew Penner
e903d4cc2a Use 1024 instead of 1000 for byte conversions, rename gloabl.d.ts to global.d.ts 2020-06-10 14:00:43 -06:00
Dane Everitt
050fe307f0 Merge pull request #2098 from pterodactyl/fix-2094
Fix Validable class in Models/ServerTransfer
2020-06-09 20:15:33 -07:00
Matthew Penner
0bec5b8581 Merge branch 'develop' into feature/server-mounts 2020-06-06 11:41:18 -06:00
Matthew Penner
3338c49831 Fix Validable class on ServerTransfer.php 2020-06-06 11:37:43 -06:00
Charles Morgan
5e68290267 Apply same logic to databases
Same logic as PR #2088

Shows using x of x databases.
Once limit is reached the create button is removed
2020-06-02 23:40:40 -04:00
Charles Morgan
2c326dcbe7 Fix condition
Fix condition for using message
2020-06-02 23:30:43 -04:00
Charles Morgan
e3ac933591 Add using x of x when limit > 0
Added a using x of x so the end user knows how many they have and are using.
2020-06-02 23:27:10 -04:00
Charles Morgan
48869d2eda Remove create backup button if limit = 0, display message none can be created
Removes the create button if the limit is 0, just like it does with the database page
Also once limit is reached the create button is removed from view.
2020-06-02 23:14:16 -04:00
Charles Morgan
4d3563b8e1 Merge branch 'develop' into showunlimited 2020-06-02 11:18:00 -05:00
Dane Everitt
0795f8763d Fix admins being unable to select permissions for subusers; closes #2055 2020-05-31 11:14:31 -07:00
Dane Everitt
1f943d957a Merge pull request #2071 from Sir3lit/serverviewchanges
Change to BytesToHuman on server view for limits, to match index page. Changes to CPU/Memory Graph
2020-05-28 19:04:19 -07:00
Charles Morgan
3b42f110fb Show BytestoHuman value, not server limit, change graph
Changes server view to use bytestohuman to show 10 GB like it does on the main index.

Removed animation duration so the graph dosn't look likes it glitching when a new value is pushed, also made it a little more curved.
2020-05-27 00:00:50 -04:00
Dane Everitt
a26f527f44 Merge pull request #2048 from Sir3lit/fixmaxconn
Save maxconnection value to DB
2020-05-25 15:11:27 -07:00
Dane Everitt
fece67ff50 Create SECURITY.md 2020-05-25 15:08:47 -07:00
Dane Everitt
2d8573a363 Merge pull request #2065 from parkervcp/update/forge_egg
update forge egg
2020-05-24 15:40:50 -07:00
Michael Parker
8bef5078de update forge egg
Updates the forge egg to use the json api from forge to get versions instead of the old way of scraping the site and getting invalid jar files.

Also updates to validate download links.

Allows for setting a specific forge version
2020-05-24 12:23:53 -04:00
Charles Morgan
6c60305617 Show Unlimited instead of 0, admin view
Guess i missed this one when i set everything to show unlimited when its 0 / -1.

Shows Unlimited disk space instead of 0 on admin about page.
2020-05-24 00:57:30 -04:00
Matthew Penner
f255399171 Fix StyleCI issues 2020-05-21 15:16:16 -06:00
Matthew Penner
65393914c3 Send mounts when wings fetches server information, fix issue with mount fields not being updated 2020-05-21 15:14:09 -06:00
Matthew Penner
e601b35f2f Fix even more StyleCI issues 2020-05-21 14:27:23 -06:00
Matthew Penner
0eb29dac9c Add mount_server table, fix wrong field type on other many to many tables, add routes for mounting and unmounting mounts on a server, finish server admin mounts page 2020-05-21 14:23:12 -06:00
Matthew Penner
a0900b8b94 Fix StyleCI issues 2020-05-21 13:22:32 -06:00
Matthew Penner
fa902cc074 Add mounts page to server admin view 2020-05-21 13:19:59 -06:00
Matthew Penner
34f718a8b1 Finish mount admin view page, add unique index to migration 2020-05-20 20:50:56 -06:00
Matthew Penner
0db7debb46 Add mount update and deletion services, add MountController@update and MountController@delete 2020-05-20 19:35:30 -06:00
Matthew Penner
77150b2551 Add increment id to mount, add basic mount view page 2020-05-20 19:17:35 -06:00
Matthew Penner
976b669059 Make StyleCI happy 2020-05-20 18:57:30 -06:00
Matthew Penner
a4af8ec977 Add the ability to create mounts 2020-05-20 18:55:59 -06:00
Matthew Penner
a750362e5a Move MountController.php 2020-05-20 18:45:00 -06:00
Matthew Penner
00d1b5861a Properly setup Mount model, add database migration, get mount admin page added 2020-05-20 18:07:56 -06:00
Matthew Penner
59a150148a feature/server-mounts initial commit 2020-05-20 17:29:03 -06:00
Charles Morgan
4ab32498d4 Save request to DB
Fixes #2047
2020-05-19 04:14:36 -04:00
Charles Morgan
917a1e8a87 Update ServerConsole.tsx 2020-05-18 13:33:02 -04:00
Dane Everitt
5dbcddc862 Decode URL fragments correctly before sending to the daemon; ref #2040 ref #2038 2020-05-17 15:07:32 -07:00
Dane Everitt
57f7aa1638 Remove unused routes; closes #2039 2020-05-17 14:20:43 -07:00
Charles Morgan
3df0febd0c Less Lines = Better
Same logic, just more compact and react like
2020-05-17 00:34:25 -04:00
Daniel Blittschau
826258787b Fix outdated AdminLTE link in README.md 2020-05-16 16:46:07 -05:00
Charles Morgan
564933fcb1 Show "unlimited" not 0
Shows unlimited for resources if they're set to "0"
Im sure we could also just remove the "of {limit}" part if its unlimited? Dane Advise

Im sure there is a 100x better way of doing this? Dane please advise.
2020-05-16 03:16:06 -04:00
Dane Everitt
6e588b37d3 Merge pull request #2018 from Sir3lit/morecss
CSS Changes
2020-05-12 19:34:23 -07:00
Charles Morgan
46285fefd7 CSS Changes
More CSS Changes....

Server overview page now looks more..... fluid
Boxes have their correct color top colors back, When admin side was changed to dark theme all by the yellow was changed to a single color, this is reverted.
Node overview page uses blue over gray box for total servers.
Lightened the text color on the side bar
Removed delete button for allocations that are assigned.
Changes Node configuration box to not hurt eyes
2020-05-10 18:09:01 -04:00
Dane Everitt
086abb2a55 Actually delete the backup in the DB 2020-05-09 20:01:45 -07:00
Dane Everitt
225ef2917a Support downloading and deleting S3 backups 2020-05-09 19:43:58 -07:00
Dane Everitt
d4e037db9c Don't abort deleting a backup if the daemon cannot find it 2020-05-09 19:19:45 -07:00
Dane Everitt
52966ede89 Clean this code up, just use the updated model's FQDN; references #1931 2020-05-09 16:26:37 -07:00
Dane Everitt
33a7762152 Fix connection issues when changing node FQDN; closes #1931 2020-05-09 16:25:22 -07:00
Dane Everitt
86dbb141f4 Make this helper text more correct 2020-05-09 15:45:38 -07:00
Dane Everitt
3b2e2c63c6 Only show relevant configuration; update default path to be what the daemon expects 2020-05-09 15:44:13 -07:00
Dane Everitt
a342df8c13 Merge pull request #2010 from Sir3lit/patch1
Remove timezone from config
2020-05-09 15:40:27 -07:00
Dane Everitt
b94781e40e Merge pull request #2008 from Sir3lit/emailfix
Fix Subuser welcome email
2020-05-09 14:47:47 -07:00
Dane Everitt
8cb401760f Merge pull request #2012 from devfrey/develop
Add return type hints and missing test dependencies
2020-05-09 14:19:26 -07:00
devfrey
6ed35ad83c Add missing testing dependencies 2020-05-09 18:09:50 +02:00
devfrey
2fecba2500 Fix tests by adding required return type hints 2020-05-09 18:00:52 +02:00
Charles Morgan
c3da5f0c0c Update Node.php
No longer needed in wings config.
2020-05-09 01:03:36 -04:00
Dane Everitt
6967b76ae6 Remove any confusing legacy sizing files; everything in the panel is true MB (1000) not MiB 2020-05-08 21:13:39 -07:00
Charles Morgan
5eed8b1fe9 Fix Subuser welcome email
When calling `route('server.index')` it appends `/api/servers`

Not sure if this is a proper solution or not, but it fixes the issue.
2020-05-08 19:31:20 -04:00
Dane Everitt
2d95204e9a Pass a value for skipping scripts correctly; closes #1991 2020-05-07 20:46:49 -07:00
Dane Everitt
49dee28eb8 Support using pipe characters within egg validation rules; closes #1960 2020-05-07 20:40:19 -07:00
Dane Everitt
69eb33fb89 closes #1787 2020-05-07 20:24:28 -07:00
Dane Everitt
c6d8bed095 close #1801 2020-05-07 20:20:20 -07:00
Dane Everitt
41845ffdad Backups cannot be nullable 2020-05-04 19:06:20 -07:00
Dane Everitt
c4e9c0a4ba Better S3 backup generation support 2020-05-03 20:49:09 -07:00
Dane Everitt
3e04540c38 Merge pull request #1990 from zKoz210/patch-4
fixed typo, close #1986
2020-05-02 19:04:34 -07:00
Oreo Oreoniv
2dbfe232f1 fixed typo, close #1986 2020-05-03 00:38:26 +03:00
Dane Everitt
ff1a1cd5fc Use logical disk names... 2020-04-26 16:45:51 -07:00
Dane Everitt
53b451e8bf Remove unused code 2020-04-26 16:20:51 -07:00
Dane Everitt
b774622faa Add base support for AWS/Wings backup adapters 2020-04-26 16:07:36 -07:00
Dane Everitt
194688389d Unused 2020-04-26 14:33:14 -07:00
Dane Everitt
6056b6f45d Show console when an admin is viewing an installing server 2020-04-26 13:21:39 -07:00
Dane Everitt
446dc8b33d Block creation of backups if it would put the server over it's limit 2020-04-26 12:21:14 -07:00
Dane Everitt
f1c3762f4d Add base support for definining the number of backups that can be created for a server 2020-04-26 12:12:29 -07:00
Dane Everitt
bed51b5871 Don't flash progress indicators when it is a failed request. 2020-04-26 11:19:40 -07:00
Dane Everitt
d6bf2e0ce9 Merge pull request #1978 from Sir3lit/patch-4
Update 2020_04_22_055500_add_max_connections_column.php
2020-04-26 10:34:22 -07:00
Charles Morgan
941692a060 Update 2020_04_22_055500_add_max_connections_column.php
Fix migration, not sure how I messed that up....... but 👌
2020-04-26 11:00:38 -04:00
Dane Everitt
e2e82b9bf3 Little bit better UI for suspended 2020-04-25 17:59:46 -07:00
Dane Everitt
c4f4f1f5c8 Don't show an error in the listing if the server is still installing or suspended 2020-04-25 17:58:09 -07:00
Dane Everitt
f45c03a449 Support filtering to own/all servers if user is an admin 2020-04-25 17:52:32 -07:00
Dane Everitt
67c6be9f6f Make switches not reliant on Formik 2020-04-25 17:37:03 -07:00
Dane Everitt
a10191a120 How'd you get in there 2020-04-25 13:03:37 -07:00
Dane Everitt
9eb31a16d9 Fix 2FA handling; closes #1962 2020-04-25 13:01:16 -07:00
Dane Everitt
2cf1c7f712 Fix handling of SFTP authorization; closes #1972 2020-04-25 11:48:49 -07:00
Dane Everitt
72ecac5236 Merge pull request #1963 from Sir3lit/maxconn
Add Max Concurrent Connections for database users
2020-04-25 11:01:01 -07:00
Charles Morgan
56a0989176 Remove from end user
Removed max connections from the end user view.
2020-04-24 10:17:31 -04:00
Dane Everitt
0385d2a05c Merge pull request #1939 from Sir3lit/optionaldesc
Allow description fields to be optional
2020-04-23 20:37:02 -07:00
Dane Everitt
0ccfdd722c Merge pull request #1924 from Sir3lit/adminchanges
Update Admin Overview for server
2020-04-23 20:36:43 -07:00
Dane Everitt
6c8711a227 Merge pull request #1946 from Sir3lit/cssfixes
Update Admin CSS /  CSS changes
2020-04-23 20:36:13 -07:00
Dane Everitt
d97bd2ec7b Merge pull request #1953 from parkervcp/update/docker-compose
update docker-compose file
2020-04-23 20:35:58 -07:00
Charles Morgan
e3303f7a60 Change validation rule
Change validation rule to
2020-04-23 14:59:47 -04:00
Charles Morgan
82dd7dc8e3 Allow Null = 0
Allow Value to be nullable, will autofill 0 if value is null or 0, to facilitate "unlimited" connections.
2020-04-23 10:45:44 -04:00
AreYouScared
0ecfb40f5e Add variable to API endpoint
Allow API to retrun max_connections for frontend database page
2020-04-22 06:17:26 -04:00
AreYouScared
f0e4764a11 Add Max Concurrent Connections for database users
Closes #1849

Allows database users to be limited to a number of concurrent connections to prevent one user from connecting hundreds of time and bottlenecking the MySQL server.
2020-04-22 06:00:04 -04:00
Dane Everitt
2c3a9228ec Merge pull request #1954 from DefinitelyNotJosh/patch-2
Update ReinstallServerBox.tsx
2020-04-20 11:22:05 -07:00
Josh Miles
f3e693efb8 Update ReinstallServerBox.tsx
Added space.
2020-04-20 10:47:48 +01:00
Dane Everitt
0d57e591cb Pteroignore details 2020-04-19 20:04:39 -07:00
Dane Everitt
973591d86e Add basic support for backups via the scheduled tasks system 2020-04-19 19:43:41 -07:00
Michael Parker
2721fd3eb5 update docker-compose file
Adds restarting for the containers.
2020-04-19 22:28:11 -04:00
Dane Everitt
7a3263f57b Fix start server tasking; closes #1928 2020-04-19 12:15:10 -07:00
Dane Everitt
a1c3730861 Update frontend to only allow selection of valid permissions for subusers 2020-04-19 11:58:26 -07:00
AreYouScared
c54cbe6638 Update Admin CSS / Few css fixes
Changed `code` color to be a little lighter, more contrast / easier to read (From #999 to #c3c3c3)
Added Readonly style, was white box with grey letters. Changes to Dark grey box and white letters.
Changed cursor for disabled / read-only to `not-allowed` instead of `text`
Closes #1918 -> Dropdown text was grey with a grey background.
Added Green and Yellow Text colors
Added Text-Danger
Changed Link color, to be a tad lighter
Added well/well-sm/well-lg to pterodactyl.css
Changed well to match the dark theme.
Hovering over Start / Restart show respective colors Green / Blue
2020-04-19 08:30:52 -04:00
Dane Everitt
00b0d30c60 Fix handling for backups; correctly send along ignored files & directories 2020-04-18 23:26:59 -07:00
Dane Everitt
b6a0cca0f9 Merge pull request #1940 from Sir3lit/patch-3
Update .travis.yml
2020-04-18 10:43:46 -07:00
AreYouScared
e428de5649 Update .travis.yml
Remove discord webhook as its no longer used.
Use Php 7.4, maybe it won't always fail :P
2020-04-17 22:18:44 -04:00
AreYouScared
d55af822e3 Typo
Removed un-neede |
2020-04-17 20:55:01 -04:00
AreYouScared
21491e3aaa Allow descrition field to be optional
Allows for Nest, Node, Location and Egg description fields to be blank / nullable.
Removed "required" wording next to them aswell
2020-04-17 20:52:40 -04:00
Dane Everitt
90e2d0d72a Fix positioning of the loading bar when logging in 2020-04-17 14:44:18 -07:00
Dane Everitt
c43bf39cfd Fix login screen 404 2020-04-17 14:43:03 -07:00
Dane Everitt
d426887769 Adjust language for error message 2020-04-17 13:12:40 -07:00
Dane Everitt
5252f3f9d3 Show error message when attempting to connect to a websocket 2020-04-17 12:41:47 -07:00
Dane Everitt
41a94c66e4 Show an error box if we couldn't fetch details about the instance 2020-04-17 12:03:16 -07:00
Dane Everitt
004a5692cf Nicer errors when managing files 2020-04-17 11:45:20 -07:00
Dane Everitt
88374de38c Display a nicer error message when a file cannot be opened 2020-04-17 11:27:52 -07:00
Dane Everitt
e6a61fbe9b Update views to support a more logical container 2020-04-17 11:17:01 -07:00
Dane Everitt
e044e8db1c Show a nicer error message when server is installing 2020-04-17 11:07:32 -07:00
Dane Everitt
1aa3e0fb63 Set bar completed when a request fails 2020-04-17 10:26:36 -07:00
Dane Everitt
81f7734df2 Update endpoints for managing backups 2020-04-17 10:21:51 -07:00
Dane Everitt
0a20c6b857 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-04-17 10:21:20 -07:00
Dane Everitt
e969344f3b Fix display of navbar links to admins, closes #1920 2020-04-17 10:21:15 -07:00
Dane Everitt
b16d152574 Merge pull request #1934 from Sir3lit/uuidfix
Fixed UUID on node creation
2020-04-17 09:41:00 -07:00
AreYouScared
93a62ac637 Fixed UUID on node creation
Fixed nodes not getting a UUID during creation causing a 500

Closes https://github.com/pterodactyl/panel/issues/1930
2020-04-16 20:47:53 -04:00
Dane Everitt
b95ec0ca41 Merge pull request #1925 from Sir3lit/patch-1
Update ServerConsole.tsx
2020-04-13 20:38:39 -07:00
AreYouScared
4fee35e7e8 Update ServerConsole.tsx
Added spaces to be properly spaced apart from current usage
2020-04-13 18:40:04 -04:00
AreYouScared
0cad2b9362 Update Admin Overview for server
Changes CPU Threads show Not Set instead of n/a
Changes 0% -> Unlimited, when cpu is set to 0(unlimited)
Changes 0MB -> Unlimited, when memory is set to 0(unlimited)
Changes 0MB Swap -> Not Set
Changes -1 Swap -> Unlimited
Changes Name -> Server Name
Changes Service -> Current Egg
2020-04-13 18:11:45 -04:00
Dane Everitt
4193c5f664 Return the wings version from the CDN 2020-04-12 18:14:59 -07:00
Dane Everitt
b0f518ee40 Merge pull request #1910 from LeCodeCo/patch-1
Match admin design to frontend colour schene
2020-04-12 17:49:36 -07:00
Dane Everitt
7700919d21 Merge branch 'develop' into patch-1 2020-04-12 17:49:16 -07:00
Dane Everitt
5e6d423017 Merge pull request #1917 from parkervcp/update/dockerfile
add docker configs for 0.8
2020-04-12 17:49:05 -07:00
Dane Everitt
fda88940f7 Fix up node autodeployment 2020-04-12 17:20:09 -07:00
Dane Everitt
fc31d6347e Correctly reset server state when the URL is changed 2020-04-12 16:19:43 -07:00
Dane Everitt
b9239594ca Don't flood the progress bars when listing resources 2020-04-12 16:08:29 -07:00
Dane Everitt
7115209b60 Hide statistics page for now 2020-04-12 16:03:41 -07:00
Dane Everitt
07381da8fb This warning is no longer true 2020-04-12 16:02:09 -07:00
Dane Everitt
3c8e9ebfa5 Update bungeecord egg 2020-04-12 16:01:20 -07:00
Dane Everitt
df140184e6 Correctly return the updated key 2020-04-12 15:56:50 -07:00
Michael Parker
de4543c79a remove vagrant files 2020-04-12 16:09:09 -04:00
Michael Parker
05004a7a50 move docker foler
move docker folder from .dev/

update Dockerfile and entrypoint scripts to match
2020-04-12 16:02:48 -04:00
Dane Everitt
4ed7b26f89 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-04-12 12:22:53 -07:00
Dane Everitt
eafb0c061d Return a less obtuse structure for config file editing 2020-04-12 12:22:50 -07:00
Dane Everitt
80bf6ba573 Merge pull request #1766 from parkervcp/update/steamcmd
Update steamcmd install scripts
2020-04-12 10:19:50 -07:00
Dane Everitt
72c144e309 Merge pull request #1909 from pterodactyl/enhancement/new-server-admin
Enhancements to new server admin
2020-04-12 10:13:03 -07:00
Dane Everitt
b2847eb0e0 Merge pull request #1911 from pterodactyl/fix/encrypter
Fix encryption issue when creating new nodes
2020-04-12 10:12:43 -07:00
Dane Everitt
fc2a6ec8a8 Merge pull request #1912 from Sir3lit/patch-1
Move threads column to the
2020-04-12 10:12:19 -07:00
Dane Everitt
d6ac0c3202 Merge pull request #1913 from Sir3lit/patch2
Add Disk display to console view
2020-04-12 10:11:53 -07:00
Matthew Penner
ea8f7bb5b6 Merge branch 'develop' into enhancement/new-server-admin 2020-04-11 23:04:48 -06:00
AreYouScared
451833cb8c Add Disk User
Added Disk usage to console page, matches same inforamtion on overview page.
2020-04-11 23:57:49 -04:00
AreYouScared
01142d9a25 Move threads column to the
Put column after CPU, not at the end.
2020-04-11 23:26:23 -04:00
Matthew Penner
a4d49ebe31 Fix encryption issue when creating new nodes 2020-04-11 20:49:56 -06:00
Michael Parker
f59a87aca4 Merge remote-tracking branch 'origin/develop' into develop 2020-04-11 21:48:36 -04:00
Michael Parker
61c2a491fc add packages for yarn 2020-04-11 21:48:31 -04:00
Michael Parker
656d306e24 update docker stuff 2020-04-11 21:48:31 -04:00
Michael Parker
3090c99a62 update docker stuff 2020-04-11 21:48:31 -04:00
Michael Parker
744ad99283 add packages for yarn 2020-04-11 21:48:22 -04:00
Rihan // CodeCo
006031f4d5 Fix databases dropdown being wrong unthemed 2020-04-12 02:42:57 +01:00
Rihan // CodeCo
689b0ef056 Match admin design to frontend colour schene
https://file.properties/host/uZfyNTxQ.png
2020-04-12 02:35:30 +01:00
Dane Everitt
3d224993cd Fix logic for parsing egg data to not explode with nested objects 2020-04-11 18:27:47 -07:00
Michael Parker
55c8ddd5f2 Merge remote-tracking branch 'origin/develop' into develop 2020-04-11 21:11:34 -04:00
Michael Parker
8fdee3554c update docker stuff 2020-04-11 21:11:21 -04:00
Michael Parker
1995c2425e update docker stuff 2020-04-11 21:01:42 -04:00
Dane Everitt
1327bbbbe5 Fix logic to update a daemon's configuration 2020-04-11 16:33:15 -07:00
Dane Everitt
60f6e86b8b Remove all of the old references to unused interfaces outside the test code 2020-04-11 15:35:32 -07:00
Matthew Penner
4d833af5f4 Fix script paths in layouts 2020-04-11 14:49:40 -06:00
Matthew Penner
a7dab69711 Persist service variables 2020-04-11 14:46:30 -06:00
Matthew Penner
dec6868a55 Persist nest_id, egg_id, pack_id 2020-04-11 14:14:05 -06:00
Matthew Penner
432e28b6bb Fix all StyleCI errors and probably break everything in the process 2020-04-11 14:07:40 -06:00
Matthew Penner
b5e50719ac Remove old Theme::js calls in blade layouts. Persist checkboxes, Server Owner, Node, Default Allocation, and Additional Allocations on servers/new.blade.php 2020-04-11 13:56:03 -06:00
Matthew Penner
fb96d9468e Prevent primary allocation from being an additional allocation at the same time when creating a server 2020-04-11 12:35:27 -06:00
Dane Everitt
25f18dccdc Merge pull request #1903 from matthewpi/enhancement/wings-improved-server-loading
[Wings] Improved Server Loading
2020-04-10 17:37:04 -07:00
Matthew Penner
658a959e5d Fix trailing comma in DaemonAuthenticate.php, change ServerDetailsController.php to use node authentication 2020-04-10 17:54:50 -06:00
Matthew Penner
a37e30cd49 Merge branch 'develop' into enhancement/wings-improved-server-loading 2020-04-10 16:55:22 -06:00
Dane Everitt
c8a78c688f Apply unique key after assigning all of the values 2020-04-10 15:54:28 -07:00
Matthew Penner
1564f38d5c Merge branch 'develop' into enhancement/wings-improved-server-loading 2020-04-10 16:53:38 -06:00
Dane Everitt
2532a73425 Don't throw errors if bad data is sent in the header 2020-04-10 15:53:19 -07:00
Matthew Penner
0c12b78772 Merge branch 'develop' into enhancement/wings-improved-server-loading 2020-04-10 16:29:03 -06:00
Dane Everitt
2b1585a2ba Merge pull request #1905 from matthewpi/issues/1902
Fixes stupid query and issue #1902 🤬
2020-04-10 15:25:17 -07:00
Matthew Penner
c9ad4ea811 Merge branch 'develop' into issues/1902 2020-04-10 16:23:58 -06:00
Matthew Penner
94d46affb8 Merge branch 'develop' into enhancement/wings-improved-server-loading 2020-04-10 16:23:46 -06:00
Dane Everitt
7557dddf49 Store node daemon tokens in an encrypted manner 2020-04-10 15:15:38 -07:00
Dane Everitt
2ac82af25a Fix migration to not require beta versions of MariaDB 2020-04-10 14:09:57 -07:00
Dane Everitt
568328596a Cleanup migration 2020-04-10 14:02:16 -07:00
Dane Everitt
fd8b7182e7 Merge migrations 2020-04-10 14:01:36 -07:00
Dane Everitt
b72a770ec9 Don't execute unnecessary HTTP requests when browing a file directory 2020-04-10 13:57:24 -07:00
Dane Everitt
76300209f1 Correctly clear the interval for resource use checking 2020-04-10 12:49:09 -07:00
Matthew Penner
c46ece0d6b Fix stupid query that makes me want to punch my monitor 2020-04-10 13:47:08 -06:00
Dane Everitt
d3a06e1ca8 Add progress bar to top of page for nicer loading indicator styles 2020-04-10 12:41:08 -07:00
Matthew Penner
87e95f4195 Fix StyleCI 2020-04-10 13:08:43 -06:00
Matthew Penner
3163517f8d Add linebreak because code style is important 2020-04-10 13:06:10 -06:00
Matthew Penner
42fb9fdbd9 Add the ability for a node to fetch a list of all servers it has been assigned 2020-04-10 13:04:11 -06:00
Dane Everitt
708c15eba8 Make database rows use context better 2020-04-10 10:56:25 -07:00
Dane Everitt
0ebf842757 Clean up most of the schedules code to use server context 2020-04-10 10:46:00 -07:00
Dane Everitt
07d19ad326 Code cleanup and formatting 2020-04-10 10:11:15 -07:00
Dane Everitt
4e2602e1e7 Merge pull request #1898 from Sir3lit/fixformatting
New server formatting
2020-04-10 09:56:26 -07:00
Dane Everitt
558f7ba6dd Merge pull request #1901 from pterodactyl/feature/auto-deploy
re-enable auto-deploy daemon endpoint
2020-04-10 09:54:11 -07:00
Jakob Schrettenbrunner
a1f4baa800 re-enable auto-deploy daemon endpoint 2020-04-10 17:38:20 +02:00
Dane Everitt
06707fd33a Better throttling of backup generation 2020-04-09 22:35:38 -07:00
Dane Everitt
63d8cd4f3f Throttle backups to two per 10 minute interval 2020-04-09 22:09:01 -07:00
Dane Everitt
c1a7e4ebe1 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-04-09 22:08:16 -07:00
Dane Everitt
9ba6aaebde Move actions into context menu, add support for deleting a backup 2020-04-09 22:08:09 -07:00
AreYouScared
7daf6e2e93 Uniformity is Key
Updated logical order to match new server page on build and overview page.
2020-04-10 00:54:40 -04:00
AreYouScared
411ed41582 New server formatting
Fixed auto-sizing for resource mangemnet
Moved them in logical order(CPU->RAM->Disk) with advanced stuff to the right.
2020-04-09 23:46:12 -04:00
Dane Everitt
323c3e4689 Merge pull request #1893 from pterodactyl/feature/issue-1891
Change to new password and fix #1891
2020-04-09 20:16:40 -07:00
Dane Everitt
2da0d8b083 Merge pull request #1897 from Sir3lit/fixCR
Fixed Copyright year
2020-04-09 20:16:28 -07:00
AreYouScared
27a92d6f45 Fixed Copyright year 2020-04-09 23:00:59 -04:00
Lance Pioch
53c7ec9126 Update UpdatePasswordRequest.php 2020-04-08 03:00:03 -04:00
Lance Pioch
78e03cb9b2 Update AccountController.php 2020-04-08 02:59:38 -04:00
Lance Pioch
f9e6df5d71 Change to new password instead 2020-04-07 19:25:11 -04:00
Lance Pioch
d6640eacec Require new password 2020-04-07 19:22:50 -04:00
Dane Everitt
2eb6ab4d63 Store backups in server state 2020-04-06 22:25:54 -07:00
Dane Everitt
f9878d842c Fix error handling for large files (and endpoints called as non-json) 2020-04-06 21:59:14 -07:00
Dane Everitt
7f2b477538 Automatically update the backup view when the backup is completed 2020-04-06 21:22:57 -07:00
Dane Everitt
b1e7e0b8b0 Simplify handling of permissions for websocket, only send permissions the user actually has 2020-04-06 21:03:00 -07:00
Dane Everitt
a924eb56cc Fix file and backup downloading to use URL returned by server 2020-04-06 20:28:14 -07:00
Dane Everitt
4b19e65eb8 Merge pull request #1864 from KieronWiltshire/feature/cross-env
Added cross-env to package.json
2020-04-05 11:22:31 -07:00
Dane Everitt
0a53e75fd1 Merge branch 'develop' into feature/cross-env 2020-04-05 11:14:22 -07:00
Dane Everitt
536f056f2c Merge pull request #1889 from matthewpi/feature/server-transfers-actually
Server Transfers (pterodactyl/panel#18)
2020-04-05 11:07:07 -07:00
Dane Everitt
e7784bf024 Merge branch 'develop' into feature/server-transfers-actually 2020-04-05 11:06:40 -07:00
Dane Everitt
7b69b4b824 Hit the daemon endpoints to actually generate a backup 2020-04-04 20:09:33 -07:00
Matthew Penner
2f506d564b Merge branch 'develop' into feature/server-transfers-actually 2020-04-04 20:56:37 -06:00
Dane Everitt
be05d2df81 Add support for generating a signed URL for downloading a file from the daemon 2020-04-04 19:54:59 -07:00
Matthew Penner
c9c98b87a6 Fix issue with listing users due to removed 'subuserOf' method 2020-04-04 18:41:24 -06:00
Matthew Penner
b395440e4e Check that the selected daemon is online for a transfer, delete the server from the old node when a transfer is successful 2020-04-04 18:28:09 -06:00
Matthew Penner
7b518325c4 Merge branch 'develop' into feature/server-transfers-actually 2020-04-04 17:09:39 -06:00
Dane Everitt
15b436d26e Add endpoints required to store the results of a backup 2020-04-04 16:07:09 -07:00
Matthew Penner
fd4de9168a Merge branch 'develop' into feature/server-transfers-actually 2020-04-04 16:28:02 -06:00
Matthew Penner
5c7c1f60cf Fix StyleCI issues #2 2020-04-04 16:25:41 -06:00
Matthew Penner
142bf16aae Fix StyleCI issues 2020-04-04 16:24:58 -06:00
Matthew Penner
454ce6ce45 Add successful column to server_transfers table, get server transfers working properly :) 2020-04-04 16:16:18 -06:00
Dane Everitt
ad9194a65c Build out frontend for viewing server backups 2020-04-04 13:24:03 -07:00
Matthew Penner
6ba6c34252 Add ServerTransfer relation in Models/Server.php, notify the new daemon about the incoming server transfer 2020-04-04 14:10:18 -06:00
Dane Everitt
44ff99e83d Use correct time, not an empty time 2020-04-04 12:31:21 -07:00
Dane Everitt
875358a106 Not a required field 2020-04-04 12:30:45 -07:00
Dane Everitt
25b0e86730 backup names don't actually matter all that much, they don't get used as file names 2020-04-04 12:30:29 -07:00
Dane Everitt
d27f0c6f2a Basic backend support to at least store a backup model in the DB 2020-04-04 12:26:39 -07:00
Dane Everitt
6d426e45d9 Whoops, remove this too 2020-04-04 11:57:50 -07:00
Dane Everitt
5f42325284 Don't trigger a recursive nesting call 2020-04-04 11:37:10 -07:00
Dane Everitt
9991989f89 Very basic implemention of frontend logic required to display backups and create a new one 2020-04-04 10:59:25 -07:00
Matthew Penner
86b7b6ecc3 Add Models/ServerTransfer.php 2020-04-04 11:37:44 -06:00
Matthew Penner
5007ce0b1c Get to the point where we can start notifying the other daemon, remove TransferJob.php, add DaemonTransferRepository.php 2020-04-04 00:50:12 -06:00
Dane Everitt
17ec4efd3b Add base migration and model for server backups 2020-04-03 23:40:20 -07:00
Dane Everitt
f51d65229b Add support for immutable carbon dates in models 2020-04-03 23:22:35 -07:00
Dane Everitt
6d1226a0c1 Merge pull request #1887 from matthewpi/feature/server-transfers
Add migration and validation rules for 'threads' column, fixes other errors on nest/egg pages
2020-04-03 22:54:29 -07:00
Dane Everitt
9d0262e7a1 Update index.blade.php 2020-04-03 22:53:49 -07:00
Dane Everitt
0dbf6b51b5 Add very simple search support to pages, togglable with "k" 2020-04-03 22:39:53 -07:00
Matthew Penner
a2eab3ca43 Add ui elements for handling server transfers, add TransferJob.php and TransferService.php 2020-04-03 21:45:37 -06:00
Matthew Penner
49f0421e90 Fix issue with regex rule on 'threads' column, fix StyleCI issues on migration 2020-04-03 18:59:47 -06:00
Matthew Penner
829f05a2c7 Add migration for 'threads' column, fix errors on some admin pages, add validation rule for 'threads' column 2020-04-03 18:50:07 -06:00
Dane Everitt
807cd815ea Fix modal layout positioning 2020-04-03 16:39:55 -07:00
Dane Everitt
85e3945cd7 Add support for client-side server reinstallation 2020-04-03 14:43:24 -07:00
Dane Everitt
86de7372a8 Add notes about IO/CPU Threads 2020-04-03 14:43:15 -07:00
Dane Everitt
d77184aeb8 Merge pull request #1882 from Sir3lit/cputhreads
Add CPU Thread assignments
2020-04-03 13:48:18 -07:00
Dane Everitt
78d6e59fc5 Merge branch 'develop' into cputhreads 2020-04-03 13:48:06 -07:00
Dane Everitt
7d45379f31 Add back support for reinstalling a server 2020-04-03 13:46:45 -07:00
AreYouScared
dfefd8845b Fixed textboxes (#1886)
Text boxes on the user view page were set to readonly not allowing admins to change user values

Co-Authored-By: Lance Pioch <me@lance.sh>
2020-04-03 13:46:24 -07:00
Dane Everitt
37c7ba3365 Update dependencies 2020-04-03 12:58:20 -07:00
Dane Everitt
7f0a05c192 UPdate remainder of screens with basic permissions checking 2020-03-29 22:20:27 -07:00
Dane Everitt
171b21e7ee Add permissions handling to the console; remove kill permission (wrapped in with stop) 2020-03-29 22:12:50 -07:00
Dane Everitt
79095b526c Add permissions checking to the settings page 2020-03-29 22:05:30 -07:00
Dane Everitt
3df134b558 Make sizing across margins/padding/width/height the same 2020-03-29 22:04:38 -07:00
Dane Everitt
5d5a5c2afc Fix array fill logicl; allow matching on any permissions 2020-03-29 21:52:18 -07:00
Dane Everitt
9b4f2deb78 Update permissions handling for file manager; ensure errors are shown 2020-03-29 21:42:02 -07:00
Dane Everitt
9347ee8d78 Fix permissions handling logic for admins/owners 2020-03-29 21:30:33 -07:00
Dane Everitt
8bc81c8c4b Update permissions checking code 2020-03-29 14:19:17 -07:00
AreYouScared
71292a7642 Respond with thread limit
Retrun the cpu threads in the api resposne
2020-03-29 17:12:35 -04:00
AreYouScared
5f90e5f104 Update Server.php
Fails rules, will look at later in time.
2020-03-29 17:00:50 -04:00
AreYouScared
b351c07d34 Fix server transformer
Properly pass the value to wings
2020-03-29 16:55:06 -04:00
Dane Everitt
2e9d327dfc Fix eslint errors 2020-03-29 12:38:08 -07:00
AreYouScared
2561e3e8d5 Add CPU Thread assignments
Added CPU Thread assignments for each server
2020-03-29 14:41:55 -04:00
Dane Everitt
ab4c4e7e9e Add basic permissions checking logic to frontend 2020-03-28 17:25:04 -07:00
Dane Everitt
7e0ac2c311 Show error message when attempting to change a server's name 2020-03-28 16:47:32 -07:00
Dane Everitt
1f92a7de33 Authenticate that the request is coming from someone that should even know about the server 2020-03-28 16:23:18 -07:00
Dane Everitt
5717a705a8 Fix authorization checking for subusers 2020-03-28 16:18:56 -07:00
Dane Everitt
e4e5dea6b8 Fix API key creation logic 2020-03-28 16:06:36 -07:00
Dane Everitt
ff49165447 Unnecessary return 2020-03-28 15:43:06 -07:00
Dane Everitt
7244cdbf5d Fix up authentication flows to use formik correctly 2020-03-28 15:42:53 -07:00
Dane Everitt
cb945b1f13 Fix permissions handling; do not allow a subuser to assign permissions they do not have 2020-03-27 16:57:49 -07:00
Dane Everitt
39f79a8f3c Finish cleaning up subuser view 2020-03-27 16:42:27 -07:00
Dane Everitt
ee81de6534 Add support for editing a subuser 2020-03-27 15:40:24 -07:00
Dane Everitt
1270e51248 Add support for deleting a subuser from a server 2020-03-27 15:32:33 -07:00
Dane Everitt
a6f46d36ba Implement basic code for creating/updating a subuser 2020-03-27 14:23:13 -07:00
Dane Everitt
51c5cf4dbb Get basic modal view for editing/creating a new subuser working 2020-03-25 21:58:37 -07:00
Dane Everitt
fcdb7cd2d5 Merge branch 'develop' into feature/cross-env 2020-03-23 10:03:17 -07:00
Kieron Wiltshire
7d441f53b3 added cross-env to allow building the application for production across multiple operating systems 2020-03-23 02:42:04 +00:00
Dane Everitt
8d52e2e1a7 Finalize API key management for accounts 2020-03-22 19:10:49 -07:00
Dane Everitt
3ef649d984 Display the API keys 2020-03-22 18:25:29 -07:00
Dane Everitt
933a4733e8 Add base support for creating a new API key for an account 2020-03-22 18:15:38 -07:00
Dane Everitt
32f25170f1 Pass at removing extraneous permissions table and using native MySQL JSON 2020-03-22 16:56:00 -07:00
Dane Everitt
23d594f655 Update all of the permissions checking to be constant based 2020-03-22 15:31:25 -07:00
Dane Everitt
605c154812 Remove unused controllers 2020-03-22 15:15:42 -07:00
Dane Everitt
fd2ceacfe2 Remove unused code 2020-03-22 14:16:12 -07:00
Dane Everitt
734bdc7b78 Unify display with task rows 2020-03-22 14:14:11 -07:00
Dane Everitt
1bf3165cbe Use a dropdown menu when selecting a power action 2020-03-22 14:11:26 -07:00
Dane Everitt
cf7f36c950 Always include the tasks with a schedule 2020-03-22 13:57:31 -07:00
Dane Everitt
1e0d630e1f Finish building out schedule management functionality 2020-03-22 13:56:15 -07:00
Dane Everitt
4ac6507b69 Make these buttons to avoid weird refresh issues 2020-03-18 22:39:52 -07:00
Dane Everitt
b0f47ea01a Add support for creating a new task 2020-03-18 22:36:19 -07:00
Dane Everitt
ef38a51d6d Add base support for editing an existing task 2020-03-18 22:28:32 -07:00
Dane Everitt
edb9657e2b Upgrade to formik@2 2020-03-18 21:32:07 -07:00
Dane Everitt
78ed343a34 Support deleting a task from a schedule 2020-03-18 21:08:32 -07:00
Dane Everitt
5345a2a3e1 Add initial task listing for schedules 2020-03-17 23:33:53 -07:00
Dane Everitt
b3fb658511 Merge branch '0.7-develop' into develop 2020-03-15 17:30:28 -07:00
Dane Everitt
3820d4e156 Add view for editing the details of a schedule 2020-02-22 20:07:56 -08:00
Dane Everitt
f180e3ef0b Attempting to get an edit modal to display without a re-render 2020-02-11 23:23:06 -08:00
Dane Everitt
40c377f2e0 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-02-11 21:15:43 -08:00
Dane Everitt
79b3e82887 eslint is a bit unhappy after that upgrade 2020-02-11 21:15:40 -08:00
Matthew Penner
b05048871c Fix 2FA sizing issue, add support for copying text from xterm.js (#1825)
closes #1812, closes #1813
2020-02-11 09:37:12 -08:00
Dane Everitt
1b1c95d8ce Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-02-08 15:23:11 -08:00
Dane Everitt
32e9fb0346 Add basic listing of server schedules 2020-02-08 15:23:08 -08:00
SmokingIsBadMkay
bf6da15fba Improved non-interactive command support (#1824)
The following commands no longer need confirmation when the input is not interactive:

 - server:bulk-power
 - server:reinstall
2020-02-08 13:30:49 -08:00
Dane Everitt
f9ec96c70a Fix login error message width, closes #1792 2020-01-19 14:31:07 -08:00
Dane Everitt
11c430cf69 Correctly mark server as installed 2020-01-19 14:08:28 -08:00
Dane Everitt
b2cce9195a Only show creation button if the server can actually have databases 2020-01-19 13:54:39 -08:00
Dane Everitt
dbc7c597d0 Route and handle install state updates 2020-01-19 13:50:38 -08:00
Dane Everitt
bb9a3714cb Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2020-01-18 15:26:17 -08:00
Dane Everitt
3b11ba9fca Basic support for installation process 2020-01-18 15:26:15 -08:00
Birkhoff Lee
a4f44f952a Dockerfile: Switch to php:7.2-fpm-alpine (#1713)
It's usually a better practice to use an official supported Docker image (in this case, php) so it's best optimized and supported.
2020-01-08 11:51:53 -05:00
Dane Everitt
f609271c35 Fix two-factor QR code display; closes #1799 2019-12-28 12:09:55 -08:00
Dane Everitt
158958d82d Password change needs to require user login to reset some cookies
closes #1793
2019-12-28 12:07:42 -08:00
Dane Everitt
5f13531c69 Fix up subuser API response for clients 2019-12-28 12:03:19 -08:00
Dane Everitt
51defae917 Merge branch 'master' into develop 2019-12-28 11:49:08 -08:00
Dane Everitt
29de2085f2 Merge branch 'release/v0.7.16' 2019-12-28 11:47:23 -08:00
Dane Everitt
064d8e974e Bump for release 2019-12-28 11:40:42 -08:00
Dane Everitt
7fc4a19220 Merge pull request #1794 from parkervcp/update/vanilla_minecraft
update vanilla minecraft script.
2019-12-28 11:18:14 -08:00
Dane Everitt
649d4b4847 Merge branch 'develop' into update/vanilla_minecraft 2019-12-28 11:18:06 -08:00
Dane Everitt
c931d16369 Merge pull request #1737 from pterodactyl/lancepioch-patch-3
Clean sensitive email connection info
2019-12-28 11:16:30 -08:00
Dane Everitt
e6008d6392 Merge branch 'develop' into lancepioch-patch-3 2019-12-28 11:16:14 -08:00
parkervcp
a948acfd1c update vanilla minecraft script. 2019-12-25 20:38:49 -05:00
Dane Everitt
63918cb549 Use the correct certificate key in the config 2019-12-24 16:48:50 -08:00
Dane Everitt
4173001f10 Put this up one level so it doesn't disappear on releases 2019-12-22 21:44:50 -08:00
Dane Everitt
338ffd0a8f Fix up build script 2019-12-22 21:27:26 -08:00
Dane Everitt
c4fdcb5937 Fix navigation bar issues 2019-12-22 21:22:08 -08:00
Dane Everitt
1f6f7c4bb4 Fix authentication page on mobile devices 2019-12-22 21:18:29 -08:00
Dane Everitt
513692fef5 Whoops, actually show servers 2019-12-22 20:56:34 -08:00
Dane Everitt
6ccac6e040 Mobile improvements for two-factor form 2019-12-22 20:51:50 -08:00
Dane Everitt
9a0ed6b291 Add ability to disable two factor authentication 2019-12-22 20:41:25 -08:00
Dane Everitt
2a653cdd8d Automatically update the user data when 2FA is enabled 2019-12-22 20:23:43 -08:00
Dane Everitt
eb39826f46 Add base logic to configure two factor on account 2019-12-22 17:03:44 -08:00
Dane Everitt
edf27a5542 Don't cache the manifest like this, pointless 2019-12-22 15:41:38 -08:00
Dane Everitt
293ebc9344 Show note when no servers. 2019-12-22 15:31:12 -08:00
Dane Everitt
c96bad4080 FIx force deletion 2019-12-22 15:08:11 -08:00
Dane Everitt
446d5be62b Show proper spinners 2019-12-22 14:53:27 -08:00
Dane Everitt
5a31771b4b Fixes for purge CSS 2019-12-22 14:33:08 -08:00
Dane Everitt
6276a03a4e Fix links in admin area 2019-12-22 14:03:49 -08:00
Dane Everitt
52ea0f2d0a Fix allocation management 2019-12-22 13:55:58 -08:00
Dane Everitt
bc3286c7e4 Don't need this box anymore 2019-12-22 13:50:35 -08:00
Dane Everitt
34ffcdae7a Remove unnecessary API calls to daemon 2019-12-22 13:45:40 -08:00
Dane Everitt
59bfc212c9 Include all server information in details endpoints for daemon to use 2019-12-22 13:28:51 -08:00
Dane Everitt
058f72c923 Don't disconnect from the websocket when updating the server object state 2019-12-22 00:16:25 -08:00
Dane Everitt
6966530165 Better redux devtooling support 2019-12-22 00:16:13 -08:00
Dane Everitt
ef5d0fb4a2 Add deletion code to the panel 2019-12-21 23:26:15 -08:00
Dane Everitt
04d67eaa10 Minor fixes for blocking indexing and notg interrupting user expierence 2019-12-21 21:56:45 -08:00
Dane Everitt
f6b414741d Wait for connection before opening terminal 2019-12-21 21:51:42 -08:00
Dane Everitt
33eb1d259f Add easy launch button for SFTP 2019-12-21 21:16:12 -08:00
Dane Everitt
e87db889e9 Fix server data not updating correctly on daemon 2019-12-21 21:01:38 -08:00
Dane Everitt
3e915e526b Fix file creation in nested directory 2019-12-21 17:43:50 -08:00
Dane Everitt
a1a344bc48 Big red warning box to prevent the inevitable users trying to run this as a prod build 2019-12-21 17:40:03 -08:00
Dane Everitt
11c17245c2 Handle websocket authentication slightly differently to make errors easier to work with 2019-12-21 17:31:04 -08:00
Dane Everitt
02c0d934c3 Make text more readable 2019-12-21 16:40:28 -08:00
Dane Everitt
00bf5644f8 Remove debugging code 2019-12-21 16:39:25 -08:00
Dane Everitt
e784218645 Add support for creating a new file 2019-12-21 16:38:40 -08:00
Dane Everitt
d75073116f Health check 2019-12-16 21:42:58 -08:00
Dane Everitt
7405d7c8ee Fix routing to server pages 2019-12-16 21:27:01 -08:00
Dane Everitt
03f2c61431 Fix error when creating user 2019-12-16 21:25:48 -08:00
Dane Everitt
a247310372 Fix nav for servers 2019-12-16 21:14:27 -08:00
Dane Everitt
2a92304023 Fix server creation logic 2019-12-16 21:02:30 -08:00
Dane Everitt
85b47ceb79 Slightly more logical handling when moving things around 2019-12-16 19:55:02 -08:00
Dane Everitt
d07ee9a36b Add create directory button 2019-12-15 19:10:01 -08:00
Dane Everitt
ba0757f05c Dont run checker in prod builds 2019-12-15 18:50:35 -08:00
Dane Everitt
2cabfeec15 Daemon secret is not a thing anymore 2019-12-15 18:31:15 -08:00
Dane Everitt
1aacc48f0c Remove forgotten traces of laroute 2019-12-15 18:20:37 -08:00
Dane Everitt
447c4291ad Update all places in the code referencing named routes using JS that doesn't exist now 2019-12-15 18:19:35 -08:00
Dane Everitt
14b1f13fe0 Obliterate swaths of old template code 2019-12-15 18:11:56 -08:00
Dane Everitt
8965da6af0 Make the logout link actually work 2019-12-15 18:07:45 -08:00
Dane Everitt
103507d6ee Fix site name 2019-12-15 18:07:16 -08:00
Dane Everitt
66410a35f1 Fix recaptcha on login forms 2019-12-15 18:05:44 -08:00
Dane Everitt
f864b72e0a Get formik used on login form 2019-12-15 16:41:20 -08:00
Dane Everitt
d9d4c0590c Fix silent failure mode when recaptcha is enabled 2019-12-15 16:13:44 -08:00
Dane Everitt
926b5ac099 Only show 250 files in a directory listing 2019-12-15 14:16:47 -08:00
Dane Everitt
59448520fe Helps to run purgecss against actual files 2019-12-15 13:52:57 -08:00
Dane Everitt
39f1392eee Hide navigation links that haven't been built out yet 2019-12-09 22:07:21 -08:00
Dane Everitt
81bd67cc76 Add ability for user to change server's name 2019-12-09 22:03:10 -08:00
Dane Everitt
564d947f7e [#3c9g25] Add support for new endpoint to collect node information 2019-12-09 21:05:39 -08:00
Michael (Parker) Parker
6cf338c1a5 fix server author. 2019-12-09 13:19:55 -05:00
Michael Parker
6e30f79de9 Update Install scripts
Update steamcmd install scripts to use new install script
Update steamcmd install image to Ubuntu 18.04

Add extra ARK variables
2019-12-08 18:31:31 -05:00
Dane Everitt
979bdc1f9f Use YAML for configuration file 2019-12-08 11:29:46 -08:00
Dane Everitt
c087f6429f Temporary patch to get user management pages displaying correctly 2019-12-08 11:02:59 -08:00
Dane Everitt
06e5a05f22 Don't cause an endless loop 2019-12-08 10:44:58 -08:00
Dane Everitt
c37baa0867 Always show the save buttons 2019-12-08 10:44:52 -08:00
Dane Everitt
24f340c9a1 Fix up SFTP endpoint 2019-12-07 16:14:04 -08:00
Dane Everitt
2570b4e2d0 Base code for settings and schedules 2019-12-07 15:58:37 -08:00
Dane Everitt
9b80546c0c Fix design and auto-selection of file format type 2019-12-07 12:16:35 -08:00
Dane Everitt
4e3e9a95e4 eslint error fixes 2019-12-07 12:13:46 -08:00
Dane Everitt
bfd62304ae Package updates 2019-12-07 12:12:33 -08:00
Dane Everitt
ae3f05b8f7 Always show the resource graph boxes 2019-12-07 11:11:40 -08:00
Dane Everitt
976ad7497f Don't trigger reloads when working with HMR 2019-12-07 11:03:23 -08:00
Dane Everitt
ed50259484 [#3896cn] Clean up code handling server suspension 2019-11-30 15:37:13 -08:00
Dane Everitt
2eee6f35d4 Pass along the data in a more logical format 2019-11-24 20:40:29 -08:00
Dane Everitt
2af653733c Insane number of changes required to get the build to post 2019-11-24 20:19:31 -08:00
Dane Everitt
547e8840e2 Untested code to perform an update of server build settings 2019-11-24 15:08:54 -08:00
Dane Everitt
c17f9ba8a9 Move server view management parts to new controller and clean up code 2019-11-24 12:50:16 -08:00
Dane Everitt
8f0044575f Update server creation data logic 2019-11-16 13:33:01 -08:00
Dane Everitt
2848d182ef Break server creation logic into own controller 2019-11-16 13:08:46 -08:00
Dane Everitt
634c1cae9a Show link to admin area in nav 2019-11-16 13:08:38 -08:00
Dane Everitt
e9b12282b9 Remove all existing language files for other languages until this is restabalized 2019-11-16 12:46:30 -08:00
Dane Everitt
01d81bd548 Getting somewhere on subuser stuff, adds i18n packages 2019-11-16 12:46:19 -08:00
Dane Everitt
2a7fc4612a Fix bug with css build not properly prefixing things for Firefox 2019-11-16 11:18:23 -08:00
Dane Everitt
d69f816d9d Add handler to fetch all of the system permissions and load them into the state 2019-11-03 17:37:06 -08:00
Dane Everitt
867dbf3bd2 Update all the client API endpoints to use new permissions codes 2019-11-03 17:13:47 -08:00
Dane Everitt
1153101a57 Add animation and first round at doing sidebar for editing permissions 2019-11-03 12:32:07 -08:00
Dane Everitt
543884876f Add basic subuser listing for servers 2019-11-03 12:20:11 -08:00
Dane Everitt
de464d35a2 Prevent a double file manager load 2019-11-03 10:46:43 -08:00
Dane Everitt
0b9c6bd21d Proxy file downloads through the panel rather than having to get creative with download tokens 2019-10-26 14:36:37 -07:00
Dane Everitt
78ccdf93b6 Square away saving of existing files 2019-10-26 13:16:27 -07:00
Dane Everitt
0dff732883 Editor improvements 2019-10-19 17:35:01 -07:00
Dane Everitt
ac6e5b9943 Break up editor correctly 2019-10-19 15:31:02 -07:00
Dane Everitt
1d6e037d8a Improve mode detection for editing a file 2019-10-19 14:51:10 -07:00
Dane Everitt
946f2e17df Ensure the field doesn't get too small 2019-10-19 13:39:02 -07:00
Dane Everitt
2e32df98ea First iteration of a file manager 2019-10-12 15:29:45 -07:00
Dane Everitt
ac52810ef6 Don't try to parse JSON being returned from the API 2019-09-29 15:32:22 -07:00
Dane Everitt
6f65f6a217 Don't crash the browser as hard when loading a directory with more than 250 files 2019-09-29 15:25:23 -07:00
Dane Everitt
5301ab4235 Do a nice fast animation 2019-09-29 14:06:42 -07:00
Dane Everitt
29834a33f8 Add support for showing usage graphs on the console page 2019-09-29 13:23:15 -07:00
Dane Everitt
c66d2cd123 A few adjustments for chunking the new file edit page 2019-09-28 14:59:05 -07:00
Dane Everitt
8599e2c64b Add server state change events into the console log 2019-09-28 13:45:09 -07:00
Dane Everitt
0108035c05 Fix some typescript typing issues 2019-09-28 13:29:49 -07:00
Dane Everitt
79571e1928 Add button to toggle kill option after pressing stop once 2019-09-28 13:17:51 -07:00
Dane Everitt
326d346f92 Handle errors sent back over the sockt 2019-09-28 13:09:47 -07:00
Lance Pioch
ce614ad54f Clean sensitive email connection info 2019-09-25 15:53:38 -04:00
Dane Everitt
b78276d23d Args won't always be present 2019-09-24 22:05:48 -07:00
Dane Everitt
030b8ed4fd Change to support websocket JWT connections 2019-09-24 21:22:11 -07:00
Dane Everitt
18c4b951e6 First pass at converting websocket to send a token along with every call 2019-09-24 20:20:29 -07:00
Lance Pioch
513965dac7 Update syntax for styleci (#1700) 2019-09-23 12:30:51 -07:00
Dane Everitt
67ff67a1bd Add endpoints to return a server's egg configuration 2019-09-22 15:30:53 -07:00
Dane Everitt
5df46b23d2 Add power controls 2019-09-17 23:12:38 -07:00
Dane Everitt
33f306d40b Add command sending support to console 2019-09-17 22:54:23 -07:00
Dane Everitt
498badc0bc Actually fix the console memory leaking... 2019-09-17 22:54:16 -07:00
Dane Everitt
12992e3521 Prevent memory leak when component updates and ref changes 2019-09-17 22:40:59 -07:00
Dane Everitt
75cd49a1c2 Chunk out the console to only load when needed 2019-09-17 22:33:14 -07:00
Dane Everitt
49de1d0ed4 Fixes for console socket disconnecting with HMR enabled 2019-09-17 21:59:35 -07:00
Dane Everitt
2b68e5a984 Update dependencies, add support for styled-components 2019-09-17 21:05:20 -07:00
Dane Everitt
086018751d Add underlying code to handle authenticating websocket credentials 2019-09-08 17:48:37 -07:00
Dane Everitt
1ae374069c Still completely broken terminal... 2019-09-05 23:05:24 -07:00
Dane Everitt
54339c1344 Add property information to common models 2019-09-05 21:53:33 -07:00
Dane Everitt
b99ea53ca1 Update client API endpoints to not use deprecated function 2019-09-05 21:41:20 -07:00
Dane Everitt
7543ef085d Format files 2019-09-05 21:32:57 -07:00
Dane Everitt
26e4ff1f62 Update to use new repository and standard laravel notation for controllers 2019-09-05 21:31:12 -07:00
Dane Everitt
62cd03d684 Fix command sending error handling and bad assertion order 2019-09-05 21:16:36 -07:00
Dane Everitt
ee0da206c1 Update command sending from server API to use new daemon code 2019-09-05 21:11:19 -07:00
Dane Everitt
161e0f6165 Deprecate old way of using repositories for daemon things 2019-09-05 20:33:27 -07:00
Dane Everitt
a9976c723e [L6] Temporarily hack around theme system to maintain views without having to edit tons of code 2019-09-05 20:17:40 -07:00
Dane Everitt
0d6cf54314 [L6] Update even more areas of codebase using custom model validation logic 2019-09-04 22:26:28 -07:00
Dane Everitt
c586157dc4 [L6] Add support for custom model validation logic 2019-09-04 22:19:57 -07:00
Dane Everitt
5b4a65a60c [L6] Break search functionality without breaking the entire app 2019-09-04 21:21:07 -07:00
Dane Everitt
c97461d602 [L6] Move all of the template files into the new correct location 2019-09-04 21:19:52 -07:00
Dane Everitt
1c5b9dbb87 [L6] Update cursor() calls to work with new lazy collections 2019-09-04 21:05:46 -07:00
Dane Everitt
08bdc9705f [L6] Update composer dependencies to support L6
Drops all of the eloquence requirements, this is going to break a shit load of code, needs to happen tired of this package always holding us back.

Quite confident in my ability to write custom code to do the basic validation we need.

Searching should be a fun nightmare to deal with later...
2019-09-04 21:00:34 -07:00
Dane Everitt
901515e94b [L6] More correct versions 2019-09-04 20:33:37 -07:00
Dane Everitt
7ecb28b598 [L6] No longer necessary with L5.8 2019-09-04 20:28:37 -07:00
Dane Everitt
bd8b708c32 [L6] Update cache methods to use defined times and not ints 2019-09-04 20:24:46 -07:00
Dane Everitt
2c0503c593 [L6] Initial run, getting all dependencies in line 2019-09-04 20:19:01 -07:00
Dane Everitt
cb9536cb24 Cleanup 2019-08-17 16:10:13 -07:00
Dane Everitt
fb9c106448 Update server listing and associated logic to pull from the panel dynamiacally 2019-08-17 16:03:10 -07:00
Dane Everitt
952dff854e Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2019-08-17 11:40:54 -07:00
Dane Everitt
7224cd8db3 File manager placeholder 2019-08-17 11:40:51 -07:00
Lance Pioch
37631a1d49 Missing return statement (#1673)
Otherwise this errors out with $host not being found
2019-08-10 13:19:52 -07:00
Dane Everitt
1769d191d2 Correct behavior of date formatting 2019-08-05 22:22:31 -07:00
Dane Everitt
e23f609e7a Only show location when moving 2019-08-05 21:55:33 -07:00
Dane Everitt
7623b1d1e6 Fix clicking of rows 2019-08-05 21:54:16 -07:00
Dane Everitt
60775c6370 Update handling of links in the file manager 2019-08-05 21:52:48 -07:00
Dane Everitt
f7def01442 Fix event propagation down the chain 2019-08-05 21:18:32 -07:00
Dane Everitt
f84e3c9f22 Clearer variable names 2019-08-05 21:07:34 -07:00
Dane Everitt
34e54b4944 Slightly better logic for dropdown menus 2019-08-05 21:02:36 -07:00
Dane Everitt
456473ad0f Delete support & cleaned up copy logic 2019-08-04 15:46:58 -07:00
Dane Everitt
2f9128508a Add support for copying files. 2019-08-04 15:34:46 -07:00
Dane Everitt
5f59210c85 Use easy-peasy to store file state data 2019-08-04 14:58:31 -07:00
Dane Everitt
918e0e2947 Canary not specific version. 2019-08-04 13:50:49 -07:00
Dane Everitt
81143e231a Merge branch 'master' into develop 2019-08-04 13:49:26 -07:00
Dane Everitt
bd5875084b Merge branch 'release/v0.7.15' 2019-08-03 15:07:18 -07:00
Dane Everitt
80d337db60 Bump for 0.7.15 💯 2019-08-03 15:00:53 -07:00
Dane Everitt
2716ff8841 Basic working file rename modal 2019-08-02 22:22:01 -07:00
Dane Everitt
f4d0694670 Avoid unnecessary re-renders when working with HMR 2019-08-02 22:03:50 -07:00
Dane Everitt
2381a4f8e6 Add support for file dropdown menu 2019-07-29 22:10:45 -07:00
Dane Everitt
0ee10e5653 Break out into own component since it will need to handle even more. 2019-07-27 20:36:27 -07:00
Dane Everitt
e0eedcb811 Improve design of file listing 2019-07-27 20:32:56 -07:00
Dane Everitt
c90fcea519 Add basic file listing functionality 2019-07-27 20:23:51 -07:00
Dane Everitt
ecb5384579 Misc CSS and transition fixes 2019-07-27 20:23:44 -07:00
Dane Everitt
df5de4be97 Add styled-components, even if it is broken 2019-07-27 18:53:48 -07:00
Dane Everitt
b69ebb0790 Merge branch 'develop' of https://github.com/Pterodactyl/Panel into develop 2019-07-27 15:17:55 -07:00
Dane Everitt
48c39abfcb Add database password rotation to view 2019-07-27 15:17:50 -07:00
Dane Everitt
bec6c70da4 Merge pull request #1616 from J0rdoe/patch-1
Change guides link to new community section in the documentation
2019-07-26 11:24:37 -04:00
Arnaud Lier
f98d3d749c [+] Added French Language (#1494) 2019-07-26 11:09:04 -04:00
NgLoader
5e7b6ebbb4 Added forge build number support (#1479)
* Fixed forge script and added build number support

* Changed regex

Thanks to @parkervcp
2019-07-26 11:07:32 -04:00
PiggyPiglet
349114c960 Add a --settings-ui option for AppSettingsCommand (#1446)
* Add a --settings-ui option for AppSettingsCommand

Sorry if my code is below par, I don't know php. All this does is allow the APP_ENVIRONMENT_ONLY to be set via an option, which as far as I can tell, isn't currently possible. I've tested this on a local installation and it works.
2019-07-26 11:05:57 -04:00
Dane Everitt
3611ce703b Merge pull request #1402 from JamsheedMistri/feature/bulk-reinstall-command
Adding bulk reinstall command
2019-07-26 11:04:59 -04:00
Dane Everitt
215351eeb3 Merge branch 'develop' into feature/bulk-reinstall-command 2019-07-26 11:04:48 -04:00
Dane Everitt
b94289c49b Merge pull request #1626 from AusHick/patch-1
Add link to Laravel Framework validation rules/docs
2019-07-25 18:37:55 -04:00
Dane Everitt
574855a4ac Merge branch 'develop' into patch-1 2019-07-25 18:37:35 -04:00
Dane Everitt
f6ee885f26 Support for viewing database passwords 2019-07-16 22:29:00 -07:00
Dane Everitt
d081f328ab Support deleting existing databases 2019-07-16 22:15:14 -07:00
Dane Everitt
1f763dc155 Finish support for creating databases in the UI 2019-07-16 21:43:11 -07:00
Dane Everitt
61dc86421d Add basic modal support 2019-07-09 22:41:09 -07:00
Dane Everitt
bb3486f559 More style cleanup for database listing 2019-07-09 22:06:42 -07:00
Dane Everitt
e3db564175 Add basic support for listing a server's databases 2019-07-09 22:00:29 -07:00
Dane Everitt
986285402f Switch to a context store for server stuff to better support things in the future 2019-07-09 21:25:57 -07:00
Austin Hickey
de8ce4bc95 made links to validation rules more specific
laravel validation rules link now points to the relevant section on the laravel docs
2019-07-08 04:05:51 -04:00
Austin Hickey
b252374d39 Add link to Laravel Framework validation rules/docs
Small QoL fix for adding variables to eggs:

References to "Laravel Framework validation rules" are now linked to the official Laravel 5.7 docs referring to the validation syntax.  Links are also set to open reference in a new tab/window.
2019-07-01 21:30:46 -04:00
Dane Everitt
16e6f3f45f Attempting to solve a weird console loading issue by making into class component; doesn't fix but like the class better for this.
Loading the console, switching to file manager, and then switching back is needed to load the data the first time. After that every 2nd load of the console will load the data (and even send the data to the websocket as the daemon is reporting.)
2019-06-29 18:28:23 -07:00
Dane Everitt
6b42296865 Correctly listen for unmount event 2019-06-29 17:48:35 -07:00
Dane Everitt
48f449e6d7 Send the logs on mount 2019-06-29 17:40:50 -07:00
Dane Everitt
e0838c895a First pass at connecting to console and rendering the output from the server. 2019-06-29 17:18:17 -07:00
Dane Everitt
6db9f65e0f Hide spinner when connected to websocket 2019-06-29 16:59:50 -07:00
Dane Everitt
c8d89e0964 Correctly handle socket state in the app and make it possible to listen for events 2019-06-29 16:57:11 -07:00
Dane Everitt
f0ca8bc3a3 Handle connecting to websocket instance
Very beta code for handling sockets
2019-06-29 16:14:32 -07:00
Dane Everitt
c741a1e41e Merge branch 'release/v0.7.14' 2019-06-29 12:29:04 -07:00
Dane Everitt
6618a124e7 Merge branch 'feature/react' into develop 2019-06-28 22:53:49 -07:00
Dane Everitt
e69d55ec6f Nyoom, bye bye Vue 2019-06-28 22:52:57 -07:00
Dane Everitt
109bed4f7d Add basic navigation bar to server view 2019-06-28 22:49:08 -07:00
Dane Everitt
8ac8a370f8 Fix some issues with navigating in the router and bad animations 2019-06-28 22:17:29 -07:00
Dane Everitt
3db7698170 Basic design for server listing page 2019-06-25 22:00:28 -07:00
Dane Everitt
2f5a1984b3 Make the heading on form elements less bold 2019-06-25 22:00:18 -07:00
Dane Everitt
9cb8020dbe Add basic navigation bar 2019-06-25 21:28:56 -07:00
Dane Everitt
c7355975ad Support running behind SSL 2019-06-25 20:42:18 -07:00
Dane Everitt
46c338dc1b Basic design concept for a nav bar 2019-06-24 22:17:58 -07:00
Dane Everitt
cbd050edda Only doing password and email currently 2019-06-24 21:45:43 -07:00
Dane Everitt
da24f66563 Finish code for updating email 2019-06-24 21:43:46 -07:00
Jordy
0112091827 Update README.md
changed guides website url
2019-06-23 12:52:57 +02:00
Dane Everitt
438f1b06b9 Add support for changing account password 2019-06-22 23:45:09 -07:00
Dane Everitt
d43b7ea5bc Add basic Formik setup and example for update password 2019-06-22 23:25:38 -07:00
Dane Everitt
403a1e79fa Fix form hover/active states 2019-06-22 18:58:07 -07:00
Dane Everitt
adcd2682ef Start working on some defined styles, begin implementing password update in account 2019-06-22 18:53:50 -07:00
Dane Everitt
0789b814dd Fix design issue 2019-06-22 18:10:57 -07:00
Dane Everitt
60f32f055e Fix router to make it easier to actually navigate around the app 2019-06-22 18:09:42 -07:00
Dane Everitt
f34593e777 Make the transition based router be grouped more cleanly. 2019-06-22 17:45:32 -07:00
Dane Everitt
d22747b0b1 Only do this if no user is in the state already 2019-06-22 17:07:54 -07:00
Dane Everitt
e20a768182 Plop user data into the store when loading up the base component 2019-06-22 17:07:28 -07:00
Dane Everitt
328347fab7 Convert all of the login components into hook based ones 2019-06-22 16:45:51 -07:00
Dane Everitt
aabf9b8a70 Some adjustments to begin working on a dark theme 2019-06-22 15:23:02 -07:00
Dane Everitt
ad61774171 Whoops, dont mess up logging in if the code starts with 0 2019-06-22 13:54:36 -07:00
Dane Everitt
d1880af18d New login page design 2019-06-22 13:53:41 -07:00
Dane Everitt
212773d63c Finish authentication flow for 2FA 2019-06-22 13:33:11 -07:00
Dane Everitt
7f3ab8aadf Redesign the login form to not use the weird open fields 2019-06-22 13:11:27 -07:00
Dane Everitt
56640253b9 Merge branch 'release/v0.7.14' into feature/react 2019-06-22 12:28:44 -07:00
Dane Everitt
c38f78df84 Bump for security release 🔐 2019-06-21 22:06:07 -07:00
Dane Everitt
905ae555d0 Update README.md 2019-06-17 21:15:32 -07:00
Dane Everitt
2a626a3e1f Kinda working checkpoint magic 2019-06-16 18:07:57 -07:00
Dane Everitt
4eeec58c59 Add support for password reset links 2019-06-16 16:57:57 -07:00
Dane Everitt
54cfe7e981 Clear email field on send 2019-06-16 15:24:20 -07:00
Michael (Parker) Parker
d700fdbe7d update teamspeak egg (#1607)
use a debian based image instead due to glibc issues

resolves #1606
2019-06-12 15:29:39 -07:00
Dane Everitt
19ef901768 Show success message to the user 2019-06-11 23:19:43 -07:00
Dane Everitt
435626f4b7 Add support for flash messages utilizing redux 2019-06-11 23:12:03 -07:00
Dane Everitt
b93b40ba31 Begin working on password reset page 2019-06-11 22:02:18 -07:00
Dane Everitt
d9f30294de Migrate the existing login form to use React 2019-06-09 19:26:20 -07:00
Dane Everitt
0ab3768274 Install eslint to enforce a style 2019-06-09 17:38:33 -07:00
Dane Everitt
3f2a4b5762 Get initial implementation for react working 2019-06-09 17:29:10 -07:00
Dane Everitt
37715762cd Don't parse JSON files as actual JSON 2019-06-01 14:24:00 -07:00
Dane Everitt
0f8dcabb45 Even out the file manager rows 2019-05-27 18:45:37 -07:00
Dane Everitt
e99ac7abe8 Store the console output in a buffer for easier display 2019-05-27 18:26:34 -07:00
Dane Everitt
f9b8ddc917 Let the daemon send the initial logs 2019-05-27 18:03:23 -07:00
Dane Everitt
d284083d20 Fix the logic on database modals 2019-05-27 16:43:28 -07:00
Dane Everitt
7e89e1bc00 Fix firefox focus ring on links 2019-05-27 16:32:27 -07:00
Dane Everitt
06337e45d8 Add support for non-existent files being edited 2019-05-27 16:30:23 -07:00
Dane Everitt
bfdc1f766b Support saving existing files 2019-05-27 15:30:49 -07:00
Dane Everitt
a8f523e2aa Prevent opening file edit modal when clicking on row options dots 2019-05-27 15:06:10 -07:00
Dane Everitt
89194b4c55 Show a cleaner interface while loading file contents 2019-05-27 15:02:32 -07:00
Dane Everitt
a8462bf109 Add initial support for opening a file in the file manager, still needs more work 2019-05-25 16:24:13 -07:00
Dane Everitt
6606eb1b1b Switch to ace editor and improve build process for it 2019-05-14 18:36:48 -07:00
Dane Everitt
487128d00f Fix modal design 2019-05-14 16:51:38 -07:00
Dane Everitt
da2044fb10 Support modals with content outside the white background area 2019-05-14 16:48:38 -07:00
Dane Everitt
be03dba5b5 Add styling for dropdown menus 2019-05-14 16:48:23 -07:00
Dane Everitt
c6633057b6 Add very basic working example of inline file editor 2019-05-10 22:51:09 -07:00
Dane Everitt
32db345238 Update modal code 2019-05-10 22:50:59 -07:00
Dane Everitt
2c73991f2b Add minimum code needed to open new file modal 2019-05-10 21:20:37 -07:00
Dane Everitt
d280a91115 Add socket reconnect logic 2019-05-09 22:42:53 -07:00
Dane Everitt
d79fe6982f Add support for file copy and deletion 2019-05-04 17:26:24 -07:00
Dane Everitt
811026895b Update support for moving/renaming files and folders 2019-05-04 16:04:59 -07:00
Dane Everitt
eed4be49ab Fix data being passed along to daemon 2019-05-01 21:58:35 -07:00
Dane Everitt
95d19bf09e Update logic that handles creation of folders for a server 2019-05-01 21:45:39 -07:00
Dane Everitt
ec87330a81 Merge branch 'feature/vuejs' into develop 2019-05-01 21:00:16 -07:00
Dane Everitt
8055b44586 Fix content hash for composer 2019-05-01 20:59:50 -07:00
Dane Everitt
71eae1eb68 Update TwoFactorSetupService.php 2019-05-01 20:57:54 -07:00
Dane Everitt
5c99cae779 Merge branch 'develop' into feature/vuejs 2019-05-01 20:57:49 -07:00
Dane Everitt
c80c8564b8 Switch file manager listing to use panel API endpoint 2019-05-01 20:54:40 -07:00
Dane Everitt
e87c5f6657 Implement basic support for connecting to wings console via websocket rather than socketio 2019-05-01 20:12:20 -07:00
Dane Everitt
0757d8856b Add base code to support retrieving allocations as a client 2019-03-23 17:47:20 -07:00
Dane Everitt
d59c38eb4e Fix a fallback route issue causing API calls to return unauth responses and not 404s
The fallback handler isn't scoped to a specific group, so the way this was setup caused requests to non-existent API routes to actually try and return the base view for Vue. This caused a mess of issues because that view is behind the middleware that expect sessions to be set, thus leading to very confusing authentication errors rather than a 404 response.
2019-03-23 17:41:43 -07:00
Dane Everitt
743ae040be Add accessability buttons to the file rows 2019-03-17 17:49:04 -07:00
Dane Everitt
ce911f827e Fix file downloading permissions 2019-03-16 17:16:34 -07:00
Dane Everitt
8955b5a660 Initial attempt trying to get file downloading to work 2019-03-16 17:10:04 -07:00
Dane Everitt
4e669771ca Add support for moving files via the file manager 2019-03-16 16:36:08 -07:00
Dane Everitt
5aa40800c8 Add support for copying a file or folder 2019-03-10 18:42:53 -07:00
Dane Everitt
3970a24218 Migrate the rename action to follow better structure 2019-03-10 15:44:49 -07:00
Dane Everitt
f3159bcec3 Fix prop modification error 2019-03-10 15:15:04 -07:00
Dane Everitt
d6630341b4 Combine logic so we aren't constantly duplicating it 2019-03-10 14:50:44 -07:00
Dane Everitt
25621f4c1c Push the user into the newly created directory once made 2019-03-10 14:28:24 -07:00
Dane Everitt
66320972be Improve file deletion logic to not require a refresh 2019-03-10 14:14:47 -07:00
Dane Everitt
6b4bf3eaa7 Add basic file deletion logic 2019-03-09 12:04:29 -08:00
Dane Everitt
ea9cdea08d Update composer.lock 2019-03-09 11:23:51 -08:00
Dane Everitt
a66d7a3417 Merge branch 'develop' into feature/vuejs 2019-03-09 11:19:07 -08:00
Dane Everitt
aae67a8a11 Merge branch 'release/v0.7.13' 2019-03-03 14:02:11 -08:00
Dane Everitt
d4facaa2d6 Bump version 2019-03-03 13:58:52 -08:00
Dane Everitt
d34c737f16 Base delete file view, not actually connected to anything 2019-02-18 21:23:42 -08:00
Dane Everitt
ff820f30ad Add support for renaming files on the fly in the file manager 2019-02-18 20:41:58 -08:00
Dane Everitt
52115b5c77 This wasnt used 2019-02-18 19:38:03 -08:00
Dane Everitt
c47ceda302 Remove forgotten debugger 2019-02-17 13:29:42 -08:00
Dane Everitt
866b3a3aac Add support for actually creating that folder on the daemon 2019-02-17 13:29:11 -08:00
Dane Everitt
0b11532a48 Get modal base logic all worked out 2019-02-17 13:03:15 -08:00
Dane Everitt
be7f7d8da8 Add initial support for tracking current FM directory for creating a folder (and other stuff eventually) 2019-02-16 17:54:15 -08:00
Dane Everitt
767e466fd8 Lets be smarter with modals here... 2019-02-16 17:15:56 -08:00
Dane Everitt
b6773b56c1 Format all the files 2019-02-09 21:15:45 -08:00
Dane Everitt
5bff8d99cc Move everything back to vue SFCs 2019-02-09 21:14:58 -08:00
Dane Everitt
761704408e Fix HMR and backtrack for SFC support now that PHPStorm supports them
Of course I wasted forever migrating OUT of SFCs only to go back to them.
2019-02-09 19:43:11 -08:00
Dane Everitt
626a63ddd9 Some code cleanup 2019-02-09 19:15:18 -08:00
Dane Everitt
40aa3da5de Migrate last of the SFC's to TS files 2019-02-09 18:46:06 -08:00
Dane Everitt
5cb57af193 Fix power button actions 2019-02-09 17:37:44 -08:00
Dane Everitt
8385ec7feb Cleanup more filemanager design 2019-02-09 17:26:08 -08:00
Dane Everitt
caca6cff8a Make the file manager look better 2019-02-09 17:07:11 -08:00
Dane Everitt
ac13f5dce4 Fix a bunch of design inconsistencies and horrible code on server boxes 2019-02-09 16:38:45 -08:00
Dane Everitt
a9fda52065 Begin fixing design to match new colors 2019-02-09 15:17:38 -08:00
Dane Everitt
dfa175326c Use a better green pallet 2019-02-09 14:50:32 -08:00
Dane Everitt
e62e3babcc More fixes 2019-02-09 14:48:47 -08:00
Dane Everitt
6e26f1929d Blues 2019-02-09 14:44:35 -08:00
Dane Everitt
d6feaec202 Fix colors 2019-02-09 14:37:30 -08:00
Dane Everitt
f62c8a0d55 Greens 2019-02-09 14:36:39 -08:00
Dane Everitt
8dcd445df6 Migrate yellows 2019-02-09 14:33:39 -08:00
Dane Everitt
32b43cff9a Convert color schema, begin migrating old classes (finishes grey & red) 2019-02-09 14:32:18 -08:00
Dane Everitt
6c7a5d5bb9 Finish UI stuff for today 2019-02-03 17:45:22 -08:00
Dane Everitt
89d29cf46b Assorted UI tweaking 2019-02-03 17:27:19 -08:00
Dane Everitt
a28a9887c1 Rearrange the navigation bar to be laid out more normally 2019-02-03 16:29:08 -08:00
Dane Everitt
378a26a7c5 Finish migrating most everything to TS 2019-02-03 15:39:59 -08:00
Dane Everitt
0407e97aa1 oopsie 2019-02-03 15:16:03 -08:00
Dane Everitt
3e61bfdeaa Replace console view with proper ts 2019-02-03 15:10:21 -08:00
Dane Everitt
d7ce62c047 Re-add socket mixin, works fine? 2019-02-03 14:49:04 -08:00
Dane Everitt
1c6fa6c0bb Revert "Temporarily remove socketio until this can be fixed"
This reverts commit 0e1d35c8a0.
2019-02-03 14:31:47 -08:00
Dane Everitt
9f2eaa5c40 Transform server base page to TS 2019-02-03 14:31:39 -08:00
Dane Everitt
ace2e060ed Merge branch 'release/v0.7.12' 2019-02-03 13:45:12 -08:00
Dane Everitt
7bdcdf23bf Little tweak, HMR still broken 2019-02-02 19:00:34 -08:00
Dane Everitt
ea923053eb Miscelaneous fixes for WP 2019-02-02 18:49:51 -08:00
Dane Everitt
91cf735646 Fix webpack compliation for prod, chunk out massive files for perf 2019-02-02 18:25:33 -08:00
Dane Everitt
cc6d10d7f8 Initial Webpack 4 configuration 2019-02-02 17:33:12 -08:00
Dane Everitt
5fc6ef191c Update app.php 2019-02-02 14:10:30 -08:00
Dane Everitt
2a0d649b2a Migrate more components to TS 2018-12-30 15:31:41 -08:00
Dane Everitt
085da72934 Fix modal closing 2018-12-30 15:07:18 -08:00
Dane Everitt
0c2b2b4341 Get account pages working 2018-12-30 15:07:12 -08:00
Dane Everitt
11a70b0343 Get dashboard converted 2018-12-30 13:41:24 -08:00
Dane Everitt
33e09b5619 Migrate more core components 2018-12-30 13:10:16 -08:00
Dane Everitt
136e4b5b7b Fix some issues 2018-12-30 12:45:57 -08:00
Dane Everitt
da45855034 Use computed, not method so it is accessible 2018-12-30 12:27:18 -08:00
Dane Everitt
75ba2eac39 Finish auth migration, now to make it work 2018-12-30 12:13:10 -08:00
Dane Everitt
3b553beac6 Update bootstrap.ts 2018-12-30 10:41:36 -08:00
Dane Everitt
6330d6579f Undo the ts setting in vue components, begin migration to Vue.component setup 2018-12-29 19:24:52 -08:00
Dane Everitt
0e1d35c8a0 Temporarily remove socketio until this can be fixed 2018-12-29 19:24:25 -08:00
Dane Everitt
f7ba30fbbe Change flash mixin 2018-12-29 19:24:09 -08:00
Dane Everitt
96468ab4b3 Try some more changes 2018-12-29 17:00:50 -08:00
Dane Everitt
e6502a3713 Shim sham fix the jam 2018-12-29 16:34:22 -08:00
Dane Everitt
ce949ba920 Switch i18n provider 2018-12-29 16:11:49 -08:00
Dane Everitt
ed5ebe9155 More progress, committing to get assistance with TS 2018-12-29 15:51:13 -08:00
Jakob
a76bde5b1d use .test instead of .local as tld for development 2018-12-17 23:41:46 +01:00
Dane Everitt
5e4ca8ef83 Cleanup socketio stuff for typescript 2018-12-16 18:57:34 -08:00
Dane Everitt
3ad4422a94 Begin transfering things to TS 2018-12-16 15:29:44 -08:00
Dane Everitt
81f5e49768 Port to TS 2018-12-16 14:30:21 -08:00
Dane Everitt
8325743e84 Fix lock 2018-12-16 14:23:22 -08:00
Dane Everitt
21ffa08d66 Merge branch 'develop' into feature/vuejs 2018-12-16 14:20:35 -08:00
Dane Everitt
cc7f7d7123 Remove flow defs and usage, will be using TS 2018-12-16 14:11:56 -08:00
Jamsheed Mistri
34b166cde9 StyleCI fixes 2018-12-02 23:42:35 -08:00
Jamsheed Mistri
9cf7432835 Adding bulk reinstall command 2018-12-02 23:39:40 -08:00
Dane Everitt
75a222fe06 Merge branch 'release/v0.7.11' 2018-11-10 15:42:13 -08:00
Dane Everitt
8fd0e5ff57 Fix flexbox view when there are three items 2018-10-14 13:17:37 -07:00
Dane Everitt
aee42df3ad Implement some flow and cleanup API call for file manager 2018-09-23 16:06:23 -07:00
Dane Everitt
c3ef290145 Add flowjs support 2018-09-23 14:58:09 -07:00
Dane Everitt
b6205463db Merge branch 'develop' into feature/vuejs 2018-09-23 13:14:46 -07:00
Dane Everitt
3188782ce7 Revert "Get ionicons imported"
This reverts commit 5404b81193.
2018-09-13 21:53:12 -07:00
Dane Everitt
bba8797f7b Revert "Update navigation icons"
This reverts commit 63375d0f37.
2018-09-13 21:53:00 -07:00
Dane Everitt
63375d0f37 Update navigation icons 2018-09-13 21:23:13 -07:00
Dane Everitt
5404b81193 Get ionicons imported 2018-09-13 20:44:29 -07:00
Dane Everitt
201c8a7c4c Make search work correctly when clicking on results 2018-09-11 22:24:48 -07:00
Dane Everitt
31092df5df Show loading indicator when searching 2018-09-11 21:32:01 -07:00
Dane Everitt
0b0b80dc6d Add search box to server pages 2018-09-11 21:25:02 -07:00
Dane Everitt
b1b6a7eecd Biggerify the navigation 2018-09-11 20:08:01 -07:00
Dane Everitt
dae780249f Less colors 2018-09-11 19:23:22 -07:00
Dane Everitt
395a2860e7 Start working on a better design for the server boxes on the dashboard 2018-09-05 22:55:59 -07:00
Dane Everitt
5c25edfdd4 format 2018-09-05 21:46:09 -07:00
Dane Everitt
b820542b02 Make the colors less strange looking 2018-09-05 21:45:33 -07:00
Dane Everitt
5ca13839cf Merge branch 'develop' into feature/vue-serverview 2018-09-05 21:34:59 -07:00
Dane Everitt
a77897eb43 Merge branch 'release/v0.7.10' 2018-09-03 16:26:47 -07:00
Dane Everitt
9c11a9d0bd Merge branch 'release/v0.7.10' 2018-09-03 16:06:26 -07:00
Dane Everitt
414b2f8f8c Bump version for release 2018-09-03 16:01:10 -07:00
Dane Everitt
5c4d5f733f Move some files around 2018-08-31 20:30:38 -07:00
Dane Everitt
b731659135 Finish up deletion logic 2018-08-26 14:11:18 -07:00
Dane Everitt
039650bf75 More animate 2018-08-26 14:05:10 -07:00
Dane Everitt
5170d40bb2 Cleaner animation 2018-08-26 14:03:43 -07:00
Dane Everitt
e906ada528 Better handling when deleting a database 2018-08-26 14:01:00 -07:00
Dane Everitt
0999ec93c3 More logic for deleting databases 2018-08-25 15:07:42 -07:00
Dane Everitt
9be2aa4ca9 Push beginning of DB deletion stuff 2018-08-25 14:43:21 -07:00
Dane Everitt
c28e9c1ab7 Add ability to create new database through the UI 2018-08-22 22:29:20 -07:00
Dane Everitt
17796fb1c4 Add basic database listing for server 2018-08-21 21:47:01 -07:00
Dane Everitt
04f56ffe99 Cleanup 2018-08-18 22:03:38 -07:00
Dane Everitt
cf32742132 More file manager updates 2018-08-18 22:03:19 -07:00
Dane Everitt
58f8ec338b Cleanup 2018-08-18 21:13:05 -07:00
Dane Everitt
68b23de55d Significantly less atrocious resource checking for servers... 2018-08-18 21:02:58 -07:00
Dane Everitt
dc52e238ac Change socket implementation for servers 2018-08-18 20:13:40 -07:00
Dane Everitt
e0fda5865d Add initial logic for rendering the context menu 2018-08-14 22:27:25 -07:00
Dane Everitt
5aa57e0681 Break out file manager file/directory rows into individual components 2018-08-14 21:17:10 -07:00
Dane Everitt
e9f8751c4c More filemanager work, directory browsing working 2018-08-13 22:58:58 -07:00
Dane Everitt
ceef2edf2e Add error handling for file manager 2018-08-13 21:06:11 -07:00
Dane Everitt
92a9146b61 Improve filemanager, get first level folders listing 2018-08-06 23:14:13 -07:00
Dane Everitt
00a3d7df87 Properly handle the console when the socket disconnects/reconnects 2018-08-06 22:21:13 -07:00
Dane Everitt
f20d40460e Better handling of connection errors 2018-08-06 21:33:43 -07:00
Dane Everitt
f1ec968f38 Add beginning of the file manager 2018-08-03 22:32:01 -07:00
Dane Everitt
ce77ab21b3 Rearrange 2018-08-03 21:32:50 -07:00
Dane Everitt
7e6902cc90 Adjustments to the UI 2018-08-03 21:30:06 -07:00
Dane Everitt
c772376aa7 Add the expected buttons, reset color on each line 2018-08-03 20:48:27 -07:00
Jakob Schrettenbrunner
4c357e9231 add color scheme to termx on ConsolePage 2018-08-02 21:56:23 +02:00
Dane Everitt
38d7985e66 More socket and console improvements for server 2018-08-01 23:37:14 -07:00
Dane Everitt
f866ad5b34 Fix spinners, change socket emit names 2018-08-01 21:10:28 -07:00
Dane Everitt
5ca6538965 Autofocus search box when navigating to dashboard 2018-07-21 22:43:16 -07:00
Dane Everitt
034e759298 Show a spinner on the console when loading the contents initially 2018-07-21 22:37:41 -07:00
Dane Everitt
71d2a648ca Fix spinner component to allow it to be positioned correctly 2018-07-21 22:31:03 -07:00
Dane Everitt
b9368eca45 Reset history to end when command is sent 2018-07-21 16:23:15 -07:00
Dane Everitt
3a97a89d20 Add command history 2018-07-21 16:22:41 -07:00
Dane Everitt
38d50c8fc2 Hide the cursor entirely 2018-07-21 15:26:54 -07:00
Dane Everitt
a94c6d80f5 Add xterm for console support (holy shit this is speedy) 2018-07-21 15:20:37 -07:00
Dane Everitt
c2ebf1cbcd Neaten up the console a bit more 2018-07-21 00:04:56 -07:00
Dane Everitt
2744280362 Styling tweaks 2018-07-20 23:49:12 -07:00
Dane Everitt
8db9d9bbee Very rough go at connecting to socket and rendering console data for server 2018-07-20 23:45:07 -07:00
Dane Everitt
784c73becd Break console page into a component 2018-07-20 22:34:30 -07:00
Dane Everitt
2ab66ba8c8 Add logic to load server data into vuex for the request when visiting a server page 2018-07-18 22:48:19 -07:00
Dane Everitt
a42280dd84 Begin working on sidebar styling for server view 2018-07-15 19:47:31 -07:00
Dane Everitt
92905a6c2a Add the server routes 2018-07-15 19:03:38 -07:00
Dane Everitt
79ea4cbe1a Correct N+1 utilization checking 2018-07-15 18:11:29 -07:00
Dane Everitt
7f5485d648 Fix dashboard to track server state 2018-07-15 17:53:40 -07:00
Dane Everitt
8b3713e3ff FOrmat and disable server store temporarily 2018-07-15 17:09:53 -07:00
Dane Everitt
d0348a4505 Fix 2FA on login 2018-07-15 17:09:41 -07:00
Dane Everitt
4c4f6d3afe Fix login 2018-07-15 16:57:00 -07:00
Dane Everitt
ca27346e49 Remove empty css 2018-07-15 16:51:27 -07:00
Dane Everitt
f2d2725ca0 Merge branch 'feature/vuejs' into feature/vue-serverview 2018-07-15 16:50:11 -07:00
Dane Everitt
b859ed61f4 Performance improvements to browser tests 2018-07-15 16:20:36 -07:00
Dane Everitt
d9a09e92bd Add tests for all of the account actions 2018-07-15 15:58:24 -07:00
Dane Everitt
be2c76c24a Add tests for password changing 2018-07-15 11:44:18 -07:00
Dane Everitt
6e9123af19 Correctly tear down tests and remove cookies 2018-07-15 11:44:08 -07:00
Dane Everitt
8bbe6bc279 Add test, fix behavior of model creation 2018-07-14 22:58:33 -07:00
Dane Everitt
550c622d3b Obliterate JWT from codebase 2018-07-14 22:48:09 -07:00
Dane Everitt
6336e5191f Strip out JWT usage and use cookies to track the currently logged in user 2018-07-14 22:42:58 -07:00
Dane Everitt
a7fae86e58 Treat unauthenticated exceptions the same as everything else 2018-07-14 22:42:38 -07:00
Dane Everitt
aba1b297c8 Add a test that wont work due to auth issues currently 2018-07-14 22:11:56 -07:00
Dane Everitt
a44b4c4426 Fix changing email address error handling 2018-07-14 22:03:19 -07:00
Dane Everitt
eafc4408eb Fix broken unit tests 2018-07-14 21:49:49 -07:00
Dane Everitt
8b9c2465f3 Correct behavior of errors on the login form 2018-07-14 21:26:08 -07:00
Dane Everitt
2ae43e1f61 Add changes for vagrant 2018-07-14 21:16:18 -07:00
Dane Everitt
d17442a096 Disable automatic optimization and change v:serve for new dev environment 2018-07-14 15:07:19 -07:00
Dane Everitt
c82f273d85 Fix remaining broken tests 2018-07-04 19:38:23 -07:00
Dane Everitt
6c20ea9881 Add tests for changed controllers 2018-07-04 19:20:33 -07:00
Dane Everitt
ec8e434375 Set the 2fa image to always have a consistent height, less jarring transition 2018-07-04 19:00:20 -07:00
Dane Everitt
5010c0c756 Merge branch 'feature/vuejs' into feature/vuejs-account 2018-07-04 18:12:57 -07:00
Dane Everitt
6419b1cf81 Handle password reset logic change for 2fa 2018-07-04 18:11:43 -07:00
Dane Everitt
af9af78938 Merge branch 'develop' into feature/vuejs 2018-07-04 18:09:07 -07:00
Dane Everitt
81f1796a6a Merge branch 'release/v0.7.9' 2018-07-04 12:08:14 -07:00
Dane Everitt
8341cdbc88 Bump for release 2018-07-04 11:44:21 -07:00
Dane Everitt
b342d4dc6b Change v:serve to match the new vagrant setup 2018-07-03 23:11:22 -07:00
Dane Everitt
603b8a3094 Merge branch 'feature/vuejs' into feature/vuejs-account 2018-07-02 21:01:04 -07:00
Dane Everitt
48cb01f438 Merge branch 'develop' into feature/vuejs 2018-07-02 21:00:42 -07:00
Dane Everitt
28442cead3 Merge branch 'release/v0.7.8' 2018-07-02 21:00:16 -07:00
Dane Everitt
0a828e0f8d Bump for release 2018-07-01 15:02:56 -07:00
Dane Everitt
7711b697ad Finalize two-factor handling on account. 2018-06-20 23:05:35 -07:00
Dane Everitt
0cc895f2d5 Finalize email/password changing in UI 2018-06-17 16:53:24 -07:00
Dane Everitt
81da55d46b Actually fix the endless redirect loop when the application needs a fresh JWT. 2018-06-17 15:06:34 -07:00
Dane Everitt
5c3d3f6ce9 Better support for mobile devices on login and account pages 2018-06-16 18:04:48 -07:00
Dane Everitt
941c585c73 Fix animations being nuked on production compilation 2018-06-16 17:13:03 -07:00
Dane Everitt
074a929315 Fix icon size in production compiled assets 2018-06-16 17:05:06 -07:00
Dane Everitt
7d509e8ae5 Remove the glow on inputs in Safari/Chrome 2018-06-16 17:00:35 -07:00
Dane Everitt
462e59e330 Make modals look sane on phones 2018-06-16 16:50:18 -07:00
Dane Everitt
ac7cefb83f Make the account page mobile friendly 2018-06-16 16:43:52 -07:00
Dane Everitt
4e4a183f48 Put the modal more at the top, looks funky in middle 2018-06-16 16:27:53 -07:00
Dane Everitt
d6959ea3dd Add a basic modal template to be used 2018-06-16 16:25:26 -07:00
Dane Everitt
84fecb7a92 Import only the needed things from lodash 2018-06-16 15:05:36 -07:00
Dane Everitt
fce394f6bd Change email handling and logout function 2018-06-16 14:30:20 -07:00
Dane Everitt
ca0c35bf82 Avoid getting stuck in an endless redirect loop... 2018-06-16 14:27:23 -07:00
Dane Everitt
1acedc2de2 Remove luxon completely. 2018-06-16 14:11:58 -07:00
Dane Everitt
e7faf979a1 Change login handling to automatically redirect a user if their session will need renewal. 2018-06-16 14:05:39 -07:00
Dane Everitt
24bb8da43d Fix CSS issue with login page due to input classes 2018-06-16 12:43:32 -07:00
Dane Everitt
b8b9acd0e6 Get the base email update working through the API.
Still going to need to determine the best course of action to update the token on the client side.
2018-06-11 22:56:57 -07:00
Dane Everitt
14927c3e7e Add base UI for account management 2018-06-11 22:36:43 -07:00
Dane Everitt
e5e66fdb58 Fix error handling in dashboard 2018-06-11 20:42:01 -07:00
Jakob Schrettenbrunner
05478e3277 Merge branch 'feature/vuejs' into feature/vue-serverview 2018-06-11 21:06:12 +02:00
Jakob Schrettenbrunner
f971cdf9ca add v:serve shortcut for vagrant
automatically install nodejs and yarn
add some info on change detection in vagrant to BUILDING.md
2018-06-11 00:32:54 +02:00
Jakob Schrettenbrunner
5e3f705a4c add postcss for proper css compiling 2018-06-11 00:32:07 +02:00
Dane Everitt
03c83c084a Revert use of cookies, go back to using a JWT 2018-06-06 22:49:44 -07:00
Dane Everitt
871147f2d9 Remove old storage 2018-06-06 22:18:43 -07:00
Dane Everitt
a6441169b1 Add build directions that are more useful 2018-06-06 21:59:45 -07:00
Dane Everitt
48982ecc00 Dont track ziggy, compiled asset 2018-06-06 21:46:14 -07:00
Dane Everitt
4ffe6c96ad Fix support for hot reloading without requiring anything special in the app 2018-06-06 21:44:52 -07:00
Jakob Schrettenbrunner
cbdf4d4e1a Merge branch 'feature/vuejs' into feature/move-to-webpack 2018-06-06 22:41:15 +02:00
Jakob Schrettenbrunner
6ed46c2e75 start adding webpack-serve for hot reloading 2018-06-06 22:33:24 +02:00
Dane Everitt
5bcabbde35 Get dashboard in a more working state 2018-06-05 23:42:34 -07:00
Dane Everitt
e948d81d8a Base attempt at using vuex to handle logins 2018-06-05 23:00:01 -07:00
Dane Everitt
cc58bc9bd5 Switch to uglifyjs for speed improvement, leverage caching 2018-06-03 20:34:30 -07:00
Dane Everitt
9d624d2c39 Fix things I broke when cleaning 2018-06-03 20:09:41 -07:00
Dane Everitt
680e8f22d9 Somehow this made node_modules bigger. 2018-06-03 20:02:08 -07:00
Dane Everitt
b32078d83c Add helpers for building 2018-06-03 19:56:45 -07:00
Dane Everitt
daf9a20e62 Make that css smol 2018-06-03 19:50:58 -07:00
Dane Everitt
aea6944f16 Fix postcss plugin order 2018-06-03 19:40:05 -07:00
Dane Everitt
80b0816718 Better support for CSS and JS 2018-06-03 19:35:50 -07:00
Dane Everitt
bbdade398a Name files correctly 2018-06-03 18:53:27 -07:00
Dane Everitt
8673a061ac Remove gulp, move entirely to webpack 2018-06-03 18:46:27 -07:00
Dane Everitt
e84d2d6ae1 Get webpack working with the JS build 2018-06-03 18:03:46 -07:00
Dane Everitt
c5f6b1a919 Push what I have I guess 2018-06-03 17:40:35 -07:00
Jakob Schrettenbrunner
855af7cb4d commit files that were out of view 2018-06-04 00:46:24 +02:00
Jakob Schrettenbrunner
58ad7a4b27 start to properly use vuex 2018-06-04 00:45:01 +02:00
Jakob Schrettenbrunner
20472a903c merge remote changes 2018-06-03 18:31:43 +02:00
Dane Everitt
7b6c14cf7b Don't do weird things with container height. 2018-06-02 23:38:01 -07:00
Dane Everitt
0bf4764bfb Add navigation to the server view 2018-06-02 23:36:20 -07:00
Dane Everitt
349ec7da38 ungoof navigation 2018-06-02 23:31:30 -07:00
Dane Everitt
e65854c8c2 Merge branch 'feature/vuejs' into feature/vue-serverview 2018-06-02 23:28:55 -07:00
Dane Everitt
ee9a34716d Add navigation to vue, improve responsiveness of the design 2018-06-02 23:15:10 -07:00
Dane Everitt
be5a9108f9 Dont refresh server statuses unless the page is active
Reduces the number of polling requests happening on the server by only sending those requests if the user is actively viewing the dashboard.

There was no point in updating the resource usage if no one is viewing it. After 30 seconds away from the window when a user comes back it will update instantenously, otherwise it'll just update after 5 seconds.
2018-06-02 22:23:54 -07:00
Dane Everitt
02b29a66ea Use client API to get resource use for a server 2018-06-02 19:08:53 -07:00
Dane Everitt
bcd3b055dd Break out the server box into a component 2018-06-02 17:41:06 -07:00
Dane Everitt
0d56ed19a7 Fix flash margins on login page 2018-06-02 17:15:04 -07:00
Dane Everitt
6b2649ad2c Merge branch 'feature/vuejs' into feature/vuejs-serverlist 2018-06-02 17:12:45 -07:00
Dane Everitt
6005def7bc Merge branch 'feature/vuejs' into feature/dusk-vuejs 2018-06-02 17:06:30 -07:00
Dane Everitt
dec969bf9f Fix checkpoint behavior to only work when a token is provided 2018-06-02 17:01:54 -07:00
Dane Everitt
4209be021e Add handlers for non-successful responses from the panel 2018-06-02 16:59:16 -07:00
Dane Everitt
92c03d4953 Add tests for password reset page functionality 2018-06-02 16:39:49 -07:00
Dane Everitt
7a1d73ba9e Let gulp build the necessary core files using artisan 2018-06-02 16:02:41 -07:00
Dane Everitt
ebb7b6de9b Let gulp build the necessary core files using artisan 2018-06-02 16:02:25 -07:00
Dane Everitt
cf07ba5746 Let gulp build the necessary core files using artisan 2018-06-02 15:54:52 -07:00
Dane Everitt
e0d67ff857 Merge branch 'feature/vuejs' into feature/vue-serverview 2018-05-31 23:01:24 -07:00
Dane Everitt
316bb9c11e Merge branch 'feature/vuejs' into feature/dusk-vuejs 2018-05-31 23:00:08 -07:00
Dane Everitt
6c598f9100 Merge branch 'feature/vuejs' into feature/vuejs-serverlist 2018-05-31 22:59:39 -07:00
Dane Everitt
5f70502f20 Merge branch 'develop' into feature/vuejs 2018-05-31 22:59:16 -07:00
Dane Everitt
f8fa62e3d6 First round of authentication tests 2018-05-31 22:42:52 -07:00
Dane Everitt
b50f314eda 💯 Lets not accidentally drop the entire database again. 2018-05-31 22:30:05 -07:00
Dane Everitt
c86690a695 Get base code for dusk tests 2018-05-31 21:45:49 -07:00
Jakob Schrettenbrunner
e808919c5c fix gulp scripts pipeline failing on second run because of how sourcemaps are cleared 2018-05-31 18:26:34 +02:00
Jakob Schrettenbrunner
c58ef1f8a8 Merge branch 'feature/vuejs-serverlist' into feature/vue-serverview 2018-05-31 18:26:07 +02:00
Jakob Schrettenbrunner
a1558fa00f add sourcemaps to gulp pipelines 2018-05-31 17:59:18 +02:00
Dane Everitt
9831adb91c Cleanup dashboard, make flash more customizable for pages 2018-05-28 16:28:36 -07:00
Dane Everitt
caa0d21ac9 Handle state mutations for users better in Vuex 2018-05-28 15:37:09 -07:00
Jakob Schrettenbrunner
11d96c44d1 Merge branch 'feature/vuejs-serverlist' into feature/vue-serverview 2018-05-29 00:04:51 +02:00
Jakob Schrettenbrunner
378a1859cf Merge branch 'feature/vuejs-serverlist' into feature/vue-serverview 2018-05-29 00:04:41 +02:00
Dane Everitt
a1444b047e Fix JWT handling for API access when logging in 2018-05-28 14:59:48 -07:00
Jakob Schrettenbrunner
5dd9ed20aa add sourcemaps to gulp and pug support to vue 2018-05-28 23:16:03 +02:00
Dane Everitt
aa61afb58f Add proper server models 2018-05-28 14:11:23 -07:00
Dane Everitt
6e5c365018 Use the client API to load servers on the listing page 2018-05-28 13:23:40 -07:00
Dane Everitt
ad69193ac0 Add JWT to login forms 2018-05-28 12:48:42 -07:00
Dane Everitt
47c1ecc9bc Make server blocks clickable, break out routes into their own file 2018-05-28 11:34:24 -07:00
Jakob Schrettenbrunner
89f47c6dbb mocked server page and better navigation and overall layout 2018-05-28 00:37:03 +02:00
Jakob Schrettenbrunner
d2c770d218 add new favicon 2018-05-28 00:35:54 +02:00
Dane Everitt
6f2fcabf22 Add very basic server search and dynamic rendering functionality 2018-05-26 23:17:02 -07:00
Dane Everitt
f337a89320 Add search bar to dash 2018-05-26 22:19:33 -07:00
Dane Everitt
d78189df23 Improve dash design 2018-05-26 22:09:29 -07:00
Dane Everitt
9d8830a2d7 Get initial mockup of new server list up 2018-05-26 17:20:36 -07:00
Dane Everitt
64175ce35a Tweak colors 2018-05-26 16:11:44 -07:00
Dane Everitt
f5ffa121b0 Introduce pterodactyl official blue 2018-05-26 16:05:30 -07:00
Dane Everitt
0b7dbd65ff Final cleanup 2018-05-26 15:00:41 -07:00
Dane Everitt
7a077f3281 Remove the flash plugin store correctly 2018-05-26 14:59:58 -07:00
Dane Everitt
0a706d1b45 Add custom flash library that works as expected 2018-05-26 14:50:38 -07:00
Dane Everitt
bab20812a0 More UI fixes for consistency 2018-05-26 13:06:41 -07:00
Dane Everitt
b35eb77a70 Remove the pterodactyl directory when handling assets
This supports moving away from multiple-theme support in the Panel since that is no longer going to be offered.
2018-05-26 12:33:27 -07:00
Dane Everitt
f09eb8eec9 Double encoding happens by default now 2018-05-26 12:22:02 -07:00
Dane Everitt
caf784722c Update lock file 2018-05-26 12:20:23 -07:00
Dane Everitt
cf90f56777 Merge branch 'develop' into feature/vuejs-auth 2018-05-26 12:17:14 -07:00
Dane Everitt
40732e1237 Merge branch 'release/v0.7.7' 2018-05-26 11:47:37 -07:00
Dane Everitt
70b8debe6e Bump for release 2018-05-26 11:43:39 -07:00
Dane Everitt
4fad244073 Show correct auth error. 2018-04-08 16:16:04 -05:00
Dane Everitt
b6e94d9a1e Code cleanup 2018-04-08 16:00:52 -05:00
Dane Everitt
6d970a4cc3 Finalize login page! 2018-04-08 15:46:32 -05:00
Dane Everitt
d63624f607 Working login form with password reset functionality. 2018-04-08 15:18:13 -05:00
Dane Everitt
c3e462ab2f Cleanup login/reset functionality, address security issue with 2FA pathways 2018-04-07 16:17:51 -05:00
Dane Everitt
eade81f89b Untrack build assets 2018-04-07 14:06:30 -05:00
Dane Everitt
4f3c668420 Refactor auth controllers to be cleaner and easier to maintain 2018-04-07 12:35:15 -05:00
Dane Everitt
324b989a29 Get a working rough copy of the login page 2018-04-01 17:46:16 -05:00
Dane Everitt
94710934b9 Add csrf component 2018-03-31 16:44:20 -05:00
Dane Everitt
598bae7b70 Add translations to vue files 2018-03-31 16:33:10 -05:00
Dane Everitt
791cbaa5ce Get things into a somewhat working state on the login form 2018-03-31 15:52:11 -05:00
Dane Everitt
7de2c8684c More dependency management adjustments 2018-03-31 15:51:18 -05:00
Dane Everitt
cc6ec0415a Use correct uglify package 2018-03-31 00:05:33 -05:00
Dane Everitt
3c47c1565f Add webpack to be used when building vue and JS 2018-03-30 23:58:38 -05:00
Dane Everitt
8d704ae5c8 Inital commit with gulp and base asset setup 2018-03-27 00:44:14 -05:00
1846 changed files with 70664 additions and 86604 deletions

View File

@@ -1,8 +0,0 @@
{
"presets": ["es2015"],
"compact": true,
"minified": true,
"only": "public/themes/pterodactyl/js/frontend/files/src/*.js",
"sourceMaps": "inline",
"comments": false
}

View File

@@ -1,76 +0,0 @@
# Pterodactyl Panel - Docker Image
This is a ready to use docker image for the panel.
## Requirements
This docker image requires some additional software to function. The software can either be provided in other containers (see the [docker-compose.yml](docker-compose.yml) as an example) or as existing instances.
A mysql database is required. We recommend the stock [MariaDB Image](https://hub.docker.com/_/mariadb/) image if you prefer to run it in a docker container. As a non-containerized option we recommend mariadb.
A caching software is required as well. We recommend the stock [Redis Image](https://hub.docker.com/_/redis/) image. You can choose any of the [supported options](#cache-drivers).
You can provide additional settings using a custom `.env` file or by setting the appropriate environment variables in the docker-compose file.
## Setup
Start the docker container and the required dependencies (either provide existing ones or start containers as well, see the [docker-compose.yml](docker-compose.yml) file as an example).
After the startup is complete you'll need to create a user.
If you are running the docker container without docker-compose, use:
```
docker exec -it <container id> php artisan p:user:make
```
If you are using docker compose use
```
docker-compose exec panel php artisan p:user:make
```
## Environment Variables
There are multiple environment variables to configure the panel when not providing your own `.env` file, see the following table for details on each available option.
Note: If your `APP_URL` starts with `https://` you need to provide an `LETSENCRYPT_EMAIL` as well so Certificates can be generated.
| Variable | Description | Required |
| ------------------- | ------------------------------------------------------------------------------ | -------- |
| `APP_URL` | The URL the panel will be reachable with (including protocol) | yes |
| `APP_TIMEZONE` | The timezone to use for the panel | yes |
| `LETSENCRYPT_EMAIL` | The email used for letsencrypt certificate generation | yes |
| `DB_HOST` | The host of the mysql instance | yes |
| `DB_PORT` | The port of the mysql instance | yes |
| `DB_DATABASE` | The name of the mysql database | yes |
| `DB_USERNAME` | The mysql user | yes |
| `DB_PASSWORD` | The mysql password for the specified user | yes |
| `CACHE_DRIVER` | The cache driver (see [Cache drivers](#cache-drivers) for detais) | yes |
| `SESSION_DRIVER` | | yes |
| `QUEUE_DRIVER` | | yes |
| `REDIS_HOST` | The hostname or IP address of the redis database | yes |
| `REDIS_PASSWORD` | The password used to secure the redis database | maybe |
| `REDIS_PORT` | The port the redis database is using on the host | maybe |
| `MAIL_DRIVER` | The email driver (see [Mail drivers](#mail-drivers) for details) | yes |
| `MAIL_FROM` | The email that should be used as the sender email | yes |
| `MAIL_HOST` | The host of your mail driver instance | maybe |
| `MAIL_PORT` | The port of your mail driver instance | maybe |
| `MAIL_USERNAME` | The username for your mail driver | maybe |
| `MAIL_PASSWORD` | The password for your mail driver | maybe |
### Cache drivers
You can choose between different cache drivers depending on what you prefer.
We recommend redis when using docker as it can be started in a container easily.
| Driver | Description | Required variables |
| -------- | ------------------------------------ | ------------------------------------------------------ |
| redis | host where redis is running | `REDIS_HOST` |
| redis | port redis is running on | `REDIS_PORT` |
| redis | redis database password | `REDIS_PASSWORD` |
### Mail drivers
You can choose between different mail drivers according to your needs.
Every driver requires `MAIL_FROM` to be set.
| Driver | Description | Required variables |
| -------- | ------------------------------------ | ------------------------------------------------------------- |
| mail | uses the installed php mail | |
| mandrill | [Mandrill](http://www.mandrill.com/) | `MAIL_USERNAME` |
| postmark | [Postmark](https://postmarkapp.com/) | `MAIL_USERNAME` |
| mailgun | [Mailgun](https://www.mailgun.com/) | `MAIL_USERNAME`, `MAIL_HOST` |
| smtp | Any SMTP server can be configured | `MAIL_USERNAME`, `MAIL_HOST`, `MAIL_PASSWORD`, `MAIL_PORT` |

View File

@@ -1,51 +0,0 @@
# If using Ubuntu this file should be placed in:
# /etc/nginx/sites-available/
#
# If using CentOS this file should be placed in:
# /etc/nginx/conf.d/
#
server {
listen 80;
server_name _;
root /app/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/pterodactyl.app-error.log error;
# allow larger file uploads and longer script runtimes
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# the fastcgi_pass path needs to be changed accordingly when using CentOS
fastcgi_pass unix:/var/run/php/php-fpm7.2.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}

View File

@@ -1,70 +0,0 @@
# If using Ubuntu this file should be placed in:
# /etc/nginx/sites-available/
#
server {
listen 80;
server_name <domain>;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name <domain>;
root /app/public;
index index.php;
access_log /var/log/nginx/pterodactyl.app-access.log;
error_log /var/log/nginx/pterodactyl.app-error.log error;
# allow larger file uploads and longer script runtimes
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
# strengthen ssl security
ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
# See the link below for more SSL information:
# https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
#
# ssl_dhparam /etc/ssl/certs/dhparam.pem;
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header Content-Security-Policy "frame-ancestors 'self'";
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php-fpm7.2.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
include /etc/nginx/fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}

View File

@@ -1,70 +0,0 @@
#!/bin/ash
## Ensure we are in /app
cd /app
mkdir -p /var/log/panel/logs/ /var/log/supervisord/ /var/log/nginx/ /var/log/php7/ \
&& rmdir /app/storage/logs/ \
&& chmod 777 /var/log/panel/logs/ \
&& ln -s /var/log/panel/logs/ /app/storage/
## check for .env file and generate app keys if missing
if [ -f /app/var/.env ]; then
echo "external vars exist."
rm /app/.env
ln -s /app/var/.env /app/
else
echo "external vars don't exist."
rm /app/.env
touch /app/var/.env
## manually generate a key because key generate --force fails
echo -e "Generating key."
APP_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
echo -e "Generated app key: $APP_KEY"
echo -e "APP_KEY=$APP_KEY" > /app/var/.env
ln -s /app/var/.env /app/
fi
echo "Checking if https is required."
if [ -f /etc/nginx/conf.d/default.conf ]; then
echo "Using nginx config already in place."
else
echo "Checking if letsencrypt email is set."
if [ -z $LE_EMAIL ]; then
echo "No letsencrypt email is set Failing to http."
cp .dev/docker/default.conf /etc/nginx/conf.d/default.conf
else
echo "writing ssl config"
cp .dev/docker/default_ssl.conf /etc/nginx/conf.d/default.conf
echo "updating ssl config for domain"
sed -i "s|<domain>|$(echo $APP_URL | sed 's~http[s]*://~~g')|g" /etc/nginx/conf.d/default.conf
echo "generating certs"
certbot certonly -d $(echo $APP_URL | sed 's~http[s]*://~~g') --standalone -m $LE_EMAIL --agree-tos -n
fi
fi
## check for DB up before starting the panel
echo "Checking database status."
until nc -z -v -w30 $DB_HOST 3306
do
echo "Waiting for database connection..."
# wait for 5 seconds before check again
sleep 5
done
## make sure the db is set up
echo -e "Migrating and Seeding D.B"
php artisan migrate --force
php artisan db:seed --force
## start cronjobs for the queue
echo -e "Starting cron jobs."
crond -L /var/log/crond -l 5
echo -e "Starting supervisord."
exec "$@"

View File

@@ -1,16 +0,0 @@
[pterodactyl]
user = nginx
group = nginx
listen = /var/run/php/php-fpm7.2.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0750
pm = ondemand
pm.max_children = 9
pm.process_idle_timeout = 10s
pm.max_requests = 200
clear_env = no

View File

@@ -1,39 +0,0 @@
APP_ENV=develop
APP_DEBUG=true
APP_KEY=SomeRandomString3232RandomString
APP_THEME=pterodactyl
APP_TIMEZONE=UTC
APP_CLEAR_TASKLOG=720
APP_DELETE_MINUTES=10
APP_URL=http://192.168.50.2/
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=panel
DB_USERNAME=pterodactyl
DB_PASSWORD=pterodactyl
CACHE_DRIVER=memcached
MEMCACHED_HOST=127.0.0.1
SESSION_DRIVER=database
MAIL_DRIVER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=
MAIL_FROM=support@pterodactyl.io
API_PREFIX=api
API_VERSION=v1
API_DEBUG=true
QUEUE_DRIVER=database
QUEUE_HIGH=high
QUEUE_STANDARD=standard
QUEUE_LOW=low
SQS_KEY=aws-public
SQS_SECRET=aws-secret
SQS_QUEUE_PREFIX=aws-queue-prefix

View File

@@ -1,13 +0,0 @@
[Unit]
Description=Mailhog
[Service]
# On some systems the user and group might be different.
# Some systems use `apache` as the user and group.
User=www-data
Group=www-data
Restart=on-failure
ExecStart=/usr/bin/mailhog
[Install]
WantedBy=multi-user.target

View File

@@ -1,189 +0,0 @@
# MariaDB database server configuration file.
#
# You can copy this file to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc_messages_dir = /usr/share/mysql
lc_messages = en_US
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
#
# * Fine Tuning
#
max_connections = 100
connect_timeout = 5
wait_timeout = 600
max_allowed_packet = 16M
thread_cache_size = 128
sort_buffer_size = 4M
bulk_insert_buffer_size = 16M
tmp_table_size = 32M
max_heap_table_size = 32M
#
# * MyISAM
#
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched. On error, make copy and try a repair.
myisam_recover_options = BACKUP
key_buffer_size = 128M
#open-files-limit = 2000
table_open_cache = 400
myisam_sort_buffer_size = 512M
concurrent_insert = 2
read_buffer_size = 2M
read_rnd_buffer_size = 1M
#
# * Query Cache Configuration
#
# Cache only tiny result sets, so we can fit more in the query cache.
query_cache_limit = 128K
query_cache_size = 64M
# for more write intensive setups, set to DEMAND or OFF
#query_cache_type = DEMAND
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# we do want to know about network errors and such
log_warnings = 2
#
# Enable the slow query log to see queries with especially long duration
#slow_query_log[={0|1}]
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 10
#log_slow_rate_limit = 1000
log_slow_verbosity = query_plan
#log-queries-not-using-indexes
#log_slow_admin_statements
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#report_host = master1
#auto_increment_increment = 2
#auto_increment_offset = 1
log_bin = /var/log/mysql/mariadb-bin
log_bin_index = /var/log/mysql/mariadb-bin.index
# not fab for performance, but safer
#sync_binlog = 1
expire_logs_days = 10
max_binlog_size = 100M
# slaves
#relay_log = /var/log/mysql/relay-bin
#relay_log_index = /var/log/mysql/relay-bin.index
#relay_log_info_file = /var/log/mysql/relay-bin.info
#log_slave_updates
#read_only
#
# If applications support it, this stricter sql_mode prevents some
# mistakes like inserting invalid dates etc.
#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
default_storage_engine = InnoDB
# you can't just change log file size, requires special procedure
#innodb_log_file_size = 50M
innodb_buffer_pool_size = 256M
innodb_log_buffer_size = 8M
innodb_file_per_table = 1
innodb_open_files = 400
innodb_io_capacity = 400
innodb_flush_method = O_DIRECT
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
#
# * Galera-related settings
#
[galera]
# Mandatory settings
#wsrep_on=ON
#wsrep_provider=
#wsrep_cluster_address=
#binlog_format=row
#default_storage_engine=InnoDB
#innodb_autoinc_lock_mode=2
#
# Allow server to accept connections on all interfaces.
#
#bind-address=0.0.0.0
#
# Optional setting
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completion
[isamchk]
key_buffer = 16M
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/

View File

@@ -1,17 +0,0 @@
#####################################################
Pterodactyl Panel Vagrant VM
Install: /var/www/html/pterodactyl
Ports:
Panel: 80 (50080 on host)
MailHog: 8025 (58025 on host)
MySQL: 3306 (53306 on host)
Default panel users:
user: admin passwd: Ptero123 (admin user)
user: user passwd: Ptero123 (standard user)
MySQL is accessible using root/pterodactyl or pterodactyl/pterodactyl
Service for pteroq and mailhog are running
#####################################################

View File

@@ -1,84 +0,0 @@
#!/bin/bash
echo "Provisioning development environment for Pterodactyl Panel."
cp /var/www/html/pterodactyl/.dev/vagrant/motd.txt /etc/motd
chmod -x /etc/update-motd.d/10-help-text /etc/update-motd.d/51-cloudguest
apt-get install -y software-properties-common > /dev/null
echo "Add the ondrej/php ppa repository"
add-apt-repository -y ppa:ondrej/php > /dev/null
echo "Add the mariadb repository"
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash > /dev/null
apt-get update > /dev/null
echo "Install the dependencies"
export DEBIAN_FRONTEND=noninteractive
# set the mariadb root password because mariadb asks for it
debconf-set-selections <<< 'mariadb-server-5.5 mysql-server/root_password password pterodactyl'
debconf-set-selections <<< 'mariadb-server-5.5 mysql-server/root_password_again password pterodactyl'
# actually install
apt-get install -y php7.2 php7.2-cli php7.2-gd php7.2-mysql php7.2-pdo php7.2-mbstring php7.2-tokenizer php7.2-bcmath php7.2-xml php7.2-fpm php7.2-memcached php7.2-curl php7.2-zip php-xdebug mariadb-server nginx curl tar unzip git memcached > /dev/null
echo "Install composer"
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
echo "Install and run mailhog"
curl -sL -o /usr/bin/mailhog https://github.com/mailhog/MailHog/releases/download/v1.0.0/MailHog_linux_amd64
chmod +x /usr/bin/mailhog
cp /var/www/html/pterodactyl/.dev/vagrant/mailhog.service /etc/systemd/system/
systemctl enable mailhog.service
systemctl start mailhog
echo "Configure xDebug"
cp /var/www/html/pterodactyl/.dev/vagrant/xdebug.ini /etc/php/7.2/mods-available/
systemctl restart php7.2-fpm
echo "Configure nginx"
cp /var/www/html/pterodactyl/.dev/vagrant/pterodactyl.conf /etc/nginx/sites-available/
rm /etc/nginx/sites-available/default
ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
systemctl restart nginx
echo "Setup database"
# Replace default config with custom one to bind mysql to 0.0.0.0 to make it accessible from the host
cp /var/www/html/pterodactyl/.dev/vagrant/mariadb.cnf /etc/mysql/my.cnf
systemctl restart mariadb
mysql -u root -ppterodactyl << SQL
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'%' IDENTIFIED BY 'pterodactyl' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pterodactyl' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SQL
echo "Setup pterodactyl queue worker service"
cp /var/www/html/pterodactyl/.dev/vagrant/pteroq.service /etc/systemd/system/
systemctl enable pteroq.service
echo "Setup panel with base settings"
cp /var/www/html/pterodactyl/.dev/vagrant/.env.vagrant /var/www/html/pterodactyl/.env
cd /var/www/html/pterodactyl
chmod -R 755 storage/* bootstrap/cache
composer install --no-progress
php artisan key:generate --force
php artisan migrate
php artisan db:seed
php artisan p:user:make --name-first Test --name-last Admin --username admin --email testadmin@pterodactyl.io --password Ptero123 --admin 1
php artisan p:user:make --name-first Test --name-last User --username user --email testuser@pterodactyl.io --password Ptero123 --admin 0
echo "Add queue cronjob and start queue worker"
(crontab -l 2>/dev/null; echo "* * * * * php /var/www/html/pterodactyl/artisan schedule:run >> /dev/null 2>&1") | crontab -
systemctl start pteroq
echo " ----------------"
echo "Provisioning is completed."
echo "The panel should be available at http://localhost:50080/"
echo "You may use the default admin user to login: admin/Ptero123"
echo "A normal user has also been created: user/Ptero123"
echo "MailHog is available at http://localhost:58025/"
echo "Connect to the database using root/pterodactyl or pterodactyl/pterodactyl on localhost:53306"
echo "If you want to access the panel using http://pterodactyl.app you can use the vagrant-dns plugin"
echo "Install it with 'vagrant plugin install vagrant-dns', then run 'vagrant dns --install' once"
echo "On first use you'll have to manually start vagrant-dns with 'vagrant dns --start'"

View File

@@ -1,51 +0,0 @@
# If using Ubuntu this file should be placed in:
# /etc/nginx/sites-available/
#
# If using CentOS this file should be placed in:
# /etc/nginx/conf.d/
#
server {
listen 80;
server_name 0.0.0.0;
root /var/www/html/pterodactyl/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/pterodactyl.app-error.log error;
# allow larger file uploads and longer script runtimes
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# the fastcgi_pass path needs to be changed accordingly when using CentOS
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}

View File

@@ -1,20 +0,0 @@
# Pterodactyl Queue Worker File
# ----------------------------------
# File should be placed in:
# /etc/systemd/system
#
# nano /etc/systemd/system/pteroq.service
[Unit]
Description=Pterodactyl Queue Worker
[Service]
# On some systems the user and group might be different.
# Some systems use `apache` as the user and group.
User=www-data
Group=www-data
Restart=on-failure
ExecStart=/usr/bin/php /var/www/html/pterodactyl/artisan queue:work database --queue=high,standard,low --sleep=3 --tries=3
[Install]
WantedBy=multi-user.target

View File

@@ -1,10 +0,0 @@
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.scream=0
xdebug.show_local_vars=1
xdebug.idekey=PHPSTORM
xdebug.remote_log=/tmp/xdebug.log

29
.dockerignore Normal file
View File

@@ -0,0 +1,29 @@
**.DS_Store
.env
.devcontainer
.dockerignore
.editorconfig
.git
.github
**.gitignore
.php-cs-fixer.dist.php
.prettierrc.json
.vscode
Dockerfile
bounties.md
compose.yml
contributing.md
contributor_license_agreement.md
database/database.sqlite
docker/README.md
node_modules
phpstan.neon
phpunit.xml
readme.md
storage/debugbar/*.json
storage/framework/cache/data/*
storage/framework/sessions/*
storage/framework/testing
storage/framework/views/*.php
storage/logs/*.log
vendor

View File

@@ -1,12 +1,17 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
tab_width = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
[*.{md,nix,yml,yaml}]
indent_size = 2
tab_width = 2

View File

@@ -1,31 +1,6 @@
APP_ENV=production
APP_DEBUG=false
APP_KEY=
APP_THEME=pterodactyl
APP_TIMEZONE=America/New_York
APP_CLEAR_TASKLOG=720
APP_DELETE_MINUTES=10
APP_ENVIRONMENT_ONLY=true
LOG_CHANNEL=daily
APP_URL=http://panel.test
APP_INSTALLED=false
APP_LOCALE=en
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=panel
DB_USERNAME=pterodactyl
DB_PASSWORD=
HASHIDS_SALT=
HASHIDS_LENGTH=8
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM=no-reply@example.com
QUEUE_HIGH=high
QUEUE_STANDARD=standard
QUEUE_LOW=low

View File

@@ -1,19 +0,0 @@
APP_ENV=testing
APP_DEBUG=true
APP_KEY=SomeRandomString3232RandomString
APP_THEME=pterodactyl
APP_TIMEZONE=UTC
APP_URL=http://localhost/
TESTING_DB_HOST=127.0.0.1
TESTING_DB_DATABASE=travis
TESTING_DB_USERNAME=root
TESTING_DB_PASSWORD=""
CACHE_DRIVER=array
SESSION_DRIVER=array
MAIL_DRIVER=array
QUEUE_DRIVER=sync
HASHIDS_SALT=test123
APP_ENVIRONMENT_ONLY=true

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
github: pelican-dev
custom: [https://hub.pelican.dev/donors]

View File

@@ -1,35 +0,0 @@
---
name: "\U0001F41B Bug Report"
about: For reporting code or design bugs with the software. DO NOT REPORT APACHE/NGINX/PHP CONFIGURATION ISSUES.
---
DO NOT REPORT ISSUES CONFIGURING: SSL, PHP, APACHE, NGINX, YOUR MACHINE, SSH, SFTP, ETC. ON THIS GITHUB TRACKER.
For assistance installating this software, as well as debugging issues with dependencies, please use our discord server: https://discord.gg/pterodactyl
You MUST complete all of the below information when reporting a bug, failure to do so will result in closure of your issue. PLEASE stop spamming our tracker with "bugs" that are not related to this project.
**STOP: READ FIRST, AND THEN DELETE THE ABOVE LINES**
**Background (please complete the following information):**
* Panel or Daemon:
* Version of Panel/Daemon:
* Server's OS:
* Your Computer's OS & Browser:
**Describe the bug**
A clear and concise description of what the bug is.
Please provide additional information too, depending on what you have issues with:
Panel: `php -v` (the php version in use).
Daemon: `uname -a` and `docker info` (your kernel version and information regarding docker)
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen. If applicable, add screenshots or a recording to help explain your problem.

View File

@@ -1,17 +0,0 @@
---
name: "\U0001F680 Feature Request"
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -1,14 +0,0 @@
---
name: "⛔ Installation Help"
about: 'Visit our Discord for installation help: https://pterodactyl.io/discord'
---
We use GitHub issues only to discuss about Pterodactyl bugs and new features. For
this kind of questions about using Pterodactyl, please visit our Discord for assistance: https://pterodactyl.io/discord
DO NOT REPORT ISSUES CONFIGURING: SSL, PHP, APACHE, NGINX, YOUR MACHINE, SSH, SFTP, ETC. ON THIS GITHUB TRACKER.
For assistance installating this software, as well as debugging issues with dependencies, please use our discord server: https://discord.gg/pterodactyl
PLEASE stop spamming our tracker with "bugs" that are not related to this project.

85
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@@ -0,0 +1,85 @@
name: Bug Report
description: Something isn't working quite right in the software.
labels: [not confirmed]
body:
- type: markdown
attributes:
value: |
Bug reports should only be used for reporting issues with how the software works. For assistance installing this software, as well as debugging issues with dependencies, please use our Discord Server.
- type: textarea
attributes:
label: Current Behavior
description: Please provide a clear & concise description of the issue.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Please describe what you expected to happen.
validations:
required: true
- type: textarea
attributes:
label: Steps to Reproduce
description: Please be as detailed as possible when providing steps to reproduce, failure to provide steps will result in this issue being closed.
validations:
required: true
- type: input
id: panel-version
attributes:
label: Panel Version
description: Version number of your Panel (latest is not a version)
validations:
required: true
- type: input
id: wings-version
attributes:
label: Wings Version
description: Version number of your Wings (latest is not a version)
validations:
required: true
- type: input
id: egg-details
attributes:
label: Games and/or Eggs Affected
description: Please include the specific game(s) or egg(s) you are running into this bug with.
placeholder: Minecraft (Paper), Minecraft (Forge)
- type: input
id: docker-image
attributes:
label: Docker Image
description: The specific Docker image you are using for the game(s) above.
placeholder: ghcr.io/pelican-dev/yolks:java_17
- type: textarea
id: panel-logs
attributes:
label: Error Logs
description: |
Run the following command to collect logs on your system.
Wings: `sudo wings diagnostics`
Panel: `tail -n 150 /var/www/pelican/storage/logs/laravel-$(date +%F).log | curl -X POST -F 'c=@-' paste.pelistuff.com`
placeholder: "https://pelipaste.com/a1h6z"
render: bash
validations:
required: false
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please [search here](https://github.com/pelican-dev/panel/issues) to see if an issue already exists for your problem.
options:
- label: I have searched the existing issues before opening this issue.
required: true
- label: I have provided all relevant details, including the specific game and Docker images I am using if this issue is related to running a server.
required: true
- label: I have checked in the Discord server and believe this is a bug with the software, and not a configuration issue with my specific system.
required: true

11
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
blank_issues_enabled: true
contact_links:
- name: Feature Request
url: https://github.com/pelican-dev/panel/discussions
about: Suggest a new feature or improvement for the software.
- name: Installation Help
url: https://pelican.dev/discord
about: Please visit our Discord for help with your installation.
- name: General Question
url: https://pelican.dev/discord
about: Please visit our Discord for general questions about Pelican.

42
.github/workflows/build.yaml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: Build
on:
push:
branches:
- main
pull_request:
jobs:
ui:
name: UI
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [18, 20]
steps:
- name: Code Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: bcmath, curl, gd, mbstring, mysql, openssl, pdo, tokenizer, xml, zip
tools: composer:v2
coverage: none
- name: Install PHP dependencies
run: composer install --no-interaction --no-suggest --no-progress --no-autoloader --no-scripts --no-dev
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "yarn"
- name: Install JS dependencies
run: yarn install --frozen-lockfile
- name: Build
run: yarn build

291
.github/workflows/ci.yaml vendored Normal file
View File

@@ -0,0 +1,291 @@
name: Tests
on:
push:
branches:
- main
pull_request:
jobs:
mysql:
name: MySQL
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: [8.2, 8.3, 8.4]
database: ["mysql:8"]
services:
database:
image: ${{ matrix.database }}
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: testing
ports:
- 3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
env:
APP_ENV: testing
APP_DEBUG: "false"
APP_KEY: ThisIsARandomStringForTests12345
APP_TIMEZONE: UTC
APP_URL: http://localhost/
CACHE_DRIVER: array
MAIL_MAILER: array
SESSION_DRIVER: array
QUEUE_CONNECTION: sync
DB_CONNECTION: mysql
DB_HOST: 127.0.0.1
DB_DATABASE: testing
DB_USERNAME: root
GUZZLE_TIMEOUT: 60
GUZZLE_CONNECT_TIMEOUT: 60
steps:
- name: Code Checkout
uses: actions/checkout@v4
- name: Get cache directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-${{ matrix.php }}-
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: bcmath, curl, gd, mbstring, mysql, openssl, pdo, tokenizer, xml, zip
tools: composer:v2
coverage: none
- name: Install dependencies
run: composer install --no-interaction --no-suggest --no-progress --no-scripts
- name: Unit tests
run: vendor/bin/pest tests/Unit
env:
DB_HOST: UNIT_NO_DB
SKIP_MIGRATIONS: true
- name: Integration tests
run: vendor/bin/pest tests/Integration
env:
DB_PORT: ${{ job.services.database.ports[3306] }}
DB_USERNAME: root
mariadb:
name: MariaDB
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: [8.2, 8.3, 8.4]
database: ["mariadb:10.6", "mariadb:10.11", "mariadb:11.4"]
services:
database:
image: ${{ matrix.database }}
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: testing
ports:
- 3306
options: --health-cmd="mariadb-admin ping || mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
env:
APP_ENV: testing
APP_DEBUG: "false"
APP_KEY: ThisIsARandomStringForTests12345
APP_TIMEZONE: UTC
APP_URL: http://localhost/
CACHE_DRIVER: array
MAIL_MAILER: array
SESSION_DRIVER: array
QUEUE_CONNECTION: sync
DB_CONNECTION: mariadb
DB_HOST: 127.0.0.1
DB_DATABASE: testing
DB_USERNAME: root
GUZZLE_TIMEOUT: 60
GUZZLE_CONNECT_TIMEOUT: 60
steps:
- name: Code Checkout
uses: actions/checkout@v4
- name: Get cache directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-${{ matrix.php }}-
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: bcmath, curl, gd, mbstring, mysql, openssl, pdo, tokenizer, xml, zip
tools: composer:v2
coverage: none
- name: Install dependencies
run: composer install --no-interaction --no-suggest --no-progress --no-scripts
- name: Unit tests
run: vendor/bin/pest tests/Unit
env:
DB_HOST: UNIT_NO_DB
SKIP_MIGRATIONS: true
- name: Integration tests
run: vendor/bin/pest tests/Integration
env:
DB_PORT: ${{ job.services.database.ports[3306] }}
DB_USERNAME: root
sqlite:
name: SQLite
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: [8.2, 8.3, 8.4]
env:
APP_ENV: testing
APP_DEBUG: "false"
APP_KEY: ThisIsARandomStringForTests12345
APP_TIMEZONE: UTC
APP_URL: http://localhost/
CACHE_DRIVER: array
MAIL_MAILER: array
SESSION_DRIVER: array
QUEUE_CONNECTION: sync
DB_CONNECTION: sqlite
DB_DATABASE: testing.sqlite
GUZZLE_TIMEOUT: 60
GUZZLE_CONNECT_TIMEOUT: 60
steps:
- name: Code Checkout
uses: actions/checkout@v4
- name: Get cache directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-${{ matrix.php }}-
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: bcmath, curl, gd, mbstring, mysql, openssl, pdo, tokenizer, xml, zip
tools: composer:v2
coverage: none
- name: Install dependencies
run: composer install --no-interaction --no-suggest --no-progress --no-scripts
- name: Create SQLite file
run: touch database/testing.sqlite
- name: Unit tests
run: vendor/bin/pest tests/Unit
env:
DB_HOST: UNIT_NO_DB
SKIP_MIGRATIONS: true
- name: Integration tests
run: vendor/bin/pest tests/Integration
postgresql:
name: PostgreSQL
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: [8.2, 8.3, 8.4]
database: ["postgres:14"]
services:
database:
image: ${{ matrix.database }}
env:
POSTGRES_DB: testing
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_HOST_AUTH_METHOD: trust
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_ENV: testing
APP_DEBUG: "false"
APP_KEY: ThisIsARandomStringForTests12345
APP_TIMEZONE: UTC
APP_URL: http://localhost/
CACHE_DRIVER: array
MAIL_MAILER: array
SESSION_DRIVER: array
QUEUE_CONNECTION: sync
DB_CONNECTION: pgsql
DB_HOST: 127.0.0.1
DB_DATABASE: testing
DB_USERNAME: postgres
DB_PASSWORD: postgres
GUZZLE_TIMEOUT: 60
GUZZLE_CONNECT_TIMEOUT: 60
steps:
- name: Code Checkout
uses: actions/checkout@v4
- name: Get cache directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: bcmath, curl, gd, mbstring, mysql, openssl, pdo, tokenizer, xml, zip
tools: composer:v2
coverage: none
- name: Install dependencies
run: composer install --no-interaction --no-suggest --no-progress --no-scripts
- name: Unit tests
run: vendor/bin/pest tests/Unit
env:
DB_HOST: UNIT_NO_DB
SKIP_MIGRATIONS: true
- name: Integration tests
run: vendor/bin/pest tests/Integration

30
.github/workflows/cla.yaml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: "CLA Assistant"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened,closed,synchronize]
permissions:
actions: write
contents: read
pull-requests: write
statuses: write
jobs:
CLAAssistant:
runs-on: ubuntu-latest
steps:
- name: "CLA Assistant"
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
uses: contributor-assistant/github-action@v2.4.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERSONAL_ACCESS_TOKEN: ${{ secrets.CLA_PERSONAL_ACCESS_TOKEN }}
with:
path-to-signatures: 'version1/cla.json'
path-to-document: 'https://github.com/pelican-dev/panel/blob/main/contributor_license_agreement.md'
branch: 'main'
allowlist: dependabot[bot]
remote-organization-name: pelican-dev
remote-repository-name: cla-signatures

165
.github/workflows/docker-publish.yml vendored Normal file
View File

@@ -0,0 +1,165 @@
name: Docker
on:
push:
branches:
- main
release:
types:
- published
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-php-base:
name: Build PHP base image on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
arch: amd64
platform: linux/amd64
- os: ubuntu-24.04-arm
arch: arm64
platform: linux/arm64
steps:
- name: Code checkout
uses: actions/checkout@v4
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v3
- name: Build the base PHP image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.base
push: false
load: true
platforms: ${{ matrix.platform }}
tags: base-php:${{ matrix.arch }}
cache-from: type=gha,scope=base-php${{ matrix.arch }}
cache-to: type=gha,scope=base-php${{ matrix.arch }}
- name: Export image to file
run: docker save -o base-php-${{ matrix.arch }}.tar base-php:${{ matrix.arch }}
- name: Push the docker build to the artifacts
uses: actions/upload-artifact@v4
with:
name: base-php-${{ matrix.arch }}.tar
path: base-php-${{ matrix.arch }}.tar
retention-days: 7
build-and-push:
name: Build and Push ubuntu-24.04
runs-on: ubuntu-24.04
needs: build-php-base
permissions:
contents: read
packages: write
strategy:
fail-fast: false
# Start a temp local registry because workflow can not pull from localy loaded images
services:
registry:
image: registry:2
ports:
- 5000:5000
# Always run against a tag, even if the commit into the tag has [docker skip] within the commit message.
if: "!contains(github.ref, 'main') || (!contains(github.event.head_commit.message, 'skip docker') && !contains(github.event.head_commit.message, 'docker skip'))"
steps:
- name: Code checkout
uses: actions/checkout@v4
- name: Docker metadata
id: docker_meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
latest=false
tags: |
type=raw,value=latest,enable=${{ github.event_name == 'release' && github.event.action == 'published' && github.event.release.prerelease == false }}
type=ref,event=tag
type=ref,event=branch
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
# We Need to start it in host mode else it can't acces the local registry on port 5000
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v3
with:
driver-opts: network=host
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Get Build Information
id: build_info
run: |
echo "version_tag=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_OUTPUT
echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
# Download the base PHP image AMD64
- uses: actions/download-artifact@v4
with:
name: base-php-amd64.tar
# Download the base PHP image ARM64
- uses: actions/download-artifact@v4
with:
name: base-php-arm64.tar
- name: Load base images into local registry
run: |
docker load -i base-php-amd64.tar
docker load -i base-php-arm64.tar
docker tag base-php:amd64 localhost:5000/base-php:amd64
docker tag base-php:arm64 localhost:5000/base-php:arm64
docker push localhost:5000/base-php:amd64
docker push localhost:5000/base-php:arm64
rm base-php-arm64.tar base-php-amd64.tar
- name: Build and Push (tag)
uses: docker/build-push-action@v6
if: "github.event_name == 'release' && github.event.action == 'published'"
with:
context: .
file: ./Dockerfile
push: true
platforms: 'linux/amd64,linux/arm64'
build-args: |
VERSION=${{ steps.build_info.outputs.version_tag }}
labels: ${{ steps.docker_meta.outputs.labels }}
tags: ${{ steps.docker_meta.outputs.tags }}
cache-from: type=gha,scope=tagged${{ matrix.os }}
cache-to: type=gha,scope=tagged${{ matrix.os }},mode=max
- name: Build and Push (main)
uses: docker/build-push-action@v6
if: "github.event_name == 'push' && contains(github.ref, 'main')"
with:
context: .
file: ./Dockerfile
push: ${{ github.event_name != 'pull_request' }}
platforms: 'linux/amd64,linux/arm64'
build-args: |
VERSION=dev-${{ steps.build_info.outputs.short_sha }}
labels: ${{ steps.docker_meta.outputs.labels }}
tags: ${{ steps.docker_meta.outputs.tags }}
cache-from: type=gha,scope=${{ matrix.os }}
cache-to: type=gha,scope=${{ matrix.os }},mode=max

71
.github/workflows/lint.yaml vendored Normal file
View File

@@ -0,0 +1,71 @@
name: Lint
on:
pull_request:
branches:
- '**'
jobs:
pint:
name: Pint
runs-on: ubuntu-latest
steps:
- name: Code Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: "8.3"
extensions: bcmath, curl, gd, mbstring, mysql, openssl, pdo, tokenizer, xml, zip
tools: composer:v2
coverage: none
- name: Setup .env
run: cp .env.example .env
- name: Install dependencies
run: composer install --no-interaction --no-suggest --no-progress --no-autoloader --no-scripts
- name: Pint
run: vendor/bin/pint --test
phpstan:
name: PHPStan
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: [ 8.2, 8.3, 8.4 ]
steps:
- name: Code Checkout
uses: actions/checkout@v4
- name: Get cache directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-${{ matrix.php }}-
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: bcmath, curl, gd, mbstring, mysql, openssl, pdo, tokenizer, xml, zip
tools: composer:v2
coverage: none
- name: Setup .env
run: cp .env.example .env
- name: Install dependencies
run: composer install --no-interaction --no-suggest --no-progress --no-scripts
- name: PHPStan
run: vendor/bin/phpstan --memory-limit=-1 --error-format=github

76
.github/workflows/release.yaml vendored Normal file
View File

@@ -0,0 +1,76 @@
name: Release
on:
push:
tags:
- "v*"
jobs:
release:
name: Release
runs-on: ubuntu-22.04
permissions:
contents: write
steps:
- name: Code checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: bcmath, curl, gd, mbstring, mysql, openssl, pdo, tokenizer, xml, zip
tools: composer:v2
coverage: none
- name: Install PHP dependencies
run: composer install --no-interaction --no-suggest --no-progress --no-autoloader --no-scripts --no-dev
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "yarn"
- name: Install JS dependencies
run: yarn install --frozen-lockfile
- name: Build
run: yarn build
- name: Create release branch and bump version
env:
REF: ${{ github.ref }}
run: |
BRANCH=release/${REF:10}
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git checkout -b $BRANCH
git push -u origin $BRANCH
sed -i "s/ 'version' => 'canary',/ 'version' => '${REF:11}',/" config/app.php
git add config/app.php
git commit -m "ci(release): bump version"
git push
- name: Create release archive
run: |
rm -rf node_modules vendor tests CODE_OF_CONDUCT.md CONTRIBUTING.md phpunit.xml shell.nix
tar -czf panel.tar.gz * .env.example
- name: Create checksum
run: |
SUM=`sha256sum panel.tar.gz`
echo $SUM > checksum.txt
- name: Create release
id: create_release
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: true
prerelease: ${{ contains(github.ref, 'rc') || contains(github.ref, 'beta') || contains(github.ref, 'alpha') }}
files: |
panel.tar.gz
checksum.txt

53
.gitignore vendored
View File

@@ -1,34 +1,29 @@
/.phpunit.cache
/node_modules
/public/build
/public/storage
/storage/*.key
/storage/pail
/storage/clockwork/*
/vendor
*.DS_Store*
.env
.vagrant/*
.vscode/*
storage/framework/*
.env.backup
.env.production
.phpactor.json
.phpunit.result.cache
Homestead.json
Homestead.yaml
auth.json
npm-debug.log
yarn-error.log
/.fleet
/.idea
/nbproject
/.nova
/.vscode
package-lock.json
composer.lock
node_modules
_ide_helper_models.php
_ide_helper.php
sami.phar
/.sami
# For local development with docker
# Remove if we ever put the Dockerfile in the repo
.dockerignore
#Dockerfile
docker-compose.yml
# for image related files
misc
.phpstorm.meta.php
.php_cs.cache
coverage.xml
# Vagrant
*.log
public/assets/manifest.json
/database/*.sqlite*
filament-monaco-editor/
_ide_helper*
/.phpstorm.meta.php

55
.php_cs
View File

@@ -1,55 +0,0 @@
<?php
$finder = PhpCsFixer\Finder::create()
->in([
'app',
'bootstrap',
'config',
'database',
'resources/lang',
'routes',
'tests',
]);
return PhpCsFixer\Config::create()
->setRules([
'@Symfony' => true,
'@PSR1' => true,
'@PSR2' => true,
'align_multiline_comment' => ['comment_type' => 'phpdocs_like'],
'array_syntax' => ['syntax' => 'short'],
'blank_line_before_return' => true,
'blank_line_before_statement' => false,
'combine_consecutive_unsets' => true,
'concat_space' => ['spacing' => 'one'],
'declare_equal_normalize' => ['space' => 'single'],
'heredoc_to_nowdoc' => true,
'increment_style' => ['style' => 'post'],
'linebreak_after_opening_tag' => true,
'method_argument_space' => [
'ensure_fully_multiline' => false,
'keep_multiple_spaces_after_comma' => false,
],
'new_with_braces' => false,
'no_alias_functions' => true,
'no_multiline_whitespace_before_semicolons' => true,
'no_unreachable_default_argument_value' => true,
'no_useless_return' => true,
'not_operator_with_successor_space' => true,
'ordered_imports' => [
'sortAlgorithm' => 'length',
],
'phpdoc_align' => ['tags' => ['param']],
'phpdoc_separation' => false,
'protected_to_private' => false,
'psr0' => ['dir' => 'app'],
'psr4' => true,
'random_api_migration' => true,
'standardize_not_equals' => true,
'ternary_to_null_coalescing' => true,
'yoda_style' => [
'equal' => false,
'identical' => false,
'less_and_greater' => false,
],
])->setRiskyAllowed(true)->setFinder($finder);

9
.prettierrc.json Normal file
View File

@@ -0,0 +1,9 @@
{
"printWidth": 120,
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": true,
"jsxSingleQuote": true,
"endOfLine": "lf"
}

View File

@@ -1,16 +0,0 @@
<?php
use Sami\Sami;
use Symfony\Component\Finder\Finder;
$iterator = Finder::create()
->files()
->name('*.php')
->in($dir = __DIR__ . '/app');
return new Sami($iterator, array(
'title' => 'Pterodactyl',
'build_dir' => __DIR__ . '/.sami/build',
'cache_dir' => __DIR__ . '/.sami/cache',
'default_opened_level' => 2,
));

View File

@@ -1,7 +0,0 @@
preset: laravel
risky: false
disabled:
- concat_without_spaces
enabled:
- concat_with_spaces
- no_unused_imports

View File

@@ -1,44 +0,0 @@
language: php
dist: trusty
git:
depth: 3
quiet: true
matrix:
fast_finish: true
allow_failures:
- env: TEST_SUITE=Coverage
env:
matrix:
- TEST_SUITE=Unit
- TEST_SUITE=Coverage
- TEST_SUITE=Integration
php:
- 7.2
sudo: false
cache:
directories:
- $HOME/.composer/cache
services:
- mysql
before_install:
- mysql -e 'CREATE DATABASE IF NOT EXISTS travis;'
before_script:
- echo 'opcache.enable_cli=1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
- cp .env.travis .env
- travis_retry composer install --no-interaction --prefer-dist --no-suggest
script:
- if [ "$TEST_SUITE" = "Unit" ]; then vendor/bin/phpunit --bootstrap vendor/autoload.php tests/Unit; fi;
- if [ "$TEST_SUITE" = "Coverage" ]; then vendor/bin/phpunit --bootstrap vendor/autoload.php --coverage-clover coverage.xml tests/Unit; fi;
- if [ "$TEST_SUITE" = "Integration" ]; then vendor/bin/phpunit tests/Integration; fi;
notifications:
email: false
webhooks:
urls:
- https://misc.schrej.net/travistodiscord/pterodev.php
on_success: change
on_failure: always
on_error: always
on_cancel: always
on_start: never
after_success:
- bash <(curl -s https://codecov.io/bash)

File diff suppressed because it is too large Load Diff

View File

@@ -1,74 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at support@pterodactyl.io. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

View File

@@ -1,44 +0,0 @@
# Contributing
We're glad you want to help us out and make this panel the best that it can be! We have a few simple things to follow when making changes to files and adding new features.
### Project Branches
This section mainly applies to those with read/write access to our repositories, but can be helpful for others.
The `develop` branch should always be in a runnable state, and not contain any major breaking features. For the most part, this means you will need to create `feature/` branches in order to add new functionality or change how things work. When making a feature branch, if it is referencing something in the issue tracker, please title the branch `feature/PTDL-###` where `###` is the issue number.
Moving forward all commits from contributors should be in the form of a PR, unless it is something we have previously discussed as being able to be pushed right into `develop`.
All new code should contain unit tests at a minimum (where applicable). There is a lot of uncovered code currently, so as you are doing things please be looking for places that you can write tests.
### Update the CHANGELOG
When adding something that is new, fixed, changed, or security-related for the next release you should be adding a note to the CHANGELOG. If something is changing within the same version (i.e. fixing a bug introduced but not released) it should _not_ go into the CHANGELOG.
### Code Guidelines
We are a `PSR-4` and `PSR-0` compliant project, so please follow those guidelines at a minimum. In addition, StyleCI runs on all of our code to ensure the formatting is standardized across everything. When a PR is made StyleCI will analyze your code and make a pull to that branch if necessary to fix any formatting issues. This project also ships with a PHP-CS configuration file and you are welcome to configure your local environment to make use of that.
All class variable declarations should be in alphabetical order, and constructor arguments should be in alphabetical order based on the classname. See the example below for how this should look, or check out any of the `app/Service` files for examples.
```php
class ProcessScheduleService
{
protected $repository;
protected $runnerService;
public function __construct(RunTaskService $runnerService, ScheduleRepositoryInterface $repository)
{
$this->repository = $repository;
$this->runnerService = $runnerService;
}
```
### Responsible Disclosure
This is a fairly in-depth project and makes use of a lot of parts. We strive to keep everything as secure as possible and welcome you to take a look at the code provided in this project yourself. We do ask that you be considerate of others who are using the software and not publicly disclose security issues without contacting us first by email.
We'll make a deal with you: if you contact us by email and we fail to respond to you within a week you are welcome to publicly disclose whatever issue you have found. We understand how frustrating it is when you find something big and no one will respond to you. This holds us to a standard of providing prompt attention to any issues that arise and keeping this community safe.
If you've found what you believe is a security issue please email us at `support@pterodactyl.io`.
### Where to find Us
You can find us in a couple places online. First and foremost, we're active right here on Github. If you encounter a bug or other problems, open an issue on here for us to take a look at it. We also accept feature requests here as well.
You can also find us on [Discord](https://pterodactyl.io/discord). In the event that you need to get in contact with us privately feel free to contact us at `support@pterodactyl.io`. Try not to email us with requests for support regarding the panel, we'll probably just direct you to our Discord.

View File

@@ -1,14 +0,0 @@
# Pterodactyl Panel Contributors
This panel would not be possible without the support of our wonderful community of
developers who provide code enhancements, new features, and bug fixes to make this panel
the best that is can be. You can view a full listing of contributors [here](https://github.com/Pterodactyl/Panel/graphs/contributors).
Dane Everitt [@DaneEveritt](https://github.com/Pterodactyl/Panel/commits?author=DaneEveritt)
Dylan Seidt [@DDynamic](https://github.com/Pterodactyl/Panel/commits?author=DDynamic)
[@nikkiii](https://github.com/Pterodactyl/Panel/commits?author=nikkiii)
# Get Involved
See our `CONTRIBUTING.md` document for information on how to get started. Once you've submitted some code feel free to
modify this file and add your name to the list. Please follow the format above for your name and linking to your contributions.

View File

@@ -1,26 +1,108 @@
FROM alpine:3.8
# syntax=docker.io/docker/dockerfile:1.13-labs
# Pelican Production Dockerfile
WORKDIR /app
##
# If you want to build this locally you want to run `docker build -f Dockerfile.dev`
##
RUN apk add --no-cache --update ca-certificates certbot nginx dcron curl tini php7 php7-bcmath php7-common php7-dom php7-fpm php7-gd php7-mbstring php7-openssl php7-zip php7-pdo php7-phar php7-json php7-pdo_mysql php7-session php7-ctype php7-tokenizer php7-zlib php7-simplexml php7-fileinfo supervisor \
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# ================================
# Stage 1-1: Composer Install
# ================================
FROM --platform=$TARGETOS/$TARGETARCH localhost:5000/base-php:$TARGETARCH AS composer
COPY . ./
WORKDIR /build
RUN cp .env.example .env \
&& composer install --no-dev --optimize-autoloader \
&& rm .env \
&& chown -R nginx:nginx . && chmod -R 777 storage/* bootstrap/cache
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
RUN cp .dev/docker/default.conf /etc/nginx/conf.d/default.conf \
&& cp .dev/docker/www.conf /etc/php7/php-fpm.d/www.conf \
&& cat .dev/docker/supervisord.conf > /etc/supervisord.conf \
&& echo "* * * * * /usr/bin/php /app/artisan schedule:run >> /dev/null 2>&1" >> /var/spool/cron/crontabs/root \
&& sed -i s/ssl_session_cache/#ssl_session_cache/g /etc/nginx/nginx.conf \
&& mkdir -p /var/run/php /var/run/nginx
# Copy bare minimum to install Composer dependencies
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-interaction --no-autoloader --no-scripts
# ================================
# Stage 1-2: Yarn Install
# ================================
FROM --platform=$TARGETOS/$TARGETARCH node:20-alpine AS yarn
WORKDIR /build
# Copy bare minimum to install Yarn dependencies
COPY package.json yarn.lock ./
RUN yarn config set network-timeout 300000 \
&& yarn install --frozen-lockfile
# ================================
# Stage 2-1: Composer Optimize
# ================================
FROM --platform=$TARGETOS/$TARGETARCH composer AS composerbuild
# Copy full code to optimize autoload
COPY --exclude=Caddyfile --exclude=docker/ . ./
RUN composer dump-autoload --optimize
# ================================
# Stage 2-2: Build Frontend Assets
# ================================
FROM --platform=$TARGETOS/$TARGETARCH yarn AS yarnbuild
WORKDIR /build
# Copy full code
COPY --exclude=Caddyfile --exclude=docker/ . ./
COPY --from=composer /build .
RUN yarn run build
# ================================
# Stage 5: Build Final Application Image
# ================================
FROM --platform=$TARGETOS/$TARGETARCH localhost:5000/base-php:$TARGETARCH AS final
WORKDIR /var/www/html
# Install additional required libraries
RUN apk update && apk add --no-cache \
caddy ca-certificates supervisor supercronic
COPY --chown=root:www-data --chmod=640 --from=composerbuild /build .
COPY --chown=root:www-data --chmod=640 --from=yarnbuild /build/public ./public
# Set permissions
# First ensure all files are owned by root and restrict www-data to read access
RUN chown root:www-data ./ \
&& chmod 750 ./ \
# Files should not have execute set, but directories need it
&& find ./ -type d -exec chmod 750 {} \; \
# Create necessary directories
&& mkdir -p /pelican-data/storage /var/www/html/storage/app/public /var/run/supervisord /etc/supercronic \
# Symlinks for env, database, and avatars
&& ln -s /pelican-data/.env ./.env \
&& ln -s /pelican-data/database/database.sqlite ./database/database.sqlite \
&& ln -sf /var/www/html/storage/app/public /var/www/html/public/storage \
&& ln -s /pelican-data/storage/avatars /var/www/html/storage/app/public/avatars \
&& ln -s /pelican-data/storage/fonts /var/www/html/storage/app/public/fonts \
# Allow www-data write permissions where necessary
&& chown -R www-data:www-data /pelican-data ./storage ./bootstrap/cache /var/run/supervisord /var/www/html/public/storage \
&& chmod -R u+rwX,g+rwX,o-rwx /pelican-data ./storage ./bootstrap/cache /var/run/supervisord
# Configure Supervisor
COPY docker/supervisord.conf /etc/supervisord.conf
COPY docker/Caddyfile /etc/caddy/Caddyfile
# Add Laravel scheduler to crontab
COPY docker/crontab /etc/supercronic/crontab
COPY docker/entrypoint.sh ./docker/entrypoint.sh
HEALTHCHECK --interval=5m --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost/up || exit 1
EXPOSE 80 443
ENTRYPOINT ["/bin/ash", ".dev/docker/entrypoint.sh"]
VOLUME /pelican-data
CMD [ "supervisord", "-n", "-c", "/etc/supervisord.conf" ]
USER www-data
ENTRYPOINT [ "/bin/ash", "docker/entrypoint.sh" ]
CMD [ "supervisord", "-n", "-c", "/etc/supervisord.conf" ]

10
Dockerfile.base Normal file
View File

@@ -0,0 +1,10 @@
# ================================
# Stage 0: Build PHP Base Image
# ================================
FROM --platform=$TARGETOS/$TARGETARCH php:8.4-fpm-alpine
ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN install-php-extensions bcmath gd intl zip opcache pcntl posix pdo_mysql pdo_pgsql
RUN rm /usr/local/bin/install-php-extensions

112
Dockerfile.dev Normal file
View File

@@ -0,0 +1,112 @@
# syntax=docker.io/docker/dockerfile:1.13-labs
# Pelican Development Dockerfile
FROM --platform=$TARGETOS/$TARGETARCH php:8.4-fpm-alpine AS base
ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN install-php-extensions bcmath gd intl zip opcache pcntl posix pdo_mysql pdo_pgsql
RUN rm /usr/local/bin/install-php-extensions
# ================================
# Stage 1-1: Composer Install
# ================================
FROM --platform=$TARGETOS/$TARGETARCH base AS composer
WORKDIR /build
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
# Copy bare minimum to install Composer dependencies
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-interaction --no-autoloader --no-scripts
# ================================
# Stage 1-2: Yarn Install
# ================================
FROM --platform=$TARGETOS/$TARGETARCH node:20-alpine AS yarn
WORKDIR /build
# Copy bare minimum to install Yarn dependencies
COPY package.json yarn.lock ./
RUN yarn config set network-timeout 300000 \
&& yarn install --frozen-lockfile
# ================================
# Stage 2-1: Composer Optimize
# ================================
FROM --platform=$TARGETOS/$TARGETARCH composer AS composerbuild
# Copy full code to optimize autoload
COPY --exclude=Caddyfile --exclude=docker/ . ./
RUN composer dump-autoload --optimize
# ================================
# Stage 2-2: Build Frontend Assets
# ================================
FROM --platform=$TARGETOS/$TARGETARCH yarn AS yarnbuild
WORKDIR /build
# Copy full code
COPY --exclude=Caddyfile --exclude=docker/ . ./
COPY --from=composer /build .
RUN yarn run build
# ================================
# Stage 5: Build Final Application Image
# ================================
FROM --platform=$TARGETOS/$TARGETARCH base AS final
WORKDIR /var/www/html
# Install additional required libraries
RUN apk update && apk add --no-cache \
caddy ca-certificates supervisor supercronic
COPY --chown=root:www-data --chmod=640 --from=composerbuild /build .
COPY --chown=root:www-data --chmod=640 --from=yarnbuild /build/public ./public
# Set permissions
# First ensure all files are owned by root and restrict www-data to read access
RUN chown root:www-data ./ \
&& chmod 750 ./ \
# Files should not have execute set, but directories need it
&& find ./ -type d -exec chmod 750 {} \; \
# Create necessary directories
&& mkdir -p /pelican-data/storage /var/www/html/storage/app/public /var/run/supervisord /etc/supercronic \
# Symlinks for env, database, and avatars
&& ln -s /pelican-data/.env ./.env \
&& ln -s /pelican-data/database/database.sqlite ./database/database.sqlite \
&& ln -sf /var/www/html/storage/app/public /var/www/html/public/storage \
&& ln -s /pelican-data/storage/avatars /var/www/html/storage/app/public/avatars \
&& ln -s /pelican-data/storage/fonts /var/www/html/storage/app/public/fonts \
# Allow www-data write permissions where necessary
&& chown -R www-data:www-data /pelican-data ./storage ./bootstrap/cache /var/run/supervisord /var/www/html/public/storage \
&& chmod -R u+rwX,g+rwX,o-rwx /pelican-data ./storage ./bootstrap/cache /var/run/supervisord
# Configure Supervisor
COPY docker/supervisord.conf /etc/supervisord.conf
COPY docker/Caddyfile /etc/caddy/Caddyfile
# Add Laravel scheduler to crontab
COPY docker/crontab /etc/supercronic/crontab
COPY docker/entrypoint.sh ./docker/entrypoint.sh
HEALTHCHECK --interval=5m --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost/up || exit 1
EXPOSE 80 443
VOLUME /pelican-data
USER www-data
ENTRYPOINT [ "/bin/ash", "docker/entrypoint.sh" ]
CMD [ "supervisord", "-n", "-c", "/etc/supervisord.conf" ]

View File

@@ -1,23 +0,0 @@
# The MIT License (MIT)
```
Copyright (c) 2015 - 2020 Dane Everitt <dane@daneeveritt.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

View File

@@ -1,75 +0,0 @@
[![Logo Image](https://cdn.pterodactyl.io/logos/new/pterodactyl_logo.png)](https://pterodactyl.io)
[![Build status](https://img.shields.io/travis/pterodactyl/panel/develop.svg?style=flat-square)](https://travis-ci.org/pterodactyl/panel)
[![StyleCI](https://styleci.io/repos/47508644/shield?branch=develop)](https://styleci.io/repos/47508644)
[![Codecov](https://img.shields.io/codecov/c/github/pterodactyl/panel/develop.svg?style=flat-square)](https://codecov.io/gh/Pterodactyl/Panel)
[![Discord](https://img.shields.io/discord/122900397965705216.svg?style=flat-square&label=Discord)](https://pterodactyl.io/discord)
# Pterodactyl Panel
Pterodactyl is the open-source game server management panel built with PHP7, Nodejs, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to administrators and users.
What more are you waiting for? Make game servers a first class citizen on your platform today.
![Image](https://cdn.pterodactyl.io/site-assets/mockup-macbook-grey.png)
## Support & Documentation
Support for using Pterodactyl can be found on our [Documentation Website](https://pterodactyl.io/project/introduction.html), [Guides Website](https://guides.pterodactyl.io), or via our [Discord Chat](https://discord.gg/QRDZvVm).
### Supported Games
We support a huge variety of games by utilizing Docker containers to isolate each instance, giving you the power to host your games across the world without having to bloat each physical machine with additional dependencies.
Some of our core supported games include:
* Minecraft — including Spigot, Sponge, Bungeecord, Waterfall, and more
* Rust
* Terraria
* Teamspeak
* Mumble
* Team Fortress 2
* Counter Strike: Global Offensive
* Garry's Mod
* ARK: Survival Evolved
In addition to our standard nest of supported games, our community is constantly pushing the limits of this software and there are plenty more games available provided by the community. Some of these games include:
* Factorio
* San Andreas: MP
* Pocketmine MP
* Squad
* FiveM
* Xonotic
* Discord ATLBot
## Credits
This software would not be possible without the work of other open-source authors who provide tools such as:
[Ace Editor](https://ace.c9.io), [AdminLTE](https://almsaeedstudio.com), [Animate.css](http://daneden.github.io/animate.css/), [AnsiUp](https://github.com/drudru/ansi_up), [Async.js](https://github.com/caolan/async),
[Bootstrap](http://getbootstrap.com), [Bootstrap Notify](http://bootstrap-notify.remabledesigns.com), [Chart.js](http://www.chartjs.org), [FontAwesome](http://fontawesome.io),
[FontAwesome Animations](https://github.com/l-lin/font-awesome-animation), [jQuery](http://jquery.com), [Laravel](https://laravel.com), [Lodash](https://lodash.com),
[Select2](https://select2.github.io), [Socket.io](http://socket.io), [Socket.io File Upload](https://github.com/vote539/socketio-file-upload), [SweetAlert](http://t4t5.github.io/sweetalert),
[Typeahead](https://github.com/bassjobsen/Bootstrap-3-Typeahead), and [Particles.js](http://vincentgarreau.com/particles.js).
Some Javascript and CSS used within the panel is licensed under a `MIT` or `Apache 2.0` license. Please check their respective header files for more information.
## License
```
Copyright (c) 2015 - 2018 Dane Everitt <dane@daneeveritt.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

17
Vagrantfile vendored
View File

@@ -1,17 +0,0 @@
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-16.04"
config.vm.synced_folder "./", "/var/www/html/pterodactyl",
owner: "www-data", group: "www-data"
config.vm.provision :shell, path: ".dev/vagrant/provision.sh"
config.vm.network :private_network, ip: "192.168.50.2"
config.vm.network :forwarded_port, guest: 80, host: 50080
config.vm.network :forwarded_port, guest: 8025, host: 58025
config.vm.network :forwarded_port, guest: 3306, host: 53306
# Config for the vagrant-dns plugin (https://github.com/BerlinVagrant/vagrant-dns)
config.dns.tld = "test"
config.dns.patterns = [/^pterodactyl.test$/]
end

58
app/Checks/CacheCheck.php Normal file
View File

@@ -0,0 +1,58 @@
<?php
namespace App\Checks;
use Exception;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Str;
use Spatie\Health\Checks\Check;
use Spatie\Health\Checks\Result;
class CacheCheck extends Check
{
protected ?string $driver = null;
public function driver(string $driver): self
{
$this->driver = $driver;
return $this;
}
public function run(): Result
{
$driver = $this->driver ?? $this->defaultDriver();
$result = Result::make()->meta([
'driver' => $driver,
]);
try {
return $this->canWriteValuesToCache($driver)
? $result->ok(trans('admin/health.results.cache.ok'))
: $result->failed(trans('admin/health.results.cache.failed_retrieve'));
} catch (Exception $exception) {
return $result->failed(trans('admin/health.results.cache.failed', ['error' => $exception->getMessage()]));
}
}
protected function defaultDriver(): ?string
{
return config('cache.default', 'file');
}
protected function canWriteValuesToCache(?string $driver): bool
{
$expectedValue = Str::random(5);
$cacheName = "laravel-health:check-{$expectedValue}";
Cache::driver($driver)->put($cacheName, $expectedValue, 10);
$actualValue = Cache::driver($driver)->get($cacheName);
Cache::driver($driver)->forget($cacheName);
return $actualValue === $expectedValue;
}
}

View File

@@ -0,0 +1,42 @@
<?php
namespace App\Checks;
use Exception;
use Illuminate\Support\Facades\DB;
use Spatie\Health\Checks\Check;
use Spatie\Health\Checks\Result;
class DatabaseCheck extends Check
{
protected ?string $connectionName = null;
public function connectionName(string $connectionName): self
{
$this->connectionName = $connectionName;
return $this;
}
public function run(): Result
{
$connectionName = $this->connectionName ?? $this->getDefaultConnectionName();
$result = Result::make()->meta([
'connection_name' => $connectionName,
]);
try {
DB::connection($connectionName)->getPdo();
return $result->ok(trans('admin/health.results.database.ok'));
} catch (Exception $exception) {
return $result->failed(trans('admin/health.results.database.failed', ['error' => $exception->getMessage()]));
}
}
protected function getDefaultConnectionName(): string
{
return config('database.default');
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Checks;
use Spatie\Health\Checks\Check;
use Spatie\Health\Checks\Result;
use function config;
class DebugModeCheck extends Check
{
protected bool $expected = false;
public function expectedToBe(bool $bool): self
{
$this->expected = $bool;
return $this;
}
public function run(): Result
{
$actual = config('app.debug');
$result = Result::make()
->meta([
'actual' => $actual,
'expected' => $this->expected,
])
->shortSummary($this->convertToWord($actual));
return $this->expected === $actual
? $result->ok()
: $result->failed(trans('admin/health.results.debugmode.failed', [
'actual' => $this->convertToWord($actual),
'expected' => $this->convertToWord($this->expected),
]));
}
protected function convertToWord(bool $boolean): string
{
return $boolean ? 'true' : 'false';
}
}

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Checks;
use Illuminate\Support\Facades\App;
use Spatie\Health\Checks\Check;
use Spatie\Health\Checks\Result;
class EnvironmentCheck extends Check
{
protected string $expectedEnvironment = 'production';
public function expectEnvironment(string $expectedEnvironment): self
{
$this->expectedEnvironment = $expectedEnvironment;
return $this;
}
public function run(): Result
{
$actualEnvironment = (string) App::environment();
$result = Result::make()
->meta([
'actual' => $actualEnvironment,
'expected' => $this->expectedEnvironment,
])
->shortSummary($actualEnvironment);
return $this->expectedEnvironment === $actualEnvironment
? $result->ok(trans('admin/health.results.environment.ok'))
: $result->failed(trans('admin/health.results.environment.failed', [
'actual' => $actualEnvironment,
'expected' => $this->expectedEnvironment,
]));
}
}

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Checks;
use App\Models\Node;
use App\Services\Helpers\SoftwareVersionService;
use Spatie\Health\Checks\Check;
use Spatie\Health\Checks\Result;
use Spatie\Health\Enums\Status;
class NodeVersionsCheck extends Check
{
public function __construct(private SoftwareVersionService $versionService) {}
public function run(): Result
{
$all = Node::all();
if ($all->isEmpty()) {
$result = Result::make()
->notificationMessage(trans('admin/health.results.nodeversions.no_nodes_created'))
->shortSummary(trans('admin/health.results.nodeversions.no_nodes'));
$result->status = Status::skipped();
return $result;
}
$outdated = $all
->filter(fn (Node $node) => !isset($node->systemInformation()['exception']) && !$this->versionService->isLatestWings($node->systemInformation()['version']))
->count();
$all = $all->count();
$latestVersion = $this->versionService->latestWingsVersion();
$result = Result::make()
->meta([
'all' => $all,
'outdated' => $outdated,
'latestVersion' => $latestVersion,
])
->shortSummary($outdated === 0 ? trans('admin/health.results.nodeversions.all_up_to_date') : trans('admin/health.results.nodeversions.outdated', ['outdated' => $outdated, 'all' => $all]));
return $outdated === 0
? $result->ok(trans('admin/health.results.nodeversions.ok'))
: $result->failed(trans('admin/health.results.nodeversions.failed', ['outdated' => $outdated, 'all' => $all]));
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Checks;
use App\Services\Helpers\SoftwareVersionService;
use Spatie\Health\Checks\Check;
use Spatie\Health\Checks\Result;
class PanelVersionCheck extends Check
{
public function __construct(private SoftwareVersionService $versionService) {}
public function run(): Result
{
$isLatest = $this->versionService->isLatestPanel();
$currentVersion = $this->versionService->currentPanelVersion();
$latestVersion = $this->versionService->latestPanelVersion();
$result = Result::make()
->meta([
'isLatest' => $isLatest,
'currentVersion' => $currentVersion,
'latestVersion' => $latestVersion,
])
->shortSummary($isLatest ? trans('admin/health.results.panelversion.up_to_date') : trans('admin/health.results.panelversion.outdated'));
return $isLatest
? $result->ok(trans('admin/health.results.panelversion.ok'))
: $result->failed(trans('admin/health.results.panelversion.failed', [
'currentVersion' => $currentVersion,
'latestVersion' => $latestVersion,
]));
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Checks;
use Carbon\Carbon;
use Composer\InstalledVersions;
use Spatie\Health\Checks\Checks\ScheduleCheck as BaseCheck;
use Spatie\Health\Checks\Result;
class ScheduleCheck extends BaseCheck
{
public function run(): Result
{
$result = Result::make()->ok(trans('admin/health.results.schedule.ok'));
$lastHeartbeatTimestamp = cache()->store($this->cacheStoreName)->get($this->cacheKey);
if (!$lastHeartbeatTimestamp) {
return $result->failed(trans('admin/health.results.schedule.failed_not_ran'));
}
$latestHeartbeatAt = Carbon::createFromTimestamp($lastHeartbeatTimestamp);
$carbonVersion = InstalledVersions::getVersion('nesbot/carbon');
$minutesAgo = $latestHeartbeatAt->diffInMinutes();
if (version_compare($carbonVersion,
'3.0.0', '<')) {
$minutesAgo += 1;
}
if ($minutesAgo > $this->heartbeatMaxAgeInMinutes) {
return $result->failed(trans('admin/health.results.schedule.failed_last_ran', [
'time' => $minutesAgo,
]));
}
return $result;
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Checks;
use Spatie\Health\Checks\Checks\UsedDiskSpaceCheck as BaseCheck;
class UsedDiskSpaceCheck extends BaseCheck
{
protected function getDiskUsagePercentage(): int
{
$freeSpace = disk_free_space($this->filesystemName ?? '/');
$totalSpace = disk_total_space($this->filesystemName ?? '/');
return 100 - ($freeSpace * 100 / $totalSpace);
}
}

View File

@@ -0,0 +1,52 @@
<?php
namespace App\Console\Commands\Egg;
use App\Models\Egg;
use App\Services\Eggs\Sharing\EggExporterService;
use Exception;
use Illuminate\Console\Command;
class CheckEggUpdatesCommand extends Command
{
protected $signature = 'p:egg:check-updates';
public function handle(EggExporterService $exporterService): void
{
$eggs = Egg::all();
foreach ($eggs as $egg) {
try {
$this->check($egg, $exporterService);
} catch (Exception $exception) {
$this->error("{$egg->name}: Error ({$exception->getMessage()})");
}
}
}
private function check(Egg $egg, EggExporterService $exporterService): void
{
if (is_null($egg->update_url)) {
$this->comment("$egg->name: Skipping (no update url set)");
return;
}
$currentJson = json_decode($exporterService->handle($egg->id));
unset($currentJson->exported_at);
$updatedEgg = file_get_contents($egg->update_url);
assert($updatedEgg !== false);
$updatedJson = json_decode($updatedEgg);
unset($updatedJson->exported_at);
if (md5(json_encode($currentJson, JSON_THROW_ON_ERROR)) === md5(json_encode($updatedJson, JSON_THROW_ON_ERROR))) {
$this->info("$egg->name: Up-to-date");
cache()->put("eggs.$egg->uuid.update", false, now()->addHour());
return;
}
$this->warn("$egg->name: Found update");
cache()->put("eggs.$egg->uuid.update", true, now()->addHour());
}
}

View File

@@ -1,193 +1,32 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\Environment;
namespace App\Console\Commands\Environment;
use DateTimeZone;
use Illuminate\Console\Command;
use Illuminate\Contracts\Console\Kernel;
use Pterodactyl\Traits\Commands\EnvironmentWriterTrait;
use Illuminate\Contracts\Config\Repository as ConfigRepository;
class AppSettingsCommand extends Command
{
use EnvironmentWriterTrait;
const ALLOWED_CACHE_DRIVERS = [
'redis' => 'Redis (recommended)',
'memcached' => 'Memcached',
'file' => 'Filesystem',
];
const ALLOWED_SESSION_DRIVERS = [
'redis' => 'Redis (recommended)',
'memcached' => 'Memcached',
'database' => 'MySQL Database',
'file' => 'Filesystem',
'cookie' => 'Cookie',
];
const ALLOWED_QUEUE_DRIVERS = [
'redis' => 'Redis (recommended)',
'database' => 'MySQL Database',
'sync' => 'Sync',
];
/**
* @var \Illuminate\Contracts\Console\Kernel
*/
protected $command;
/**
* @var \Illuminate\Contracts\Config\Repository
*/
protected $config;
/**
* @var string
*/
protected $description = 'Configure basic environment settings for the Panel.';
/**
* @var string
*/
protected $signature = 'p:environment:setup
{--new-salt : Whether or not to generate a new salt for Hashids.}
{--author= : The email that services created on this instance should be linked to.}
{--url= : The URL that this Panel is running on.}
{--timezone= : The timezone to use for Panel times.}
{--cache= : The cache driver backend to use.}
{--session= : The session driver backend to use.}
{--queue= : The queue driver backend to use.}
{--redis-host= : Redis host to use for connections.}
{--redis-pass= : Password used to connect to redis.}
{--redis-port= : Port to connect to redis over.}
{--disable-settings-ui}';
protected $signature = 'p:environment:setup';
/**
* @var array
*/
protected $variables = [];
/**
* AppSettingsCommand constructor.
*
* @param \Illuminate\Contracts\Config\Repository $config
* @param \Illuminate\Contracts\Console\Kernel $command
*/
public function __construct(ConfigRepository $config, Kernel $command)
public function handle(): void
{
parent::__construct();
$this->command = $command;
$this->config = $config;
}
/**
* Handle command execution.
*
* @throws \Pterodactyl\Exceptions\PterodactylException
*/
public function handle()
{
if (empty($this->config->get('hashids.salt')) || $this->option('new-salt')) {
$this->variables['HASHIDS_SALT'] = str_random(20);
$path = base_path('.env');
if (!file_exists($path)) {
$this->comment('Copying example .env file');
copy($path . '.example', $path);
}
$this->output->comment(trans('command/messages.environment.app.author_help'));
$this->variables['APP_SERVICE_AUTHOR'] = $this->option('author') ?? $this->ask(
trans('command/messages.environment.app.author'), $this->config->get('pterodactyl.service.author', 'unknown@unknown.com')
);
$this->output->comment(trans('command/messages.environment.app.app_url_help'));
$this->variables['APP_URL'] = $this->option('url') ?? $this->ask(
trans('command/messages.environment.app.app_url'), $this->config->get('app.url', 'http://example.org')
);
$this->output->comment(trans('command/messages.environment.app.timezone_help'));
$this->variables['APP_TIMEZONE'] = $this->option('timezone') ?? $this->anticipate(
trans('command/messages.environment.app.timezone'),
DateTimeZone::listIdentifiers(DateTimeZone::ALL),
$this->config->get('app.timezone')
);
$selected = $this->config->get('cache.default', 'redis');
$this->variables['CACHE_DRIVER'] = $this->option('cache') ?? $this->choice(
trans('command/messages.environment.app.cache_driver'),
self::ALLOWED_CACHE_DRIVERS,
array_key_exists($selected, self::ALLOWED_CACHE_DRIVERS) ? $selected : null
);
$selected = $this->config->get('session.driver', 'redis');
$this->variables['SESSION_DRIVER'] = $this->option('session') ?? $this->choice(
trans('command/messages.environment.app.session_driver'),
self::ALLOWED_SESSION_DRIVERS,
array_key_exists($selected, self::ALLOWED_SESSION_DRIVERS) ? $selected : null
);
$selected = $this->config->get('queue.default', 'redis');
$this->variables['QUEUE_CONNECTION'] = $this->option('queue') ?? $this->choice(
trans('command/messages.environment.app.queue_driver'),
self::ALLOWED_QUEUE_DRIVERS,
array_key_exists($selected, self::ALLOWED_QUEUE_DRIVERS) ? $selected : null
);
if ($this->option('disable-settings-ui')) {
$this->variables['APP_ENVIRONMENT_ONLY'] = 'true';
} else {
$this->variables['APP_ENVIRONMENT_ONLY'] = $this->confirm(trans('command/messages.environment.app.settings'), true) ? 'false' : 'true';
if (!config('app.key')) {
$this->comment('Generating app key');
$this->call('key:generate');
}
$this->checkForRedis();
$this->writeToEnvironment($this->variables);
$this->comment('Creating storage link');
$this->call('storage:link');
$this->info($this->command->output());
}
/**
* Check if redis is selected, if so, request connection details and verify them.
*/
private function checkForRedis()
{
$items = collect($this->variables)->filter(function ($item) {
return $item === 'redis';
});
// Redis was not selected, no need to continue.
if (count($items) === 0) {
return;
}
$this->output->note(trans('command/messages.environment.app.using_redis'));
$this->variables['REDIS_HOST'] = $this->option('redis-host') ?? $this->ask(
trans('command/messages.environment.app.redis_host'), $this->config->get('database.redis.default.host')
);
$askForRedisPassword = true;
if (! empty($this->config->get('database.redis.default.password'))) {
$this->variables['REDIS_PASSWORD'] = $this->config->get('database.redis.default.password');
$askForRedisPassword = $this->confirm(trans('command/messages.environment.app.redis_pass_defined'));
}
if ($askForRedisPassword) {
$this->output->comment(trans('command/messages.environment.app.redis_pass_help'));
$this->variables['REDIS_PASSWORD'] = $this->option('redis-pass') ?? $this->output->askHidden(
trans('command/messages.environment.app.redis_password')
);
}
if (empty($this->variables['REDIS_PASSWORD'])) {
$this->variables['REDIS_PASSWORD'] = 'null';
}
$this->variables['REDIS_PORT'] = $this->option('redis-port') ?? $this->ask(
trans('command/messages.environment.app.redis_port'), $this->config->get('database.redis.default.port')
);
$this->comment('Caching components & icons');
$this->call('filament:optimize');
}
}

View File

@@ -0,0 +1,66 @@
<?php
namespace App\Console\Commands\Environment;
use App\Traits\Commands\RequestRedisSettingsTrait;
use App\Traits\EnvironmentWriterTrait;
use Illuminate\Console\Command;
use Illuminate\Contracts\Console\Kernel;
class CacheSettingsCommand extends Command
{
use EnvironmentWriterTrait;
use RequestRedisSettingsTrait;
public const CACHE_DRIVERS = [
'file' => 'Filesystem (default)',
'database' => 'Database',
'redis' => 'Redis',
];
protected $description = 'Configure cache settings for the Panel.';
protected $signature = 'p:environment:cache
{--driver= : The cache driver backend to use.}
{--redis-host= : Redis host to use for connections.}
{--redis-user= : User used to connect to redis.}
{--redis-pass= : Password used to connect to redis.}
{--redis-port= : Port to connect to redis over.}';
/**
* CacheSettingsCommand constructor.
*/
public function __construct(private Kernel $console)
{
parent::__construct();
}
/**
* Handle command execution.
*/
public function handle(): int
{
$selected = config('cache.default', 'file');
$this->variables['CACHE_STORE'] = $this->option('driver') ?? $this->choice(
'Cache Driver',
self::CACHE_DRIVERS,
array_key_exists($selected, self::CACHE_DRIVERS) ? $selected : null
);
if ($this->variables['CACHE_STORE'] === 'redis') {
$this->requestRedisSettings();
if (config('queue.default') !== 'sync') {
$this->call('p:environment:queue-service', [
'--overwrite' => true,
]);
}
}
$this->writeToEnvironment($this->variables);
$this->info($this->console->output());
return 0;
}
}

View File

@@ -1,126 +1,187 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\Environment;
namespace App\Console\Commands\Environment;
use PDOException;
use App\Traits\EnvironmentWriterTrait;
use Illuminate\Console\Command;
use Illuminate\Contracts\Console\Kernel;
use Illuminate\Database\DatabaseManager;
use Pterodactyl\Traits\Commands\EnvironmentWriterTrait;
use Illuminate\Contracts\Config\Repository as ConfigRepository;
class DatabaseSettingsCommand extends Command
{
use EnvironmentWriterTrait;
/**
* @var \Illuminate\Contracts\Config\Repository
*/
protected $config;
public const DATABASE_DRIVERS = [
'sqlite' => 'SQLite (recommended)',
'mariadb' => 'MariaDB',
'mysql' => 'MySQL',
];
/**
* @var \Illuminate\Contracts\Console\Kernel
*/
protected $console;
/**
* @var \Illuminate\Database\DatabaseManager
*/
protected $database;
/**
* @var string
*/
protected $description = 'Configure database settings for the Panel.';
/**
* @var string
*/
protected $signature = 'p:environment:database
{--host= : The connection address for the MySQL server.}
{--port= : The connection port for the MySQL server.}
{--driver= : The database driver backend to use.}
{--database= : The database to use.}
{--username= : Username to use when connecting.}
{--password= : Password to use for this database.}';
{--host= : The connection address for the MySQL/ MariaDB server.}
{--port= : The connection port for the MySQL/ MariaDB server.}
{--username= : Username to use when connecting to the MySQL/ MariaDB server.}
{--password= : Password to use for the MySQL/ MariaDB database.}';
/**
* @var array
*/
protected $variables = [];
/** @var array<array-key, mixed> */
protected array $variables = [];
/**
* DatabaseSettingsCommand constructor.
*
* @param \Illuminate\Contracts\Config\Repository $config
* @param \Illuminate\Database\DatabaseManager $database
* @param \Illuminate\Contracts\Console\Kernel $console
*/
public function __construct(ConfigRepository $config, DatabaseManager $database, Kernel $console)
public function __construct(private DatabaseManager $database, private Kernel $console)
{
parent::__construct();
$this->config = $config;
$this->console = $console;
$this->database = $database;
}
/**
* Handle command execution.
*
* @return int
*
* @throws \Pterodactyl\Exceptions\PterodactylException
*/
public function handle()
public function handle(): int
{
$this->output->note(trans('command/messages.environment.database.host_warning'));
$this->variables['DB_HOST'] = $this->option('host') ?? $this->ask(
trans('command/messages.environment.database.host'), $this->config->get('database.connections.mysql.host', '127.0.0.1')
);
$this->variables['DB_PORT'] = $this->option('port') ?? $this->ask(
trans('command/messages.environment.database.port'), $this->config->get('database.connections.mysql.port', 3306)
);
$this->variables['DB_DATABASE'] = $this->option('database') ?? $this->ask(
trans('command/messages.environment.database.database'), $this->config->get('database.connections.mysql.database', 'panel')
);
$this->output->note(trans('command/messages.environment.database.username_warning'));
$this->variables['DB_USERNAME'] = $this->option('username') ?? $this->ask(
trans('command/messages.environment.database.username'), $this->config->get('database.connections.mysql.username', 'pterodactyl')
);
$askForMySQLPassword = true;
if (! empty($this->config->get('database.connections.mysql.password')) && $this->input->isInteractive()) {
$this->variables['DB_PASSWORD'] = $this->config->get('database.connections.mysql.password');
$askForMySQLPassword = $this->confirm(trans('command/messages.environment.database.password_defined'));
$this->error('Changing the database driver will NOT move any database data!');
$this->error('Please make sure you made a database backup first!');
$this->error('After changing the driver you will have to manually move the old data to the new database.');
if (!$this->confirm('Do you want to continue?')) {
return 1;
}
if ($askForMySQLPassword) {
$this->variables['DB_PASSWORD'] = $this->option('password') ?? $this->secret(trans('command/messages.environment.database.password'));
}
$selected = config('database.default', 'sqlite');
$this->variables['DB_CONNECTION'] = $this->option('driver') ?? $this->choice(
'Database Driver',
self::DATABASE_DRIVERS,
array_key_exists($selected, self::DATABASE_DRIVERS) ? $selected : null
);
try {
$this->testMySQLConnection();
} catch (PDOException $exception) {
$this->output->error(trans('command/messages.environment.database.connection_error', ['error' => $exception->getMessage()]));
$this->output->error(trans('command/messages.environment.database.creds_not_saved'));
if ($this->variables['DB_CONNECTION'] === 'mysql') {
$this->output->note(trans('commands.database_settings.DB_HOST_note'));
$this->variables['DB_HOST'] = $this->option('host') ?? $this->ask(
'Database Host',
config('database.connections.mysql.host', '127.0.0.1')
);
if ($this->confirm(trans('command/messages.environment.database.try_again'))) {
$this->database->disconnect('_pterodactyl_command_test');
$this->variables['DB_PORT'] = $this->option('port') ?? $this->ask(
'Database Port',
config('database.connections.mysql.port', 3306)
);
return $this->handle();
$this->variables['DB_DATABASE'] = $this->option('database') ?? $this->ask(
'Database Name',
config('database.connections.mysql.database', 'panel')
);
$this->output->note(trans('commands.database_settings.DB_USERNAME_note'));
$this->variables['DB_USERNAME'] = $this->option('username') ?? $this->ask(
'Database Username',
config('database.connections.mysql.username', 'pelican')
);
$askForMySQLPassword = true;
if (!empty(config('database.connections.mysql.password')) && $this->input->isInteractive()) {
$this->variables['DB_PASSWORD'] = config('database.connections.mysql.password');
$askForMySQLPassword = $this->confirm(trans('commands.database_settings.DB_PASSWORD_note'));
}
return 1;
if ($askForMySQLPassword) {
$this->variables['DB_PASSWORD'] = $this->option('password') ?? $this->secret('Database Password');
}
try {
// Test connection
config()->set('database.connections._panel_command_test', [
'driver' => 'mysql',
'host' => $this->variables['DB_HOST'],
'port' => $this->variables['DB_PORT'],
'database' => $this->variables['DB_DATABASE'],
'username' => $this->variables['DB_USERNAME'],
'password' => $this->variables['DB_PASSWORD'],
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'strict' => true,
]);
$this->database->connection('_panel_command_test')->getPdo();
} catch (\PDOException $exception) {
$this->output->error(sprintf('Unable to connect to the MySQL server using the provided credentials. The error returned was "%s".', $exception->getMessage()));
$this->output->error(trans('commands.database_settings.DB_error_2'));
if ($this->confirm(trans('commands.database_settings.go_back'))) {
$this->database->disconnect('_panel_command_test');
return $this->handle();
}
return 1;
}
} elseif ($this->variables['DB_CONNECTION'] === 'mariadb') {
$this->output->note(trans('commands.database_settings.DB_HOST_note'));
$this->variables['DB_HOST'] = $this->option('host') ?? $this->ask(
'Database Host',
config('database.connections.mariadb.host', '127.0.0.1')
);
$this->variables['DB_PORT'] = $this->option('port') ?? $this->ask(
'Database Port',
config('database.connections.mariadb.port', 3306)
);
$this->variables['DB_DATABASE'] = $this->option('database') ?? $this->ask(
'Database Name',
config('database.connections.mariadb.database', 'panel')
);
$this->output->note(trans('commands.database_settings.DB_USERNAME_note'));
$this->variables['DB_USERNAME'] = $this->option('username') ?? $this->ask(
'Database Username',
config('database.connections.mariadb.username', 'pelican')
);
$askForMariaDBPassword = true;
if (!empty(config('database.connections.mariadb.password')) && $this->input->isInteractive()) {
$this->variables['DB_PASSWORD'] = config('database.connections.mariadb.password');
$askForMariaDBPassword = $this->confirm(trans('commands.database_settings.DB_PASSWORD_note'));
}
if ($askForMariaDBPassword) {
$this->variables['DB_PASSWORD'] = $this->option('password') ?? $this->secret('Database Password');
}
try {
// Test connection
config()->set('database.connections._panel_command_test', [
'driver' => 'mariadb',
'host' => $this->variables['DB_HOST'],
'port' => $this->variables['DB_PORT'],
'database' => $this->variables['DB_DATABASE'],
'username' => $this->variables['DB_USERNAME'],
'password' => $this->variables['DB_PASSWORD'],
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'strict' => true,
]);
$this->database->connection('_panel_command_test')->getPdo();
} catch (\PDOException $exception) {
$this->output->error(sprintf('Unable to connect to the MariaDB server using the provided credentials. The error returned was "%s".', $exception->getMessage()));
$this->output->error(trans('commands.database_settings.DB_error_2'));
if ($this->confirm(trans('commands.database_settings.go_back'))) {
$this->database->disconnect('_panel_command_test');
return $this->handle();
}
return 1;
}
} elseif ($this->variables['DB_CONNECTION'] === 'sqlite') {
$this->variables['DB_DATABASE'] = $this->option('database') ?? $this->ask(
'Database Path',
(string) env('DB_DATABASE', 'database.sqlite')
);
}
$this->writeToEnvironment($this->variables);
@@ -129,24 +190,4 @@ class DatabaseSettingsCommand extends Command
return 0;
}
/**
* Test that we can connect to the provided MySQL instance and perform a selection.
*/
private function testMySQLConnection()
{
$this->config->set('database.connections._pterodactyl_command_test', [
'driver' => 'mysql',
'host' => $this->variables['DB_HOST'],
'port' => $this->variables['DB_PORT'],
'database' => $this->variables['DB_DATABASE'],
'username' => $this->variables['DB_USERNAME'],
'password' => $this->variables['DB_PASSWORD'],
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'strict' => true,
]);
$this->database->connection('_pterodactyl_command_test')->getPdo();
}
}

View File

@@ -1,35 +1,16 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\Environment;
namespace App\Console\Commands\Environment;
use App\Traits\EnvironmentWriterTrait;
use Illuminate\Console\Command;
use Pterodactyl\Traits\Commands\EnvironmentWriterTrait;
use Illuminate\Contracts\Config\Repository as ConfigRepository;
class EmailSettingsCommand extends Command
{
use EnvironmentWriterTrait;
/**
* @var \Illuminate\Contracts\Config\Repository
*/
protected $config;
/**
* @var string
*/
protected $description = 'Set or update the email sending configuration for the Panel.';
/**
* @var string
*/
protected $signature = 'p:environment:mail
{--driver= : The mail driver to use.}
{--email= : Email address that messages from the Panel will originate from.}
@@ -37,61 +18,52 @@ class EmailSettingsCommand extends Command
{--encryption=}
{--host=}
{--port=}
{--endpoint=}
{--username=}
{--password=}';
/**
* @var array
*/
protected $variables = [];
/**
* EmailSettingsCommand constructor.
*
* @param \Illuminate\Contracts\Config\Repository $config
*/
public function __construct(ConfigRepository $config)
{
parent::__construct();
$this->config = $config;
}
/** @var array<array-key, mixed> */
protected array $variables = [];
/**
* Handle command execution.
* @throws \Pterodactyl\Exceptions\PterodactylException
*
* @throws \App\Exceptions\PanelException
*/
public function handle()
public function handle(): void
{
$this->variables['MAIL_DRIVER'] = $this->option('driver') ?? $this->choice(
trans('command/messages.environment.mail.ask_driver'), [
$this->variables['MAIL_MAILER'] = $this->option('driver') ?? $this->choice(
trans('command/messages.environment.mail.ask_driver'),
[
'log' => 'Log',
'smtp' => 'SMTP Server',
'mail' => 'PHP\'s Internal Mail Function',
'mailgun' => 'Mailgun Transactional Email',
'mandrill' => 'Mandrill Transactional Email',
'postmark' => 'Postmarkapp Transactional Email',
], $this->config->get('mail.driver', 'smtp')
'sendmail' => 'sendmail Binary',
'mailgun' => 'Mailgun',
'mandrill' => 'Mandrill',
'postmark' => 'Postmark',
],
env('MAIL_MAILER', env('MAIL_DRIVER', 'smtp')),
);
$method = 'setup' . studly_case($this->variables['MAIL_DRIVER']) . 'DriverVariables';
$method = 'setup' . studly_case($this->variables['MAIL_MAILER']) . 'DriverVariables';
if (method_exists($this, $method)) {
$this->{$method}();
}
$this->variables['MAIL_FROM'] = $this->option('email') ?? $this->ask(
trans('command/messages.environment.mail.ask_mail_from'), $this->config->get('mail.from.address')
$this->variables['MAIL_FROM_ADDRESS'] = $this->option('email') ?? $this->ask(
trans('command/messages.environment.mail.ask_mail_from'),
config('mail.from.address')
);
$this->variables['MAIL_FROM_NAME'] = $this->option('from') ?? $this->ask(
trans('command/messages.environment.mail.ask_mail_name'), $this->config->get('mail.from.name')
);
$this->variables['MAIL_ENCRYPTION'] = $this->option('encryption') ?? $this->choice(
trans('command/messages.environment.mail.ask_encryption'), ['tls' => 'TLS', 'ssl' => 'SSL', '' => 'None'], $this->config->get('mail.encryption', 'tls')
trans('command/messages.environment.mail.ask_mail_name'),
config('mail.from.name')
);
$this->writeToEnvironment($this->variables);
$this->call('queue:restart');
$this->line('Updating stored environment configuration file.');
$this->line('');
}
@@ -99,59 +71,77 @@ class EmailSettingsCommand extends Command
/**
* Handle variables for SMTP driver.
*/
private function setupSmtpDriverVariables()
private function setupSmtpDriverVariables(): void
{
$this->variables['MAIL_HOST'] = $this->option('host') ?? $this->ask(
trans('command/messages.environment.mail.ask_smtp_host'), $this->config->get('mail.host')
trans('command/messages.environment.mail.ask_smtp_host'),
config('mail.mailers.smtp.host')
);
$this->variables['MAIL_PORT'] = $this->option('port') ?? $this->ask(
trans('command/messages.environment.mail.ask_smtp_port'), $this->config->get('mail.port')
trans('command/messages.environment.mail.ask_smtp_port'),
config('mail.mailers.smtp.port')
);
$this->variables['MAIL_USERNAME'] = $this->option('username') ?? $this->ask(
trans('command/messages.environment.mail.ask_smtp_username'), $this->config->get('mail.username')
trans('command/messages.environment.mail.ask_smtp_username'),
config('mail.mailers.smtp.username')
);
$this->variables['MAIL_PASSWORD'] = $this->option('password') ?? $this->secret(
trans('command/messages.environment.mail.ask_smtp_password')
);
$this->variables['MAIL_SCHEME'] = $this->option('encryption') ?? $this->choice(
trans('command/messages.environment.mail.ask_encryption'),
['tls' => 'TLS', 'ssl' => 'SSL', '' => 'None'],
config('mail.mailers.smtp.encryption', 'tls')
);
}
/**
* Handle variables for mailgun driver.
*/
private function setupMailgunDriverVariables()
private function setupMailgunDriverVariables(): void
{
$this->variables['MAILGUN_DOMAIN'] = $this->option('host') ?? $this->ask(
trans('command/messages.environment.mail.ask_mailgun_domain'), $this->config->get('services.mailgun.domain')
trans('command/messages.environment.mail.ask_mailgun_domain'),
config('services.mailgun.domain')
);
$this->variables['MAILGUN_SECRET'] = $this->option('password') ?? $this->ask(
trans('command/messages.environment.mail.ask_mailgun_secret'), $this->config->get('services.mailgun.secret')
trans('command/messages.environment.mail.ask_mailgun_secret'),
config('services.mailgun.secret')
);
$this->variables['MAILGUN_ENDPOINT'] = $this->option('endpoint') ?? $this->ask(
trans('command/messages.environment.mail.ask_mailgun_endpoint'),
config('services.mailgun.endpoint')
);
}
/**
* Handle variables for mandrill driver.
*/
private function setupMandrillDriverVariables()
private function setupMandrillDriverVariables(): void
{
$this->variables['MANDRILL_SECRET'] = $this->option('password') ?? $this->ask(
trans('command/messages.environment.mail.ask_mandrill_secret'), $this->config->get('services.mandrill.secret')
trans('command/messages.environment.mail.ask_mandrill_secret'),
config('services.mandrill.secret')
);
}
/**
* Handle variables for postmark driver.
*/
private function setupPostmarkDriverVariables()
private function setupPostmarkDriverVariables(): void
{
$this->variables['MAIL_DRIVER'] = 'smtp';
$this->variables['MAIL_HOST'] = 'smtp.postmarkapp.com';
$this->variables['MAIL_PORT'] = 587;
$this->variables['MAIL_USERNAME'] = $this->variables['MAIL_PASSWORD'] = $this->option('username') ?? $this->ask(
trans('command/messages.environment.mail.ask_postmark_username'), $this->config->get('mail.username')
trans('command/messages.environment.mail.ask_postmark_username'),
config('mail.username')
);
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace App\Console\Commands\Environment;
use App\Traits\Commands\RequestRedisSettingsTrait;
use App\Traits\EnvironmentWriterTrait;
use Illuminate\Console\Command;
use Illuminate\Contracts\Console\Kernel;
class QueueSettingsCommand extends Command
{
use EnvironmentWriterTrait;
use RequestRedisSettingsTrait;
public const QUEUE_DRIVERS = [
'database' => 'Database (default)',
'redis' => 'Redis',
'sync' => 'Synchronous',
];
protected $description = 'Configure queue settings for the Panel.';
protected $signature = 'p:environment:queue
{--driver= : The queue driver backend to use.}
{--redis-host= : Redis host to use for connections.}
{--redis-user= : User used to connect to redis.}
{--redis-pass= : Password used to connect to redis.}
{--redis-port= : Port to connect to redis over.}';
/**
* QueueSettingsCommand constructor.
*/
public function __construct(private Kernel $console)
{
parent::__construct();
}
/**
* Handle command execution.
*/
public function handle(): int
{
$selected = config('queue.default', 'database');
$this->variables['QUEUE_CONNECTION'] = $this->option('driver') ?? $this->choice(
'Queue Driver',
self::QUEUE_DRIVERS,
array_key_exists($selected, self::QUEUE_DRIVERS) ? $selected : null
);
if ($this->variables['QUEUE_CONNECTION'] === 'redis') {
$this->requestRedisSettings();
$this->call('p:environment:queue-service', [
'--overwrite' => true,
]);
}
$this->writeToEnvironment($this->variables);
$this->info($this->console->output());
return 0;
}
}

View File

@@ -0,0 +1,96 @@
<?php
namespace App\Console\Commands\Environment;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Process;
class QueueWorkerServiceCommand extends Command
{
protected $description = 'Create the service for the queue worker.';
protected $signature = 'p:environment:queue-service
{--service-name= : Name of the queue worker service.}
{--user= : The user that PHP runs under.}
{--group= : The group that PHP runs under.}
{--overwrite : Force overwrite if the service file already exists.}';
public function handle(): void
{
if (@file_exists('/.dockerenv')) {
$result = Process::run('supervisorctl restart queue-worker');
if ($result->failed()) {
$this->error('Error restarting service: ' . $result->errorOutput());
return;
}
$this->line('Queue worker service file updated successfully.');
return;
}
$serviceName = $this->option('service-name') ?? $this->ask('Queue worker service name', 'pelican-queue');
$path = '/etc/systemd/system/' . $serviceName . '.service';
$fileExists = @file_exists($path);
if ($fileExists && !$this->option('overwrite') && !$this->confirm('The service file already exists. Do you want to overwrite it?')) {
$this->line('Creation of queue worker service file aborted because service file already exists.');
return;
}
$user = $this->option('user') ?? $this->ask('Webserver User', 'www-data');
$group = $this->option('group') ?? $this->ask('Webserver Group', 'www-data');
$redisUsed = config('queue.default') === 'redis' || config('session.driver') === 'redis' || config('cache.default') === 'redis';
$afterRedis = $redisUsed ? '
After=redis-server.service' : '';
$basePath = base_path();
$success = File::put($path, "# Pelican Queue File
# ----------------------------------
[Unit]
Description=Pelican Queue Service$afterRedis
[Service]
User=$user
Group=$group
Restart=always
ExecStart=/usr/bin/php $basePath/artisan queue:work --tries=3
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.target
");
if (!$success) {
$this->error('Error creating service file');
return;
}
if ($fileExists) {
$result = Process::run("systemctl restart $serviceName.service");
if ($result->failed()) {
$this->error('Error restarting service: ' . $result->errorOutput());
return;
}
$this->line('Queue worker service file updated successfully.');
} else {
$result = Process::run("systemctl enable --now $serviceName.service");
if ($result->failed()) {
$this->error('Error enabling service: ' . $result->errorOutput());
return;
}
$this->line('Queue worker service file created successfully.');
}
}
}

View File

@@ -0,0 +1,52 @@
<?php
namespace App\Console\Commands\Environment;
use App\Traits\Commands\RequestRedisSettingsTrait;
use App\Traits\EnvironmentWriterTrait;
use Illuminate\Console\Command;
use Illuminate\Contracts\Console\Kernel;
class RedisSetupCommand extends Command
{
use EnvironmentWriterTrait;
use RequestRedisSettingsTrait;
protected $description = 'Configure the Panel to use Redis as cache, queue and session driver.';
protected $signature = 'p:redis:setup
{--redis-host= : Redis host to use for connections.}
{--redis-user= : User used to connect to redis.}
{--redis-pass= : Password used to connect to redis.}
{--redis-port= : Port to connect to redis over.}';
/**
* RedisSetupCommand constructor.
*/
public function __construct(private Kernel $console)
{
parent::__construct();
}
/**
* Handle command execution.
*/
public function handle(): int
{
$this->variables['CACHE_STORE'] = 'redis';
$this->variables['QUEUE_CONNECTION'] = 'redis';
$this->variables['SESSION_DRIVER'] = 'redis';
$this->requestRedisSettings();
$this->call('p:environment:queue-service', [
'--overwrite' => true,
]);
$this->writeToEnvironment($this->variables);
$this->info($this->console->output());
return 0;
}
}

View File

@@ -0,0 +1,67 @@
<?php
namespace App\Console\Commands\Environment;
use App\Traits\Commands\RequestRedisSettingsTrait;
use App\Traits\EnvironmentWriterTrait;
use Illuminate\Console\Command;
use Illuminate\Contracts\Console\Kernel;
class SessionSettingsCommand extends Command
{
use EnvironmentWriterTrait;
use RequestRedisSettingsTrait;
public const SESSION_DRIVERS = [
'file' => 'Filesystem (default)',
'redis' => 'Redis',
'database' => 'Database',
'cookie' => 'Cookie',
];
protected $description = 'Configure session settings for the Panel.';
protected $signature = 'p:environment:session
{--driver= : The session driver backend to use.}
{--redis-host= : Redis host to use for connections.}
{--redis-user= : User used to connect to redis.}
{--redis-pass= : Password used to connect to redis.}
{--redis-port= : Port to connect to redis over.}';
/**
* SessionSettingsCommand constructor.
*/
public function __construct(private Kernel $console)
{
parent::__construct();
}
/**
* Handle command execution.
*/
public function handle(): int
{
$selected = config('session.driver', 'file');
$this->variables['SESSION_DRIVER'] = $this->option('driver') ?? $this->choice(
'Session Driver',
self::SESSION_DRIVERS,
array_key_exists($selected, self::SESSION_DRIVERS) ? $selected : null
);
if ($this->variables['SESSION_DRIVER'] === 'redis') {
$this->requestRedisSettings();
if (config('queue.default') !== 'sync') {
$this->call('p:environment:queue-service', [
'--overwrite' => true,
]);
}
}
$this->writeToEnvironment($this->variables);
$this->info($this->console->output());
return 0;
}
}

View File

@@ -1,113 +1,17 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands;
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Pterodactyl\Services\Helpers\SoftwareVersionService;
use Illuminate\Contracts\Config\Repository as ConfigRepository;
class InfoCommand extends Command
{
/**
* @var string
*/
protected $description = 'Displays the application, database, and email configurations along with the panel version.';
protected $description = 'Displays the application, database, email and backup configurations along with the panel version.';
/**
* @var \Illuminate\Contracts\Config\Repository
*/
protected $config;
/**
* @var string
*/
protected $signature = 'p:info';
/**
* @var \Pterodactyl\Services\Helpers\SoftwareVersionService
*/
protected $versionService;
/**
* VersionCommand constructor.
*
* @param \Illuminate\Contracts\Config\Repository $config
* @param \Pterodactyl\Services\Helpers\SoftwareVersionService $versionService
*/
public function __construct(ConfigRepository $config, SoftwareVersionService $versionService)
public function handle(): void
{
parent::__construct();
$this->config = $config;
$this->versionService = $versionService;
}
/**
* Handle execution of command.
*/
public function handle()
{
$this->output->title('Version Information');
$this->table([], [
['Panel Version', $this->config->get('app.version')],
['Latest Version', $this->versionService->getPanel()],
['Up-to-Date', $this->versionService->isLatestPanel() ? 'Yes' : $this->formatText('No', 'bg=red')],
['Unique Identifier', $this->config->get('pterodactyl.service.author')],
], 'compact');
$this->output->title('Application Configuration');
$this->table([], [
['Environment', $this->formatText($this->config->get('app.env'), $this->config->get('app.env') === 'production' ?: 'bg=red')],
['Debug Mode', $this->formatText($this->config->get('app.debug') ? 'Yes' : 'No', ! $this->config->get('app.debug') ?: 'bg=red')],
['Installation URL', $this->config->get('app.url')],
['Installation Directory', base_path()],
['Timezone', $this->config->get('app.timezone')],
['Cache Driver', $this->config->get('cache.default')],
['Queue Driver', $this->config->get('queue.default')],
['Session Driver', $this->config->get('session.driver')],
['Filesystem Driver', $this->config->get('filesystems.default')],
['Default Theme', $this->config->get('themes.active')],
['Proxies', $this->config->get('trustedproxies.proxies')],
], 'compact');
$this->output->title('Database Configuration');
$driver = $this->config->get('database.default');
$this->table([], [
['Driver', $driver],
['Host', $this->config->get("database.connections.{$driver}.host")],
['Port', $this->config->get("database.connections.{$driver}.port")],
['Database', $this->config->get("database.connections.{$driver}.database")],
['Username', $this->config->get("database.connections.{$driver}.username")],
], 'compact');
$this->output->title('Email Configuration');
$this->table([], [
['Driver', $this->config->get('mail.driver')],
['Host', $this->config->get('mail.host')],
['Port', $this->config->get('mail.port')],
['Username', $this->config->get('mail.username')],
['From Address', $this->config->get('mail.from.address')],
['From Name', $this->config->get('mail.from.name')],
['Encryption', $this->config->get('mail.encryption')],
], 'compact');
}
/**
* Format output in a Name: Value manner.
*
* @param string $value
* @param string $opts
* @return string
*/
private function formatText($value, $opts = '')
{
return sprintf('<%s>%s</>', $opts, $value);
$this->call('about');
}
}

View File

@@ -1,85 +0,0 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\Location;
use Illuminate\Console\Command;
use Pterodactyl\Services\Locations\LocationDeletionService;
use Pterodactyl\Contracts\Repository\LocationRepositoryInterface;
class DeleteLocationCommand extends Command
{
/**
* @var \Pterodactyl\Services\Locations\LocationDeletionService
*/
protected $deletionService;
/**
* @var string
*/
protected $description = 'Deletes a location from the Panel.';
/**
* @var \Illuminate\Support\Collection
*/
protected $locations;
/**
* @var \Pterodactyl\Contracts\Repository\LocationRepositoryInterface
*/
protected $repository;
/**
* @var string
*/
protected $signature = 'p:location:delete {--short= : The short code of the location to delete.}';
/**
* DeleteLocationCommand constructor.
*
* @param \Pterodactyl\Contracts\Repository\LocationRepositoryInterface $repository
* @param \Pterodactyl\Services\Locations\LocationDeletionService $deletionService
*/
public function __construct(
LocationDeletionService $deletionService,
LocationRepositoryInterface $repository
) {
parent::__construct();
$this->deletionService = $deletionService;
$this->repository = $repository;
}
/**
* Respond to the command request.
*
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
* @throws \Pterodactyl\Exceptions\Service\Location\HasActiveNodesException
*/
public function handle()
{
$this->locations = $this->locations ?? $this->repository->all();
$short = $this->option('short') ?? $this->anticipate(
trans('command/messages.location.ask_short'), $this->locations->pluck('short')->toArray()
);
$location = $this->locations->where('short', $short)->first();
if (is_null($location)) {
$this->error(trans('command/messages.location.no_location_found'));
if ($this->input->isInteractive()) {
$this->handle();
}
return;
}
$this->deletionService->handle($location->id);
$this->line(trans('command/messages.location.deleted'));
}
}

View File

@@ -1,62 +0,0 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\Location;
use Illuminate\Console\Command;
use Pterodactyl\Services\Locations\LocationCreationService;
class MakeLocationCommand extends Command
{
/**
* @var \Pterodactyl\Services\Locations\LocationCreationService
*/
protected $creationService;
/**
* @var string
*/
protected $signature = 'p:location:make
{--short= : The shortcode name of this location (ex. us1).}
{--long= : A longer description of this location.}';
/**
* @var string
*/
protected $description = 'Creates a new location on the system via the CLI.';
/**
* Create a new command instance.
*
* @param \Pterodactyl\Services\Locations\LocationCreationService $creationService
*/
public function __construct(LocationCreationService $creationService)
{
parent::__construct();
$this->creationService = $creationService;
}
/**
* Handle the command execution process.
*
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
*/
public function handle()
{
$short = $this->option('short') ?? $this->ask(trans('command/messages.location.ask_short'));
$long = $this->option('long') ?? $this->ask(trans('command/messages.location.ask_long'));
$location = $this->creationService->handle(compact('short', 'long'));
$this->line(trans('command/messages.location.created', [
'name' => $location->short,
'id' => $location->id,
]));
}
}

View File

@@ -1,35 +1,25 @@
<?php
namespace Pterodactyl\Console\Commands\Maintenance;
namespace App\Console\Commands\Maintenance;
use SplFileInfo;
use Carbon\Carbon;
use Illuminate\Console\Command;
use Illuminate\Contracts\Filesystem\Filesystem;
use Illuminate\Contracts\Filesystem\Factory as FilesystemFactory;
use SplFileInfo;
class CleanServiceBackupFilesCommand extends Command
{
const BACKUP_THRESHOLD_MINUTES = 5;
public const BACKUP_THRESHOLD_MINUTES = 5;
/**
* @var string
*/
protected $description = 'Clean orphaned .bak files created when modifying services.';
/**
* @var \Illuminate\Contracts\Filesystem\Filesystem
*/
protected $disk;
/**
* @var string
*/
protected $signature = 'p:maintenance:clean-service-backups';
protected Filesystem $disk;
/**
* CleanServiceBackupFilesCommand constructor.
*
* @param \Illuminate\Contracts\Filesystem\Factory $filesystem
*/
public function __construct(FilesystemFactory $filesystem)
{
@@ -41,11 +31,12 @@ class CleanServiceBackupFilesCommand extends Command
/**
* Handle command execution.
*/
public function handle()
public function handle(): void
{
/** @var SplFileInfo[] */
$files = $this->disk->files('services/.bak');
collect($files)->each(function (SplFileInfo $file) {
collect($files)->each(function ($file) {
$lastModified = Carbon::createFromTimestamp($this->disk->lastModified($file->getPath()));
if ($lastModified->diffInMinutes(Carbon::now()) > self::BACKUP_THRESHOLD_MINUTES) {
$this->disk->delete($file->getPath());

View File

@@ -0,0 +1,60 @@
<?php
namespace App\Console\Commands\Maintenance;
use App\Models\Node;
use Exception;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Http;
class PruneImagesCommand extends Command
{
protected $signature = 'p:maintenance:prune-images {node?}';
protected $description = 'Clean up all dangling docker images to clear up disk space.';
public function handle(): void
{
$node = $this->argument('node');
if (empty($node)) {
$nodes = Node::all();
/** @var Node $node */
foreach ($nodes as $node) {
$this->cleanupImages($node);
}
} else {
$this->cleanupImages((int) $node);
}
}
private function cleanupImages(int|Node $node): void
{
if (!$node instanceof Node) {
$node = Node::query()->findOrFail($node);
}
try {
$response = Http::daemon($node)
->connectTimeout(5)
->timeout(30)
->delete('/api/system/docker/image/prune')
->json() ?? [];
if (empty($response) || $response['ImagesDeleted'] === null) {
$this->warn("Node {$node->id}: No images to clean up.");
return;
}
$count = count($response['ImagesDeleted']);
$useBinaryPrefix = config('panel.use_binary_prefix');
$space = round($useBinaryPrefix ? $response['SpaceReclaimed'] / 1024 / 1024 : $response['SpaceReclaimed'] / 1000 / 1000, 2) . ($useBinaryPrefix ? ' MiB' : ' MB');
$this->info("Node {$node->id}: Cleaned up {$count} dangling docker images. ({$space})");
} catch (Exception $exception) {
$this->error($exception->getMessage());
}
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Console\Commands\Maintenance;
use App\Models\Backup;
use Carbon\CarbonImmutable;
use Illuminate\Console\Command;
class PruneOrphanedBackupsCommand extends Command
{
protected $signature = 'p:maintenance:prune-backups {--prune-age=}';
protected $description = 'Marks all backups older than "n" minutes that have not yet completed as being failed.';
public function handle(): void
{
$since = $this->option('prune-age') ?? config('backups.prune_age', 360);
if (!$since || !is_digit($since)) {
throw new \InvalidArgumentException('The "--prune-age" argument must be a value greater than 0.');
}
$query = Backup::query()
->whereNull('completed_at')
->where('created_at', '<=', CarbonImmutable::now()->subMinutes($since)->toDateTimeString());
$count = $query->count();
if (!$count) {
$this->info('There are no orphaned backups to be marked as failed.');
return;
}
$this->warn("Marking $count uncompleted backups that are older than $since minutes as failed.");
$query->update([
'is_successful' => false,
'completed_at' => CarbonImmutable::now(),
'updated_at' => CarbonImmutable::now(),
]);
}
}

View File

@@ -1,58 +0,0 @@
<?php
namespace Pterodactyl\Console\Commands\Migration;
use Pterodactyl\Models\ApiKey;
use Illuminate\Console\Command;
use Pterodactyl\Contracts\Repository\ApiKeyRepositoryInterface;
class CleanOrphanedApiKeysCommand extends Command
{
/**
* @var \Pterodactyl\Contracts\Repository\ApiKeyRepositoryInterface
*/
private $repository;
/**
* @var string
*/
protected $signature = 'p:migration:clean-orphaned-keys';
/**
* @var string
*/
protected $description = 'Cleans API keys from the database that are not assigned a specific role.';
/**
* CleanOrphanedApiKeysCommand constructor.
*
* @param \Pterodactyl\Contracts\Repository\ApiKeyRepositoryInterface $repository
*/
public function __construct(ApiKeyRepositoryInterface $repository)
{
parent::__construct();
$this->repository = $repository;
}
/**
* Delete all orphaned API keys from the database when upgrading from 0.6 to 0.7.
*
* @return null|void
*/
public function handle()
{
$count = $this->repository->findCountWhere([['key_type', '=', ApiKey::TYPE_NONE]]);
$continue = $this->confirm(
'This action will remove ' . $count . ' keys from the database. Are you sure you wish to continue?', false
);
if (! $continue) {
return null;
}
$this->info('Deleting keys...');
$this->repository->deleteWhere([['key_type', '=', ApiKey::TYPE_NONE]]);
$this->info('Keys were successfully deleted.');
}
}

View File

@@ -0,0 +1,69 @@
<?php
namespace App\Console\Commands\Node;
use App\Models\Node;
use Illuminate\Console\Command;
class MakeNodeCommand extends Command
{
protected $signature = 'p:node:make
{--name= : A name to identify the node.}
{--description= : A description to identify the node.}
{--locationId= : A valid locationId.}
{--fqdn= : The domain name (e.g node.example.com) to be used for connecting to the daemon. An IP address may only be used if you are not using SSL for this node.}
{--public= : Should the node be public or private? (public=1 / private=0).}
{--scheme= : Which scheme should be used? (Enable SSL=https / Disable SSL=http).}
{--proxy= : Is the daemon behind a proxy? (Yes=1 / No=0).}
{--maintenance= : Should maintenance mode be enabled? (Enable Maintenance mode=1 / Disable Maintenance mode=0).}
{--maxMemory= : Set the max memory amount.}
{--overallocateMemory= : Enter the amount of ram to overallocate (% or -1 to overallocate the maximum).}
{--maxDisk= : Set the max disk amount.}
{--overallocateDisk= : Enter the amount of disk to overallocate (% or -1 to overallocate the maximum).}
{--maxCpu= : Set the max cpu amount.}
{--overallocateCpu= : Enter the amount of cpu to overallocate (% or -1 to overallocate the maximum).}
{--uploadSize= : Enter the maximum upload filesize.}
{--daemonListeningPort= : Enter the daemon listening port.}
{--daemonConnectingPort= : Enter the daemon connecting port.}
{--daemonSFTPPort= : Enter the daemon SFTP listening port.}
{--daemonSFTPAlias= : Enter the daemon SFTP alias.}
{--daemonBase= : Enter the base folder.}';
protected $description = 'Creates a new node on the system via the CLI.';
/**
* Handle the command execution process.
*
* @throws \App\Exceptions\Model\DataValidationException
*/
public function handle(): void
{
$data['name'] = $this->option('name') ?? $this->ask(trans('commands.make_node.name'));
$data['description'] = $this->option('description') ?? $this->ask(trans('commands.make_node.description'));
$data['scheme'] = $this->option('scheme') ?? $this->anticipate(
trans('commands.make_node.scheme'),
['https', 'http'],
'https'
);
$data['fqdn'] = $this->option('fqdn') ?? $this->ask(trans('commands.make_node.fqdn'));
$data['public'] = $this->option('public') ?? $this->confirm(trans('commands.make_node.public'), true);
$data['behind_proxy'] = $this->option('proxy') ?? $this->confirm(trans('commands.make_node.behind_proxy'));
$data['maintenance_mode'] = $this->option('maintenance') ?? $this->confirm(trans('commands.make_node.maintenance_mode'));
$data['memory'] = $this->option('maxMemory') ?? $this->ask(trans('commands.make_node.memory'), '0');
$data['memory_overallocate'] = $this->option('overallocateMemory') ?? $this->ask(trans('commands.make_node.memory_overallocate'), '-1');
$data['disk'] = $this->option('maxDisk') ?? $this->ask(trans('commands.make_node.disk'), '0');
$data['disk_overallocate'] = $this->option('overallocateDisk') ?? $this->ask(trans('commands.make_node.disk_overallocate'), '-1');
$data['cpu'] = $this->option('maxCpu') ?? $this->ask(trans('commands.make_node.cpu'), '0');
$data['cpu_overallocate'] = $this->option('overallocateCpu') ?? $this->ask(trans('commands.make_node.cpu_overallocate'), '-1');
$data['upload_size'] = $this->option('uploadSize') ?? $this->ask(trans('commands.make_node.upload_size'), '256');
$data['daemon_listen'] = $this->option('daemonListeningPort') ?? $this->ask(trans('commands.make_node.daemonListen'), '8080');
$data['daemon_connect'] = $this->option('daemonConnectingPort') ?? $this->ask(trans('commands.make_node.daemonConnect'), '8080');
$data['daemon_sftp'] = $this->option('daemonSFTPPort') ?? $this->ask(trans('commands.make_node.daemonSFTP'), '2022');
$data['daemon_sftp_alias'] = $this->option('daemonSFTPAlias') ?? $this->ask(trans('commands.make_node.daemonSFTPAlias'), '');
$data['daemon_base'] = $this->option('daemonBase') ?? $this->ask(trans('commands.make_node.daemonBase'), '/var/lib/pelican/volumes');
$node = Node::create($data);
$this->line(trans('commands.make_node.success', ['name' => $data['name'], 'id' => $node->id]));
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Console\Commands\Node;
use App\Models\Node;
use Illuminate\Console\Command;
class NodeConfigurationCommand extends Command
{
protected $signature = 'p:node:configuration
{node : The ID or UUID of the node to return the configuration for.}
{--format=yaml : The output format. Options are "yaml" and "json".}';
protected $description = 'Displays the configuration for the specified node.';
public function handle(): int
{
$column = ctype_digit((string) $this->argument('node')) ? 'id' : 'uuid';
/** @var \App\Models\Node $node */
$node = Node::query()->where($column, $this->argument('node'))->firstOr(function () {
$this->error(trans('commands.node_config.error_not_exist'));
exit(1);
});
$format = $this->option('format');
if (!in_array($format, ['yaml', 'yml', 'json'])) {
$this->error(trans('commands.node_config.error_invalid_format'));
return 1;
}
if ($format === 'json') {
$this->output->write($node->getJsonConfiguration(true));
} else {
$this->output->write($node->getYamlConfiguration());
}
$this->output->newLine();
return 0;
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace App\Console\Commands\Node;
use App\Models\Node;
use Illuminate\Console\Command;
class NodeListCommand extends Command
{
protected $signature = 'p:node:list {--format=text : The output format: "text" or "json". }';
public function handle(): int
{
$nodes = Node::query()->get()->map(function (Node $node) {
return [
'id' => $node->id,
'uuid' => $node->uuid,
'name' => $node->name,
'host' => $node->getConnectionAddress(),
];
});
if ($this->option('format') === 'json') {
$this->output->write($nodes->toJson(JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
} else {
$this->table(['ID', 'UUID', 'Name', 'Host'], $nodes->toArray());
}
$this->output->newLine();
return 0;
}
}

View File

@@ -1,6 +1,6 @@
<?php
namespace Pterodactyl\Console\Commands\Overrides;
namespace App\Console\Commands\Overrides;
use Illuminate\Foundation\Console\KeyGenerateCommand as BaseKeyGenerateCommand;
@@ -10,15 +10,15 @@ class KeyGenerateCommand extends BaseKeyGenerateCommand
* Override the default Laravel key generation command to throw a warning to the user
* if it appears that they have already generated an application encryption key.
*/
public function handle()
public function handle(): void
{
if (! empty(config('app.key')) && $this->input->isInteractive()) {
$this->output->warning(trans('command/messages.key.warning'));
if (! $this->confirm(trans('command/messages.key.confirm'))) {
if (!empty(config('app.key')) && $this->input->isInteractive()) {
$this->output->warning(trans('commands.key_generate.error_already_exist'));
if (!$this->confirm(trans('commands.key_generate.understand'))) {
return;
}
if (! $this->confirm(trans('command/messages.key.final_confirm'))) {
if (!$this->confirm(trans('commands.key_generate.continue'))) {
return;
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Console\Commands\Overrides;
use App\Traits\Commands\RequiresDatabaseMigrations;
use Illuminate\Database\Console\Seeds\SeedCommand as BaseSeedCommand;
class SeedCommand extends BaseSeedCommand
{
use RequiresDatabaseMigrations;
/**
* Block someone from running this seed command if they have not completed
* the migration process.
*/
public function handle(): int
{
if (!$this->hasCompletedMigrations()) {
$this->showMigrationWarning();
return 1;
}
return parent::handle();
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Console\Commands\Overrides;
use App\Traits\Commands\RequiresDatabaseMigrations;
use Illuminate\Foundation\Console\UpCommand as BaseUpCommand;
class UpCommand extends BaseUpCommand
{
use RequiresDatabaseMigrations;
/**
* Block someone from running this up command if they have not completed
* the migration process.
*/
public function handle(): int
{
if (!$this->hasCompletedMigrations()) {
$this->showMigrationWarning();
return 1;
}
return parent::handle();
}
}

View File

@@ -1,86 +1,70 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\Schedule;
namespace App\Console\Commands\Schedule;
use Cake\Chronos\Chronos;
use Illuminate\Console\Command;
use Illuminate\Support\Collection;
use Pterodactyl\Services\Schedules\ProcessScheduleService;
use Pterodactyl\Contracts\Repository\ScheduleRepositoryInterface;
use App\Models\Schedule;
use Illuminate\Database\Eloquent\Builder;
use App\Services\Schedules\ProcessScheduleService;
use Throwable;
class ProcessRunnableCommand extends Command
{
/**
* @var string
*/
protected $description = 'Process schedules in the database and determine which are ready to run.';
/**
* @var \Pterodactyl\Services\Schedules\ProcessScheduleService
*/
protected $processScheduleService;
/**
* @var \Pterodactyl\Contracts\Repository\ScheduleRepositoryInterface
*/
protected $repository;
/**
* @var string
*/
protected $signature = 'p:schedule:process';
/**
* ProcessRunnableCommand constructor.
*
* @param \Pterodactyl\Services\Schedules\ProcessScheduleService $processScheduleService
* @param \Pterodactyl\Contracts\Repository\ScheduleRepositoryInterface $repository
*/
public function __construct(ProcessScheduleService $processScheduleService, ScheduleRepositoryInterface $repository)
{
parent::__construct();
protected $description = 'Process schedules in the database and determine which are ready to run.';
$this->processScheduleService = $processScheduleService;
$this->repository = $repository;
}
/**
* Handle command execution.
*/
public function handle()
public function handle(ProcessScheduleService $processScheduleService): int
{
$schedules = $this->repository->getSchedulesToProcess(Chronos::now()->toAtomString());
$schedules = Schedule::query()
->with('tasks')
->whereRelation('server', fn (Builder $builder) => $builder->whereNull('status'))
->where('is_active', true)
->where('is_processing', false)
->where('next_run_at', '<=', now('UTC')->toDateTimeString())
->get();
if ($schedules->count() < 1) {
$this->line('There are no scheduled tasks for servers that need to be run.');
$this->line(trans('commands.schedule.process.no_tasks'));
return;
return 0;
}
$bar = $this->output->createProgressBar(count($schedules));
$schedules->each(function ($schedule) use ($bar) {
if ($schedule->tasks instanceof Collection && count($schedule->tasks) > 0) {
$this->processScheduleService->handle($schedule);
if ($this->input->isInteractive()) {
$bar->clear();
$this->line(trans('command/messages.schedule.output_line', [
'schedule' => $schedule->name,
'hash' => $schedule->hashid,
]));
}
}
foreach ($schedules as $schedule) {
$bar->clear();
$this->processSchedule($processScheduleService, $schedule);
$bar->advance();
$bar->display();
});
}
$this->line('');
return 0;
}
/**
* Processes a given schedule and logs and errors encountered the console output. This should
* never throw an exception out, otherwise you'll end up killing the entire run group causing
* any other schedules to not process correctly.
*/
protected function processSchedule(ProcessScheduleService $processScheduleService, Schedule $schedule): void
{
if ($schedule->tasks->isEmpty()) {
return;
}
try {
$processScheduleService->handle($schedule);
$this->line(trans('command/messages.schedule.output_line', [
'schedule' => $schedule->name,
'id' => $schedule->id,
]));
} catch (Throwable $exception) {
logger()->error($exception, ['schedule_id' => $schedule->id]);
$this->error(trans('commands.schedule.process.no_tasks') . " #$schedule->id: " . $exception->getMessage());
}
}
}

View File

@@ -1,76 +1,31 @@
<?php
namespace Pterodactyl\Console\Commands\Server;
namespace App\Console\Commands\Server;
use App\Models\Server;
use Illuminate\Console\Command;
use GuzzleHttp\Exception\RequestException;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Validation\ValidationException;
use Illuminate\Validation\Factory as ValidatorFactory;
use Pterodactyl\Contracts\Repository\ServerRepositoryInterface;
use Pterodactyl\Contracts\Repository\Daemon\PowerRepositoryInterface;
use App\Repositories\Daemon\DaemonPowerRepository;
use Exception;
class BulkPowerActionCommand extends Command
{
/**
* @var \Pterodactyl\Contracts\Repository\Daemon\PowerRepositoryInterface
*/
private $powerRepository;
/**
* @var \Pterodactyl\Contracts\Repository\ServerRepositoryInterface
*/
private $repository;
/**
* @var \Illuminate\Validation\Factory
*/
private $validator;
/**
* @var string
*/
protected $signature = 'p:server:bulk-power
{action : The action to perform (start, stop, restart, kill)}
{--servers= : A comma separated list of servers.}
{--nodes= : A comma separated list of nodes.}';
/**
* @var string
*/
protected $description = 'Perform bulk power management on large groupings of servers or nodes at once.';
/**
* BulkPowerActionCommand constructor.
*
* @param \Pterodactyl\Contracts\Repository\Daemon\PowerRepositoryInterface $powerRepository
* @param \Pterodactyl\Contracts\Repository\ServerRepositoryInterface $repository
* @param \Illuminate\Validation\Factory $validator
*/
public function __construct(
PowerRepositoryInterface $powerRepository,
ServerRepositoryInterface $repository,
ValidatorFactory $validator
) {
parent::__construct();
$this->powerRepository = $powerRepository;
$this->repository = $repository;
$this->validator = $validator;
}
/**
* Handle the bulk power request.
*
* @throws \Illuminate\Validation\ValidationException
* @throws \Pterodactyl\Exceptions\Repository\Daemon\InvalidPowerSignalException
*/
public function handle()
public function handle(DaemonPowerRepository $powerRepository, ValidatorFactory $validator): void
{
$action = $this->argument('action');
$nodes = empty($this->option('nodes')) ? [] : explode(',', $this->option('nodes'));
$servers = empty($this->option('servers')) ? [] : explode(',', $this->option('servers'));
$validator = $this->validator->make([
$validator = $validator->make([
'action' => $action,
'nodes' => $nodes,
'servers' => $servers,
@@ -90,23 +45,23 @@ class BulkPowerActionCommand extends Command
throw new ValidationException($validator);
}
$count = $this->repository->getServersForPowerActionCount($servers, $nodes);
if (! $this->confirm(trans('command/messages.server.power.confirm', ['action' => $action, 'count' => $count]))) {
$count = $this->getQueryBuilder($servers, $nodes)->count();
if (!$this->confirm(trans('command/messages.server.power.confirm', ['action' => $action, 'count' => $count])) && $this->input->isInteractive()) {
return;
}
$bar = $this->output->createProgressBar($count);
$servers = $this->repository->getServersForPowerAction($servers, $nodes);
foreach ($servers as $server) {
$this->getQueryBuilder($servers, $nodes)->get()->each(function ($server, int $index) use ($action, $powerRepository, &$bar): mixed {
$bar->clear();
if (!$server instanceof Server) {
return null;
}
try {
$this->powerRepository
->setNode($server->node)
->setServer($server)
->sendSignal($action);
} catch (RequestException $exception) {
$powerRepository->setServer($server)->send($action);
} catch (Exception $exception) {
$this->output->error(trans('command/messages.server.power.action_failed', [
'name' => $server->name,
'id' => $server->id,
@@ -117,8 +72,31 @@ class BulkPowerActionCommand extends Command
$bar->advance();
$bar->display();
}
return null;
});
$this->line('');
}
/**
* Returns the query builder instance that will return the servers that should be affected.
*
* @param string[]|int[] $servers
* @param string[]|int[] $nodes
*/
protected function getQueryBuilder(array $servers, array $nodes): Builder
{
$instance = Server::query()->whereNull('status');
if (!empty($nodes) && !empty($servers)) {
$instance->whereIn('id', $servers)->orWhereIn('node_id', $nodes);
} elseif (empty($nodes) && !empty($servers)) {
$instance->whereIn('id', $servers);
} elseif (!empty($nodes)) {
$instance->whereIn('node_id', $nodes);
}
return $instance->with('node');
}
}

View File

@@ -1,109 +0,0 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\Server;
use Webmozart\Assert\Assert;
use Illuminate\Console\Command;
use GuzzleHttp\Exception\RequestException;
use Pterodactyl\Contracts\Repository\ServerRepositoryInterface;
use Pterodactyl\Services\Servers\ServerConfigurationStructureService;
use Pterodactyl\Contracts\Repository\Daemon\ServerRepositoryInterface as DaemonServerRepositoryInterface;
class RebuildServerCommand extends Command
{
/**
* @var \Pterodactyl\Services\Servers\ServerConfigurationStructureService
*/
protected $configurationStructureService;
/**
* @var \Pterodactyl\Contracts\Repository\Daemon\ServerRepositoryInterface
*/
protected $daemonRepository;
/**
* @var string
*/
protected $description = 'Rebuild a single server, all servers on a node, or all servers on the panel.';
/**
* @var \Pterodactyl\Contracts\Repository\ServerRepositoryInterface
*/
protected $repository;
/**
* @var string
*/
protected $signature = 'p:server:rebuild
{server? : The ID of the server to rebuild.}
{--node= : ID of the node to rebuild all servers on. Ignored if server is passed.}';
/**
* RebuildServerCommand constructor.
*
* @param \Pterodactyl\Contracts\Repository\Daemon\ServerRepositoryInterface $daemonRepository
* @param \Pterodactyl\Services\Servers\ServerConfigurationStructureService $configurationStructureService
* @param \Pterodactyl\Contracts\Repository\ServerRepositoryInterface $repository
*/
public function __construct(
DaemonServerRepositoryInterface $daemonRepository,
ServerConfigurationStructureService $configurationStructureService,
ServerRepositoryInterface $repository
) {
parent::__construct();
$this->configurationStructureService = $configurationStructureService;
$this->daemonRepository = $daemonRepository;
$this->repository = $repository;
}
/**
* Handle command execution.
*/
public function handle()
{
$servers = $this->getServersToProcess();
$bar = $this->output->createProgressBar(count($servers));
$servers->each(function ($server) use ($bar) {
$bar->clear();
$json = array_merge($this->configurationStructureService->handle($server), ['rebuild' => true]);
try {
$this->daemonRepository->setServer($server)->update($json);
} catch (RequestException $exception) {
$this->output->error(trans('command/messages.server.rebuild_failed', [
'name' => $server->name,
'id' => $server->id,
'node' => $server->node->name,
'message' => $exception->getMessage(),
]));
}
$bar->advance();
$bar->display();
});
$this->line('');
}
/**
* Return the servers to be rebuilt.
*
* @return \Illuminate\Database\Eloquent\Collection
*/
private function getServersToProcess()
{
Assert::nullOrIntegerish($this->argument('server'), 'Value passed in server argument must be null or an integer, received %s.');
Assert::nullOrIntegerish($this->option('node'), 'Value passed in node option must be null or integer, received %s.');
return $this->repository->getDataForRebuild($this->argument('server'), $this->option('node'));
}
}

View File

@@ -0,0 +1,193 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Console\Kernel;
use Symfony\Component\Process\Process;
use Symfony\Component\Console\Helper\ProgressBar;
class UpgradeCommand extends Command
{
protected const DEFAULT_URL = 'https://github.com/pelican-dev/panel/releases/%s/panel.tar.gz';
protected $signature = 'p:upgrade
{--user= : The user that PHP runs under. All files will be owned by this user.}
{--group= : The group that PHP runs under. All files will be owned by this group.}
{--url= : The specific archive to download.}
{--release= : A specific version to download from GitHub. Leave blank to use latest.}
{--skip-download : If set no archive will be downloaded.}';
protected $description = 'Downloads a new archive from GitHub and then executes the normal upgrade commands.';
/**
* Executes an upgrade command which will run through all of our standard
* Panel commands and enable users to basically just download
* the archive and execute this and be done.
*
* This places the application in maintenance mode as well while the commands
* are being executed.
*
* @throws \Exception
*/
public function handle(): void
{
$skipDownload = $this->option('skip-download');
if (!$skipDownload) {
$this->output->warning(trans('commands.upgrade.integrity'));
$this->output->comment(trans('commands.upgrade.source_url'));
$this->line($this->getUrl());
}
$user = 'www-data';
$group = 'www-data';
if ($this->input->isInteractive()) {
if (!$skipDownload) {
$skipDownload = !$this->confirm(trans('commands.upgrade.skipDownload'), true);
}
if (is_null($this->option('user'))) {
$userDetails = function_exists('posix_getpwuid') ? posix_getpwuid(fileowner('public')) : [];
$user = $userDetails['name'] ?? 'www-data';
$message = trans('commands.upgrade.webserver_user', ['user' => $user]);
if (!$this->confirm($message, true)) {
$user = $this->anticipate(
trans('commands.upgrade.name_webserver'),
[
'www-data',
'nginx',
'apache',
]
);
}
}
if (is_null($this->option('group'))) {
$groupDetails = function_exists('posix_getgrgid') ? posix_getgrgid(filegroup('public')) : [];
$group = $groupDetails['name'] ?? 'www-data';
$message = trans('commands.upgrade.group_webserver', ['group' => $user]);
if (!$this->confirm($message, true)) {
$group = $this->anticipate(
trans('commands.upgrade.group_webserver_question'),
[
'www-data',
'nginx',
'apache',
]
);
}
}
if (!$this->confirm(trans('commands.upgrade.are_your_sure'))) {
$this->warn(trans('commands.upgrade.terminated'));
return;
}
}
ini_set('output_buffering', '0');
$bar = $this->output->createProgressBar($skipDownload ? 9 : 10);
$bar->start();
if (!$skipDownload) {
$this->withProgress($bar, function () {
$this->line("\$upgrader> curl -L \"{$this->getUrl()}\" | tar -xzv");
$process = Process::fromShellCommandline("curl -L \"{$this->getUrl()}\" | tar -xzv");
$process->run(function ($type, $buffer) {
$this->{$type === Process::ERR ? 'error' : 'line'}($buffer);
});
});
}
$this->withProgress($bar, function () {
$this->line('$upgrader> php artisan down');
$this->call('down');
});
$this->withProgress($bar, function () {
$this->line('$upgrader> chmod -R 755 storage bootstrap/cache');
$process = new Process(['chmod', '-R', '755', 'storage', 'bootstrap/cache']);
$process->run(function ($type, $buffer) {
$this->{$type === Process::ERR ? 'error' : 'line'}($buffer);
});
});
$this->withProgress($bar, function () {
$command = ['composer', 'install', '--no-ansi'];
if (config('app.env') === 'production' && !config('app.debug')) {
$command[] = '--optimize-autoloader';
$command[] = '--no-dev';
}
$this->line('$upgrader> ' . implode(' ', $command));
$process = new Process($command);
$process->setTimeout(10 * 60);
$process->run(function ($type, $buffer) {
$this->line($buffer);
});
});
/** @var \Illuminate\Foundation\Application $app */
$app = require __DIR__ . '/../../../bootstrap/app.php';
/** @var \App\Console\Kernel $kernel */
$kernel = $app->make(Kernel::class);
$kernel->bootstrap();
$this->setLaravel($app);
$this->withProgress($bar, function () {
$this->line('$upgrader> php artisan view:clear');
$this->call('view:clear');
});
$this->withProgress($bar, function () {
$this->line('$upgrader> php artisan config:clear');
$this->call('config:clear');
});
$this->withProgress($bar, function () {
$this->line('$upgrader> php artisan migrate --force --seed');
$this->call('migrate', ['--force' => true, '--seed' => true]);
});
$this->withProgress($bar, function () use ($user, $group) {
$this->line("\$upgrader> chown -R {$user}:{$group} *");
$process = Process::fromShellCommandline("chown -R {$user}:{$group} *", $this->getLaravel()->basePath());
$process->setTimeout(10 * 60);
$process->run(function ($type, $buffer) {
$this->{$type === Process::ERR ? 'error' : 'line'}($buffer);
});
});
$this->withProgress($bar, function () {
$this->line('$upgrader> php artisan queue:restart');
$this->call('queue:restart');
});
$this->withProgress($bar, function () {
$this->line('$upgrader> php artisan up');
$this->call('up');
});
$this->newLine(2);
$this->info(trans('commands.upgrade.success'));
}
protected function withProgress(ProgressBar $bar, \Closure $callback): void
{
$bar->clear();
$callback();
$bar->advance();
$bar->display();
}
protected function getUrl(): string
{
if ($this->option('url')) {
return $this->option('url');
}
return sprintf(self::DEFAULT_URL, $this->option('release') ? 'download/v' . $this->option('release') : 'latest/download');
}
}

View File

@@ -1,74 +1,35 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\User;
namespace App\Console\Commands\User;
use App\Models\User;
use Webmozart\Assert\Assert;
use Illuminate\Console\Command;
use Pterodactyl\Services\Users\UserDeletionService;
use Pterodactyl\Contracts\Repository\UserRepositoryInterface;
class DeleteUserCommand extends Command
{
/**
* @var \Pterodactyl\Services\Users\UserDeletionService
*/
protected $deletionService;
/**
* @var string
*/
protected $description = 'Deletes a user from the Panel if no servers are attached to their account.';
/**
* @var \Pterodactyl\Contracts\Repository\UserRepositoryInterface
*/
protected $repository;
/**
* @var string
*/
protected $signature = 'p:user:delete {--user=}';
/**
* DeleteUserCommand constructor.
*
* @param \Pterodactyl\Services\Users\UserDeletionService $deletionService
* @param \Pterodactyl\Contracts\Repository\UserRepositoryInterface $repository
*/
public function __construct(
UserDeletionService $deletionService,
UserRepositoryInterface $repository
) {
parent::__construct();
$this->deletionService = $deletionService;
$this->repository = $repository;
}
/**
* @return bool
* @throws \Pterodactyl\Exceptions\DisplayException
*/
public function handle()
public function handle(): int
{
$search = $this->option('user') ?? $this->ask(trans('command/messages.user.search_users'));
Assert::notEmpty($search, 'Search term must be a non-null value, received %s.');
Assert::notEmpty($search, 'Search term should not be empty.');
$results = User::query()
->where('id', 'LIKE', "$search%")
->orWhere('username', 'LIKE', "$search%")
->orWhere('email', 'LIKE', "$search%")
->get();
$results = $this->repository->setSearchTerm($search)->all();
if (count($results) < 1) {
$this->error(trans('command/messages.user.no_users_found'));
if ($this->input->isInteractive()) {
return $this->handle();
}
return false;
return 1;
}
if ($this->input->isInteractive()) {
@@ -78,22 +39,27 @@ class DeleteUserCommand extends Command
}
$this->table(['User ID', 'Email', 'Name'], $tableValues);
if (! $deleteUser = $this->ask(trans('command/messages.user.select_search_user'))) {
if (!$deleteUser = $this->ask(trans('command/messages.user.select_search_user'))) {
return $this->handle();
}
$deleteUser = User::query()->findOrFail($deleteUser);
} else {
if (count($results) > 1) {
$this->error(trans('command/messages.user.multiple_found'));
return false;
return 1;
}
$deleteUser = $results->first();
}
if ($this->confirm(trans('command/messages.user.confirm_delete')) || ! $this->input->isInteractive()) {
$this->deletionService->handle($deleteUser);
if ($this->confirm(trans('command/messages.user.confirm_delete')) || !$this->input->isInteractive()) {
$deleteUser->delete();
$this->info(trans('command/messages.user.deleted'));
}
return 0;
}
}

View File

@@ -1,65 +1,34 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\User;
namespace App\Console\Commands\User;
use App\Models\User;
use Illuminate\Console\Command;
use Pterodactyl\Contracts\Repository\UserRepositoryInterface;
class DisableTwoFactorCommand extends Command
{
/**
* @var string
*/
protected $description = 'Disable two-factor authentication for a specific user in the Panel.';
/**
* @var \Pterodactyl\Contracts\Repository\UserRepositoryInterface
*/
protected $repository;
/**
* @var string
*/
protected $signature = 'p:user:disable2fa {--email= : The email of the user to disable 2-Factor for.}';
/**
* DisableTwoFactorCommand constructor.
*
* @param \Pterodactyl\Contracts\Repository\UserRepositoryInterface $repository
*/
public function __construct(UserRepositoryInterface $repository)
{
parent::__construct();
$this->repository = $repository;
}
/**
* Handle command execution process.
*
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
* @throws \App\Exceptions\Model\DataValidationException
*/
public function handle()
public function handle(): void
{
if ($this->input->isInteractive()) {
$this->output->warning(trans('command/messages.user.2fa_help_text'));
$this->output->warning(trans('command/messages.user.2fa_help_text.0') . trans('command/messages.user.2fa_help_text.1'));
}
$email = $this->option('email') ?? $this->ask(trans('command/messages.user.ask_email'));
$user = $this->repository->setColumns(['id', 'email'])->findFirstWhere([['email', '=', $email]]);
$this->repository->withoutFreshModel()->update($user->id, [
'use_totp' => false,
'totp_secret' => null,
]);
$user = User::query()->where('email', $email)->firstOrFail();
$user->use_totp = false;
$user->totp_secret = null;
$user->save();
$this->info(trans('command/messages.user.2fa_disabled', ['email' => $user->email]));
}
}

View File

@@ -1,73 +1,60 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Console\Commands\User;
namespace App\Console\Commands\User;
use Exception;
use Illuminate\Console\Command;
use Pterodactyl\Services\Users\UserCreationService;
use App\Services\Users\UserCreationService;
use Illuminate\Support\Facades\DB;
class MakeUserCommand extends Command
{
/**
* @var \Pterodactyl\Services\Users\UserCreationService
*/
protected $creationService;
/**
* @var string
*/
protected $description = 'Creates a user on the system via the CLI.';
/**
* @var string
*/
protected $signature = 'p:user:make {--email=} {--username=} {--name-first=} {--name-last=} {--password=} {--admin=} {--no-password}';
protected $signature = 'p:user:make {--email=} {--username=} {--password=} {--admin=} {--no-password}';
/**
* MakeUserCommand constructor.
*
* @param \Pterodactyl\Services\Users\UserCreationService $creationService
*/
public function __construct(UserCreationService $creationService)
public function __construct(private UserCreationService $creationService)
{
parent::__construct();
$this->creationService = $creationService;
}
/**
* Handle command request to create a new user.
*
* @throws \Exception
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws Exception
* @throws \App\Exceptions\Model\DataValidationException
*/
public function handle()
public function handle(): int
{
try {
DB::connection()->getPdo();
} catch (Exception $exception) {
$this->error($exception->getMessage());
return 1;
}
$root_admin = $this->option('admin') ?? $this->confirm(trans('command/messages.user.ask_admin'));
$email = $this->option('email') ?? $this->ask(trans('command/messages.user.ask_email'));
$username = $this->option('username') ?? $this->ask(trans('command/messages.user.ask_username'));
$name_first = $this->option('name-first') ?? $this->ask(trans('command/messages.user.ask_name_first'));
$name_last = $this->option('name-last') ?? $this->ask(trans('command/messages.user.ask_name_last'));
if (is_null($password = $this->option('password')) && ! $this->option('no-password')) {
if (is_null($password = $this->option('password')) && !$this->option('no-password')) {
$this->warn(trans('command/messages.user.ask_password_help'));
$this->line(trans('command/messages.user.ask_password_tip'));
$password = $this->secret(trans('command/messages.user.ask_password'));
}
$user = $this->creationService->handle(compact('email', 'username', 'name_first', 'name_last', 'password', 'root_admin'));
$user = $this->creationService->handle(compact('email', 'username', 'password', 'root_admin'));
$this->table(['Field', 'Value'], [
['UUID', $user->uuid],
['Email', $user->email],
['Username', $user->username],
['Name', $user->name],
['Admin', $user->root_admin ? 'Yes' : 'No'],
['Admin', $user->isRootAdmin() ? 'Yes' : 'No'],
]);
return 0;
}
}

View File

@@ -1,28 +1,62 @@
<?php
namespace Pterodactyl\Console;
namespace App\Console;
use App\Console\Commands\Egg\CheckEggUpdatesCommand;
use App\Console\Commands\Maintenance\CleanServiceBackupFilesCommand;
use App\Console\Commands\Maintenance\PruneImagesCommand;
use App\Console\Commands\Maintenance\PruneOrphanedBackupsCommand;
use App\Console\Commands\Schedule\ProcessRunnableCommand;
use App\Models\ActivityLog;
use App\Models\Webhook;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Database\Console\PruneCommand;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Spatie\Health\Commands\RunHealthChecksCommand;
use Spatie\Health\Commands\ScheduleCheckHeartbeatCommand;
class Kernel extends ConsoleKernel
{
/**
* Register the commands for the application.
*/
protected function commands()
protected function commands(): void
{
$this->load(__DIR__ . '/Commands');
}
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
*/
protected function schedule(Schedule $schedule)
protected function schedule(Schedule $schedule): void
{
$schedule->command('p:schedule:process')->everyMinute()->withoutOverlapping();
$schedule->command('p:maintenance:clean-service-backups')->daily();
if (config('cache.default') === 'redis') {
// https://laravel.com/docs/10.x/upgrade#redis-cache-tags
// This only needs to run when using redis. anything else throws an error.
$schedule->command('cache:prune-stale-tags')->hourly();
}
// Execute scheduled commands for servers every minute, as if there was a normal cron running.
$schedule->command(ProcessRunnableCommand::class)->everyMinute()->withoutOverlapping();
$schedule->command(CleanServiceBackupFilesCommand::class)->daily();
$schedule->command(PruneImagesCommand::class)->daily();
$schedule->command(CheckEggUpdatesCommand::class)->hourly();
if (config('backups.prune_age')) {
// Every 30 minutes, run the backup pruning command so that any abandoned backups can be deleted.
$schedule->command(PruneOrphanedBackupsCommand::class)->everyThirtyMinutes();
}
if (config('activity.prune_days')) {
$schedule->command(PruneCommand::class, ['--model' => [ActivityLog::class]])->daily();
}
if (config('panel.webhook.prune_days')) {
$schedule->command(PruneCommand::class, ['--model' => [Webhook::class]])->daily();
}
$schedule->command(ScheduleCheckHeartbeatCommand::class)->everyMinute();
$schedule->command(RunHealthChecksCommand::class)->everyFiveMinutes();
}
}

View File

@@ -1,15 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Core;
use Pterodactyl\Events\Event;
interface ReceivesEvents
{
/**
* Handles receiving an event from the application.
*
* @param \Pterodactyl\Events\Event $notification
*/
public function handle(Event $notification): void;
}

View File

@@ -1,24 +0,0 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Contracts\Criteria;
use Pterodactyl\Repositories\Repository;
interface CriteriaInterface
{
/**
* Apply selected criteria to a repository call.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param \Pterodactyl\Repositories\Repository $repository
* @return mixed
*/
public function apply($model, Repository $repository);
}

View File

@@ -1,26 +0,0 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Contracts\Extensions;
use Hashids\HashidsInterface as VendorHashidsInterface;
interface HashidsInterface extends VendorHashidsInterface
{
/**
* Decode an encoded hashid and return the first result.
*
* @param string $encoded
* @param null $default
* @return mixed
*
* @throws \InvalidArgumentException
*/
public function decodeFirst($encoded, $default = null);
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Contracts\Http;
interface ClientPermissionsRequest
{
/**
* Returns the permissions string indicating which permission should be used to
* validate that the authenticated user has permission to perform this action against
* the given resource (server).
*/
public function permission(): string;
}

View File

@@ -1,83 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository;
use Illuminate\Support\Collection;
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
interface AllocationRepositoryInterface extends RepositoryInterface
{
/**
* Set an array of allocation IDs to be assigned to a specific server.
*
* @param int|null $server
* @param array $ids
* @return int
*/
public function assignAllocationsToServer(int $server = null, array $ids): int;
/**
* Return all of the allocations for a specific node.
*
* @param int $node
* @return \Illuminate\Support\Collection
*/
public function getAllocationsForNode(int $node): Collection;
/**
* Return all of the allocations for a node in a paginated format.
*
* @param int $node
* @param int $perPage
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
*/
public function getPaginatedAllocationsForNode(int $node, int $perPage = 100): LengthAwarePaginator;
/**
* Return all of the unique IPs that exist for a given node.
*
* @param int $node
* @return \Illuminate\Support\Collection
*/
public function getUniqueAllocationIpsForNode(int $node): Collection;
/**
* Return all of the allocations that exist for a node that are not currently
* allocated.
*
* @param int $node
* @return array
*/
public function getUnassignedAllocationIds(int $node): array;
/**
* Get an array of all allocations that are currently assigned to a given server.
*
* @param int $server
* @return array
*/
public function getAssignedAllocationIds(int $server): array;
/**
* Return a concatenated result set of node ips that already have at least one
* server assigned to that IP. This allows for filtering out sets for
* dedicated allocation IPs.
*
* If an array of nodes is passed the results will be limited to allocations
* in those nodes.
*
* @param array $nodes
* @return array
*/
public function getDiscardableDedicatedAllocations(array $nodes = []): array;
/**
* Return a single allocation from those meeting the requirements.
*
* @param array $nodes
* @param array $ports
* @param bool $dedicated
* @return \Pterodactyl\Models\Allocation|null
*/
public function getRandomAllocation(array $nodes, array $ports, bool $dedicated = false);
}

View File

@@ -1,43 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository;
use Pterodactyl\Models\User;
use Illuminate\Support\Collection;
interface ApiKeyRepositoryInterface extends RepositoryInterface
{
/**
* Get all of the account API keys that exist for a specific user.
*
* @param \Pterodactyl\Models\User $user
* @return \Illuminate\Support\Collection
*/
public function getAccountKeys(User $user): Collection;
/**
* Get all of the application API keys that exist for a specific user.
*
* @param \Pterodactyl\Models\User $user
* @return \Illuminate\Support\Collection
*/
public function getApplicationKeys(User $user): Collection;
/**
* Delete an account API key from the panel for a specific user.
*
* @param \Pterodactyl\Models\User $user
* @param string $identifier
* @return int
*/
public function deleteAccountKey(User $user, string $identifier): int;
/**
* Delete an application API key from the panel for a specific user.
*
* @param \Pterodactyl\Models\User $user
* @param string $identifier
* @return int
*/
public function deleteApplicationKey(User $user, string $identifier): int;
}

View File

@@ -1,14 +0,0 @@
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Contracts\Repository;
interface ApiPermissionRepositoryInterface extends RepositoryInterface
{
}

View File

@@ -1,38 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository\Attributes;
interface SearchableInterface
{
/**
* Set the search term.
*
* @param string|null $term
* @return $this
* @deprecated
*/
public function search($term);
/**
* Set the search term to use when requesting all records from
* the model.
*
* @param string|null $term
* @return $this
*/
public function setSearchTerm(string $term = null);
/**
* Determine if a valid search term is set on this repository.
*
* @return bool
*/
public function hasSearchTerm(): bool;
/**
* Return the search term.
*
* @return string|null
*/
public function getSearchTerm();
}

View File

@@ -1,65 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository\Daemon;
use GuzzleHttp\Client;
use Pterodactyl\Models\Node;
use Pterodactyl\Models\Server;
interface BaseRepositoryInterface
{
/**
* Set the node model to be used for this daemon connection.
*
* @param \Pterodactyl\Models\Node $node
* @return $this
*/
public function setNode(Node $node);
/**
* Return the node model being used.
*
* @return \Pterodactyl\Models\Node|null
*/
public function getNode();
/**
* Set the Server model to use when requesting information from the Daemon.
*
* @param \Pterodactyl\Models\Server $server
* @return $this
*/
public function setServer(Server $server);
/**
* Return the Server model.
*
* @return \Pterodactyl\Models\Server|null
*/
public function getServer();
/**
* Set the token to be used in the X-Access-Token header for requests to the daemon.
*
* @param string $token
* @return $this
*/
public function setToken(string $token);
/**
* Return the access token being used for requests.
*
* @return string|null
*/
public function getToken();
/**
* Return an instance of the Guzzle HTTP Client to be used for requests.
*
* @param array $headers
* @return \GuzzleHttp\Client
*
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function getHttpClient(array $headers = []): Client;
}

View File

@@ -1,16 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository\Daemon;
use Psr\Http\Message\ResponseInterface;
interface CommandRepositoryInterface extends BaseRepositoryInterface
{
/**
* Send a command to a server.
*
* @param string $command
* @return \Psr\Http\Message\ResponseInterface
*/
public function send(string $command): ResponseInterface;
}

View File

@@ -1,16 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository\Daemon;
use Psr\Http\Message\ResponseInterface;
interface ConfigurationRepositoryInterface extends BaseRepositoryInterface
{
/**
* Update the configuration details for the specified node using data from the database.
*
* @param array $overrides
* @return \Psr\Http\Message\ResponseInterface
*/
public function update(array $overrides = []): ResponseInterface;
}

View File

@@ -1,50 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository\Daemon;
use stdClass;
use Psr\Http\Message\ResponseInterface;
interface FileRepositoryInterface extends BaseRepositoryInterface
{
/**
* Return stat information for a given file.
*
* @param string $path
* @return \stdClass
*
* @throws \GuzzleHttp\Exception\RequestException
*/
public function getFileStat(string $path): stdClass;
/**
* Return the contents of a given file if it can be edited in the Panel.
*
* @param string $path
* @return string
*
* @throws \GuzzleHttp\Exception\RequestException
*/
public function getContent(string $path): string;
/**
* Save new contents to a given file.
*
* @param string $path
* @param string $content
* @return \Psr\Http\Message\ResponseInterface
*
* @throws \GuzzleHttp\Exception\RequestException
*/
public function putContent(string $path, string $content): ResponseInterface;
/**
* Return a directory listing for a given path.
*
* @param string $path
* @return array
*
* @throws \GuzzleHttp\Exception\RequestException
*/
public function getDirectory(string $path): array;
}

View File

@@ -1,23 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository\Daemon;
use Psr\Http\Message\ResponseInterface;
interface PowerRepositoryInterface extends BaseRepositoryInterface
{
const SIGNAL_START = 'start';
const SIGNAL_STOP = 'stop';
const SIGNAL_RESTART = 'restart';
const SIGNAL_KILL = 'kill';
/**
* Send a power signal to a server.
*
* @param string $signal
* @return \Psr\Http\Message\ResponseInterface
*
* @throws \Pterodactyl\Exceptions\Repository\Daemon\InvalidPowerSignalException
*/
public function sendSignal(string $signal): ResponseInterface;
}

View File

@@ -1,80 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository\Daemon;
use Psr\Http\Message\ResponseInterface;
interface ServerRepositoryInterface extends BaseRepositoryInterface
{
/**
* Create a new server on the daemon for the panel.
*
* @param array $structure
* @param array $overrides
* @return \Psr\Http\Message\ResponseInterface
*
* @throws \GuzzleHttp\Exception\RequestException
*/
public function create(array $structure, array $overrides = []): ResponseInterface;
/**
* Update server details on the daemon.
*
* @param array $data
* @return \Psr\Http\Message\ResponseInterface
*/
public function update(array $data): ResponseInterface;
/**
* Mark a server to be reinstalled on the system.
*
* @param array|null $data
* @return \Psr\Http\Message\ResponseInterface
*/
public function reinstall(array $data = null): ResponseInterface;
/**
* Mark a server as needing a container rebuild the next time the server is booted.
*
* @return \Psr\Http\Message\ResponseInterface
*/
public function rebuild(): ResponseInterface;
/**
* Suspend a server on the daemon.
*
* @return \Psr\Http\Message\ResponseInterface
*/
public function suspend(): ResponseInterface;
/**
* Un-suspend a server on the daemon.
*
* @return \Psr\Http\Message\ResponseInterface
*/
public function unsuspend(): ResponseInterface;
/**
* Delete a server on the daemon.
*
* @return \Psr\Http\Message\ResponseInterface
*/
public function delete(): ResponseInterface;
/**
* Return details on a specific server.
*
* @return \Psr\Http\Message\ResponseInterface
*/
public function details(): ResponseInterface;
/**
* Revoke an access key on the daemon before the time is expired.
*
* @param string|array $key
* @return \Psr\Http\Message\ResponseInterface
*
* @throws \GuzzleHttp\Exception\RequestException
*/
public function revokeAccessKey($key): ResponseInterface;
}

View File

@@ -1,52 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository;
use Pterodactyl\Models\User;
use Pterodactyl\Models\DaemonKey;
use Illuminate\Support\Collection;
interface DaemonKeyRepositoryInterface extends RepositoryInterface
{
/**
* String prepended to keys to identify that they are managed internally and not part of the user API.
*/
const INTERNAL_KEY_IDENTIFIER = 'i_';
/**
* Load the server and user relations onto a key model.
*
* @param \Pterodactyl\Models\DaemonKey $key
* @param bool $refresh
* @return \Pterodactyl\Models\DaemonKey
*/
public function loadServerAndUserRelations(DaemonKey $key, bool $refresh = false): DaemonKey;
/**
* Return a daemon key with the associated server relation attached.
*
* @param string $key
* @return \Pterodactyl\Models\DaemonKey
*
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function getKeyWithServer(string $key): DaemonKey;
/**
* Get all of the keys for a specific user including the information needed
* from their server relation for revocation on the daemon.
*
* @param \Pterodactyl\Models\User $user
* @return \Illuminate\Support\Collection
*/
public function getKeysForRevocation(User $user): Collection;
/**
* Delete an array of daemon keys from the database. Used primarily in
* conjunction with getKeysForRevocation.
*
* @param array $ids
* @return bool|int
*/
public function deleteKeys(array $ids);
}

View File

@@ -1,16 +0,0 @@
<?php
namespace Pterodactyl\Contracts\Repository;
use Illuminate\Support\Collection;
interface DatabaseHostRepositoryInterface extends RepositoryInterface
{
/**
* Return database hosts with a count of databases and the node
* information for which it is attached.
*
* @return \Illuminate\Support\Collection
*/
public function getWithViewDetails(): Collection;
}

Some files were not shown because too many files have changed in this diff Show More