diff --git a/_drafts/2024-02-22-cloud-data.md b/_drafts/2024-02-22-cloud-data.md new file mode 100644 index 0000000..dc42c5c --- /dev/null +++ b/_drafts/2024-02-22-cloud-data.md @@ -0,0 +1,29 @@ +--- +tags: + - personaldatastores +title: Cloud data +date: 2024-02-22T15:17:00 +categories: + - Own Your Own Data +--- +[[Rosano]] has an [encryption rant](https://utopia.rosano.ca/encryption-rant/) about attempting to back up data from a number of secure chat apps, and how it's all basically impossible for people without strong technical skills: + +> …there's no feigning moral superiority in using 'alternative tech' until it includes a real foundation to stand on for people without this domain expertise. Fleeting personal data is like alternative tech's equivalent of platform enshitification and doesn't fill me with confidence to trust these systems or recommend my non-tech friends to do so. + +And what he actually wants more generally: + +> I hope to see more apps with comprehensive export or supporting personal data stores. + +I agree with his message that perhaps one could design tech for export/backup, much like I've been talking about [[Design for Deployment]]. + +The [[Personal Data Store]] is the generic term for what Rosano and I have been wanting for a long time: a user owned file system, where different apps get given permission to read and write into. That's the actual design I'd love to get to. + +If this sounds confusing to you, you'll recognize it from how mobile apps work today. A new app will ask permission to access your Photos or Contacts, or some other standardized form of data. Rather than keeping a separate copy of data in some other backend server somewhere, the app is given permission to share. + +If you uninstall the app, you still have your Photos and Contacts, and can hand permission to any other app. + +And of course on a Professional Desktop Operating System[^death] + +[^death]: See [[death of the professional desktop operating system]] + +It's clear that to Rosano, his chat history is very important. \ No newline at end of file diff --git a/_notes/Bring Your Own Server.md b/_notes/Bring Your Own Server.md index d9ed5f9..9bbe4c5 100644 --- a/_notes/Bring Your Own Server.md +++ b/_notes/Bring Your Own Server.md @@ -1,10 +1,21 @@ --- --- - This is a term I'm exploring around software that installs on your own server, that then fully manages it and offers other capabilities around it. [[Cloudron]] and [[Coolify]] are two examples of this. Another trend I'm seeing in more commercial cloud platforms is that the high end / enterprise option includes the options to plug in your own AWS or other cloud credentials. The service becomes a sort of managed PaaS, where you pay for the management and support, but separately pay AWS or other cloud provider for the data, compute, and other commodity resources used. -[[Fission]]'s [Everywhere Computer](https://everywhere.computer) is also designed with the ability to always bring your own server. \ No newline at end of file +[[Fission]]'s [Everywhere Computer](https://everywhere.computer) is also designed with the ability to always bring your own server. + +## Self Hosting Packages + +Maybe not quite the same category, these are packages that often take over an entire server in order to install apps and manage the entire operating system. + +* [[Cloudron]] +* [[Coolify]] +* [[Cosmos Server]] +* [[Yunohost]] +* [[CasaOS]] +* [[Unraid]] +* \ No newline at end of file diff --git a/_notes/Cosmos Server.md b/_notes/Cosmos Server.md new file mode 100644 index 0000000..7998bd8 --- /dev/null +++ b/_notes/Cosmos Server.md @@ -0,0 +1,22 @@ +--- +link: https://cosmos-cloud.io/ +github: https://github.com/azukaar/cosmos-server +tags: + - opensource + - app + - selfhosting +--- +From the [GIthub README](https://github.com/azukaar/cosmos-server): +> Cosmos is the most secure and easy way to self-host a Home Server. It acts as a secure gateway to your application, as well as a server manager. It aims to solve the increasingly worrying problem of vulnerable self-hosted applications and personal servers. + +## Install + +Via Docker, so you need to have a system where Docker is already installed. + +## Comparison with others + +The Github README has this image of a comparison graph: + +![Grid of compariing Cosmos](/assets/cosmos-compare.png) + +So, comparing to [[Unraid]], [[Yunohost]], [[CasaOS]], and [[Cloudron]]. \ No newline at end of file diff --git a/assets/cosmos-compare.png b/assets/cosmos-compare.png new file mode 100644 index 0000000000000000000000000000000000000000..71fa97a56ab6e082e3544dcd2a479902015afed8 GIT binary patch literal 14917 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 W%}j&S_0K^YJw09hT-G@yGywo9v;CC- literal 0 HcmV?d00001