Services

Here you can read a description of the services supported by Cloudy.
Each of these services have a section in the web interface to be easily installed, configured and managed.


Tools for services publication & discovery

A tool to publish and discover services in the network, called Avahi-ps, is developed to make it easy to control the services found independently from the software used for this purpose.

Avahi-ps initially was developed to facilitate the use of Avahi for managing the services. Later, other tools to publish and discover services were added to the Cloudy distro and, in consequence, Avahi-ps was improved to support this software.

Currently these tools are:

logo-avahi

Avahi

Avahi is a system which facilitates service discovery on a local network via the mDNS/DNS-SD protocol suite. This enables you to plug your laptop or computer into a network and instantly be able to view other people who you can chat with, find printers to print to or find files being shared.

More info: http://avahi.org

Etcd

A highly-available key value store for shared configuration and service discovery.

logo-etcd

Etcd is inspired by Apache ZooKeeper and doozer, with a focus on being:

  • Simple: curl'able user facing API (HTTP+JSON)
  • Secure: optional SSL client cert authentication
  • Fast: benchmarked 1000s of writes/s per instance
  • Reliable: properly distributed using Raft

More info: https://github.com/coreos/etcd

Serf

Serf is a tool for cluster membership, failure detection, and orchestration that is decentralized, fault-tolerant and highly available. Serf runs on every major platform: Linux, Mac OS X, and Windows. It is extremely lightweight: it uses 5 to 10 MB of resident memory and primarily communicates using infrequent UDP messages.

Serf uses an efficient gossip protocol to solve three major problems:logo-serf

  • Membership: Serf maintains cluster membership lists and is able to execute custom handler scripts when that membership changes. For example, Serf can maintain the list of web servers for a load balancer and notify that load balancer whenever a node comes online or goes offline.
  • Failure detection and recovery: Serf automatically detects failed nodes within seconds, notifies the rest of the cluster, and executes handler scripts allowing you to handle these events. Serf will attempt to recover failed nodes by reconnecting to them periodically.
  • Custom event propagation: Serf can broadcast custom events and queries to the cluster. These can be used to trigger deploys, propagate configuration, etc. Events are simply fire-and-forget broadcast, and Serf makes a best effort to deliver messages in the face of offline nodes or network partitions. Queries provide a simple realtime request/response mechanism.

More info: https://www.serfdom.io


Decentrify

Decentrify is a fully decentralised search engine coupled with data sharing functionality. The core property of Decentrify is "no single point of logo-decentrifyfailure", so all services within are built with this in mind. Of course, typical "no single point of failure" techniques might be slow in some instances, so we sometimes "cheat" by using a key-value store used to speed things up. Some might say, that the key-value store is a potential single point of failure. Well, CaracalDB, our key-value store is not necessary for the system to work correclty, it just helps speed it up.

You can read more about it in the Decentrify page.

More info: http://www.decentrify.io


Services

Getinconf

Tinc is a Virtual Private Network (VPN) daemon that uses tunnelling and encryption to create a secure private network between hosts on the Internet. It is Free Software and licensed under the GNU General Public License version 2.

To easily install and configure a system with Tinc, a tool called getinconf has been developed under the CLOMMUNITY European project.

More info: https://github.com/Clommunity/getinconf/

OpenVZ Web Panellogo-openvz

OpenVZ Web Panel is a GUI web-based frontend for controlling of the physical and virtual servers with the OpenVZ virtualization technology.

  • Web-based control of OpenVZ containers
  • Ability to control several physical servers
  • Separate physical server daemon (ability to set up panel inside virtual server)
  • Automatic installation
  • Simple and beautiful interface
  • Multilanguage support

More info:
- http://openvz.org/Control_panels
- https://code.google.com/p/ovz-web-panel/
- https://github.com/sibprogrammer/owp/wiki

Peerstreamer

PeerStreamer is an open source P2P Media Streaming framework written in C, developed as part of the NAPA-WINE European research project. It includes a streaming engine for the efficient distribution of media streams, a source application for the creation of channels and a player applications to visualize the streams.

Main features:

  • digests almost any media format
  • configurable chunking engine
  • configurable topology module
  • streaming engine with several streaming protocols (push/pull/negotiation based)
  • configurable chunk/peer scheduler
  • ALTO (Application-Layer Traffic Optimization) support

More info: http://peerstreamer.org

Syncthing

Syncthing is an open-source file synchronization client/server application, written in Go, implementing its own, equally free Block Exchange Protocol.

Some of its main features are:

  • Web GUI. Configure and monitor Syncthing via a responsive and powerful interface accessible via your browser.logo-syncthing
  • Portable. Works on Mac OS X, Windows, Linux, FreeBSD and Solaris. Run it on your desktop computers and synchronize them with your server for backup.
  • Simple. Syncthing doesn't need IP addresses or advanced configuration: it just works, over LAN and over the Internet. Every machine is identified by an ID. Just give your ID to you friends, share a folder and watch: UPnP will do if you don't want to port forward or you don't know how.
  • Powerful. Synchronize as many folders as you need with different people.

More info:
- http://syncthing.net
- https://github.com/syncthing/syncthing/wiki

logo-tahoe

Tahoe-LAFS

The Least-Authority File Store (Tahoe-LAFS) is a FreeSoftware/Open Source decentralized cloud storage system. It distributes your data across multiple servers. Even if some of the servers fail or are taken over by an attacker, the entire file store continues to function correctly, preserving your privacy and security.

More info: https://tahoe-lafs.org

WebDAV server

logo-webdav

A Web-based Distributed Authoring and Versioning (WebDAV) is a set of extensions of the HTTP protocol which allows users to collaboratively edit and manage files on remote web servers.

The WebDAV protocol makes the Web a readable and writeable medium. It provides a framework for users to create, change and move documents on a server; typically a web server or web share. The most important features of the WebDAV protocol include the maintenance of properties about an author or modification date, namespace management, collections, and overwrite protection.

More info: http://www.webdav.org

Guifi.net-oriented services

Guifi.net integration

Your Cloudy device can be easily integrated and registered to Guifi.net's website using the web interface. It is recommended to follow this step before installing the Guifi.net services. Using your Guifi.net credentials you can declare your new Cloudy device to the Guifi.net website, or link it to a Cloudy device already declared.

Once your Cloudy device is integrated with Guifi.net's website it is very easy to install, configure and start the Guifi.net services below.

Proxy3

Guifi-proxy3 is the extension of guifi-proxy package, developed by Carles Guadall, with a set of configurations to get as a result a federated-cache server just when the wizard ends. Since early 2013, the guifi-proxy3 package authenticates the users through a LDAP database, located at ldap.guifi.net and ldap2.guifi.net.

More info (not in English yet):
- (CAT) http://ca.wiki.guifi.net/wiki/Servidor_Proxy
- (ES) http://es.wiki.guifi.net/wiki/Servidor_Proxy

SNPservices

SNPServices is a set of tools to capture the status of the Guifi.net network nodes in your area that are registered with this server. The web server at www.guifi.net tells your server which nodes to monitor and asks for the graphs via a web interface. These graphs are then visible on the Guifi.net website.

Before setting up this service, you should have added it to your node at Guifi.net's website, and the machine has to be connected to both Guifi and the Internet.

More info (not in English yet):
- (CAT) http://acacha.org/mediawiki/index.php/Snpservices
- (ES) http://es.wiki.guifi.net/wiki/SNPservices

DNSservices

DNSServices is an automatic DNS servers configuration system for Guifi.net nodes. It provides address resolution for the domain names created by users at Guifi.net's website (including reverse DNS lookup) and for Internet domain names.

More info (not in English yet):
- (CAT) http://ca.wiki.guifi.net/wiki/Servidor_DNS/ca
- (ES) http://es.wiki.guifi.net/wiki/Servidor_DNS