Skip to main content

Relicensing Pelican to AGPL

· 5 min read
Ryan Kubi
Wings Maintainer
Lance Pioch
Lead Maintainer

Introduction

We forked from Pterodactyl and made the decision to relicense the Panel from the original MIT license to the AGPL license. This is an impactful change that was carefully considered by the team to help us move towards the future we envision. This ensures the community will benefit by encouraging and accepting more open source contributions. One of our core principles is that our software should be free, open source, and benefit the community and ecosystem.

The AGPL-3 License

The AGPL license is what is known as a copyleft type license. It requires that any modifications to a public Panel must be open sourced under the same license. Private Panels do not have that restriction. As long as your Panel is not open to the public, it’s going to be considered for private usage. Private usage typically includes your friends, family, coworkers, etc.

What this means for users

Pelican is completely free to users and always will be!  We are committed to fostering an environment that encourages the community to participate in our development process through various means. You are free to do anything to your private Panel including installing plugins, eggs, and themes!

What this means for developers

Developers are always welcomed and encouraged to build with or on top of our codebase. The new license simply requires these modifications to be released under the same license if your instance is public.

One additional very important point. We want contributors to receive recognition and payment for their hard work. We are working to introduce the concept of paying developers directly for their contributions. A budget has been established that will redirect donations and even specific bounties directly back to developers.

What this means for companies

Companies rely on modifications to set them apart from the competition. We offer Pelican under a commercial license that allows modifications without the requirement to open source your changes. For more information about this commercial license please reach out to [email protected]. This also comes with dedicated 1:1 support calls directly with our team every month.

Relicensing Process

Once we had decided to relicense the project the first question was, how can we do this?  There is little legal precedent on how to relicense open source software, but it has been done many times before. Notable examples include when Mozilla relicensed Firefox from the Netscape Public License to the Mozilla Public License. Additional examples can be found at https://en.wikipedia.org/wiki/Software_relicensing.

It was important to our team the process we undertook to relicense the code was public and shared with the community. There have been many historical contributions and taking these into consideration would complicate the process. Therefore, we decided to use the latest committer in the line-by-line git blame for each file. This means that for every line in every file we’re giving credit to the last person that updated that line.

In order to relicense a source code file we need the permission from the overall majority owner. A file is considered majority owned by an author if 90%+ of the lines have last been updated by that author.

Permission

In order to relicense the code we need permission from the authors we identify. Pelican was launched with the direct support of most of the developers previously from Pterodactyl. We have explicit permission from nearly every majority owner. The remaining authors’ files will retain the original license.

The Tool

We used a simple python script that utilizes git blame to list each file and generate per-line blame listings. The scan_licenses.py script is linked here so that this process can be fully understood and reproduced. Here’s example usage:

$ python3.12 scan_licenses.py | egrep -v 'migration'

The Numbers

The Panel

The Pelican Panel GitHub repository consists of 1332 files as of Mar 29, 2024. With Contributors’ consent we accounted for 1324/1332 of the Panel’s source code files. The remaining files explicitly retain the original license at the top of their source code.

The Contributor License Agreement

In addition to the AGPL license Pelican will also be available under a commercial license.  In order to ensure that we can dual license the Pelican software and still allow open source contributions we’ve created a Contributor License Agreement.  This is a legal agreement, so it’s important to refer to the agreement itself for exact details, but I’ll attempt to summarize here.

  • Contributors retain all rights to their contributions

  • Contributors grant perpetual rights to copyright, patent, relicense, offer for sale, or transfer the Pelican Project including your contributions

  • Contributors represent that their contributions are their own work

Essentially this means that your contributions will always be attributed to you, but you grant the Pelican Developers the right to use it.  In return the CLA commits the Pelican Developers to not use your contributions in a way that is contrary to the public benefit.

Our Commitment to Open Source

The license change was undertaken with the goal of a stronger and more cohesive open source community.  We want Pelican to be free for everyone while also supporting a community that rewards developers for their contributions.  Pelican will always be open source software that is free for personal and commercial use.

Panel Translations

· 2 min read
Lance Pioch
Lead Maintainer

Howdy everyone, Happy Friday - it’s been a real quick first 3 weeks! If you haven’t already seen it, we have officially chosen to use Crowdin as a tool that the community can use to directly contribute to Pelican. We hope that this allows you to more easily share Pelican Panel with your friends and fellow cohorts.

I want to specifically give thanks to the huge number of awesome members for helping us translate so far:

  • robbinnn (Turkish, Russian)
  • yu_solt (Japanese)
  • fyber (Greek)
  • vetyp (Bulgarian)
  • lenlino (Japanese)
  • louanbastos (Portuguese, Brazilian)
  • MikkelHebel (Danish)
  • Mixerboy24 (Finnish)
  • kragleh (Slovak)
  • Kirill2255 (Russian, Belarusian)
  • vibesfr_ (French)
  • Fabian-Ser (Dutch)
  • KuBeL (French)
  • monabean (Finnish)
  • llek (Slovak)
  • mtn16 (Czech)
  • arciCZ (Czech)
  • Khao_YT (Thai)
  • Shaun2177 (Hebrew)
  • Bobu5 (Indonesian)
  • Rudolfet (Italian)
  • huguitis (Spanish, Catalan)
  • Enotuk (Russian, Belarusian, Danish, German, Polish)
  • Jampi (Hungarian, Afrikaans)
  • mafen (Norwegian)
  • edwardcoder (Russian)
  • gOOvER (German)
  • GriffenG (Danish)
  • EternalTheGod (Turkish)
  • ShreddedPaper (Thai)
  • kingtino (Croatian)
  • xzolw (Polish)
  • DerLev (German)
  • setpopa (Czech)
  • arksc (Vietnamese)
  • xGranolah (Polish)
  • Netsukii (Italian)
  • HerrSammy (German)
  • irochi (Korean)
  • CappeDiem (Finnish)
  • AlexanderOFGR (Greek)
  • Turkidev (Arabic)
  • PM-Kirill (Belarusian, Russian, Danish, German, Polish, Czech)
  • bruhbruhbruh344343 (Afrikaans, Hungarian)
  • Pedervau (Norwegian)
  • Remixiak (Polish)
  • vovamod (Ukrainian)
  • rishon (Hebrew)
  • Boy132 (German)
  • merseh (Turkish)
  • Jiricech2059 (Slovenian, French)
  • andreiusq (Romanian)
  • QuintenQVD (Dutch)
  • hustender (German)
  • efekanrasit (Turkish)
  • liborsaf (Czech)
  • qsasukep (Polish)
  • MrCreepyCraft32 (French)
  • Anas-1554 (Hindi)
  • SimonStjernholm (Danish)
  • bagou450 (French)
  • Ikkdaan (Belarusian, Russian)
  • Kokonat007 (Czech)
  • Hituzip (Russian)
  • martin-bndr (German)
  • imirochi (Korean)
  • JouRambo (German)
  • ItsNeil (Hindi)
  • Vikbor5342 (Swedish)
  • BlueFireRO (Romanian)
  • WiFlow (Swedish)
  • lepetittechnicien28 (French)
  • xela-the-proto (Italian)
  • inishido (Indonesian)
  • andyaguo (Chinese Simplified)
  • InvalidPanda (German)
  • GarfieldTV (Swedish)
  • TeemoCell (German)
  • Smeja64 (Czech)
  • Antipovv (Russian)
  • sirnugget (Swedish)
  • ianlot (Hungarian)
  • cojocaru-david (Romanian)
  • Ikdan (Russian, Belarusian)
  • xIPrumIx (Arabic)
  • softwarenoob (Belarusian, Finnish)

An additional huge thanks goes out to Senna for helping us navigate through the software and set up everything too.

Commercial License FAQ

· 3 min read
Michael Parker
Egg Maintainer
Lance Pioch
Lead Maintainer

As some of you know, people have been asking us questions about when you need a commercial license or not.

I asked people for questions they wanted clarifications on. Here are the questions as asked, and their answers.

modification questions

  1. Q: What are the plans for the theming part of Pelican Panel and what will the front end look like?

    A: Using Filament themes placed in /resources/css/filament will work and don't need a license, and so long as no files that are included with the panel are modified in the process, you do not need a commercial license.

info

A native theme selector is currently planned.

warning

Themes are unable to heavily change the layout of the panel because they are limited to CSS. However plugins can completely and more easily rearrange components and add new ones and pages.

definitions

Theme: The color and style of the panel. (Ex. button colors or fonts)
Layout: The way the panel is organized. (Ex. where the cpu usage shows up.) Panel Code: The files that belong to the pelican-dev/panel repository

  1. Q: Will only styling be a thing, or is there also some sort of support for custom layouts and functionalities?

    A: Custom layouts can be made with either plugins or by writing a custom frontend that uses the API to interact with the panel.

  2. Q: Some users will probably use "public" themes for the panel (maybe smth like unix or so), if they are a public host, since they aren't the ones making the theme, do they need to pay the commercial license?

    A: The answer for question 1 should answer this, but if a theme is open sourced OR does not modify the Panel's file it is fine.

warning

If your Pelican Panel modifications are not open sourced, you are required to obtain a commercial license.

Still good questions

  1. Q: What kind of SLA are you guys proposing for any commercial support plans?

    A: Currently this depends on what level of support a customer would want. We are discussing options internally right now. Please contact us at [email protected] with further inquiries.

  2. Q: Would it be possible for you guys to add a real data panel like splint or grafana or netdata for the server metrics?

    A: Currently exporting server metrics to a service like Grafana is not planned but may be considered.

info

As discussed on the discord server this may be better served by a monitoring service such as a host level netdata install.

  1. Q: When Pelican goes public, will conversions be considered?

    A: You can use your existing Pterodactyl configuration and drop in Pelican, it will update the database when installed.

warning

We do not support reverting back to Pterodactyl. It isn't challenging, but we strongly recommend that you backup your files and database in case you want to.

info

Wings is not a one way conversion, at this time, as it has far fewer changes that impact things.

Monumental Head Start

· One min read
Lance Pioch
Lead Maintainer

This past weekend was nothing short of incredible for the Pelican community. We're thrilled to announce that over 5,000 members have joined us, a testament to the growing interest and trust in our project. A heartfelt thank you to each one of you for choosing to be part of our journey!

We also want to express our gratitude for the overwhelming response to our recent survey. With over 1,000 responses already, we're gathering invaluable data that will directly influence enhancements to Pelican Panel. Your feedback is crucial, and we're committed to making the platform even more user-friendly and feature-rich.

A special thanks goes out to our contributors, donors, and dedicated team members. Your support and hard work are the backbone of this project, making everything we do possible.

Looking forward, we are excited about the updates and new features we plan to roll out. Stay tuned for more updates, and please continue to share your thoughts and suggestions with us. Together, we're making Pelican Panel the best it can be.

Thank you for making this weekend a milestone in our history!

New Beginning

· 2 min read
Lance Pioch
Lead Maintainer
Michael Parker
Egg Maintainer
Ryan Kubi
Wings Maintainer
Charles Morgan
Docs Maintainer
Alex Scai
Panel Maintainer

Dear Community,

Today, we are thrilled to share with you an exciting new beginning. We are embarking on a new journey — one that leads us to the creation of Pelican Panel. Our vision is to build on top of the foundation we've had the privilege of being a part of previously, while also exploring new horizons and introducing features that we believe will greatly benefit the community.

In the coming months, we are excited to roll out several updates that we think you'll really look forward to, including:

  • Install Plugins: ability to create, edit, upload plugins (just as easy as eggs)
  • Easier Installation: greatly streamlining the usage and setup
  • Better Code: improving and simplifying the code base to encourage open source contributions
  • Accepting Suggestions: we are accepting new feature suggestions and voting for them
  • Active Discord: panel integrations with discord (and steam) for logins and role/permissions sync
  • GitHub Bounties: ability to receive and pay for and fund github issues
  • Central Hub: our marketplace for trusted plugins and services (eggs)

We understand that change can be daunting and may lead to questions. We want to assure you that we are here to listen and address any concerns you may have. Our door is always open for feedback, suggestions, or any thoughts you wish to share. We are just beginning and excited about what the future holds. We invite you to join us on this new adventure, to continue the collaboration, innovation, and community spirit that has always been at the heart of our efforts.

Thank you for your continued support and trust. Here's to new beginnings, and to a future filled with great new possibilities!

Best regards,
Pelican Team