Skip to content

Automate the setup of a new system with ease, AutoPilot - it's simple.

License

Notifications You must be signed in to change notification settings

Noam-Alum/AutoPilot

Repository files navigation

AutoPilot It's simple.

made-with-bash made-with-utils.sh version

AutoPilot is a free to use bash script (for both Debian and RHEL related operating systems) written by Noam Alum meant to automate the process of setting up a new system.
It uses YAML for its configuration file, so it is very easy to set up, and you can create numerous configuration files for different occasions. (I like to call them "Profiles" 🙃)

Note

Supports Debian and RHEL related systems! 💪

AutoPilotBanner

Note

This script relies heavily on a collection of functions, utils.sh.

AutoPilot/AutoPilot.sh

Lines 11 to 13 in 8a05103

source <(curl -Ls "https://raw.githubusercontent.com/Noam-Alum/utils.sh/main/utils.sh")


ReadMe Card



Installation:

  • Git clone:

    git clone https://github.com/Noam-Alum/AutoPilot.git
  • wget:

    wget https://github.com/Noam-Alum/AutoPilot/archive/refs/heads/main.zip
    unzip main.zip

Usage:

Warning

To use the script you first need to conduct a configuration file, instructions for this are available here.

sudo ./AutoPilot.sh configuration.yaml

Configuration

AutoPilot uses YAML for its configuration file, for example:

SELinux: Disabled

Installed_packages:
  - name: FireJail
    type: Pm
    source: firejail
  - name: Discord
    type: Pkg
    source: "https://discord.com/api/download?platform=linux&format=deb"
  - name: NVIM
    type: Sh
    source: "https://docs.alum.sh/files/NVIM-install.sh"
  - name: Chrome
    type: Pkg
    source: https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
  - name: git
    type: Pm
    source: git

Run_Lines:
  - echo "Hello"
  - echo "Hello world"

Plugins:
  - name: FireJail
    script: plugins/firejail
  - name: make_backup
    script: plugins/make_backup

Network_Configuration:
  - nic: tun0
    ip: 192.168.2.14/24
    gateway: 192.168.2.1
    dns: 8.8.8.8,8.4.8.4
  - nic: eth0
    ip: "%DHCP%"
    gateway: "%DHCP%"
    dns: "%DHCP%"

For detailed documentation on every directive:

Button Component



Contribute

Any contribution would be greatly appreciated, refer to this page for detailed guides on how to contribute.


Note

If you want to request a new feature, you can do that here.