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.
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.
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
cd another-install-script
sudo bash uninstall.sh
Around 80 containers/servers can be installed with this script. Go check the list below ⬇.
Some services/servers cannot be installed at the same time. Also more configuration needed for certain services/servers
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
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 |
For running the bats tests
cd tests
bash test.sh
For running and generate with kcov
cd tests
bash coverage.sh
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
Go to Documentation
Go to Code of Conduct
All pull request and suggestion is highly appreciated and encourage
Go to Contributing
Go to Changelog
Go to License
- 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