Skip to content

Dotfiles 🔧 ​

This project aims to provide dotfiles templates and common scripts for backup & setup.

Dotfiles ​

The dotfiles/ folder provides the following dotfiles templates :

sh
./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.

Backup ​

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.

Setup ​

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.
  • 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

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.

Base ​

PackageDescriptionTypeOSX installationDebian installation
batcat command enhancedclihomebrewapt
bat-extrasbat combo with other commandsclihomebrewshell
chafaimage viewer in terminalclihomebrewapt
cheatcreate and view interactive cheat sheetsclihomebrewapt
coreutilsbasic file, shell and text manipulation utilitiesclihomebrewapt
dockerdocker enginecli-shell
exiftoolmetadata writer and reader toolclihomebrewapt
ezals command enhancedclihomebrewapt
fdsimple, fast and user-friendly alternative to 'find'clihomebrewapt
ffmpegaudio video manipulation toolclihomebrewapt
fzfcommand-line fuzzy finderclihomebrewapt
ghgithub cliclihomebrewapt
glabgitlab cliclihomebrewapt
glowrender markdown on the CLI, with pizzazzclihomebrewapt
gnupgencryption toolclihomebrewapt
gsednon-interactive command-line text editorclihomebrew-
jqjson processor toolclihomebrewapt
lazydockerlazier way to manage everything dockerclihomebrewapt
lazygitlazier way to manage everything gitclihomebrewshell
nmapport scanning utilityclihomebrewapt
nviminteractive cli ide (enhanced vim)clihomebrewshell
oh-my-zshzsh configuration managerclishellshell
protopluggable multi-language version managerclihomebrewshell
ripgrepregex pattern search cli (usefull for bat-extras)clihomebrewapt
rsyncfile transfer toolclihomebrewapt
sshsinteractive cli ssh clientclihomebrewshell
tldr++cheatsheet interactive cliclihomebrewgo
treefilesystem display as treeclihomebrewapt
ttydshare terminal over the webclihomebrewshell
vhscli home video recorderclihomebrewapt
vimcli ideclihomebrewapt
watchcli tool that runs the specified command repeatedlyclihomebrewapt
wgetinternet file retrieverclihomebrewapt
yqyaml processor toolclihomebrewapt
braveprivacy compliant web browserdesktophomebrew - cask-
dockerdocker desktopdesktophomebrew - cask-
firefoxprivacy compliant web browserdesktophomebrew - cask-
insomniahttp and graphql clientdesktophomebrew - cask-
mattermostcollaboration appdesktophomebrew - cask-
openvpn-connectvpn clientdesktophomebrew - cask-
vscodeidedesktophomebrew - cask-

Devops ​

PackageDescriptionTypeOSX installationDebian installation
actlocal github actionsclihomebrewapt
ansibleautomation toolclihomebrewpip
argoargo-workflows cliclihomebrewapt
argocdargo-cd cliclihomebrewapt
awsaws cliclihomebrewshell
codercoder cliclihomebrewshell
helmkubernetes package managerclihomebrewapt
helm-docstool for auto generating markdown docs for helm chartsclihomebrewapt
k6modern load testing tool, using Go and javascriptclihomebrewapt
k9skubernetes cluster manager cliclihomebrewapt
kindkubernetes cluster in dockerclihomebrewapt
krewkubectl plugin managerclihomebrewapt
kubectlkubernetes cliclihomebrewapt
kubectxkubernetes context and namespace managerclihomebrewapt
mccommands replacement for object storage (minio cli)clihomebrewapt
mkcertsimple zero-config tool to make locally trusted certificatesclihomebrewshell
ocopenshift cliclihomebrewapt
scwscaleway cliclihomebrewapt
sshpassnon-interactive ssh password authclihomebrewapt
teleportmodern ssh server for teams managing distributed infrastructureclihomebrewapt
terraforminfrastructure automation toolclihomebrewapt
velerokubernetes backup and migration cliclihomebrewapt

Krew plugins (kubectl) ​

PluginDescription
cert-managercert-manager cli
cnpgcloud native postgres cli
df-pvdf utility for pv
ktoptop-like tool for Kubernetes clusters
neatkubernetes yaml/json output clean up to make it readable
sternmulti pod and container log tailing for Kubernetes

Secops ​

PackageDescriptionTypeOSX installationDebian installation
agesimple, modern and secure encryption toolclihomebrewapt
cosigncode signing and transparency for containers and binariesclihomebrewapt
divetool for exploring each layer in a docker imageclihomebrewapt
sopssimple and flexible tool for managing secretsclihomebrewapt
trivyvulnerability scanner for container images and file systemsclihomebrewapt
vaultvault cliclihomebrewapt

Krew plugins (kubectl) ​

PluginDescription
kubescapekubernetes security scan
kyvernokubernetes policy management

Javascript ​

PackageDescriptionTypeOSX installationDebian installation
@antfu/nijavascript package manager wrapperclinpmnpm
bunjavascript runtime environmentcliprotoproto
nodejavascript runtime environmentcliprotoproto
pnpmjavascript disk space efficient package managercliprotoproto
yarnpackage manager that doubles down as project managercliprotoproto

Go ​

PackageDescriptionTypeOSX installationDebian installation
cobra-clicli build toolcligogo
goprogramming languagecliprotoproto
kubebuildersdk for building Kubernetes APIs using CRDsclihomebrewapt
kustomizecustomization of kubernetes YAML configurationsclihomebrewapt
operator-sdksdk for building Kubernetes applicationsclihomebrewapt

AI ​

PackageDescriptionTypeOSX installationDebian installation
ollamaget up and running with large language models.clihomebrew - caskshell

Extras ​

PackageDescriptionTypeOSX installationDebian installation
audacityaudio manipulation appdesktophomebrew - cask-
discordcollaboration appdesktophomebrew - cask-
raspberry-pi-imagerraspberrypi image managerdesktophomebrew - cask-
soulseekfile sharing appdesktophomebrew - cask-
transmissiontorrent clientdesktophomebrew - cask-
vlcvideo playerdesktophomebrew - cask-

Oh-my-zsh ​

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.

Cheatsheets ​

The setup scripts install cheat and add a few extra sheets which can be listed with the command cheat -l -p personal.

Functions ​

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 :

sh
tools <script_name> -h

TIP

The function is covered by auto-completion, type tools then tab to see the list of scripts.

Further utilities ​

  • Check out Arkade for more devops tools.

Sources ​

Take a look at the project sources.