SyncStuff

Self-hosted drop box for all your files Download Installation Blog

My own cloud: how does that work?

SyncStuff is a client program only, there is no server software. A standard scenario is that you have a home server (or a Raspberry Pi) running some kind of Linux and one or more clients like your home desktop computer, computer at work and your laptop.

The clients connect to the server via SSH. The desktop client consists of a terminal applicaton and has a UI that is accessible through your web browser.

Requirements

  1. A file server running Linux. A good server is a small NUC, an old laptop, an old PC, a Raspberry Pi. The server connects to your home network. The router needs port 22 (SSH) to be forwarded to the server. Connect a big (USB or internal) hard drive to your server to store the data.
  2. One or more clients. There are two different clients that you can install in as many places as you want: one type runs on your PC or laptop (this is a Linux app) and the other type is a mobile app to consult from your phone.
  3. The software.

Installation: server

  1. Install Linux. It need not to be a Linux server, any distributon will do. I use Linux Mint.
  2. Setup SSH by typing
    sudo apt-get install openssh-server
  3. Enable password less login. Still on the server type
    ssh-keygen -t rsa
  4. Forward port 22 from the internet via your router to the server. You will have to do that using your router's web interface. If you don't have a static IP address on the internet set up a dynamic DNS services like no-ip.

Installation: client

  1. On every desktop client type the following four commands one at a time:

    ssh-keygen
    Do not generate a passphrase here (hit ENTER if it asks).

    ssh username@serveripaddress mkdir -p .ssh

    cat .ssh/id_rsa.pub | ssh username@serveripaddress 'cat >> .ssh/authorized_keys'

    ssh username@serveripaddress "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

  2. Install mono by typing
    sudo apt install mono-complete
  3. Download SyncStuff and put it somewhere on your client, for instance in a folder inside your home folder.
  4. Type
    mono syncstuff.exe
    to start Syncbox. Browse to http://localhost:8082/ and click on the Config button to configure Syncbox.

Installation: mobile client

  1. Download the mobile website and host it somewhere. You'll need a hosting provider that has ASP.NET hosting. Or you can host it on your own server using XSP2 (easy) or Apache with mono. This may even be the same server as where your files are.
  2. Enter the SSH credentials of your server and the path of your cloud hard drive on the server in the web.config file.
  3. Surf to your mobile website using your phone (or a desktop, that'll work too) and have fun!

First run

  • Start SyncStuff via mono syncstuff.exe and browse to http://localhost:8082/ and click on Config.
  • Fill in the details like the name or IP addres of your server and the folders to sync.
Synbox will store your settings in the configuration file:
~/.conf/syncbox/syncbox.config.

Getting help

Mail me at marcel@syncstuff.org for any questions or help installing and running SyncStuff. Have fun!

Feedback wanted

Mail me at marcel@syncstuff.org to let me know how you experienced SyncStuff. Mail me too if you want to help out with further testing, translating, porting to Windows or if you found a bug that you want to get fixed. Thanks!
 
Home Blog Installation Download Dropbox comparison Screenshots Contact