Best practive - server setup LAN + Online

Hey folks,

I need some advice for my server setup. I am planning to use seafile within our agency.

Features I would like accomplish:

  • fast up / download for customer files (big files like videos)
  • fast local sync folders for inter company work ((big files, videos, psd, istock images…)
  • only one seafile server for company clients

Problems I face:

  • slow client upload to online seafile server -> not able to share fast and have the seafile server online
  • setup complexitiy (?)

Solutions I came up with, but have some disadvantages:

  1. One local seafile server with online access. Only one server is hosted locally and everyone can access it:
    pro: fast intercompany sync, con: slow up / download for customers

  2. online seafile server:
    pro: fast customer download / upload, con: very slow inter company sync

  3. one online server, one local server:
    pro: fast upload / download for customers , fast inter company sync. con: multiple servers for client, no central management, servers not in sync, double effort to maintain.

I am aware, that I can’t change my upload speed. So this shoult be done over night to the online server for scenario 3.

So my questions are:

Is there a best practice for this scenario?
is there a solution to have multi server setup which syncs files?
Do I need to do have a “client” which syncs the 2 servers like this? local-server <-> client <-> online-server

Thanks and best regards,

Sven

Try run Seafile server in cluster. One in local network and one external. If you run it as cluster it wil sync together.

https://manual.seafile.com/deploy_pro/deploy_in_a_cluster.html

1 Like

Thank you! Cluster is a pro only feature?

It’s look like it is. You can try trial version for up to 3 users without limitations.

For a Seafile cluster you’ll need a shared storage, for example ceph (not very easy to maintain and deploy), DRBD, NFS or something like this.

If you’re going to setup such a cluster you’ll need a very fast connection between your nodes (fibreglass) as high latency in storage will dramatically decrease your performance.

I would recommend to host your own server in the company and use a Seafile hoster (like us) or a VPS for external customers. Since you can use more than one account in the seafile client, users wont really notice this. Just create a folder like “External Share” on your client machines (which is linked to the external server) and you’ll be fine and don’t have to worry about performance, updates, security or something like this. The normal user wont even know that this folder goes to another server.

Maybe Swift Object Storage can handle something like that. Afaik it can be configured to have a specific amount of replicas of the data in each region (e.g. company and only) and does not need to store all these replicas immediately.

Depending on where your company is and what there is around it could be an option to setup a wireless bridge to some point where you can get access to a faster upload.