Seafile on Proxmox With Unraid Share

Hosting my very own Google Drive alternative is not without challenges


Finding a Google Drive Alternative #

A couple of weeks ago, I set up my Unraid server to test it out before migrating to my new case. I tried using Samba, which worked great while I was on the same network. However, accessing files remotely using WireGuard was painfully slow. I spent some time searching for a better way to access my files on the NAS—ideally, a solution that could replace Google Drive and OneDrive.

I came across File Browser, but I didn’t try it out. On Reddit, Nextcloud seemed to be a popular option. I followed SpaceInvaderOne’s guide to install it on my Unraid server, but for some reason, the installation didn’t work properly. I suspected it was due to limited RAM. I then decided to host Nextcloud on Proxmox instead, using the TurnKey template this time. However, I found it to be quite resource-intensive. My search for alternatives continued, which eventually led me to discover Seafile.


Overcoming Hardware Limitations: Mounting Unraid Share on Proxmox #

Unfortunately, after switching to the Jonsbo N4 case, I had to downgrade some parts. My Unraid server now runs on a Gen 1 Ryzen with 8GB of RAM. As a result, I decided to host Seafile on Proxmox, which is more powerful, while storing the data on Unraid.

Image of Proxmox setup

Setting up NFS and mounting it on Proxmox is straightforward. It skips the usual command-line steps like creating a share, exporting it, mounting it, ensuring it auto-mounts on boot, etc. You can find my notes here for details on how simple it is.

I’m still deciding whether to make this share cache-only or use a cache-to-array configuration.

For this project, I’m taking the shortest path possible to set up a Google Drive alternative. To quote a song:

We’re here for a good time, not a long time.


The Final Boss #

After setting up the NFS mount on Proxmox, I installed Docker on an LXC container using a script from PVE Helper Scripts. Following the guided steps, I was able to use the NFS share as the container volume.

Image of container volume setup

Once the container was ready, I followed the official Seafile Docker installation guide, which is very straightforward—just six lines:

mkdir /opt/seafile
cd /opt/seafile

# Seafile CE 12.0
wget -O .env https://manual.seafile.com/12.0/docker/ce/env
wget https://manual.seafile.com/12.0/docker/ce/seafile-server.yml
wget https://manual.seafile.com/12.0/docker/caddy.yml

nano .env

Since everything is in Docker, I also installed Cloudflare Tunnels using Docker.


Fixing CSRF and Redirect Issues #

I encountered a minor issue here. The installation included Caddy, which conflicted with Cloudflare. I didn’t delve into the details, but a quick search led me to a community post on configuring Caddy with Cloudflared.

For Cloudflare Tunnels, I set the following configurations:

Cloudflare Tunnel Config
More Cloudflare Settings

In the Seafile .env file, I enabled HTTPS with the following settings:

SEAFILE_SERVER_HOSTNAME=seafile.furqaan.net
SEAFILE_SERVER_PROTOCOL=https

After installation, some configuration files were generated in /opt/seafile-data/seafile/conf/. To resolve CSRF issues, I added this to seahub_settings.py:

CSRF_TRUSTED_ORIGINS = ['https://seafile.furqaan.net']

And that’s it! I tested uploading some files and movies and was impressed by how fast uploads and downloads were.

Speed Test Image


Next Steps #

While I’m thrilled with how well this setup works, I’m slightly concerned about using it for critical data. When I have more time, I plan to implement a backup solution. The real question isn’t how to back up but where to store the backups. For now, I’m thinking of using rsync to copy Seafile files to another cache pool I’ve created.


Reference: #