DevBox Setup is a collection of scripts and configuration files to quickly set up a development environment on Debian-based systems. It automates the installation of essential packages, system configuration, and user-specific settings to get you up and running quickly.
- Current Version: 2.0
- Last Updated: 2025-03-09
- Two-Phase Setup: Separates system setup from user configuration
- Customizable: Fully configurable through environment variables
- Comprehensive: Installs development tools, programming languages, utilities, and more
- Kubernetes Ready: Sets up Kubernetes automatically
- User Environment: Configures shell, editor, git, and other developer tools
- Multiple Installation Methods: Choose from one-line installers or manual setup
Run the following command to start the interactive installation process:
bash -c "$(curl -sSL https://raw.githubusercontent.com/mestadler/sans-devbox-bootstrap/main/install.sh)"
This will:
- Download the necessary scripts
- Ask for your configuration preferences
- Create a customized environment file
- Run the system setup (requires sudo)
- Run the user configuration
If you already have a configured .env
file, use:
bash -c "$(curl -sSL https://raw.githubusercontent.com/mestadler/sans-devbox-bootstrap/main/install-local-env.sh)" _ /path/to/your/.env
-
Clone this repository:
git clone https://github.com/mestadler/sans-devbox-bootstrap.git cd sans-devbox-bootstrap
-
Create your environment file:
cp .env_example .env
-
Edit
.env
with your specific details:nano .env
-
Run the system setup script:
sudo ./devbox-init.sh .env
-
Run the user configuration script:
./devbox-user-init.sh .env
This script performs system-level setup and must be run as root:
- Configures system locale and timezone
- Sets up network settings
- Installs specified packages
- Performs a full system upgrade
- Configures automatic security updates
- Sets up Kubernetes
This script handles user-specific configurations and must be run as a regular user:
- Clones your configuration repository
- Deploys dotfiles (.bashrc, .vimrc, etc.)
- Sets up special configuration files
- Configures development tools
- Provides a dry-run option for testing
The .env
file contains all necessary configuration settings. Key sections include:
LANG="en_GB.UTF-8"
LC_ALL="en_GB.UTF-8"
TZ="Europe/London"
KUBERNETES_VERSION="1.32.2-00"
PACKAGES="apt-transport-https apt-utils [...]"
GITHUB_USERNAME="your-github-username"
DEBFULLNAME="Your Full Name"
DEBEMAIL="[email protected]"
REPO_URL="https://github.com/username/devbox-setup.git"
DOTFILES=".bashrc .bashrc-developer .gitconfig .vimrc .sgptrc"
GITHUB_TOKEN="your-github-token"
OPENAI_GPT_API_KEY="your-openai-api-key"
DEFAULT_MODEL="gpt-4o-2024-05-13"
Modify the PACKAGES
variable in .env
to customize what software gets installed.
By default, user configuration files are cloned from your specified repository. Update the REPO_URL
in your .env
file to use your own repository.
The DOTFILES
variable defines which configuration files are managed by the script. Add or remove files as needed.
To test user configuration without making changes:
./devbox-user-init.sh .env --dry-run
You can selectively update dotfiles by modifying the DOTFILES
variable in your .env
file.
The .env
file contains sensitive information such as API keys and tokens. Keep it secure and do not share it publicly.
- Debian-based distributions (Debian, Ubuntu, etc.)
- Tested on Ubuntu 22.04 LTS and Debian 11
Contributions to improve DevBox Setup are welcome. Please feel free to submit pull requests or create issues for bugs and feature requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to all devs who have shared their dotfiles and configurations
- Special appreciation to the open-source community for the tools and packages included