notes

Personal notes
git clone git://git.laack.co/notes.git
Log | Files | Refs

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.