pterodactyl / panel

Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.
https://pterodactyl.io
Other
6.74k stars 1.72k forks source link

Ability to add sftp driver #4535

Open sidboy55555 opened 1 year ago

sidboy55555 commented 1 year ago

Is there an existing feature request for this?

Describe the feature you would like to see.

The ability to add the Laravel sftp driver "league/flysystem-sftp" or "league/flysystem-sftp-v3".

It will give better compatibility for those who want to customize/mod the panel.

Describe the solution you'd like.

Upgrade Laravel and dependencies to match the requirements of league/flysystem-sftp-v3 or downgrade phpseclib to match the requirements of league/flysystem-sftp

Additional context to this request.

No response

parkervcp commented 1 year ago

The panel isn't the part running the sftp service. That is wings that is running that.

sidboy55555 commented 1 year ago

I'm not talking about the sftp connection for the wings data, but for adding a filesystem (config/filesystems.php) for panel data to be send between two servers

EDIT: note that this is more of a compatibility issue fix request, rather than a feature request, since I have a modded panel, and would like to have specific files to be stored over a sftp connection (using the league/flysystem-sftp(-v3) package).

EDIT2: league/flysystem-sftp-v3 is a sftp implementation that uses version 3 of phpseclib. when trying to add with composer I get this output:

Problem 1

  • league/flysystem-sftp-v3[2.4.0, ..., 2.5.0] require league/flysystem ^2.0.0 -> found league/flysystem[2.0.0, ..., 2.5.0] but these were not loaded, likely because it conflicts with another require.
  • league/flysystem-sftp-v3[3.0.0, ..., 3.0.23] require league/flysystem ^2.0.0 || ^3.0.0 -> found league/flysystem[2.0.0, ..., 2.5.0, 3.0.0, ..., 3.10.2] but these were not loaded, likely because it conflicts with another require.
  • league/flysystem-sftp-v3 3.1.1 requires league/flysystem ^3.0.0 -> found league/flysystem[3.0.0, ..., 3.10.2] but these were not loaded, likely because it conflicts with another require.
  • league/flysystem-sftp-v3[3.2.0, ..., 3.6.0] require league/flysystem ^3.0.14 -> found league/flysystem[3.0.14, ..., 3.10.2] but these were not loaded, likely because it conflicts with another require.
  • Root composer.json requires league/flysystem-sftp-v3 * -> satisfiable by league/flysystem-sftp-v3[2.4.0, ..., 2.5.0, 3.0.0, ..., 3.6.0].
matthewpi commented 1 year ago

Are you trying to do this on v1.10.4 or develop? Because develop is on Laravel 9 now which updated almost every composer dependency.

sidboy55555 commented 1 year ago

I've done this on v1.10.4, I'll try this out on th3 develop version when home on Friday. I suppose the develop version will be v1.11 in the future?

matthewpi commented 1 year ago

I've done this on v1.10.4, I'll try this out on th3 develop version when home on Friday. I suppose the develop version will be v1.11 in the future?

1.0-develop is going to be v1.11, yes. develop is going to be for v2. Currently both branches are identical but I plan on merging a bunch of v2 things relatively soon.

sidboy55555 commented 1 year ago

Sorry I couldn't test this last friday, I'll test this next week

sidboy55555 commented 1 year ago

I have just tested it in the dev build. and I'm able to install the "league/flysystem-sftp-v3" package in this version.

Feedback on this, I wasn't able to do "php artisan key:generate --force", since it gave the following error:

In EncryptionServiceProvider.php line 79: No application encryption key has been specified.

Manually pasting an existing key to the .env fixed it tho