THE CLOUD MANUAL
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.
The server application needs full read and write access to the installation folder and the project root folders including all subdirectories. We recommend NOT to install the app in a “program” folder of Windows but in another folder, as you need adminstrator rights for most of the “program” folders.
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).
Accessability 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. Therefore, we recommend a dynamic forwarding. 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
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.
Files on the server
Never ever update or delete files in the project folders on the server! This may lead to corrupted synchronisation or even data loss!
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”).
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)