https://github.com/przbadu/dotfiles
My dotfiles for setting up new system
https://github.com/przbadu/dotfiles
Last synced: 2 months ago
JSON representation
My dotfiles for setting up new system
- Host: GitHub
- URL: https://github.com/przbadu/dotfiles
- Owner: przbadu
- Created: 2024-02-05T15:18:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-20T05:16:22.000Z (3 months ago)
- Last Synced: 2025-02-20T06:24:30.770Z (3 months ago)
- Language: Shell
- Size: 299 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LXC Container Development Environment Setup
This script automates the setup of a development environment in an LXC container, installing and configuring essential development tools and utilities.
## Features
- System dependencies installation
- Development tools setup:
- mise (version manager)
- Ruby
- Node.js
- Git
- Neovim
- LazyVim
- Lazygit
- Idempotent installation (safe to run multiple times)
- Automatic backup of existing configurations
- Detailed logging and error handling## Prerequisites
- Ubuntu/Debian-based LXC container
- Internet connection
- Sudo privileges## Installation
### IMPORTANT: Security Note
We encourage users to inspect the script before running it:
> NOTE: because this script contains step to install zsh and change your default shell, running script
> Directly from curl command e.g: `curl -sSL | bash` will throw error.
> if you already have zsh installed, you can run it like that, otherwise follow:**If you want to use zsh shell**
```bash
curl -sSL https://raw.githubusercontent.com/przbadu/dotfiles/main/setup.sh > setup.sh
# Review the content please...
chmod +x setup.sh
./setup.sh# after succesfully completed
rm setup.sh
```**If you want to use bash shell or if you already have zsh activated**
```sh
curl -sSL https://raw.githubusercontent.com/przbadu/dotfiles/main/setup.sh | bash
```### Configuration Options
During installation, you'll be prompted to configure:
- Git username and email (if not already configured)
- Ruby version (default: 3)
- Node.js version (default: 22.13.0)## What Gets Installed
### System Dependencies
- build-essential
- rustc
- libssl-dev
- libyaml-dev
- zlib1g-dev
- libgmp-dev### Development Tools
- mise (version manager)
- Ruby (configurable version)
- Node.js (configurable version)
- Git (with user configuration)
- Neovim (latest version)
- LazyVim (with dependencies)
- git
- fzf
- curl
- ripgrep
- Lazygit (latest version)## Directory Structure
The script creates and modifies the following directories:
Copy
```sh
$HOME/
├── .local/
│ ├── bin/
│ ├── share/nvim/
│ └── state/nvim/
├── .config/
│ └── nvim/
└── .cache/
└── nvim/
```## Backup Behavior
The script automatically backs up existing configurations by appending `.bak` to the directory names:
- `~/.config/nvim` → `~/.config/nvim.bak`
- `~/.local/share/nvim` → `~/.local/share/nvim.bak`
- `~/.local/state/nvim` → `~/.local/state/nvim.bak`
- `~/.cache/nvim` → `~/.cache/nvim.bak`## Troubleshooting
### Common Issues
1. **Permission Denied**
```sh
sudo chmod +x setup-container.sh
```
2. **Network Issues**
- Ensure your container has internet access
- Check if required URLs are accessible3. **Installation Failures**
- Check the logs for specific error messages
- Ensure you have sufficient disk space
- Verify system requirements are met## Contributing
4. Fork the repository
5. Create your feature branch
6. Commit your changes
7. Push to the branch
8. Create a new Pull Request## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgments
- [LazyVim](https://github.com/LazyVim/starter)
- [Lazygit](https://github.com/jesseduffield/lazygit)
- [mise](https://mise.run)