This project aims to provide dotfiles templates and common scripts for backup & setup.
The dotfiles/
folder provides the following dotfiles templates :
./dotfiles
├── .config
│ ├── cheat
│ │ └── conf.yml
│ ├── lazygit
│ │ └── config.yml
│ └── nvim
│ ├── init.lua
│ └── lua
│ ├── config
│ └── plugins
├── .continue
│ └── config.json
├── .mattermost
│ └── theme-config.json
├── .oh-my-zsh
│ └── this-is-tobi.zsh-theme
├── .vscode
│ ├── extensions.json
│ └── settings.json
├── .gitconfig
├── .prototools
└── .zshrc
Some lines may be commented inside
.zshrc
, uncomment them following profile needs.
These scripts are intended to backup common files to another directory (local or remote) :
For more infos use
-h
flag with the script to print help.
These scripts are intended to install common packages on proper os :
It can install severals profiles in addition to the core install by providing -p <profile_name>
(example: ./setup-osx.sh -p 'devops,secops'
). The following profiles are available :
- base - base packages.
- ai - ai oriented packages.
- devops - devops oriented packages.
- go - go developer oriented packages.
- js - js developer oriented packages.
- secops - secops oriented packages.
- extras - extras personnal packages (only available for osx).
Tip
Use flag -l
to use lite mode setup and install only main tools.
For more infos use -h
flag with the script to print help.
CLI completions are referenced and installed via the zsh-completions repository and this custom file.
Packages can come from different sources such as homebrew, apt, npm, etc...
Apt come with WakeMeOps repository.
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
build-essential | informational list of essential packages for building debian packages | x | - | apt |
ca-certificates | common CA certificates | x | homebrew | apt |
coreutils | basic file, shell and text manipulation utilities | x | - | apt |
curl | command line tool and library for transferring data with URLs | x | homebrew | apt |
gnupg | encryption tool | x | homebrew | apt |
gzip | popular data compression program | x | homebrew | apt |
jq | json processor tool | x | homebrew | apt |
locales | tools to generate locale definitions | x | - | apt |
oh-my-zsh | zsh configuration manager | x | shell | shell |
sed | non-interactive command-line text editor | x | homebrew | apt |
tar | program to create and manipulate tar archives | x | - | apt |
unzip | de-archiver for zip files | x | homebrew | apt |
wget | package for retrieving files using HTTP, HTTPS, FTP and FTPS | x | homebrew | apt |
xz-utils | xz format compression utilities | x | homebrew | apt |
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
bat | cat command enhanced | x | homebrew | apt |
bat-extras | bat combo with other commands | x | homebrew | shell |
chafa | image viewer in terminal | - | homebrew | apt |
cheat | create and view interactive cheat sheets | x | homebrew | apt |
exiftool | metadata writer and reader tool | - | homebrew | apt |
eza | ls command enhanced | x | homebrew | apt |
fd | simple, fast and user-friendly alternative to 'find' | x | homebrew | apt |
ffmpeg | audio video manipulation tool | - | homebrew | apt |
fzf | command-line fuzzy finder | x | homebrew | apt |
gh | github cli | - | homebrew | apt |
glab | gitlab cli | - | homebrew | apt |
glow | render markdown on the CLI, with pizzazz | x | homebrew | apt |
lazydocker | lazier way to manage everything docker | - | homebrew | apt |
lazygit | lazier way to manage everything git | - | homebrew | shell |
nmap | port scanning utility | x | homebrew | apt |
nvim | interactive cli ide (enhanced vim) | - | homebrew | shell |
proto | pluggable multi-language version manager | x | homebrew | shell |
ripgrep | regex pattern search cli (usefull for bat-extras) | x | homebrew | apt |
rsync | file transfer tool | x | homebrew | apt |
sshs | interactive cli ssh client | x | homebrew | shell |
tldr++ | cheatsheet interactive cli | - | homebrew | shell |
tree | filesystem display as tree | x | homebrew | apt |
ttyd | share terminal over the web | - | homebrew | shell |
vhs | cli home video recorder | - | homebrew | apt |
vim | cli ide | x | homebrew | apt |
watch | cli tool that runs the specified command repeatedly | x | homebrew | apt |
yq | yaml processor tool | x | homebrew | apt |
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
brave | privacy compliant web browser | - | homebrew - cask | - |
firefox | privacy compliant web browser | - | homebrew - cask | - |
insomnia | http and graphql client | - | homebrew - cask | - |
mattermost | collaboration app | - | homebrew - cask | - |
openvpn-connect | vpn client | - | homebrew - cask | - |
vscode | ide | - | homebrew - cask | - |
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
act | local github actions | - | homebrew | apt |
ansible | automation tool | x | homebrew | pip |
argo | argo-workflows cli | - | homebrew | apt |
argocd | argo-cd cli | - | homebrew | apt |
aws | aws cli | - | homebrew | shell |
coder | coder cli | - | homebrew | shell |
docker | docker engine | x | - | shell |
helm | kubernetes package manager | x | homebrew | apt |
helm-docs | tool for auto generating markdown docs for helm charts | x | homebrew | apt |
k6 | modern load testing tool, using Go and javascript | - | homebrew | apt |
k9s | kubernetes cluster manager cli | - | homebrew | apt |
kind | kubernetes cluster in docker | - | homebrew | apt |
krew | kubectl plugin manager | x | homebrew | apt |
kubectl | kubernetes cli | x | homebrew | apt |
kubectx | kubernetes context and namespace manager | x | homebrew | apt |
mc | commands replacement for object storage (minio cli) | x | homebrew | apt |
mkcert | simple zero-config tool to make locally trusted certificates | - | homebrew | shell |
oc | openshift cli | - | homebrew | apt |
scw | scaleway cli | - | homebrew | apt |
sshpass | non-interactive ssh password auth | x | homebrew | apt |
teleport | modern ssh server for teams managing distributed infrastructure | - | homebrew | apt |
terraform | infrastructure automation tool | x | homebrew | apt |
velero | kubernetes backup and migration cli | - | homebrew | apt |
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
docker | docker desktop | x | homebrew - cask | - |
Plugin | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
cert-manager | cert-manager cli | x | krew | krew |
cnpg | cloud native postgres cli | x | krew | krew |
df-pv | df utility for pv | x | krew | krew |
ktop | top-like tool for Kubernetes clusters | x | krew | krew |
neat | kubernetes yaml/json output clean up to make it readable | x | krew | krew |
stern | multi pod and container log tailing for Kubernetes | x | krew | krew |
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
age | simple, modern and secure encryption tool | - | homebrew | apt |
cosign | code signing and transparency for containers and binaries | x | homebrew | apt |
dive | tool for exploring each layer in a docker image | - | homebrew | apt |
sops | simple and flexible tool for managing secrets | - | homebrew | apt |
trivy | vulnerability scanner for container images and file systems | x | homebrew | apt |
vault | vault cli | - | homebrew | apt |
Plugin | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
kubescape | kubernetes security scan | - | krew | krew |
kyverno | kubernetes policy management | - | krew | - |
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
@antfu/ni | javascript package manager wrapper | x | npm | npm |
bun | javascript runtime environment | - | proto | proto |
node | javascript runtime environment | x | proto | proto |
npm | javascript package manager | x | proto | proto |
pnpm | javascript disk space efficient package manager | - | proto | proto |
yarn | package manager that doubles down as project manager | - | proto | proto |
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
cobra-cli | cli build tool | - | go | go |
go | programming language | x | proto | proto |
kubebuilder | sdk for building Kubernetes APIs using CRDs | - | homebrew | apt |
kustomize | customization of kubernetes YAML configurations | - | homebrew | apt |
operator-sdk | sdk for building Kubernetes applications | - | homebrew | apt |
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
ollama | get up and running with large language models. | - | homebrew - cask | shell |
Package | Description | Lite mode | OSX installation | Debian installation |
---|---|---|---|---|
audacity | audio manipulation app | - | homebrew - cask | - |
discord | collaboration app | - | homebrew - cask | - |
raspberry-pi-imager | raspberrypi image manager | - | homebrew - cask | - |
soulseek | file sharing app | - | homebrew - cask | - |
transmission | torrent client | - | homebrew - cask | - |
vlc | video player | x | homebrew - cask | - |
Zsh is used as the default shell and is supplied with oh-my-zsh and a number of plugins which are listed below to enhance the shell experience :
- aliases - list the shortcuts that are currently available.
- ansible - add several aliases for useful ansible.
- brew - add several aliases for common brew commands.
- bun - set up completion for bun.
- colored-man-pages - add colors to man pages.
- docker - set up completion and aliases for docker commands.
- docker-compose - set up completion and aliases for docker-compose commands.
- gh - add completion for the GitHub cli.
- git - provide many aliases and a few useful functions.
- gitignore - use of gitignore.io from the command line.
- golang - set up completion and aliases for golang.
- helm - set up completion and aliases for helm commands.
- kind - add completion for the Kind tool.
- kubectl - add completion and aliases for kubectl commands.
- kubectx - show active kubectl context.
- microk8s - provide completion and useful aliases for microk8s.
- minikube - set up completion for minikube.
- nmap - add some useful aliases for nmap.
- node - add node-docs function that opens proper section in nodejs doc.
- npm - provide completion as well as adding many useful aliases.
- oc - provide completion for OC commands.
- rsync - add aliases for frequent rsync commands.
- scw - add completion options for all scw commands.
- sudo - prefix current/previous command with sudo by pressing esc twice.
- systemadmin - add bunch of aliases and functions for sysadmins.
- terraform - add completion for terraform, as well as aliases and a prompt function.
This configuration uses a custom oh-my-zsh theme that blends gnzh theme with the kube-ps1 plugin.
The setup scripts install cheat and add a few extra sheets which can be listed with the command cheat -l -p personal
.
In addition, this installation script adds an utility functions file that can be used locally, as well as a tools function that allows you to execute on-the-fly my list of utility scripts available on Github. To use this function, type the following command :
tools <script_name> -h
Tip
The function is covered by auto-completion, type tools
then <tab>
to see the list of scripts.
- Check out Arkade for more devops tools.