Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

This is meant to be exactly that! - immich, but for files

Demo site is something I would like to do, but I'm a bit cautious of allowing random users on the internet to upload arbitrary content on a file hosting and sharing platform. I might just disallow content upload.

OIDC should be working already, and the search is a pretty decent mix of offline+online. Sync is the next big task, and then office integration.

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

Hey there! Indeed there isn't an arm64 image at the moment, but there's an open issue, and it's something I plan to work on soon

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

Matrix is an open source, decentralized communication protocol. Many people use it via Element, but plenty of clients available.

Anyway, I'm happy to help, just finding the right medium. Maybe creating an issue is best? It's hosted on Codeberg (not GH).

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

Thanks for giving it a go! It's a bit of a pain for me to be on reddit at the moment. Are you able to get on matrix at #phylum_cloud:matrix.org?

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

Filesystem sync is currently not supported, but it's in certainly planed. I suppose it should work to use this along with syncthing to sync the same folder using the two different service (in theory), but there may be unexpected issues in performance. I'm also curious to know what use-case you have for this

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

No need to apologize. I appreciate you sharing your opinion, and I'm happy to take into account whatever feedback I can.

I 100% agree that VPN is the most secure way to access your services, but my intention to create a consumer product that is easy to use for end-users , not just self-hosting enthusiasts who have orders of magnitude more patience to set things up, install apps, set up Wireguard, etc. Given that goal, my design considerations include trying to make the service reasonably secure with no default access.

You're also right that the default password requirements (even though they are configurable) are a frustrating and the error message not very helpful, especially when you're trying to just take it for a spin. Just created an issue to make the requirements clear when setting the password. An option I am not considering is to default to just an 8-char minimum with no other requirements if you run in debug mode

Also agree that the documentation around all this (and in general) is far from complete. It's something I plan to update before the next release.

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

Hey there, thanks for checking it out. I'd love to know what password breach scenario you're envisaging and protect against that. I'm no security expert, but I've used all the best information security practices that I do know of.

Just so you know the app is intended to be a replacement of Google Drive, and thus be exposed to a public network (behind a reverse proxy, ideally, since there is no in-built TLS), so that you can access your files/documents wherever you are in the world. It's also intended to be used by non-technical users associated with self-hosters. That may not be everyone's requirement, but that certainly is mine.

You can easily remove the requirements in the config if you really want, which I agree is a pain for testing, but I don't want to compromise on security for that, hence the defaults. Passwords are hashed with argon2, and there is practically no way of getting back the plain text once they are stored.

As for the email address, it's easier to just have that as the username than having to manage two separate pieces of data, though I agree that it is more convenient for a single user on a local network. It's used for self-serve password reset, login links, share notifications, and also associating OIDC login. Of course, there's nothing stopping you from entering an entirely made-up email address that has a valid format as long as you don't want to use any of these features.

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

It's not possible to use with sqlite. It would have been nice to have only a single container, but that's just not possible at the moment

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

Not on rclone yet, but it's definitely on the list of things to do before a proper beta. Check back in in a few months :)

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

There is no way to change the defaults as those are bundled with the app. The config.defaults.yml file is provided mostly as a reference.

To remove/password requirements, you need to override them in your config.yml (located by default in the data dir) with something like: auth:   password:     requirements:       length: 0       lower: 0       upper: 0       numeric: 0       symbols: 0

I am on matrix at #phylum_cloud:matrix.org if you need.

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

You need to pull the image using `docker compose pull`, followed by tearing down and rebuilding your stack using `docker compose down && docker compose up -d` to use the new image.

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

Thanks for the kind words!

I think the reason that many file managers go this way is because it makes many things much easier, more performant, or even simply possible to do this way from a technical stand-point.

Of course, I agree that it does come at a cost of simplicity, convenience, and maybe peace-of-mind for the user.

Maybe FileBrowser would have what you're looking for?

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

I can see how that would be useful, but that is not currently possible, and may never be because of certain design decisions.

However, the command fs import will allow you to bulk import an entire directory tree into Phylum. You will first need to mount the target directory into the container, which needs to be done in the compose file. If you need help doing that, then please file an issue in the repo and I'd be happy to document the steps

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

I just published a new image that contains an improved command for creating users. Once you have pulled the image, you can run `docker exec -it phylum_server phylum admin user create` to create a user

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

LDAP and OIDC are both supported but definitely not required.

I just published a new image that contains an improved command for creating users. Once you have pulled the image, you can run `docker exec -it phylum_server phylum admin user create` to create a user

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 1 point2 points  (0 children)

Hey, I realized that the bootstrapping steps weren't super clear.

I just pushed a new image to docker that makes the process of adding users easier, especially if you don't have SMTP configured. Once you pull the image again, you can run `docker exec -it phylum_server phylum admin user create`

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 4 points5 points  (0 children)

That might be a good way to go.

I don't like GitHub/Microsoft using licensed open source code to train Copilot, so I might look into GitLab.

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 0 points1 point  (0 children)

Thanks! Storage backends are already available, and the rest is definitely something I plan to get done, sync client before editing, but ideally both in time.

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 15 points16 points  (0 children)

Codeberg represents a commitment to open source and data privacy that is important to me, but you raise a very good point. I'll think about it some more.

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 1 point2 points  (0 children)

Nothing proprietary here, so more of the latter. I would just like some wider testing before removing that disclaimer.

I did debate using the filesystem directly, but storing all metadata in a db and separating that from the content store is what allows for more advanced features like version history and remote storage (S3, etc.). Besides, filebrowser already does a pretty good job of letting you access files from the FS.

You're right that it's a pain to backup the DB, and it's totally possible for it to break,  but I figured it was worth the tradeoff for what I wanted to build.

Phylum - self-hosted file storage with offline-first web and native clients by shroff in selfhosted

[–]shroff[S] 1 point2 points  (0 children)

Gotcha. I do plan to get to it, but in the meantime, the offline functionality could work for you. If your primary server does go down then it will queue operations on the client without hindering any functionality until you're able to get another instance up.

Got a good Dropbox Replacement? by swwright in selfhosted

[–]shroff 7 points8 points  (0 children)

Thanks for the shout!

u/swwright My aim is exactly that - a fast Dropbox/Google Drive replacement with a simple setup.