commit 989fe9521b19ffcab0a3589faef1c9674cf12d53 Author: eleonore12345 Date: Mon Jul 29 13:08:47 2024 +0200 debut specifications diff --git a/Specifications.md b/Specifications.md new file mode 100644 index 0000000..d5e8c7b --- /dev/null +++ b/Specifications.md @@ -0,0 +1,33 @@ +# Shlagernetes deployer - Specifications + +# Context + +Shlagernetes is an orchestration tool allowing services to be stored on second-hand servers. It handles the configuration of the servers, the installation and maintenance of services as well as their deletion. Services can be static or dynamic websites, VPNs, etc. They can be in a container if required but not necessarily. +Shlagernetes works with an nginx reverse proxy, wireguard VPN, letsencrypt ssl certification and Git versioning. + +Shl8s works with the principle of Infrastructure As Code. +On every server, there will be an instance of the Shl8s deployer. This C++ deployer receives ligth ansible instructions from the system administrator. +It then procedes to execute the right functions for the service. +The deployer will call bash scripts specific to the service, as well as functions from libraries specific to setting the nginx configuration, the vpn, ssl certification, etc. + +# Description +main.cpp +- reads the ansible instructions +- determines if the service is on the server +- calls the bash scripts specific to the service if they exist (deploy_as) +- calls the right deployment functions according to the instructions, from the deployment libraries +- calls the DNS service ? + +Libraries : +- nginx configuration library + preparation + deployment + reload +- wireguard configuration library +- + + + + + +# Functional requirements