immich icon indicating copy to clipboard operation
immich copied to clipboard

feat: user and server license endpoints

Open zackpollard opened this issue 1 year ago • 3 comments

This is the initial server side work to get ready for accepting optional payments for Immich. These endpoints simply allow us to store the client and server license keys on the server and retrieve whether the server is licensed or not so we know if someone has paid for Immich. The upcoming work to add an optional payments system will use these endpoints.

TODO: Add prod public keys

zackpollard avatar Jun 28 '24 16:06 zackpollard

I think a lot of people are going to ask these questions, so I'll get started:

  • What does adding a license key do/change in the app and/or web?
  • Is any of this information transmitted outside the user's PC, either with or without a license?

mmomjian avatar Jun 28 '24 16:06 mmomjian

@mmomjian

What does adding a license key do/change in the app and/or web?

There will be a text that says your instance is either licensed or unlicensed

Is any of this information transmitted outside the user's PC, either with or without a license?

None

alextran1502 avatar Jun 28 '24 16:06 alextran1502

I think a lot of people are going to ask these questions, so I'll get started:

* What does adding a license key do/change in the app and/or web?

* Is any of this information transmitted outside the user's PC, either with or without a license?

We will have a dedicated blog post to announce this stuff, I would prefer we keep the questions until then, I will answer these questions though. It's important to remember what we initially announced though, no features will ever be locked behind a paywall, these payments will be totally optional.

What does adding a license key do/change in the app and/or web?

It doesn't change anything, the most we have discussed currently is just showing "Unlicensed" in the bottom left of the web app.

Is any of this information transmitted outside the user's PC, either with or without a license?

The payments platform will be an external website hosted by Futo, you will pay, receive an email and then you enter that key into the app or web to appear as "licensed". As you can see from this code there are no external checks, all validation is done locally using signing and verification of the keys.

zackpollard avatar Jun 28 '24 16:06 zackpollard