Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open sourcing Keygen #644

Closed
ezekg opened this issue Jul 18, 2022 · 4 comments
Closed

Open sourcing Keygen #644

ezekg opened this issue Jul 18, 2022 · 4 comments

Comments

@ezekg
Copy link
Member

ezekg commented Jul 18, 2022

About time. I’ve wanted to do this since day 1.

Pros

  • Larger adoption in enterprise/on-prem. They regularly ask about self-hosting.
  • Better customer success regarding compliance (GDPR, security, etc.)
  • Learn how larger corps deploy software on-prem and in the cloud (e.g. Docker, k8s).
  • Word of mouth growth.
  • Market leader. Snuff out the infinite stream of copycats.
  • Community.
  • DevRel boost from going OSS.
  • Marketing about going OSS.
  • Lessens pushback concerning my “bus-factor.”
  • Risk-adverse businesses can still use Keygen by self-hosting.
  • Build trust.
  • Less sales, more technical support? (The Dream™)

Cons

  • Security issues, known and unknown, become real issues. Get an audit beforehand? (See prereqs.)
  • Customers may cancel and self-host. This is my livelihood. (See sustainability.)
  • People think my code is 💩.

Sustainability

  • No, or “best effort”, support. No guarantees. Guaranteed support contracts can be purchased, aiming at larger corps at $999+/mo. May also help funnel smaller accounts into SaaS, since support pricing would be out of their price-range.
  • Quarterly release schedule. (I.e. updated self-hosting docs, new official GH release, Docker images, etc.)
  • Faster release schedule and security notifications for self-hosted customers.
  • Remove free tier from Cloud version? Instruct free users to self-host.
  • Charge setup fee for helping self-hosted customers onboard.
  • Create paid add-on for SSO (use a Rails Engine). SSO will be a part of Keygen EE.
  • Enable GH sponsorships.

Community

  • Slack group? Discord server? Or Matrix chat?

License

Good reads

Prereqs

  • Add permission system #470.
  • Encrypt license keys #675.
  • Add last checkout timestamp to license and machines #664.
  • Extract typed_parameters and envented to gems? (Rewrite typed_parameters.)
  • Add a standard Rails Dockerfile.
  • Add a SECURITY.md.
  • Add an ADOPTERS.md?
  • Add a CHANGELOG.md (start with a line e.g. "Keygen goes OSS.")
  • Add a .github/FUNDING.yml file for support contracts?
  • Update README.md.
  • Add a contributor’s license agreement? (See Airbyte and CLA Assistant.)
  • Add a deploy-to-Heroku button to README.
  • Add a deploy-to-Render button to README.
  • Add a deploy-to-Fly button to README.
  • Clean up code?
  • Security audit?
  • Move whitelisted/blacklisted IPs to env vars. Or in addition to Redis?
  • Add env vars for app config, e.g.:
    • KEYGEN_LICENSE_FILE=/etc/keygen/ee.lic
    • KEYGEN_LICENSE_KEY=XXXX-YYYY-ZZZZ-V3
    • KEYGEN_HOSTS=api.keygen.sh,stdout.keygen.sh
    • KEYGEN_TENANT_MODE=single|multi (or KEYGEN_MODE=multi[player]|single[player])
      • Multiplayer mode should only be sold to select EE customers. Designed for Keygen Cloud.
    • KEYGEN_REQUEST_LOG_RETENTION=30d
    • KEYGEN_EVENT_LOG_RETENTION=90d
  • First release, codenamed: "All Your Licensing Are Belong To Us^W You."
  • Write a blog post with the same title as above. (See these examples).
    • Alternate title: "Keygen, a software licensing and distribution API, goes open source"
    • Simple CTA on HN to kick off discussion without answering any questions off the bat:

      Author here!

      Happy to take any feedback or answer questions about this post.

  • Add CI. (Note: ensure both CE and EE are tested!)
    • Singleplayer CE
    • Singleplayer EE
    • Multiplayer EE
  • Add badges for uptime, CI, etc.:
    • Uptime: Better Uptime Badge
    • CI: Keygen CI
  • Close out old issues in all repos.
  • Run gitleaks.
  • Make Cronitor, Rails Autoscale, and other third-parties, optional.
  • Add version support policy (e.g. EOL after 1 year).
  • No tracking or telemetry.

Docs

  • Cover self-hosted install configuration.
  • Cover TRUSTED_PROXIES, HTTP_PROXY, HTTPS_PROXY, NO_PROXY env vars. (See this post from GitLab.)
  • Refs: Sentry, Plausible.

Support

  • Set up a 1x1 with a Keygen Engineer. Charge fee?
@ezekg
Copy link
Member Author

ezekg commented Jul 18, 2022

Related to #640.

@ezekg
Copy link
Member Author

ezekg commented Jul 18, 2022

I like Plausible’s self-hosting docs.

@ezekg
Copy link
Member Author

ezekg commented Mar 27, 2023

From Airbyte's ELv2 FAQs:

We chose ELv2 because it is very permissive with what you can do with the software.

You can basically build ANY product on top of Airbyte as long as you don’t:

  • Host Airbyte yourself and sell it as an ELT/ETL tool, or a replacement for the Airbyte solution.
  • Sell a product that directly exposes Airbyte’s UI or API.

Here is a non-exhaustive list of what you can do (without providing your customers direct access to Airbyte functionality):

  • I am creating an analytics platform and I want to use Airbyte to bring data in on behalf of my customers.
  • I am building my internal data stack and I want my team to be able to interact with Airbyte to configure the pipelines through the UI or the API.
  • ...

I'd clarify with "sell a product that directly exposes Keygen’s API for use outside of your product."

@ezekg
Copy link
Member Author

ezekg commented Jun 1, 2023

Closing. Heart pounding. Let's see how this goes.

@ezekg ezekg closed this as completed Jun 1, 2023
@ezekg ezekg unpinned this issue Jun 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant