Skip to content

Instantly share code, notes, and snippets.

@TekExplorer
Last active August 20, 2023 08:40
Show Gist options
  • Save TekExplorer/a9d5cb17b6984931dbb1015df0eb50f6 to your computer and use it in GitHub Desktop.
Save TekExplorer/a9d5cb17b6984931dbb1015df0eb50f6 to your computer and use it in GitHub Desktop.
Featherdactyl Info and Discussion/Brainstorming

Featherdactyl

What is Featherdactyl?

Featherdactyl is intended to be an app for Pterodactyl Panel made in Flutter. More than that, its intended to add features to any panel without modifications, and for those features that need modifications; it will be done sanely.

Current ideas

  • How should logging in to Feather work?
    • url + api key? url + user + pass?
    • save session as api key or cookies?
  • Human Readable Crontab like crontab.guru? any pub.dev package for this? forced to use js package? update: TekExplorer/dart_human_crontab
  • Theme System? How should it work?
  • Addon System? How should this work???
  • ?
  • ?
  • ? Present your ideas below!
@TekExplorer
Copy link
Author

Main goal for Feather is whatever features don't need any backend changes so everyone gets these features right away.

@yesBad
Copy link

yesBad commented Feb 28, 2022

I had been thinking of using a JSON/YAML file on the server-side that feather might pull and use for the theme.

That would probably work

@yesBad
Copy link

yesBad commented Feb 28, 2022

and does not sound that hard to pull of

@yesBad
Copy link

yesBad commented Feb 28, 2022

any pub.dev package for this? forced to use js package?

also this part.... wouldn't it be possible to make our own package for it? (do keep in mind I have pretty much no clue about Flutter)

@TekExplorer
Copy link
Author

how's this? just made it. TekExplorer/dart_human_crontab

@Ferks-FK
Copy link

Ferks-FK commented Mar 1, 2022

I saw another guy saying that he was going to make a system of addons for the panel, so that it would not be necessary to replace panel files.
But I don't know if he started this.

@TekExplorer
Copy link
Author

I don't know, but I do intend to make an addon system myself - i just don't know if there is a way to alter the ui or theme using the method i have in mind.

@devnote-dev
Copy link

Some ideas for the client side:

  • Websockets to show console output in the app
  • Prioritised control over subuser access
  • Favouriting servers in the server overview: this has been a requested feature for Ptero and would be useful for users with a lot of servers / admins that can view all servers
  • (Already mentioned) interchangeable themes: the GitHub app implements this pretty well

@TekExplorer
Copy link
Author

@devnote-dev

  1. That's a core feature, of course.
  2. What do you mean?
  3. How should this be implemented? should favorites be saved locally on the app? save it on the server with an addon? or perhaps some external "Feather" database to store preferences linked by url+username+password?
  4. Yep. but I was thinking that it would be neat to allow the server side to dictate a custom theme as well. how do you recommend that be done?

@yesBad
Copy link

yesBad commented Mar 9, 2022

  1. How should this be implemented? should favorites be saved locally on the app? save it on the server with an addon? or perhaps some external "Feather" database to store preferences linked by url+username+password?

imo "or perhaps some external "Feather" database to store preferences linked by url+username+password?" sounds like the best idea

@TekExplorer
Copy link
Author

  1. How should this be implemented? should favorites be saved locally on the app? save it on the server with an addon? or perhaps some external "Feather" database to store preferences linked by url+username+password?

imo "or perhaps some external "Feather" database to store preferences linked by url+username+password?" sounds like the best idea

this would be centralized though. (but then, perhaps it doesn't have to be the only way)

the issue that arises then is, what would I use to store this data, and how do I make it secure?

@TekExplorer
Copy link
Author

maybe it could be a FeatherProfile that you could login to, and it could work the same profile (which could include theme?) across panels?

@devnote-dev
Copy link

  1. What do you mean?
  2. How should this be implemented? should favorites be saved locally on the app? save it on the server with an addon? or perhaps some external "Feather" database to store preferences linked by url+username+password?
  3. Yep. but I was thinking that it would be neat to allow the server side to dictate a custom theme as well. how do you recommend that be done?
  • More extensive control over subuser access and permissions, perhaps extended permissions
  • It depends on the layout of the page, but theoretically there would be a section at the top of the servers overview page where favourited servers are listed, then the rest of the servers are shown below. Saving them locally on the app would be best for efficiency reasons (e.g. less requests needed if using a DB or API)
  • I'm still thinking about this but one idea that came up was allowing users to create custom themes for Feather, similarly to existing Pterodactyl themes, then have a page where you can manage themes.

@TekExplorer
Copy link
Author

  • More extensive control over subuser access and permissions, perhaps extended permissions

Don't see how i can do that. ptero v2 has it anyway.

  • It depends on the layout of the page, but theoretically there would be a section at the top of the servers overview page where favourited servers are listed, then the rest of the servers are shown below. Saving them locally on the app would be best for efficiency reasons (e.g. less requests needed if using a DB or API)

So a sort of "pinned" servers?

  • I'm still thinking about this but one idea that came up was allowing users to create custom themes for Feather, similarly to existing Pterodactyl themes, then have a page where you can manage themes.

Something that's gonna need more thought. Especially since I want to be able to have changable layouts too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment