[HN Gopher] Immich is changing its license from MIT to AGPLv3
       ___________________________________________________________________
        
       Immich is changing its license from MIT to AGPLv3
        
       Author : thunderbong
       Score  : 48 points
       Date   : 2024-02-11 18:00 UTC (5 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | jszymborski wrote:
       | Big fan of the AGPLv3 for the health of open-source web
       | applications, good on them!
        
       | orthoxerox wrote:
       | Very nice. I especially like that there's no CLA.
        
       | ein0p wrote:
       | For people who still haven't tried Immich, I urge you to do so.
       | If you self-host anything at all, which in 2024 you should, as a
       | technical person, it's literally half an hour worth of work to
       | self-host this full blown Google Photos alternative under Docker
       | Compose, and much of that time will be spent setting up Nginx
       | reverse proxy and downloading packages. The only thing that I
       | miss from Google Photos is landmark recognition (a lot of my
       | photos do not have GPS tags), but that can be added later I'm
       | sure. I'm just blown away that someone just went ahead and rolled
       | something this full featured for free and with no strings
       | attached.
        
         | xrd wrote:
         | I agree. It's an incredible clone. Flawless.
        
           | codestation wrote:
           | Doesn't seem to support encryption at rest nor object
           | storage, i will stick to Nextcloud for now.
        
             | ein0p wrote:
             | I also self-host NextCloud, and if we're honest, its image
             | hosting is pretty underwhelming in comparison. I moved it
             | to Immich. If those issues are critical to you, however,
             | that is a valid concern, but I'd venture to say they aren't
             | critical to most self-hosters, whereas good mobile sync, AI
             | integration (intelligent search and facial recognition),
             | and ease of use are. Immich excels at all three.
        
             | xrd wrote:
             | I didn't know that. I self host this on my own hardware in
             | my office. If I wanted encryption at rest, I would just do
             | it at the hard disk level I suppose.
        
         | kyriakos wrote:
         | Setup is easy, the problem is local storage as opposed to cloud
         | storage for the photo library
        
           | rpgwaiter wrote:
           | Is that a problem? That's kinda the whole point. It's docker,
           | so you can make a cloud drive mountpoint with rclone on the
           | host, then mount that path inside of docker if you really
           | wanted to
           | 
           | I imagine most people running immich also have a good amount
           | of local storage
        
             | earthling8118 wrote:
             | Setting it up in a way that is sufficiently robust is non-
             | trivial. It's not unworkable but we shouldn't underestimate
             | it.
        
         | poisonborz wrote:
         | With selfhosting, the problem was never really the software,
         | but everything around it. Getting an openly reachable web
         | address, securing it, the storage, making backups etc. There
         | are some nimble projects to simplify some parts of this, but
         | there are huge gaps still. Some important OSS celebs still
         | trumpet that "users will never self-host". But if and once this
         | vertical problem is solved, I'd expect a landfall, and we would
         | all look back at this intermittent "cloud era" as some dead-end
         | temporary dark age.
        
           | EspadaV9 wrote:
           | I gave up on making services openly reachable and instead
           | just put Wireguard on my server and then connect into that
           | and access things via their IP:port as though they were
           | local. At some point I might set up a reverse proxy so I can
           | give services names, but this has been fine for the past
           | year, so motivation to change it is low.
        
           | ein0p wrote:
           | All of that is super straightforward in 2024. The problem
           | before Immich came along was that software sucked in one way
           | or another. Take Photoprism - the leading solution (imo)
           | before Immich. Poor AI and search, poor mobile uploads, user
           | management requires CLI. Immich absolutely nails all of those
           | things and more. It's a nearly 1:1 Google Photos replacement
           | with total privacy, unlimited storage, and very similar user
           | interface. Thanks to Docker Compose all of this can be
           | brought up locally (to try out) in one minute flat, and
           | exposed remotely in half an hour. Or don't even expose it
           | remotely, and do what I do - set up WireGuard such that it
           | automatically connects when you're not at home and you get
           | access to your home network. That way you don't need to worry
           | about maintenance as much. An occasional update is all that's
           | needed since your audience is now "trusted".
        
         | pquki4 wrote:
         | As a software engineer who cares about privacy but does not
         | have much experience in security, ops or much time in
         | constantly patching servers, I trust Google more than myself in
         | not getting hacked, messing things up or unintentionally
         | leaking my own pictures to the public.
        
       | yeldarb wrote:
       | How can a project with 260 contributors and no CLA change their
       | license? Wouldn't they have to get approval from all of those
       | contributors or remove all that code?
        
         | buro9 wrote:
         | Apply it only to be contributions?
        
         | graemep wrote:
         | The MIT license allows re-licensing, so not in this case.
         | 
         | This is the whole point of permissive licenses - the
         | restrictions on what you do with it are minimal.
         | 
         | It is common for permissively licensed software to be
         | redistributed under proprietary licenses too.
        
           | BSDobelix wrote:
           | >The MIT license allows re-licensing, so not in this case.
           | 
           | That's absolutely NOT true, you can "sub-license" it, but not
           | re-license. If a contributor wrote a file you cannot change
           | the license from the file:
           | 
           | https://opensource.org/license/mit/
           | 
           | >>The above copyright notice and this permission notice shall
           | be included in all copies or substantial portions of the
           | Software.
           | 
           | >>including without limitation the rights to use, copy,
           | modify, merge, publish, distribute, sublicense, and/or sell
           | copies of the Software
        
             | dwheeler wrote:
             | You can't relicense the _original_ material, true.
             | 
             | But you can create a new version with changes and a
             | different license. The new license only applies to the new
             | changes, but if users use the software as a whole, users
             | must comply with the new license (as well as the MIT
             | license, which continues to apply to the unchanged parts).
             | 
             | As an oversimplification, if you combine 2 components with
             | 2 different licenses into 1 work, the recipients have to
             | comply with both licenses. MIT has few requirements and I
             | believe the AGPL includes all of them. So while technically
             | the MIT license still applies to the old code that did not
             | change, from the point of view of a recipient of the
             | combination, the results looks like a relicense.
        
               | BSDobelix wrote:
               | Exactly! Very well explained.
               | 
               | But:
               | 
               | >MIT license still applies to the old code that did not
               | change, from the point of view of a recipient of the
               | combination, the results looks like a relicense.
               | 
               | That's again not true, you cannot delete the MIT license
               | from that file, it's not important if you changed it, the
               | original license is still there plus your license that
               | don't contradicts the MIT license like "our license
               | allows to delete all prior licenses" yes your added code
               | is exclusively under your license but the whole file is
               | MIT+ that was partially confirmed with the BSD and AT&T
               | lawsuit (when AT&T took BSD code deleted the license and
               | lost because AT&T "stole" more code as Berkley hmmm
               | f're'e-licensed ;)
        
               | cassianoleal wrote:
               | That sounds very arbitrary but if that's the case,
               | instead of changing the MIT-licensed file you can just
               | create a new one and put the changed code there.
               | Eventually the MIT one will just be empty, or all of its
               | functions unused and it can be deleted.
        
             | tptacek wrote:
             | I'm not a lawyer, I just read the copyright lawyers who
             | post here, but I don't think this is all that complicated?
             | Once a literal, specific, concrete file is released MIT,
             | you can't "take it back". That specific file will always be
             | MIT. But you can, on a forward-moving basis, license all
             | your own _changes_ to that file however you 'd like. The
             | changes (and the changed versions of the file) have, absent
             | some binding contract that says otherwise, their own
             | copyright status.
             | 
             | This is why there is, for instance, OpenSSH: it's the
             | version of SSH that started when the SSH company decided to
             | use a restrictive license on a forward-moving basis. The
             | community just forked at the last permissive version and
             | took over development themselves.
             | 
             | That's how it's supposed to work?
        
               | BSDobelix wrote:
               | >That's how it's supposed to work?
               | 
               | Yes your are on point.
               | 
               | >That specific file will always be MIT. But you can, on a
               | forward-moving basis, license all your own changes to
               | that file however you'd like.
               | 
               | Exactly, that file is then MIT+YourLicense but one can
               | never take the MIT license away (except the copyright
               | holder).
               | 
               | Take away a (not owned) Copyright would be called
               | stealing.
               | 
               | Even the BEER-WARE LICENSE has this sentence:
               | 
               | >As long as you retain this notice you can do whatever
               | you want with this stuff. If we meet some day, and you
               | think this stuff is worth it, you can buy me a beer in
               | return. Poul-Henning Kamp
        
               | juliusdavies wrote:
               | I think the original author (or their heirs) can take
               | away that MIT license during a special "copyright
               | termination" window 35 years after granting it at least
               | in the USA.
        
           | ushakov wrote:
           | Right, you switch from MIT to GPL, but not the other way
           | around
        
         | fsckboy wrote:
         | I don't know for this project specifically, but previous
         | contributions to this project perhaps have turned "author
         | rights" over to the project, then the project relicensing is
         | within their rights. Projects often do this because these
         | license issues have come up before.
         | 
         | You can do this when you publish software under the GPL, and
         | then the FSF will take care of enforcing the license for you.
         | It's a popular thing to do because if you don't, you'd have to
         | get your own lawyer, etc.
         | 
         | the parallel comment about MIT licenses allowing relicensing is
         | also valid, just rounding out the explanations.
        
           | jra_samba wrote:
           | The FSF doesn't even enforce the license for its own
           | projects, let alone any random GPL project. Please don't give
           | people false ideas.
        
             | fsckboy wrote:
             | I'm talking about what is published on the GNU and FSF
             | sites. Whether they still actively do it is an interesting
             | question and I welcome your feedback, but I'm not spreading
             | false ideas, and my comment is "education" about various
             | aspects of licensing.
        
           | tsimionescu wrote:
           | What you're talking about is called a CLA, a contributor
           | licensing agreement, and is precisely what the project is
           | boasting they are _not_ doing. This prevents the company from
           | ever changing the license from AGPL to something else from
           | now on, since they wouldn 't own enough of the copyright.
        
         | pxc wrote:
         | MIT license is permissive; that's the whole point of it. You
         | can use MIT-licensed code to create AGPLv3-licensed derivative
         | works same as how you can use MIT code in proprietary software.
        
         | phoe-krk wrote:
         | It's simple. Let's say that for some software version 21.37.1
         | is MIT, but version 21.37.2 is AGPL (which is permitted, as
         | other comments already explained).
         | 
         | You can use any data from 21.37.1 under the MIT license, by
         | definition.
         | 
         | You can also use data from 21.37.2 that were not changed since
         | 21.37.1 under their original MIT license (they are the same
         | file, so the original license carries over!).
         | 
         | However, all data that was changed in 21.37.2+ is now AGPL.
         | Using code that contains any of these changes (including
         | version 21.37.2 as a whole) requires you to relicense your code
         | under AGPL.
        
       | Vt71fcAqt7 wrote:
       | >Languages
       | 
       | >TypeScript 50.9%
       | 
       | >Dart 28.4%
       | 
       | >Svelte 16.2%
       | 
       | Seems like the mobile app is flutter and the website is js? That
       | actually makes sense as flutter web isn't there yet in terms of
       | performance. I wonder if they will switch when wasmgc is
       | supported by major browsers.
        
         | gaganyaan wrote:
         | I hope not. Flutter as I've experienced it on the web is
         | absolute trash.
        
           | Vt71fcAqt7 wrote:
           | It's bad anywhere were you would need control f or need SEO.
           | Otherwise the main issue is performance and load times. In an
           | app like this you don't need SEO and search is built in
           | presumably. So if performance is fixed it looks quite
           | compelling to drop the seperate web version. You would have
           | to test load times vs. the current web implementation though.
           | I think flutter on web currently makes sense for <1% of
           | websites but this may be one of them.
        
       | bensonn wrote:
       | I tried NextCloud + Memories but multiple hosts said the facial
       | recognition app wouldn't work. Face recognition is important. I
       | tried Librehost for Nextcloud, seemed great until face
       | recognition didn't work and support said it wouldn't.
       | 
       | I can't self-host hardware, my home internet is shat.
       | 
       | I really want to run a managed-host instance of Immich (or
       | NextCloud) but am struggling. This is for family photos shared by
       | 3 siblings. 100GB+ of storage is ideal, cpu and connections isn't
       | as important since at max it will be 3 users.
       | 
       | All these programs looks great and have easy Docker setups, but I
       | can't figure out Docker storage. Docker seems to be more about
       | running the app, not storage. If I install Immich on a Docker
       | instance, do I have to connect it to external storage? If so who
       | and how?
        
       ___________________________________________________________________
       (page generated 2024-02-11 23:02 UTC)