Comment configurer un "cloud" domestique ?

Si nous simplifions le concept de "cloud computing" à sa forme la plus élémentaire, nous pourrions dire que:

Le Cloud computing n'est rien de plus que de pouvoir exécuter des applications et accéder aux données d'un ordinateur (serveur) à un endroit depuis un autre via Internet (avec un navigateur Web ou une application développée pour être utilisée comme "front end", bien que peu pratique, possible).

Donc ma question est, que dois-je faire pour pouvoir exécuter des programmes et accéder aux données de ma machine serveur à la maison depuis n'importe où dans le monde? ( un seul utilisateur donc je pense qu'aucune virtualisation ne serait requise)

Je ne veux pas devenir un expert en cloud computing par une question dans StackExchange, mais bien comprendre les principes du cloud computing et éventuellement configurer mon propre cloud à la maison.

Veuillez ne pas recommander des choses comme AWS, Azure, Dropbox, google Drive, etc. Je n'essaie pas d'utiliser le stockage de fichiers en nuage ou les services en nuage des 3ème parties. J'essaie de comprendre comment fonctionne le cloud computing sans chercher de recommandations sur des solutions tierces.

J'ai une certaine compréhension du développement front-end et back-end afin de pouvoir écrire mes propres versions très basiques et réduites de dropbox et / ou tout ce qui est nécessaire pour accéder aux fichiers et exécuter des applications, je ne sais tout simplement pas quoi d'autre serait nécessaire pour créer un cloud à la maison qui répond à la définition de "cloud computing" aussi complète que possible. Pour cet exercice, le les applications que je veux exécuter sont des applications C et C ++ sur mon serveur domestique.

demandé sur