Minimal Zsh dotfiles for servers and VPS, with oh-my-zsh + powerlevel10k.
Server one-liner: curl -fsSL https://raw.githubusercontent.com/Michael-YS/server-dotfiles/main/install.sh | sudo bash -s -- --all
This setup is designed for:
- Fast startup
- Safe behavior in non-interactive shells
- Single source of truth for all shell config
- oh-my-zsh + powerlevel10k theme
- Git plugin enabled
- Non-interactive shell safe:
scp,rsync,ssh host cmdwon't load heavy config - Common aliases and settings included
.
├── install.sh # unified installer entry point
├── install_dotfiles.sh # user-level dotfiles installer
├── README.md
├── Server-Init/
│ ├── install_packages.sh
│ ├── install_docker.sh
│ ├── install_tailscale.sh
│ └── utils.sh
└── zsh/
├── zshrc # main entry point
├── zshrc.full # full config (oh-my-zsh + p10k + common settings)
└── p10k.zsh # powerlevel10k config
~/.zshrcis symlinked to~/.dotfiles/zsh/zshrc.zshrcexits immediately for non-interactive shells.- For interactive shells, it sources the full config.
curl -fsSL https://raw.githubusercontent.com/Michael-YS/server-dotfiles/main/install.sh -o /tmp/install.sh
sudo bash /tmp/install.sh --allNotes:
- The server one-liner needs
curl,bash, andtarfrom the base OS. It then installs every other APT-provided dependency before using it. - With no option, the installer only installs user-level dotfiles and requires
gitto already be installed. - Use
--serveras root to install base packages, Docker, and Tailscale. - Use
--allas root to install both dotfiles and server packages. - Tailscale authentication is interactive and prints a verification URL during installation.
- Installer first tries anonymous clone (for public repos).
- If that fails and
GITHUB_TOKENis set, it retries with the token. - If
GITHUB_TOKENis not set, clone will fail.
Example:
export GITHUB_TOKEN=your_token_here
bash /tmp/install.shServer-only example:
sudo bash /tmp/install.sh --servergit clone https://github.com/Michael-YS/server-dotfiles.git ~/.dotfiles
ln -sf ~/.dotfiles/zsh/zshrc ~/.zshrcInstaller will set up oh-my-zsh and powerlevel10k for you.
~/.oh-my-zsh— oh-my-zsh framework~/.oh-my-zsh/custom/themes/powerlevel10k— powerlevel10k theme
Installer can handle both automatically.
git -C ~/.dotfiles pull --ff-only
exec zshCheck oh-my-zsh path:
test -d ~/.oh-my-zsh && echo ok || echo missingCheck p10k theme path:
test -d ~/.oh-my-zsh/custom/themes/powerlevel10k && echo ok || echo missingPersonal dotfiles repository.