How do I keep file data on a different machine?

solved

#1

I’m sorry if this has been answered already, I can’t find it anywhere.
I’d like to separate the data storage from the website server. I’m not sure how to proceed.

When installing and doing the initial setup, seafiles only offers to save files to local storage. I did deploy MySQL on another server but as I understand it, that doesn’t actually store any file data. I thought about just separating the seafiles component, but that is not recommended according to another post (/t/install-components-of-seafile-server-in-different-servers/3588). I still think it would be fine for me if there’s no other way, though.

I don’t need to save to any sort of distributed cloud service or any such thing.


#2

The database does not save any files. The database stores information about files. That is correct.

The file path is defined in the seafile.ini in the ccnet folder. The default path is …/seafile-data. By changing the path, you can store the file data anywhere you want as long as the storage can be mounted.

Speaking the obvious, please do not change the path in a running system with current data. You have to migrate the data and/or possibly symlink to the old path.

If you want to use multiple backends, the manual tells you how you do this: https://manual.seafile.com/deploy_pro/multiple_storage_backends.html


#4

Okay so if I want to host my own files, but on a different server than seahub, my best option is to deploy Ceph and use that, even if I only want one backend and not multiple. Correct?


#5

Sure not!

You can mount a SMB/CIFS share and save your data there. This is no task you need Seafile for. This is a job for the operating system, your Linux. Same thing with S3, NFS, … Then specify the storage path in the seafile-ini - as I said above.

No need to go all CEPH just to save a few files on a machine different from the application server.


#6

Thank you for your reply.


#7

If I answered your question, please mark the post as solved!