getindiekit / indiekit

The little Node.js server with all the parts needed to publish content to your personal website and share it on social networks.
https://getindiekit.com
MIT License
341 stars 37 forks source link

Minimum MongoDB version #592

Closed abhas closed 1 year ago

abhas commented 1 year ago

What part of the documentation isn’t clear?

While the documentation specifies that MongoDB is a requirement for some features to work, the minimum version of MongoDB is not documented.

The issue is that MongoDB is distributed under the SSPL license. This license makes it a non-free/libre/open-source tool.

The last version of MongoDB to be released under AGPLv3 was v4.0.3. Would this version be sufficient for the needs of running IndieKit?

How could the documentation be improved?

Add a line referring to the minimum MongoDB version required for IndieKit

Additional context

No response

sentience commented 1 year ago

On a related note, I'm stuck on MongoDB 4, as MongoDB 5+ requires CPU features not supported by the NAS where I host Indiekit. If Indiekit were ever to require MongoDB 5+, I'd need to figure out some new infrastructure to host it.

paulrobertlloyd commented 1 year ago

Ooh, I wasn’t aware of this, that’s very useful to know. As far as I'm aware, Indiekit works with MongoDB 4, but I’ll need to double check this, and I will then update the documentation.

More broadly, I've been looking at using Prisma. This will not only enable data migrations when upgrading Indiekit, but ideally allow you to choose which database you want to use (i.e. PostgreSQL, MySQL, etc,). Still early days figuring that out though.

abhas commented 1 year ago

I've shifted all my older MongoDB code to RethinkDB now. It has characteristics similar to MondoDB but is Apache 2.0 licensed and is a project of the Linux Foundation now. It might be a quick MongoDB replacement.

aciccarello commented 1 year ago

Prisma looks cool, though I don't think being able to change the database provider is supported due to confusion about what features are supported where.

https://www.prisma.io/docs/concepts/components/prisma-schema/data-sources https://github.com/prisma/prisma/issues/3834

paulrobertlloyd commented 1 year ago

@aciccarello Hmm. This might not be an issue; I was thinking more of being able to support different (but not multiple) databases; but once you have chosen one platform, you can’t migrate to another. But need to investigate further.

abhas commented 1 year ago

FerretDB might be good MongoDB replacement to evaluate.

https://blog.ferretdb.io/ferretdb-1-0-ga-opensource-mongodb-alternative/

paulrobertlloyd commented 1 year ago

Have added a note to the README and documentation website. I tried testing with MongoDB v4.0.3, but as this is now end of life, I couldn’t install it locally.

The project is known to work with v4.4 or later. It may work with the last openly licensed version but this has not been tested.

More broadly speaking, I think this issue further supports the case for Indiekit providing support for different database types, as mentioned previously in this thread.