/another-install-script

Script to install multiple docker container and system configuration with a extensible, easy, simple menu

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Another Install Script

Spiritual successor

DasherControl

GitHub top language Build Status GitHub commit activity Codecov GitHub repo size GitHub FOSSA Status

Another Install Script is a W.I.P project/script aimed at simplifying the installation of multiple docker containers through an easy-to-use menu, primarily designed for personal servers.

Another install Script

The story behind the project

The desire to facilitate the installation of a variety of services/servers through Docker. The goal is to provide a simple, extensible, and customizable script to add numerous self-hosted services/servers that are easy to install with a simple CLI menu.

I started working on the project because I just bought a VPS to host my TeamSpeak and Minecraft server. After navigating r/selfhosting, I saw the multiple of several services/servers that can be simply installed with docker. Also, I found multiple repos that tries to do the same thing with their favorite container IOStack and sovereign and MediaServerDockerCompose. I am trying to do with this project is to make a simple, extensible and customizable script to add a lot of selfhosted services/servers to easy to install with a simple cli menu. The project is a super easy install script for beginner/intermediate linux power user that want to test quickly interesting docker containers of server/service. The project is a highly configurable install script with a container orchestrator and general manager for multiple docker.

How to install

Currently, the script has been tested only on Ubuntu 18.04. You can install it by:

git clone https://github.com/antoinebou13/another-install-script.git
cd another-install-script
sudo bash setup.sh

Uninstall

cd another-install-script
sudo bash uninstall.sh

List of the services/server

Around 80 containers/servers can be installed with this script. Go check the list below ⬇.

Check the Google Sheet for the complete list.
Go to the Google Sheet

Notes

Some services/servers cannot be installed at the same time. Also more configuration needed for certain services/servers

List of other installed program that you can chose to install

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

Project Structure

A simple project overview to with the explaination of each important file

+-- docs
|   +-- vendor
|       +-- ...
|   +-- docs.md
|   +-- generate_docs.md
|   +-- ...
+-- containers
|   +-- $container_name
|   |   |   +-- docker-compose.yml
|   |   |   +-- $container_name.sh
|   |   |   +-- ...
+-- src
|   +-- backup.sh
|   +-- config.sh
|   +-- containers.sh
|   +-- docker.sh
|   +-- firewall.sh
|   +-- install.sh
|   +-- menu.sh
|   +-- other.sh
|   +-- router.sh
|   +-- utils.sh
+-- config.yml
+-- setup.sh
+-- uninstall.sh
Path Explanation
docs The directory for the documentation for the code and the project
docs/vendor The vendor program to generate the documentation
src The path for the code for the project
containers/$container_name The path for docker container with a script and docker-compose

How to run coverage and tests

Manuel Testing

For running the bats tests

cd tests
bash test.sh

For running and generate with kcov

cd tests
bash coverage.sh

How to generate the documentation

For running and generate the documentation with shdoc

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

Documentation

Go to Documentation

Code of Conduct

Go to Code of Conduct

Contributing

All pull request and suggestion is highly appreciated and encourage

Please Contribute for Bernie

Go to Contributing

Changelog

Go to Changelog

License

Go to License

FOSSA Status

Roadmap

  • Auto vm creation for ci and personnal use
  • Add traefik reverse proxy with subdomain for each docker container
  • Easier config file or adding yml file to individual folder
  • More docker containers
  • Automatic docker compose and containers update
  • Automatic backups
  • Automatic testing and better coverage
  • Automatic Versioning
  • Better cli menu
  • Rewrite in python