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
βββ .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
). The following profiles are available :
- base - base packages.
- devops - devops oriented packages.
- extras - extras personnal packages (only available for osx).
- go - go developer oriented packages.
- js - js developer oriented packages.
Tip
For more infos use -h
flag with the script to print help.
CLI completions are referenced and installed via this file.
Packages can come from different sources such as homebrew, apt, npm, etc...
Apt come with WakeMeOps repository.
Package | Description | Type | OSX installation | Debian installation |
---|---|---|---|---|
age | simple, modern and secure encryption tool | cli | homebrew | apt |
bat | cat command enhanced | cli | homebrew | apt |
bat-extras | bat combo with other commands | cli | homebrew | shell |
chafa | image viewer in terminal | cli | homebrew | apt |
cheat | create and view interactive cheat sheets | cli | homebrew | apt |
coreutils | basic file, shell and text manipulation utilities | cli | homebrew | apt |
docker | docker engine | cli | - | shell |
exiftool | metadata writer and reader tool | cli | homebrew | apt |
eza | ls command enhanced | cli | homebrew | apt |
fd | simple, fast and user-friendly alternative to 'find' | cli | homebrew | apt |
ffmpeg | audio video manipulation tool | cli | homebrew | apt |
fzf | command-line fuzzy finder | cli | homebrew | apt |
gh | github cli | cli | homebrew | apt |
glab | gitlab cli | cli | homebrew | apt |
glow | render markdown on the CLI, with pizzazz | cli | homebrew | apt |
gnupg | encryption tool | cli | homebrew | apt |
gsed | non-interactive command-line text editor | cli | homebrew | - |
jq | json processor tool | cli | homebrew | apt |
lazydocker | lazier way to manage everything docker | cli | homebrew | apt |
lazygit | lazier way to manage everything git | cli | homebrew | shell |
nmap | port scanning utility | cli | homebrew | apt |
nvim | interactive cli ide (enhanced vim) | cli | homebrew | shell |
oh-my-zsh | zsh configuration manager | cli | shell | shell |
proto | pluggable multi-language version manager | cli | homebrew | shell |
ripgrep | regex pattern search cli (usefull for bat-extras) | cli | homebrew | apt |
rsync | file transfer tool | cli | homebrew | apt |
sshs | interactive cli ssh client | cli | homebrew | shell |
tldr++ | cheatsheet interactive cli | cli | homebrew | go |
tree | filesystem display as tree | cli | homebrew | apt |
ttyd | share terminal over the web | cli | homebrew | shell |
vhs | cli home video recorder | cli | homebrew | apt |
vim | cli ide | cli | homebrew | apt |
watch | cli tool that runs the specified command repeatedly | cli | homebrew | apt |
wget | internet file retriever | cli | homebrew | apt |
yq | yaml processor tool | cli | homebrew | apt |
brave | privacy compliant web browser | desktop | homebrew - cask | - |
docker | docker desktop | desktop | homebrew - cask | - |
firefox | privacy compliant web browser | desktop | homebrew - cask | - |
insomnia | http and graphql client | desktop | homebrew - cask | - |
mattermost | collaboration app | desktop | homebrew - cask | - |
openvpn-connect | vpn client | desktop | homebrew - cask | - |
vscode | ide | desktop | homebrew - cask | - |
Package | Description | Type | OSX installation | Debian installation |
---|---|---|---|---|
act | local github actions | cli | homebrew | apt |
ansible | automation tool | cli | homebrew | pip |
argo | argo-workflows cli | cli | homebrew | apt |
argocd | argo-cd cli | cli | homebrew | apt |
aws | aws cli | cli | homebrew | shell |
coder | coder cli | cli | homebrew | shell |
dive | tool for exploring each layer in a docker image | cli | homebrew | apt |
helm | kubernetes package manager | cli | homebrew | apt |
helm-docs | tool for auto generating markdown docs for helm charts | cli | homebrew | apt |
k6 | modern load testing tool, using Go and javascript | cli | homebrew | apt |
k9s | kubernetes cluster manager cli | cli | homebrew | apt |
kind | kubernetes cluster in docker | cli | homebrew | apt |
krew | kubectl plugin manager | cli | homebrew | apt |
kubectl | kubernetes cli | cli | homebrew | apt |
kubectx | kubernetes context and namespace manager | cli | homebrew | apt |
mc | commands replacement for object storage (minio cli) | cli | homebrew | apt |
mkcert | simple zero-config tool to make locally trusted certificates | cli | homebrew | shell |
oc | openshift cli | cli | homebrew | shell |
scw | scaleway cli | cli | homebrew | apt |
sops | simple and flexible tool for managing secrets | cli | homebrew | apt |
sshpass | non-interactive ssh password auth | cli | homebrew | apt |
teleport | modern ssh server for teams managing distributed infrastructure | cli | homebrew | apt |
terraform | infrastructure automation tool | cli | homebrew | apt |
trivy | vulnerability scanner for container images and file systems | cli | homebrew | apt |
vault | vault cli | cli | homebrew | apt |
velero | kubernetes backup and migration cli | cli | homebrew | apt |
Plugin | Description |
---|---|
cert-manager | cert-manager cli |
cnpg | cloud native postgres cli |
df-pv | df utility for pv |
ktop | top-like tool for Kubernetes clusters |
kubescape | kubernetes security scan |
kyverno | kubernetes policy management |
neat | kubernetes yaml/json output clean up to make it readable |
stern | multi pod and container log tailing for Kubernetes |
Package | Description | Type | OSX installation | Debian installation |
---|---|---|---|---|
@antfu/ni | javascript package manager wrapper | cli | npm | npm |
bun | javascript runtime environment | cli | proto | proto |
node | javascript runtime environment | cli | proto | proto |
pnpm | javascript disk space efficient package manager | cli | proto | proto |
yarn | package manager that doubles down as project manager | cli | proto | proto |
Package | Description | Type | OSX installation | Debian installation |
---|---|---|---|---|
cobra-cli | cli build tool | cli | go | go |
go | programming language | cli | proto | proto |
kubebuilder | sdk for building Kubernetes APIs using CRDs | cli | homebrew | apt |
kustomize | customization of kubernetes YAML configurations | cli | homebrew | apt |
operator-sdk | sdk for building Kubernetes applications | cli | homebrew | apt |
Package | Description | Type | OSX installation | Debian installation |
---|---|---|---|---|
audacity | audio manipulation app | desktop | homebrew - cask | - |
discord | collaboration app | desktop | homebrew - cask | - |
raspberry-pi-imager | raspberrypi image manager | desktop | homebrew - cask | - |
soulseek | file sharing app | desktop | homebrew - cask | - |
transmission | torrent client | desktop | homebrew - cask | - |
vlc | video player | desktop | 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 a 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.