diff --git a/Specifications.md b/Specifications.md index 22af333..87dbf74 100644 --- a/Specifications.md +++ b/Specifications.md @@ -11,24 +11,78 @@ 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 instructions -- determines if the service is on the server -if it is: -- creates directories (secret, data, http) if necessary -- 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 ? -- user creation ? -- environment variables creation ? +deploy_service(service) +{ + - determines if the service is on this server + if it is: + - checks the environment + - creates directories (secret, data, http) if necessary + - calls the bash scripts specific to the service if they exist (deploy_as) + - creates user and .env variables if necessary + - calls the deployment functions from the libraries +} -Deployment libraries : -- nginx configuration +remove_service(service) //should there be some kind of less absolute removal? +{ + - determines if the service is on this server + if it is: + - calls the removing bash scripts specific to the service if they exist + - calls the removing functions from the libraries + - deletes .env variables + - deletes directories + - deletes user + - removes from .csv //should this get done before by the sysadmin? but how to check that something was here if it has been removed ? +} + +**main.cpp** +- reads the instructions +If deploy all: + - tests system requirements (/data/mounted) + - prepares Nginx + - prepares Docker + - prepares .env + for each service: + - deploy_service(service) + - cleans +else if deploy one service: + - deploy_service(service) +else if remove all: + for each service: + - remove_service(service) + - stop Docker + - stop wireguard + - stop Nginx + - cleans .env + - cleans +else if remove one service: + - remove_service(service) + +**plugins/static libraries** +- nginx preparation deployment - reload + deployment + testing + cleaning + restart + restart + testing + cleaning + stop - wireguard -- encryption + deploy (with and without namespace) + remove +- encryption + deploy + remove - docker + preparation + deploy + remove + stop + clean +**functions/imports if too long** +- user creation +- environment variables handling