Aller au contenu

another-install-script : Un menu d’installation pour le homelab

another-install-script propose un menu shell pour choisir des opérations système et installer des conteneurs. Les menus et les définitions de services sont séparés, ce qui évite de placer toutes les commandes dans setup.sh.

Configuration et automatisation Docker
  • Mis à jour
  • 3
  • Shell · 93.8%
  • GPL-3.0
Langages du dépôtShell 93.8%3

Parts calculées à partir des octets GitHub Linguist.

Langage%Octets
Shell93.8%129 426
Dockerfile3.12%4 311
Python3.07%4 242

GitHub · README · Statistiques de langages

Aperçu

Pourquoi il existe

Installateur shell interactif (TUI) automatisant le déploiement de conteneurs Docker et de configurations serveur.

Cas d’usage

Déploiement rapide de serveurs et d'environnements homelab en une commande.

Démarrage

Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.

README.md · How to install
git clone https://github.com/antoinebou13/another-install-script.git
cd another-install-script
sudo bash setup.sh
README.md · How to run coverage and tests
cd tests
bash test.sh
README.md · How to run coverage and tests
cd tests
bash coverage.sh
README.md · How to generate the documentation
git submodule update --init --recursive
git pull --recurse-submodules
git submodule update --remote
cd docs/generator
chmod +x generate_docs.sh
bash generate_docs.sh ../docs.md
README.md · Project Structure
+-- docs
|   +-- vendor
|       +-- ...
|   +-- docs.md
|   +-- generate_docs.md
|   +-- ...
+-- containers
|   +-- $container_name
|   |   |   +-- docker-compose.yml
|   |   |   +-- $container_name.sh
|   |   |   +-- ...
+-- src

Références du dépôt

Extraits des guides du dépôt, dans leur langue d’origine. Les liens ouvrent la version du code consultée.

Prérequis et premier essai

How to install

README.md

Currently, the script has been tested only on Ubuntu 18.04. You can install it by:
Lire les instructions complètes ↗

List of other installed program that you can chose to install

README.md

This script also offers optional installation of several other programs including git, python3, docker, docker-compose, snapd, curl, vim, and more.

  • build-essential
  • git
  • python3
  • python3-pip
  • wireless-tools
  • wpasupplicant
  • default-jre
  • jq
  • net-tools
  • firefox
  • lxde
  • vim
  • snapd
  • nmap
  • wget
  • curl
  • mlocate
  • cmake
  • docker
  • docker-compose
  • dry
  • ctop
  • emojify
  • dokku
  • lynk
Lire les instructions complètes ↗
Développement et contributions

How to run coverage and tests

README.md

Manuel Testing For running the bats tests For running and generate with kcov
Lire les instructions complètes ↗

Contributing

README.md

All pull request and suggestion is highly appreciated and encourage Go to Contributing
Lire les instructions complètes ↗

Contributing

.github/CONTRIBUTING.md

When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. Please note we have a code of conduct, please follow it in all your interactions with the project.
Lire les instructions complètes ↗
Documentation source

2 documents lus parmi 2 candidats.

Fonctions et composants 2

Point d’entrée et menus
setup.sh charge src/menu.sh et appelle main_setup_menu. Le script racine traite les arguments, tandis que le module chargé pilote la navigation. config.yml constitue le fichier de configuration placé à côté du lanceur.
Définitions des services
Le dossier containers contient les éléments d’installation propres aux services. Cette séparation facilite l’ajout de services, mais chaque installation modifie tout de même l’hôte ou son environnement Docker.

Architecture

Les composants et leurs liens restent lisibles en texte. Le diagramme ajoute une vue interactive.

Contexte système Contexte
  1. setup.sh
  2. src/menu.sh
  3. Configuration et sélection
  4. Installation du conteneur

Liens vérifiés dans le dépôt.

Mermaid Diagramme interactif (chargement à l’ouverture)

Vue générale des composants et des échanges vérifiés dans le dépôt.

Vue statique de l’architecture de another-install-script
Aperçu statique. Le diagramme interactif le remplace après le chargement de Mermaid.
flowchart LR

subgraph group_cli["CLI management"]
  node_menu["CLI menu<br/>[menu.sh]"]
  node_router["Command router<br/>[router.sh]"]
  node_utilities["Shell utilities<br/>[utils.sh]"]
end

subgraph group_services["Service deployment"]
  node_service_catalog["Service catalog"]
  node_service_scripts["Service installers"]
  node_compose_definitions["Compose definitions"]
  node_container_manager["Container manager<br/>[containers.sh]"]
  node_docker_manager["Docker operations<br/>[docker.sh]"]
end

subgraph group_system["Server management"]
  node_program_installer["Program installer<br/>[install.sh]"]
  node_other_tools["Other programs<br/>[other.sh]"]
  node_firewall["Firewall management<br/>[firewall.sh]"]
  node_backup["Backup management<br/>[backup.sh]"]
end

subgraph group_config["Configuration utilities"]
  node_config_loader["Config management<br/>[config.sh]"]
  node_list_generator["Service list generator<br/>[containers_list.py]"]
  node_proxy_generator["Proxy config generator"]
  node_settings["System settings<br/>[config.yml]"]
end

node_user(("Server administrator"))
node_docker["Docker"]

node_user -->|"chooses services"| node_menu
node_menu -.->|"routes commands"| node_router
node_router -.->|"manages containers"| node_container_manager
node_container_manager -.->|"uses Docker operations"| node_docker_manager
node_docker_manager -.->|"operates"| node_docker
node_service_scripts -.->|"uses definitions"| node_compose_definitions
node_container_manager -.->|"installs services"| node_service_catalog
node_user -->|"requests programs"| node_program_installer
node_program_installer -.->|"offers programs"| node_other_tools
node_list_generator -->|"reads settings"| node_settings
node_proxy_generator -->|"reads settings"| node_settings


class node_menu,node_router,node_utilities toneBlue
class node_service_catalog,node_service_scripts,node_compose_definitions,node_container_manager,node_docker_manager toneAmber
class node_program_installer,node_other_tools,node_firewall,node_backup,node_user toneMint
class node_config_loader,node_list_generator,node_proxy_generator,node_settings toneRose
class node_docker toneIndigo

Un gestionnaire en ligne de commande pour installer et configurer des services auto-hébergés. Le parcours documenté part du menu, choisit un service ou un programme, puis délègue les conteneurs, le proxy et la configuration à des utilitaires Shell et Python.

Composants
18
Connexions
11
Liens appuyés par le code ou le README
4/11
Version texte du diagramme
  • setup.sh → src/menu.sh
  • src/menu.sh → Configuration et sélection
  • Configuration et sélection → Installation du conteneur
Suivre un parcours dans le code

Partez de l’appel à main_setup_menu, puis inspectez le service choisi dans containers avant de l’exécuter. Le menu distribue les actions; le service choisi détermine les changements réels.

Déploiement et exploitation

Les ports, le stockage et les relations de démarrage ci-dessous viennent de la configuration du dépôt. depends_on indique l’ordre de démarrage, pas la disponibilité du service.

Types et structure des fichiers

2 types déclarés, dont 2 dans l’aperçu des relations de base.

Diagramme des types
classDiagram
direction TB
class t9c1d5cd3c00c["GeneratorAIS"] {
  __init__()
  read_yml()
  generate_containers_list()
  write_containers_list_text()
}
class t51dcacef3aad["ReverseProxy"] {
  read_yml()
  generate_nginx_conf()
  generate_server_block()
}
class bb0976d8612e0["object"] {
  <<unresolved_base>>
}
bb0976d8612e0 <|-- t9c1d5cd3c00c

Les bases non résolues restent identifiées; les signatures complètes ne sont pas reconstruites.

Index des types
  • GeneratorAIS (class) · src/containers_list.py:8

    Méthodes dans l’aperçu : __init__, read_yml, generate_containers_list, write_containers_list_text.

    Bases déclarées : object.

  • ReverseProxy (class) · src/nginx_reverse_proxy.py:9

    Méthodes dans l’aperçu : read_yml, generate_nginx_conf, generate_server_block.

Référence

203 / 203 fichiers admissibles lus (291 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 1 diagnostic de syntaxe.

Ce que couvre l’analyse

Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.

Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.

Carte des fichiers
flowchart TD
  root["another-install-script"]
  f0["setup.sh"]
  root --> f0
  f1["src/menu.sh"]
  root --> f1
  f2["README.md"]
  root --> f2
  f3["uninstall.sh"]
  root --> f3
  f4["version.sh"]
  root --> f4
  f5["src/backup.sh"]
  root --> f5
  f6["src/config.sh"]
  root --> f6
  f7["src/containers.sh"]
  root --> f7
  f8["src/containers_list.py"]
  root --> f8
  f9["src/docker.sh"]
  root --> f9
  f10["src/firewall.sh"]
  root --> f10
  f11["src/install.sh"]
  root --> f11
  f12["src/nginx_reverse_proxy.py"]
  root --> f12
  f13["src/other.sh"]
  root --> f13
  f14["src/router.sh"]
  root --> f14
  f15["src/utils.sh"]
  root --> f15

Fichiers à lire 3

Références