The Windows server
After the installation of the server please ensure, that the server app will be automatically starting once Windows is booting. This differs from the version of Windows, you are using.
You also need to take care for the following settings:
The listen port of the server needs to be available from the internet: The Windows firewall should ask you on the first run of the server app, if you allow incoming connections. Please acknowledge this.
Additionaly, the router (which connects your local network to the internet) must be configured in such a way, that the listen port is forwarded to the server. This can be done by one of the following solutions:
- Using our “relay service“: With this method, all packets will be routed encrypted through our server. You do not need to configure your router. As all packets are encrypted no one (even not us) has any chance to get a look on your data, our server just routes the packets as any server in the internet does during transportation. This feature is only available with the “free” and the “personal plus” license.
To activate the relay service, simply set the value for “ActivateRelayService” to “true” in the server configuration.
Please note: If all clients are using the relay service, there is no need for the DNS service, as the relay service redundantise the DNS service.
- If you know, how to do it, configure your server to forward all incoming packets to your server, see below “Server listen port“.
The server application needs full read and write access to the folder where the internal data will be stored (this will be located in the “%localappdata%” folder) and the project root folders including all subdirectories.
Only Server editions of Windows allow unlimited parallel connections from outside the server. Desktop versions (e.g. Windows 7, 8, 10) are limiting the access most likely to 5 parallel connections.
The server application iconifies itself automatically into the tray area (that’s where you also find the clock symbol), no window will be created. There is a pop-up menu with the icon giving you the possibility to show the log output or restart the server (e.g. after changing the server configuration).
Accessibility from the internet
To ensure the accessability of the server from the clients via the internet, you need either a static IP address or a static server name. Most of the internet connections for home use have dynamic IP adresses, which will change after 24 hours. The server would no longer be reachable. There are also two ways to handle this topic:
- Use our DNS-Service. Your server will store its external IP address periodically in our database. The client will first ask our server for the current IP address and then connect to this one. You do need to use this in case, you have decided for the “relay service” (see above).
In order to use the DNS service, please update the server configuration and set “ActivateDNSService” to “true”.
- You set up a dynamic DNS service at any other third party provider. In principal, this is the same as our service, only another perovider does the job. You can get this free of charge e.g. https://www.noip.com/free or other providers. Most of these providers can be directly configured in your router, just open the settings of the router and search for “DynDNS”.
Server listen port
This chapter is only applicable, if you do not want to use our relay service!
The server application will be connected from the clients using the so called “listen port”. This is a port, which must be accessable from the internet. Therefore, you need to configure your router and additional firewalls you may use in a way, that this port is forwarded to the server. Upon connection, server and client will handle another free port for the subsequent communication.
The list port must be a port, which is not used from other applications. Some ports are used per default, e.g. port 80 for web servers. There is a button in the setup application, which helps you to find a free port. Searching starts with port 50000, but you can of course use whatever other port, if you are sure, it is not occupied by another application.
The Raspberry Pi server
Simple – quick and reliable! This basic principle is driving us at Just a simple cloud. That’s why we want to make it as easy as possible to run your own cloud und secure your data against third parties!
You either have the possibility to buy a Raspberry Pi in our shop or install your own one.
Detailed manuals how to configure your Raspberry Pi can be found in the download area. Flash one of our images to your SD card or install the software by your own – it’s your choice.
The way to set up your Raspberry Pi server is the same as for the Windows server. As in most cases, the Raspberry Pi is used at home, you may have some restrictions due to your router. That’s why we recommend to use the relay service. This is available for the “Free” and “Personal+” license.
There are no restrictions concerning write access on the Raspberry Pi. The server is already configured in a way that all rights are granted.
The Windows client
After the installation of the server please ensure, that the server app will be automatically starting once Windows is booting. This differs from the version of Windows, you are using. Each client scans periodically the full content of the project folders and compares it with the server. Changes on both sides will be synced automatically.
The client application iconifies itself automatically into the tray area (that’s where you also find the clock symbol), no window will be created. There is a pop-up menu with the icon giving you the possibility to show the log output, change your user password or test the connection to the server (“Ping”).
To activate the DNS service, edit the client configuration and set the value “ServerAddress” to “[MachineIdentifier].just-a-simple-cloud.com” (replace “[MachineIdentifier]” with the identifier of your server). The “ServerListenPort” is not used in this case and can be set to “0”.
If you want to use the relay service, you just need to set the “ActivateRelayService” switch to “true” and add the machine identifier of your server as “RelayServiceIdentifier” in your client configuration.
This description is valid only for the Windows client. For mobile clients please have a look to the Google Play Store / Apple App Store.
Configuring the Windows apps
Both server and client will be configured by XML configuration files. These files will be created during the setup and configured accordingly. You will find comments in the XML files, which will explain the settings.
The XML files are splitted in a “general” and a “project” part. The general part must be available in every configuration. The project part is needed for each project separately. The parameters are indexed. In case, you add settings, please ensure to increment the index.
A typical server configuration will look like this (comments are removed for better reading):
The Android app
The Android operating system handles the life cycle of every app in the background. In case, resources are limited (e.g. memory), Android decides, if this app will be terminated. The app itself has no influence on this. This means, “just a simple cloud” could also be terminated after a certain amount of time. To ensure, synchronisation will be continued in the background, “just a simple cloud” must be whitelisted (all apps on the white list are allowed to run forever in case of limited resources). To do so, the app needs the “REQUEST_IGNORE_BATTERY_OPTIMIZATIONS” permission, for which the app will ask on the first run. “Just a simple cloud” will try to add itself to the whitelist, but there is no 100% reliable way to do so, as every smartphone manufacturer configures Android in an slightly different way. Please check after installation, if “just a simple cloud” is really on the whitelist.
Open the Android settings, navigate to “battery optimisation”. “Just a simple cloud” must be marked as “not optimised”.
Why do the app need the permissions?
Each Android app asks the operating system for different permissions to access critical functions. On principal, permissions shall be handled as restricted as possible. E.g. “just a simple cloud” is not allowed to access your contact list. The following permissions are needed for a correct functionality of the app:
INTERNET: access the server via the internet connection
RECEIVE_BOOT_COMPLETED: automatic launch of the app, once the smartphone is switched on
READ_PHONE_STATE: check, if your internet connection is fast enough for reliable connections
WRITE_EXTERNAL_STORAGE: access to storage to write data to the project folder
READ_EXTERNAL_STORAGE: access to storage to read data from the project folder
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS: de-activating battery optimisation in order to whitelist the app for background synchronisation (see above)