cross-posted from: https://lemmy.ml/post/12624334

Ente - Open sourcing our server

11 points

If you really want to serve the self-hosting community, please improve your documentation. As someone unfamiliar with this product, I have no idea what to do with this once I clone the repo. I hunted and found a compose.yaml file, but it’s not clear if this is all I need.

permalink
report
reply
30 points

The docs directory literally has a stub on getting the repo up and serving and also a note that they are cleaning up and working on the documentation https://github.com/ente-io/ente/tree/main/docs

permalink
report
parent
reply
-2 points

It’s a stub and almost worthless.

permalink
report
parent
reply
7 points

I swear people will not do even the most basic reading before complaining

permalink
report
parent
reply
3 points

Yeah, and it’s so comprehensive.

yarn install
yarn dev

My point stands.

permalink
report
parent
reply
1 point

Sure, how do I change the data path ? The config path too ? Yeah people don’t read when there is no documentation

permalink
report
parent
reply
-14 points

The first two things I saw:

  • docker seems to be required
  • the download page seems to require javascript

Too much neu hype. Done.

permalink
report
reply
10 points

I’m unsure about the end-to-end encryption aspect. While this feature is great for a cloud service like ente.io, it doesn’t really help much in a selfhosted scenario - and might make backups more complicated. Any other opinions on this?

permalink
report
reply
0 points

Would probably be trivial for a local authority to hack your server and collect the necessary info that way.

I mean that’s the main reason I self-host anyway.

permalink
report
parent
reply
25 points

Remotely hacking into my server is probably harder than just walking into my home with a warrant and confiscate everything.

permalink
report
parent
reply
9 points
*
  1. Yes but then they need to get a warrant.

  2. All the more reason to have it encrypted since they can’t access it even with a warrant and confiscation.

permalink
report
parent
reply
-4 points

Do you want your ISP to be able to spy on your private pictures when uploading them to your self-hosted server? End-to-end encryption is a no-brainer every time you transmit private data online

permalink
report
parent
reply
3 points

Their model is that the server doesn’t know what the pictures are.

Which is fine. It’s cool that it exists as an option, especially with someone else hosting your pictures. But it’s not for me. I want my server to see my pictures so it can play with them.

permalink
report
parent
reply
2 points

so it can play with them

Papa jpeg: “this little jpeg went to market, this one stayed home, and this one went weeeeeee all the way along the download stream!”

Other little jpegs: “hoorayyyyyyy”

permalink
report
parent
reply
7 points

No, but thats what TLS does absolutely fine.

permalink
report
parent
reply
1 point

Not only backups, but also migration

permalink
report
parent
reply
49 points

AGPL-3.0

Nice

permalink
report
reply
4 points

as should be

permalink
report
parent
reply
15 points

I’m trying to learn about licensing. Why do you like AGPL-3.0 compared to others?

permalink
report
parent
reply
32 points
*

The AGPL applies copyleft to web services. If you’re learning about licensing, it might be worth googling copyleft. Fascinating concept, and, in my opinion, something to subscribe to.

permalink
report
parent
reply
12 points
*

In very basic terms - GPL means that any modifications you make to a code base and distribute to public, you need to keep the license as GPL and open source all your modifications.

Once cloud started becoming a thing, the cloud vendors went “Well ackchyually🤓, the code changes we’re making are hosted on OUR server so we’re not technically distributing them to the public. So fuck you we have no obligation to make them open source”.

Which is why AGPL exists so even server side code needs to be public. Since the application in question here is a backend service, it’ll always be used server side and so any forks need to be open source.

permalink
report
parent
reply
14 points

If you haven’t already, check out https://choosealicense.com/licenses/ . This gives a broad overview of the common open source licenses. And if you’re just starting out, one of the first things you’ll want to learn is that the licenses fall into either a permissive or copyleft category. You’ll want to make sure you understand the difference between those broad categories.

Shortly, permissive have less to no strings attached to use their code, and copyleft requires you to retain the same licensing terms meaning if you publish under GPLv3 then someone using/ modifying your code needs to also publish under GPLv3. Copyleft licenses ensure that open source code stays open source.

permalink
report
parent
reply
1 point

Only really nice when not CLA is required and every contributor retains their copyright. Ente doesn’t seem to require a CLA.

Otherwise it allows the owner to just take the changes from their contributors and change the license at a later date.

permalink
report
parent
reply
2 points

Ente doesn’t seem to require a CLA.

It turns out, they do have a CLA (with full copyright assignment 😢).

permalink
report
parent
reply
5 points
*

edit: the two issues i raised in this comment had both already been addressed.

this was the developer’s reply on matrix:

  1. We do have a CLA: https://cla-assistant.io/ente-io/ente
  2. We will update the iOS app to offer you an option to point to your self hosted instance (so that you can save yourself the trouble of building it): https://github.com/ente-io/ente/discussions/504
  3. The portion of the document that deals with authentication has been outdated, my bad. We’ve adopted SRP to fix the concerns that were pointed out: https://ente.io/blog/ente-adopts-secure-remote-passwords/
here is my original comment

AGPL-3.0

Nice

This would be nice, but, this repo includes an iOS app, and AGPL3 binaries cannot be distributed via Apple’s App Store!

AGPL3 (without a special exception for Apple, like NextCloud’s iOS app has) is incompatible with iOS due to the four paragraphs of the license which mention “Installation Information” (known as the anti-tivoization clause).

Only the copyright holder(s) are able to grant Apple permission to distribute binaries of AGPL3-licensed software to iOS users under non-AGPL3 terms.

Every seemingly-(A)GPL3 app on Apple’s App Store has either copyright assignment so that a single entity has the sole right to distribute binaries in the App Store (eg, Signal messenger) or uses a modified license to carve out an Apple-specific exception to the anti-tivoization clause (eg, NextCloud). In my opinion, the first approach is faux free software, because anyone forking the software is not allowed to distribute it via the channel where the vast majority of users get their apps. (In either case, users aren’t allowed to run their own modified versions themselves without agreeing to additional terms from Apple, which is part of what the anti-tivoization clause is meant to prevent.)

Only really nice when not CLA is required and every contributor retains their copyright. Ente doesn’t seem to require a CLA.

I definitely agree here! But if it’s true that they’re accepting contributions without a CLA, and they haven’t added any iOS exception to their AGPL3 license, then they themselves would not be allowed to ship their own iOS app with 3rd party contributions to it! 😱 edit: it’s possible this is the case and Apple just hasn’t noticed yet, but that is not a sustainable situation if so.

If anyone reading this uses this software, especially on iOS, I highly recommend that you send the developers a link to this comment and encourage them to (after getting the consent of all copyright holders) add something akin to NextCloud’s COPYING.iOS to their repository ASAP.

cc @ioslife@lemmy.ml @baduhai@sopuli.xyz @skariko@feddit.it

(i’m not a lawyer, this is not legal advice, lol)

edit: in case a dev actually sees this… skimming your architecture document it looks like when a user’s email is compromised (“after you successfully verify your email”), the attacker is given the encryptedMasterKey (encrypted with keyEncryptionKey, which is derived from a passphrase) which lets them perform an offline brute-force attack on the passphrase. Wouldn’t it make more sense to require the user to demonstrate knowledge of their passphrase to the server prior to giving them the encryptedMasterKey? For instance, when deriving keyEncryptionKey, you could also derive another value which is stored on the server and which the client must present prior to receiving their encryptedMasterKey. The server has the opportunity to do offline attacks on the passphrase either way, so it seems like there wouldn’t be a downside to this change. tldr: you shouldn’t let adversaries who have compromised a user’s email account have the ability to attack the passphrase offline.

(i’m not a cryptographer, but this is cryptography advice)

permalink
report
parent
reply
1 point

That’s complicated to do correctly. Normally, for the server to verify the user has the correct password, it needs to know or receive the password, at which point it could decrypt all the user’s files. They’d need to implement something like SRP.

permalink
report
parent
reply
8 points

Happy to be a paying customer of Ente, always delivering 🙌

permalink
report
reply

Selfhosted

!selfhosted@lemmy.world

Create post

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

Rules:

  1. Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

Community stats

  • 3.4K

    Monthly active users

  • 3.4K

    Posts

  • 77K

    Comments