FileHosting.md (3293B)
1 # File Hosting 2 3 There are many file hosting implementations, and they differ in slight ways. Below are a list of them and my general findings about each implementation. 4 5 ## Nextcloud 6 7 Nextcloud is a popular choice for file hosting and it works great for a lot of people. Below are some pros and cons to the service. 8 9 **Pros:** 10 11 1. Relatively easy to set up 12 2. Good out of the box configuration 13 3. Lots of features 14 4. Rich plugin library 15 5. Large community of users 16 6. Good auth support 17 7. Collaborative document editing 18 8. Video conferencing support 19 20 **Cons:** 21 22 1. Relatively slow compared to less featureful alternatives 23 2. Large codebase (ie. many potential attack vectors) 24 3. Difficult to upgrade without breaking features 25 26 It is often noted by Nextcloud users that migrating to newer versions is difficult because things start to break. It seems that Nextcloud AIO, an officially supported configuration of Nextcloud, does not often run into these issues, but AIO is also limited to 100 users before to having to pay for the service. 27 28 The main dealbreaker for many is the performance of Nextcloud. Even with Redis caching and a dedicated database (not SQLite), the web UI feels quite slow. With that said, one is hard pressed to find an alternative to Nextcloud that has the ability to easily integrate video conferencing, collaborative document editing, and authentication all in one. 29 30 ## Dufs 31 32 Dufs is a simple rust based file sharing site. Listed below are pros and cons for the service. 33 34 **Pros:** 35 36 1. Lightweight 37 2. Performant 38 3. Authentication support\* 39 40 **Cons:** 41 42 1. No user creation web UI 43 2. Lack of support for collaborative editing 44 45 Dufs is a stripped down file sharing service, narrowly beating out a directory listing in terms of functionality. Dufs allows for editing text files from the web UI, downloading directories as zip files, and authenticating users so they can only access specific directories. 46 47 One of the main issue with Dufs is their implementation of authentication. When using docker-compose, a string is passed in via the configuration that defines users and what directories they access as opposed to having an admin console in the application and saving the containers persistent storage. This makes Dufs not suitable for managing a large number of users, but fairly easy to manage when there are only a few different access levels being granted. The other issue some may have with Dufs is its barebones nature. Dufs does not support anything outside of simple file sharing and basic text file manipulation. If more features are needed, other services will need to be used in tandem or Dufs will need to be replaced entirely. 48 49 This is what I personally use for sharing files with people because it allows me to create shareable directories that anyone can access if they have the username and password for my guest viewing account of said directory. I find this easier than configuring Nginx or Apache to do directory listing even though the same functionality could be achieved with them. Additionally, I don't have any need for collaboration so this works perfectly, and I value performance and the UNIX philosophy of do one thing well. As I write this dufs is sitting idle using 7MB of memory, slightly less than my Nginx servers which are at ~7.5MB.