A professional Dockerized environment for LazyVim (advanced Neovim configuration) with essential developer tools. Perfect for development without installing anything on your host machine!
Install directly without cloning the repository - automatic setup with smart defaults:
# One-line installation with automatic configuration
curl -fsSL https://raw.githubusercontent.com/manghidev/lazyvim-docker/main/scripts/start.sh | bash
# Then use from anywhere
lazy enter # Enter LazyVim development environment
lazy configure # Customize your setup (optional)
If you prefer to clone the repository manually:
git clone https://github.com/manghidev/lazyvim-docker.git && cd lazyvim-docker && make quick
git clone https://github.com/manghidev/lazyvim-docker.git
cd lazyvim-docker
make build # Build the environment
make enter # Enter the container
Complete removal when you no longer need LazyVim Docker:
# Interactive uninstall (asks for confirmation)
lazy uninstall
# Or run directly
curl -fsSL https://raw.githubusercontent.com/manghidev/lazyvim-docker/main/scripts/uninstall.sh | bash
Removes everything: Docker containers, installation files, global commands, and shell configurations in one step.
- LazyVim: Predefined Neovim configuration for maximum productivity
- Dockerized: Fully isolated and reproducible environment
- Rich Terminal: Zsh with Oh My Zsh, Powerlevel10k theme, and useful plugins
- 40+ Developer Tools: git, lazygit, tmux, python, node.js, and many more
- Easy Remote Setup: No need to clone repository manually - just one command
- Simple Management: Easy commands for all operations
- Persistent Configuration: All changes are saved between sessions
- Cross-Platform: Works on macOS and Linux
- Auto-Updates: Built-in update mechanism
After remote installation, use these commands from anywhere:
lazy enter # π₯ Enter LazyVim development environment
lazy start # Start the container
lazy stop # Stop the container
lazy status # Check container status
lazy build # Build/rebuild environment
lazy update # Update to latest version
lazy uninstall # Complete removal
From the project directory:
make # Show all available commands (default target)
make enter # π₯ DAILY USE: Enter container (starts automatically if stopped)
make start # Start existing container (preserves all data)
make stop # Stop container (saves all data and plugins)
make status # Check container status
make build # β οΈ ONLY for first time or major updates
make destroy # β οΈ DANGEROUS: Removes everything
π‘ For daily development: Use
lazy enter
(remote) ormake enter
(traditional)
LazyVim Docker provides three main remote scripts for easy management:
start.sh
- Automatic setup with smart defaults
# Full installation with automatic configuration
curl -fsSL https://raw.githubusercontent.com/manghidev/lazyvim-docker/main/scripts/start.sh | bash
What it does:
- β Checks system requirements (Docker, git, curl)
- β
Downloads LazyVim Docker to
~/.local/share/lazyvim-docker
- β
Creates global
lazy
command in~/.local/bin
- β
Adds
~/.local/bin
to your PATH automatically - β Builds Docker environment (may take a few minutes)
- β Uses smart defaults for timezone and directories
- β Creates shell configuration backups
Smart Update System - Keep your installation up to date
# Update to latest version (recommended)
lazy update
# Or from project directory
make update
What it does:
- β Checks current vs latest version
- β Creates backup of current installation
- β Downloads latest version
- β Preserves user configurations (.dotfiles, backups)
- β Updates installation while keeping your settings
- β Optionally rebuilds Docker containers
Smart Uninstaller - Complete and safe cleanup
# Interactive uninstall with confirmation prompt
lazy uninstall
# Or run directly with prompts
curl -fsSL https://raw.githubusercontent.com/manghidev/lazyvim-docker/main/scripts/uninstall.sh | bash
What it does when you confirm:
- β Stops and removes all Docker containers and images
- β
Removes installation directory (
~/.local/share/lazyvim-docker
) - β
Removes global
lazy
command - β
Removes shell configuration entries (
.zshrc
,.bashrc
, etc.) - β Removes PATH modifications automatically
- β Creates timestamped backups before making changes
- β Everything is removed in one confirmation - no additional prompts
Safety Features:
- π‘οΈ Interactive confirmation - Shows exactly what will be removed
- π‘οΈ Non-interactive safety - Cancels by default when piped unless forced
- π‘οΈ Automatic backups - Creates backups of modified configuration files
- π‘οΈ Clear messaging - Shows progress and results of each step
Purpose: Complete LazyVim Docker setup with automatic configuration
Requirements Check:
- Docker (with compose support)
- Git (for downloading)
- Curl (for execution)
- Supported OS: macOS, Linux
Installation Process:
- Creates
~/.local/share/lazyvim-docker
directory - Downloads latest repository to temp location
- Moves files to installation directory
- Creates global
lazy
command in~/.local/bin
- Updates shell PATH in
.zshrc
/.bashrc
- Builds Docker environment (5-10 minutes)
- Cleans up temporary files
Files Modified:
~/.zshrc
or~/.bashrc
(adds PATH)- Creates
~/.local/bin/lazy
- Creates
~/.local/share/lazyvim-docker/
Purpose: Update existing installation to latest version with intelligent version checking
Update Process:
- Checks current version vs latest GitHub release
- Compares local and remote git commits
- Interactive prompts for user confirmation
- Creates backup of current installation
- Downloads latest version preserving development setup
- Preserves user configurations (.dotfiles, backups)
- Offers container rebuild options
- Optionally rebuilds Docker containers
- Cleans up temporary files
Preserved Data:
.dotfiles/
(your Neovim, shell configs)backups/
(configuration backups)- Docker volumes (development data)
Safe Rollback:
- Backup created before update in
~/.local/share/lazyvim-docker-backup-[timestamp]
Purpose: Complete and safe removal of LazyVim Docker installation
Removal Process:
- Shows exactly what will be removed
- Single confirmation prompt - no additional questions
- Stops all running containers
- Removes Docker containers, images, and volumes
- Removes installation directory (
~/.local/share/lazyvim-docker
) - Removes global
lazy
command and shell integrations - Removes PATH modifications automatically
- Creates timestamped backups before any changes
Smart Detection:
- Interactive mode: Shows confirmation prompt when run manually
- Automatic backup: Creates
.backup.[timestamp]
files before modifying shell configs
Complete Cleanup:
- β Docker: containers, images, volumes
- β Files: installation directory, global command
- β Config: shell entries and PATH modifications
- β Everything removed in one confirmation - streamlined process
Method | Command | Best For | Global Access |
---|---|---|---|
Remote Install | curl ... | bash |
End users, daily use | β
lazy anywhere |
Traditional | git clone ... |
Developers, customization | β Must cd to directory |
From Traditional to Remote:
# From your existing repo directory
make destroy && cd .. && rm -rf lazyvim-docker
curl -fsSL https://raw.githubusercontent.com/manghidev/lazyvim-docker/main/scripts/start.sh | bash
From Remote to Traditional:
lazy uninstall
git clone https://github.com/manghidev/lazyvim-docker.git && cd lazyvim-docker && make quick
# 1. Install once (5-10 minutes) - automatic setup
curl -fsSL https://raw.githubusercontent.com/manghidev/lazyvim-docker/main/scripts/start.sh | bash
# 2. Daily usage from anywhere
cd ~/Projects/my-project
lazy enter # Start coding immediately
# 3. Management commands
lazy status # Check if running
lazy stop # Stop when done
lazy configure # Customize setup (optional)
lazy update # Update weekly/monthly
# 1. Install once
git clone https://github.com/manghidev/lazyvim-docker.git && cd lazyvim-docker && make quick
# 2. Daily usage (must be in project directory)
cd path/to/lazyvim-docker
make enter # Start coding
# 3. Management
make status && make stop
For detailed workflow and troubleshooting: π Container Lifecycle Guide
After installation, you can easily reconfigure directories and timezone:
# Reconfigure interactively - works from anywhere
lazy configure
# Traditional installation
make configure # (from project directory)
What you can configure:
- β Timezone: Automatically detects your system timezone with common options
- β Directories: Choose which local directories to mount in the container
- β Projects Folder: Set up your main development directory
- β Custom Mounts: Add any additional directories you need
During lazy configure
you can set up:
# Common setups that will be offered
~/Documents β /home/developer/Documents # Default
~/Projects β /home/developer/Projects # Development projects
~/Developer β /home/developer/Developer # macOS default
~/Desktop β /home/developer/Desktop # Quick access files
/Volumes/USB β /home/developer/usb # External drives
Configure your timezone in docker-compose.yml
:
Automated (Easy):
lazy configure # Interactive timezone selection
Manual (Traditional):
services:
code-editor:
build:
args:
TIMEZONE: America/Mexico_City # Change this
environment:
- TZ=America/Mexico_City # And this
Common timezones:
America/New_York
(EST/EDT)America/Los_Angeles
(PST/PDT)America/Mexico_City
(CST/CDT)Europe/London
(GMT/BST)Europe/Madrid
(CET/CEST)Asia/Tokyo
(JST)
Apply changes:
lazy build # Remote installation
make build # Traditional installation
Add your project directories in docker-compose.yml
:
volumes:
- $HOME/Documents:/home/developer/Documents # Default
- $HOME/Projects:/home/developer/Projects # Add this
- $HOME/Developer:/home/developer/Developer # Or this
- /path/to/custom:/home/developer/custom # Custom paths
lazy status # Container status
lazy # Available commands
make health # Comprehensive diagnostics (traditional)
# Container won't start
lazy stop && lazy start
# Need fresh environment
lazy build
# Update to fix issues
lazy update
# Nuclear option - complete reinstall
lazy uninstall && curl -fsSL https://raw.githubusercontent.com/manghidev/lazyvim-docker/main/scripts/start.sh | bash
Main Documentation:
- π Complete Commands Reference - All available commands
- π Container Lifecycle Guide - Detailed workflows
Support:
- π Report Issues
- π‘ Feature Requests
- β Star the Project
Created by ManghiDev
π Personal Website
π§ GitHub Issues
License: GPLv3 - See LICENSE file
Additional Resources: