Skip to content

Latest commit

 

History

History
132 lines (96 loc) · 3.27 KB

File metadata and controls

132 lines (96 loc) · 3.27 KB

Quick Start

One-time setup: ~/.env

All scripts read config from a single file at $HOME/.env (canonical). The repo-root .env is a symlink to it.

cp .env.example ~/.env
chmod 600 ~/.env
ln -sf ~/.env .env          # at the repo root, for docker-compose env_file

Edit ~/.env and fill in SETUP_USER, SETUP_HOST, RAGFLOW_API_KEY, LLAMACPP_*, etc. — see .env.example for the full list.

Don't create per-subdir .env files — everything sources from ~/.env.


macOS

bash mac/01_basics.sh         # Homebrew + all baseline tools
bash linux/02_dotfiles.sh     # chezmoi dotfiles + tmux plugins
bash linux/03_shell.sh        # zsh + powerlevel10k + plugins
exec zsh && p10k configure

Optional add-ons:

bash tools/10_claude.sh       # Claude Code CLI
bash tools/10_ai_tools.sh     # Gemini CLI, GH Copilot, Pi
bash tools/10_llm_tools.sh    # llm, aider, ttok, strip-tags, files-to-prompt
bash tools/20_atuin.sh        # shell history sync
bash tools/20_uv.sh           # Python manager

New Linux Server — automated

Run from your local machine (handles everything in one step):

bash linux/00_bootstrap.sh <HOST_IP>
# or with password: bash linux/00_bootstrap.sh <HOST_IP> --root-pass 'password'

Then SSH in as your user and continue:

bash linux/01_basics.sh
bash linux/02_dotfiles.sh
bash linux/03_shell.sh
exec zsh && p10k configure

New Linux Server — manual

Run as root on the fresh server:

bash linux/00_adduser.sh      # create user + sudo/docker groups
bash linux/00_sudoers.sh      # passwordless sudo

From your local machine — copy your SSH key while password auth is still on:

bash mac/00_sshkey.sh user@<host>

Back on server as root, after confirming the key works:

bash linux/00_sshd.sh         # key-only auth, disable password login

Then SSH in as your user and continue:

bash linux/01_basics.sh
bash linux/02_dotfiles.sh
bash linux/03_shell.sh
exec zsh && p10k configure

Linux Dev Machine

bash linux/01_basics.sh       # apt baseline + nvm + yq + glow + watchexec
bash linux/02_dotfiles.sh     # chezmoi dotfiles + tmux plugins
bash linux/03_shell.sh        # zsh + powerlevel10k + plugins
exec zsh && p10k configure

Optional add-ons:

bash tools/10_claude.sh       # Claude Code CLI
bash tools/10_ai_tools.sh     # Gemini CLI, GH Copilot, Pi
bash tools/10_llm_tools.sh    # llm, aider, ttok, strip-tags, files-to-prompt
bash linux/10_neovim.sh       # Neovim AppImage
bash tools/10_kubectl.sh      # kubectl
bash tools/10_helm.sh         # Helm 3
bash tools/10_k3d.sh          # k3d (k3s in Docker)
bash linux/11_docker_tools.sh # ctop, dive, lazydocker
bash tools/20_atuin.sh        # shell history sync
bash tools/20_uv.sh           # Python manager
bash linux/20_restic.sh       # encrypted backups
bash tools/20_fonts.sh        # JetBrainsMono + Meslo Nerd Fonts

Proxmox VM

Provision a VM from any machine (Mac, Linux, MobaXterm):

cp proxmox/.env.example proxmox/.env   # first time: fill in credentials
./proxmox/provision.sh --dry-run proxmox/vms/ragflow.yaml
./proxmox/provision.sh proxmox/vms/ragflow.yaml

See proxmox/README.md for full documentation.