immich
immich copied to clipboard
feat: user and server license endpoints
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
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
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
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.