Zephyr ✳️ is a powerful framework designed to simplify and improve your experience with Ubuntu installation & configuration. It separates the generalized scripts that apply the customizations (Modules) from the configurations they manage (Profiles). If you're looking to automate your customization workflow, you've come to the right place!
Let's see these two core concepts as they tell the most about Zephyr and how it helps.
For more detailed information, please refer to the online documentation.
You can store your configurations organized into profiles. It's possible to create many different profiles and a default one. If a configuration value is not specified in the selected profile, it falls back to the default. This provides flexibility so you can tailor customization to your needs.
Zephyr relies on modules to apply specific configurations and customizations to your system. These modules perform a wide range of tasks, for example:
- Install packages (APT, node, pip, snap)
- Configure applications & tools (Apache, PHP, VirtualBox, Git, dig, ssh, nmap, etc.)
- Configure GNOME, Bash
- Set up Linux subsystems (e.g. sudo, cron, systemd)
- Disk partitioning & formatting
- Remix Ubuntu ISO
As you might see, the core modules should cover the needs of a web developer, sysadmin, or power user. If you're missing a module, you can roll your own to extend Zephyr's capabilities!
To install Zephyr locally, clone the Git repository, modify a few configurations (usually unnecessary), run the installer and you're good to go!
Below are the detailed installation steps:
- Clone Git repository
cd /path/to/desired/directory git clone https://github.com/es-progress/zephyr.git
- (Optional) Configure Zephyr
- Check the default configurations in
zephyr.cfg
or the Reference to understand what you can customize. - Make a duplicate of this file and rename it to
zephyr.local.cfg
cp zephyr.cfg zephyr.local.cfg
- Adjust configurations in the local configuration file. Any value provided here will overwrite the defaults in
zephyr.cfg
. If a setting is not defined, the default value will be applied.
- Check the default configurations in
- Run the installer, which will:
- Set up Bash completion for
zephyrctl
- Create a symlink for
zephyrctl
in/usr/local/bin
, making it accessible from anywhere (if/usr/local/bin
is in your PATH).
# Replace ZEPHYR_DIR with the actual path where Zephyr were cloned earlier cd ZEPHYR_DIR ./bin/zephyrctl install
- Set up Bash completion for
Executing a module is as simple as this:
zephyrctl customize PROFILE [MODULE]...
where:
PROFILE Selected customization profile
MODULE List of modules to run
This project is licensed under the GPLv3 license.
PRs are always welcomed! ❤️
DISCLAIMER: Ubuntu is a registered trademark owned by Canonical. Zephyr is NOT affiliated with, endorsed or sponsored by Canonical in any ways.