I'm building a file server (and plex server), to be used locally and remotly. The server will have design assets files that should be accessed remotly.

Is there a solution or service (free or paid) that gives similer features and performance to icloud and google drive? and its nice if its simple to setup and troubleshoot

Comments (106)

I run NextCloud on an Ubuntu instance and it works great as a replacement for the Google Suite. I run quite a few other services on the same machine with Docker too.

How do you run NextCloud on Ubuntu? Do you use docker? If so did you follow any guides?

Exactly. Install Ubuntu, install Docker, install Docker Compose to massively improve your Docker experience and set up Nextcloud with a docker-compose file.

https://docs.nextcloud.com/server/latest/admin_manual/installation/example_ubuntu.html

IIRC, I followed the official docks linked. I also initially tried to use Docker, but I had issues getting it setup with my SSL certificates and some unusual performance issues. So I installed baremetal and all my other services run in docke. I have an Nginx docker that I use as a reverse proxy in front of it so I can host everything on one machine. I do plan on documenting my setup in a blog but I haven't quite gottento it yet. But the people here are really helpful and if you don't get a response you can also feel free to PM me if you run into any issues and I might be able to help out too.

Do you have it separated in a DMZ?

dufs: A file server that supports static serving, uploading, searching, accessing control, webdav...

Written in rust, cross-platform, 2.8MB single-file executable, able to run on routers and raspberry pi.

I need to stop looking in the comments. I have like almost 20 Tabs open with stuff I see on reddit, which I wanna try and I have no tiiimmmmeeee.

Looks interesting tho, thanks alot.

You should selfhost Vikunja or something like that to keep your ideas organized ;)

Please shut the fuck up /s

takes notes

*Spends entire afternoon setting up Vikunja to put "self-host Vikunja someday" in its TODO list*

/s

Amazing share though! thanks!

Holly shit. It looks amazing. I want to need it

People seem to be very excited about this, but it seems to be a to-do app. Is it really much better than alternatives? Is it the multiple available views (list vs kanban vs table etc)?

Dammit now I need another tab open.

Don't worry till it's so many tabs you can't find what you're looking for and you'd be better off doing a random search.

That's where I am...

Sometimes I find tabs to websites that are no longer online 😣

I just switched browsers on my phone. 20 is the new count, not the old one. Needless to say it took me a few minutes to sort through the tabs and just hold on to the ones I really "need". So I feel ya.

My fix for that was to install Wallabag so I can save and tag tabs I want to save (and search) for later.

Once it's in Wallabag (even has a browser extension), I can close the tab with a clear conscience.

I have a repeating task in Vikunja to do this at the end of every day.

I made the same remark, everytime I'm on one of these posts, my tab count skyrocket

I like when it gives up showing you a count and just puts the infinity sign.

I wish I would have known sooner that this exists. So brilliantly simple!

Would like to try this, does anyone have a docker-compose of it?

It is a single file to download and run.

To run it 'in docker' you can use this from the README: docker run -v $(pwd):/data -p 5000:5000 --rm -it sigoden/dufs /data -A. Making your own docker-compose file from it should be easy...

Oh man this looks excellent

If anyone is looking for something "prettier", have a look at Filebrowser

I love the sharing feature of it too

oh this is sweet. gonna have this running 24/7 as a fallback when everything inevitably fails

After some tinkering I think I've come up with a pretty simple solution.

  • My base system is running TrueNAS Core which handles the base file sharing.
  • It is also has an Ubuntu VM running Cloudron.
  • Cloudron is serving up NextCloud and Vaultwarden. Cloudron made getting SSL and proxy configured a breeze while also taking care of automatic off site incremental backups. The free version allows you to run 2 applications, which is all I really need.
  • Off site backups are going to Wasabi, which is the only part I have to pay for ($6/mo)
  • There is an additional jail that's running Tailscale. This allows me remote access to my entire home network including NFS and SMB shares, router, local machines, and even printers

May be you should look into Backblaze. It is cheaper than your current plan.

Assuming they're using Wasabi's $5.99/1TB/mo "pay-as-you-go" plan, which has no egress/download fees, which equivalent Backblaze plan is cheaper? B2 with no download is $5/TB/month, but how much does downloading that TB cost? @ $0.01/GB (1TB = 1000GB for simplicity) that's an extra $10 if you do a single download of your 1TB backup. No cheaper anymore.

Granted, I think they're two different products for different use-cases, and Backblaze can be nice for cold storage (do they finally support Linux, btw?), but if you need to actively download anything, it may be much cheaper to go with something like Wasabi.

From what I've read, the downloads and restores from B2 can be pretty slow. From Wasabi, I pretty much get line speed. For the amount of data I'm storing (< 1TB) I'd rather have a quick download/restore when I really need it rather than save a couple bucks a month

Filerun

I’ve had super good luck with this recently. Works fantastic for files and doesn’t try to ā€œdo it allā€ like Nextcloud. *I’ll be downvoted for Nextcloud negative I’m sure :-(

Yeah but nc is too sluggish and slow and what not that it was impossible to use it for me.

Filerun

If you just need file-sharing NextCloud is total overkill, so I agree. I started to look for alternatives, since NextCloud's underlying PHP-garbage is not only out fo date but sluggish, but still haven't found a good alternative (Seafile maybe?)

Filerund looks nice though, Syncthing is a bit more ugly but works (and if you just use the sync part integrated in Finder or Windows Explorer, it doesn't matter anyhow).

I tried NexCloud and Seafile before settling on FileRun. It has better performance than NextCloud and doesn't modify the files so they are unreadable outside of the application like Seafile does.

I have a samba docker image running and for accessing remotely use wireguard, works pretty well since you can easily mount them as a normal drive in Linux and Windows. SSHFS and NFS might also be worth looking into if you don't need to access it from Windows

Edit for anyone asking how it is setup: I am using the dperson/samba image. An example docker-compose.yml:

[root@koios samba]# cat docker-compose.yml

version: '3.4'

services:
  samba:
    image: dperson/samba:latest
    networks:
      - default
    ports:
      - "137:137/udp"
      - "138:138/udp"
      - "139:139/tcp"
      - "445:445/tcp"
    read_only: true
    tmpfs:
      - /tmp
    restart: unless-stopped
    stdin_open: true
    tty: true
    volumes:
      - /shared:/shared:z
      - /mycab:/mycab:z
    command: '-s "Shared;/shared;yes;no;yes;share;none" -u "username;password" -s "Mycab;/mycab;yes;no;yes;share;none" -u "username;password" -p'

networks:
  default:

Samba has some security vulnerabilities so opening to ports to any remote connection is not advised, but a VPN should work. You can edit the volumes section to define separate drives if you want to create seperate ones for different (groups of) users. On windows you can just 'add a network location' in your PC (beware there's another option with a very similar name). The location should be \\host\volume.

One more tip is that for some reason on some windows devices it will throw an error about it not being a valid folder or something. In this case you need to add a registry entry (you can remove it again after the samba drive has been added successfully):

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
 create or set entry "AllowInsecureGuestAuth" to 1

This is the answer, you can even connect them directly to Files in iOS and File Browser on Android. Simple, effective & best.

Yeah basically all of my friends and family are on it to share music, recordings, photos, code, whatever. No fuss with syncing stuff and it didn't require any maintenance up to this point. Only downside is setting up a VPN to make it secure, but I'm always connected to my home network anyway.

dperson's repo hasn't updated in a while. jtagcat has a fork with hotfixes and various contributions.

https://github.com/jtagcat/samba

Can you share the container?

remindme! 1 week

I will be messaging you in 7 days on 2022-07-16 05:45:40 UTC to remind you of this link

CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

^(Parent commenter can ) ^(delete this message to hide from others.)


|^(Info)|^(Custom)|^(Your Reminders)|^(Feedback)| |-|-|-|-|

Edited my comment with instructions

Been looking for soultion like that. Could you please share what samba docker you are using ?

Thanks in advance

Cheers

Edited my comment with instructions

Check out Seafile. In comparison to Nextcloud it lacks some features, but it performs better and is more storage efficient.

Seafile's pricing makes it a nogo for me. I've heard great things but the licenses and user limits are too strict for something self-hosted and open source.

I don't need any of the pro features and the community edition is free and has no limits...

That's great, but I have a family to consider. The licensing ruins any hope of expanding access in the future when it might be necessary.

+1 for Seafile, have it installed for almost a year or so and zero issues. I only use the drive client though, and use it as some sort of free dropbox.

Agreed. I've had mine running for about a year and a half. Rock solid and wicked fast.

Nextcloud is a drop-in replacement of services like icloud and google drive.

I hate to be pedantic but Nextcloud is most definitely not a "drop-in replacement" for those services. It's a good alternative to them, but not a drop-in replacement by any definition of that term.

I get you, it's not identical... But I think it serves the same purpose of being a "cloud hosted storage solution".

My media server setup: - Ubuntu as OS - Docker + portainer - Jellyfin - Onedrive (you can get up to 10Tb for free if you have your own domain. See this video - Rclone to mount Onedrive locally - Filebrowser to manage the server in gui - Nginx proxy manager to remote access (you can use traefikhub if you don’t have a domain).

I know I'm saying this in a reddit page dedicated to self hosting but do you actually need a server? Would your requirements be met by something like syncthing instead? Just a thought.

Simple = unRAID with nextcloud or synching depends on what you are looking for ...

My preference and I'm currently running is truenas with ZFS but I can't comment on running the containers... That's a cluster fuck

You can run normal dockers without using truecharts...

It's unsupported but works...

A better solution is using Docker Compose by TrueCharts. I installed Portainer through it and it runs great.

Anything that touches Kubernetes is complicated...

I don't mean it's bad, it's complicated for a simple container.

ubuntu server, docker compose, nextcloud

From personal experience: Kubuntu running NextCloud bare metal was pretty easy

Why Kubuntu instead of Debian or Ubuntu server? I thought Kubuntu is just ubuntu with KDE desktop?

That's precisely what it is. Ive been using it as my desktop distro for some time. I like the large availability of support and documentation for Ubuntu, but I like the KDE desktop environment. When I started messing around with Homelab it seemed like the natural choice to experiment with, and, it's worked out so well that I see no need to change. You should have a similar experience with any flavor though.

Sure that's all dandy, but why do you want your server and your desktop to be one machine?

Oh they're not. Two separate machines. I wasn't clear, sorry.

But ... why run a desktop on your server?

Because I've got more than enough resources to offset any cost that it takes to run it, it's easier than CLI-Only mode, it allows me to also be able to run apps that don't have CLI mode, and it's just pretty and I like it.

You could use Cockpit, if you need a GUI for admin purposes (or webmin or similar tools).

I have WebMin, can't stand cockpit. Using those isn't exactly the same as using a desktop environment though.

Agreed. If you have the need for an IDE, go for it by all means. I personally have my servers headless, because of performance reasons and simplicity, less potential security holes, etc.

My server is the same thing, Kubuntu that I almost never run headed... but I do occasionally have to do a 2FA authentication to get a code or something and it's way easier just to walk to the basement than it is to do a forwarded X11 session. Half the time it seems they pop up a 2nd window so if the performance wasn't abysmal over X11 anyway then you sometimes don't get the 2nd prompt over the forwarded session...

Yeah it really does make things much more simple if you have direct access to the server. Same as you, I rarely ever actually run headed, but like you said.. way easier to just walk to my network closet in the hall and open the door.

it's easier than CLI-Only mode

I guess this is where you and I differ.

I find commands easier to document and recall/reuse than menus.

If I don't know how to do something from the shell, I would rather learn how to than deal with a GUI.

My first OS was DOS 2.0, I feel like I've done my time in command line only mode. I'll take pretty, these days. Plus when I'm able to work on my server I usually have a baby in one arm and a mouse in the other, makes my life easier.

I guess it's a matter of perspective.

The way you talk about CLI makes it sound like some kind of punishment.

I've done my time in command line only mode.

Whereas I am far more comfortable at the CLI and would be more likely to reject something that doesn't have a CLI option.

Could also be that I've been immersed in DevOps culture for a while now and would rather quit than go back to ClickOps.

I have also been at this for a while my first computer was a C64.

And it really is about personal preference. There are a lot of things I do where I just Fullscreen the terminal and get it done. But for general file operations, copy/pasting/moving, and other general tasks.. I just use KDE. But that's the absolute best thing about *nix, you have options! And, you're not stuck using that choice.. it can always change per situation and per needs. Gotta love it, at least that we can agree on, I'm sure.

Should start learning CLI, challenge yourself to run Ubuntu server and install a package, etc. that’s how I learned and I found it quite fun, if not daunting at first. Digital ocean has some incredible tutorials on their site

I actually know how already. I used to manage a redhat medical server a couple of decades ago. Lately though, I've found that there is no shame in the easy way. And, with my time and availability constraints lately .. I kind of need quick and easy. I appreciate the advice though, if I didn't already know how to do CLI you would be 10000% correct

One can be very capable with CLI and still find value in using a desktop. They don't have to be separate camps. All the desktop hate really makes me wonder how few resources yall have available on your servers.

I don’t hate desktop, I actually use it for some use cases on my VM. I normally have performance issues with desktop - much slower to use than SSH when using the remote console. VNC/xRDP is better, or X-forwarding

TrueNAS Scale gives you the ability to run VMs and should be able to set up remote access to the files and it's free.

I'd also recommend Proxmox.

The only reason I didn't recommend proxmox is its not as easy to set up but proxmox is also a great solution.

Agreed, it’s more complex and could use an UI revamp, tbh. From a security standpoint, it seems to be way ahead of unraid, though. I think, TechnoTim on YouTube has some good videos on setting up and configuring Proxmox, if someones interested.

I use proxmox and personally love the ui compared to others. It's overall not hard but it's got a learning curve. I would say overall it's the better option if you're running more than one thing though but for just one VM or something small I think TrueNAS Scale is ok for that

I’m building a file server (and plex server), to be used locally and remotly. The server will have design assets files that should be accessed remotly.

I would split that in two. Use the public cloud for sharing files, and a Plex server at home, accessed through Zerotier or Tailscale when on the go.

While there are plenty of solutions that make hosting a personal cloud easy, very few make it secure, and it only takes a single zero day exploit before everything on your private network is up for grabs, or even worse, encrypted.

It is absolutely possible to run a secure server at home, but it requires daily monitoring and updating.

The internet is not a friendly place. Don’t think it will happen to you ? 14 YEARS ago, it took on average 7 minutes for an unpatched windows machine connected directly to the internet to be hacked, and it has not gotten friendlier since.

Granted, operating systems ship with much better defaults these days, but that’s easily thwarted by people exposing the docker socket inside containers.

I’ve run internet connected servers for 2 decades, and I use the above. While I ran my own servers, my IDS/IPS would block hundreds of IP addresses on a daily basis.

So, my advice is to let ā€œsomeone elseā€ worry about keeping the servers secure, and just buy whatever cloud storage you need for sharing. Microsoft Family365 offers 6x1TB OneDrive storage for $65/year (with discount, think it’s about $85 without). Then setup your Plex server, and let that make backups if your cloud storage locally and to another cloud.

Taking European electricity prices into account, a server consuming 45W will use 33 kWh / month, which currently equals about €23/month, and that’s just to power the darned thing. You still need to purchase the hardware.

Taking European electricity prices into account

There's the issue, imagine paying more than $0.10 USD/kWh... 'Murica!

Still, even operating at a loss, I would still put my important stuff in the cloud, and keep ā€œthe restā€ on non raid storage.

I’ve self hosted for two decades, and I spent on average about an hour every day fiddling with the setup. Checking logs, patching services, replacing hardware, etc.

When you calculate my hourly wage at work vs the time spent on the setup, it’s always operating at a loss when self hosting.

Running a reliable service is not as fun as it’s made up to be, especially not when exposed to the internet, and I get enough IT troubles at work even at the management layer (or its immediate vicinity anyway), I don’t need to come home from work having battled enterprise IT problems, only to have ā€œstartup problemsā€ at home.

Furthermore, decent storage plans (2TB+, still only talking important files!) with major cloud providers can be had for less than $10/month. That’s 1-2 cups of coffee, and you save 30 hours of work.

As for ā€œthe restā€, there’s a high probability that it either originated from physical media, or from the internet, and it can be obtained from those sources again. Maybe not easily, but also not impossible, so there’s not really a compelling reason to create backups of it.

Chances are also high that it’s not a life or death situation if it’s offline for a couple of days, so not really a compelling reason to use raid.

The exception would of course be professional photographers/videographers, where both raid and backups makes perfect sense, though I would probably opt to skip raid and just use 3-2-1 backups.

I am as green as it gets when it comes to self-hosting and currently just run a Plex server. However, I don't see how it can be THAT dangerous to leave something like Filerun or NextCloud front-facing for weeks, months, or years without touching the software side aside from automatic updates. From what I've gathered so far, there is a lot of effort put into security by the teams developing most of the (free) mainstream self-hosting solutions (such as MFA). One of my buddies has been running a wing FTP server for years and (after setup) has only had to deal with adding/removing users as far as I know.

The worst thing I've encountered is setting up double port forwarding because I'm stuck on a double NAT.

Also, time spent on hardware changes doesn't count for me since I still enjoy it as a hobby. Albeit, I'm still just a CSE student and haven't started the career grind yet. It may become a chore later on, and I'll feel different about spending cash (I don't currently have) on extra subscriptions.

The problem is that ALL software, regardless of how well it is written and vetted, will contain bugs. The worst of those will be exploitable without even entering credentials.

Furthermore there’s the possibility of configuration errors, and that possibility is high when people are inexperienced in setting up services, I.e exposing the docker socket in a docker container will allow that container full control over the host machine if an attacker finds an exploit inside the container.

How bad can it get ? Well, Lastpass was hacked because of an employees unpatched private Plex server

It’s not always just about your data, but also your employers data.

So in this day and age, I would disable anything that traverses my NAT/firewall except a VPN, and use that to access my internal systems.

You should check this out.

https://github.com/spantaleev/nextcloud-docker-ansible-deploy

Windows + Stablebit Drivepool and backblaze. Easy to add more drives of any size into the pool.

Then tailscale to connect remotely.

I like tailscale, it's simple & a snap to set up, but I've only got 2-3mbps up/down going over tailscale, using their free account. Fine for remote management but accessing files over that connection seems a bit painful.

This might just be an artifact of where I conducted my tests from though - not great internet to start with.

They did say simplest :)

Can't say I've seen a wireguard app on windows yet that would generate a qr code for your config for easy "pairing". The main wireguard app itself is a little obtuse but way more performant.

I've used this in the past as well: https://gitlab.com/cyber5k/mistborn

SFTP

It's already built in to a lot of machines, dead simple to set up, and supported by a lot of things.

Tried it, but there was some file access fuckery and security issues so I went back to NFS. Which is a pita to set up on Mac (or anywhere) as well.

What do you mean by that? The only thing I can think of is that you didn't have file permissions configured correctly

They were, but there were issues with thumbnail creation, setting creation dates and so on. At the end too much hassle for me, given the fact, that I didn’t want to create a few different file access protocols, which aren’t supported on all my devices anyhow. SMB and NFS was, but SMB sucked, speed-wise.

Mistborn

You he simpler is get a Lenovo workstation

Nextcloud comes as a preinstall option on Ubuntu server out of the box if I remember correctly.

You can also install it easily on TrueNas, or on Docker(OS independent).

One of the easiest ways for me was to install NextcloudPi(Raspberry Pi version) on a Docker instance running on a Windows machine.

Own cloud.

Just don't try to update it

OMV with docker….portainer

Posts like this always crack me up...someone always asking the simplest solution. I mean there are simple ways too do things but they are usually shitty, don't expand well and lack redundancy, and commonly the concept of backups is an afterthought. The OP in this case didn't really specify a lot of things such as number of users, current network setup, hardware available, and use case. How much data is he planning on storing?.are backups important, multiusers needed? Level of experience with either linux or win and knowledge of command line?? Current networking solution in terms of hardware such as routers, switches, storage space, network speed, and budget. How much time is hr/she willing to dedicate to this cloud storage solution in terms of maintaining things? As with any project such as self hosting I'd recommend a user first sit down and look at these issues and take assessment of their hardware and such. I'd probably start at the router level and actually run something like pfsense or opnsense initially. I'd explore the use of managed switches which allow for the use of vlans and network isolation. I'd get a working vpn solution such as wireguard setup which allows secure remote and fast access from a remote location which could be implemented in something like pfsense. I'd consider using virtualization on some of your hosted servers if you have the available hardware. I'd recommend these steps since more than likely it's going to make your experience much better and heck it's really going to just improve your overall network and introduce an infrastructure that is robust way beyond just serving a self hosted cloud solution. Anyone with just a little effort can install Ubuntu on a desktop and then go through installing nextcloud either natively or through docker however I'm going to tell you the performance is going to be ass.

Seriously, you consider installing Proxmox. It's a Debian based Virtualization Environment. Then you can install Ubuntu 22.04 in an LXC container and run Plex from there. This gives you tons of flexibility with storage, virtual machines, containers. It's exactly what you are looking for.

File Browser has be great and simple for me