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

Core ​

Command line interfaces ​

PackageDescriptionLite modeOSX installationDebian installation
build-essentialinformational list of essential packages for building debian packagesx-apt
ca-certificatescommon CA certificatesxhomebrewapt
coreutilsbasic file, shell and text manipulation utilitiesx-apt
curlcommand line tool and library for transferring data with URLsxhomebrewapt
gnupgencryption toolxhomebrewapt
gzippopular data compression programxhomebrewapt
jqjson processor toolxhomebrewapt
localestools to generate locale definitionsx-apt
oh-my-zshzsh configuration managerxshellshell
sednon-interactive command-line text editorxhomebrewapt
tarprogram to create and manipulate tar archivesx-apt
unzipde-archiver for zip filesxhomebrewapt
wgetpackage for retrieving files using HTTP, HTTPS, FTP and FTPSxhomebrewapt
xz-utilsxz format compression utilitiesxhomebrewapt

Base ​

Command line interfaces ​

PackageDescriptionLite modeOSX installationDebian installation
batcat command enhancedxhomebrewapt
bat-extrasbat combo with other commandsxhomebrewshell
chafaimage viewer in terminal-homebrewapt
cheatcreate and view interactive cheat sheetsxhomebrewapt
exiftoolmetadata writer and reader tool-homebrewapt
ezals command enhancedxhomebrewapt
fdsimple, fast and user-friendly alternative to 'find'xhomebrewapt
ffmpegaudio video manipulation tool-homebrewapt
fzfcommand-line fuzzy finderxhomebrewapt
ghgithub cli-homebrewapt
glabgitlab cli-homebrewapt
glowrender markdown on the CLI, with pizzazzxhomebrewapt
lazydockerlazier way to manage everything docker-homebrewapt
lazygitlazier way to manage everything git-homebrewapt
nmapport scanning utility-homebrewapt
nviminteractive cli ide (enhanced vim)-homebrewshell
pandocuniversal markup converter-homebrewshell
protopluggable multi-language version managerxhomebrewshell
ripgrepregex pattern search cli (usefull for bat-extras)xhomebrewapt
rsyncfile transfer toolxhomebrewapt
sshsinteractive cli ssh clientxhomebrewshell
tldr++cheatsheet interactive cli-homebrewshell
treefilesystem display as treexhomebrewapt
ttydshare terminal over the web-homebrewapt
vhscli home video recorder-homebrewapt
vimcli idexhomebrewapt
watchcli tool that runs the specified command repeatedlyxhomebrewapt
yqyaml processor toolxhomebrewapt

Applications ​

PackageDescriptionLite modeOSX installationDebian installation
braveprivacy compliant web browser-homebrew - cask-
firefoxprivacy compliant web browser-homebrew - cask-
insomniahttp and graphql client-homebrew - cask-
mattermostcollaboration app-homebrew - cask-
openvpn-connectvpn client-homebrew - cask-
vscodeide-homebrew - cask-

Devops ​

Command line interfaces ​

PackageDescriptionLite modeOSX installationDebian installation
actlocal github actions-homebrewapt
ansibleautomation toolxhomebrewpip
ansible-lintcli tool for linting ansible playbooks, roles and collections-homebrewpip
argoargo-workflows cli-homebrewapt
argocdargo-cd cli-homebrewapt
awsaws cli-homebrewshell
codercoder cli-homebrewshell
dockerdocker enginex-shell
helmkubernetes package managerxhomebrewapt
helm-docstool for auto generating markdown docs for helm chartsxhomebrewapt
k6modern load testing tool, using Go and javascript-homebrewapt
k9skubernetes cluster manager cli-homebrewapt
kindkubernetes cluster in docker-homebrewapt
krewkubectl plugin managerxhomebrewapt
kubectlkubernetes clixhomebrewapt
kubectxkubernetes context and namespace managerxhomebrewapt
mccommands replacement for object storage (minio cli)xhomebrewapt
mkcertsimple zero-config tool to make locally trusted certificates-homebrewshell
ocopenshift cli-homebrewapt
scwscaleway cli-homebrewapt
sshpassnon-interactive ssh password authxhomebrewapt
teleportmodern ssh server for teams managing distributed infrastructure-homebrewapt
terraforminfrastructure automation toolxhomebrewapt
velerokubernetes backup and migration cli-homebrewapt

Applications ​

PackageDescriptionLite modeOSX installationDebian installation
dockerdocker desktopxhomebrew - cask-

Kubectl plugins ​

PluginDescriptionLite modeOSX installationDebian installation
cert-managercert-manager clixkrewkrew
cnpgcloud native postgres clixkrewkrew
df-pvdf utility for pvxkrewkrew
ktoptop-like tool for Kubernetes clustersxkrewkrew
neatkubernetes yaml/json output clean up to make it readablexkrewkrew
sternmulti pod and container log tailing for Kubernetesxkrewkrew

Secops ​

Command line interfaces ​

PackageDescriptionLite modeOSX installationDebian installation
agesimple, modern and secure encryption tool-homebrewapt
cosigncode signing and transparency for containers and binariesxhomebrewapt
divetool for exploring each layer in a docker image-homebrewapt
kubescapekubernetes security scan-homebrewapt
sopssimple and flexible tool for managing secrets-homebrewapt
trivyvulnerability scanner for container images and file systemsxhomebrewapt
vaultvault cli-homebrewapt

Kubectl plugins ​

PluginDescriptionLite modeOSX installationDebian installation
kyvernokubernetes policy management-krew-

Javascript ​

Command line interfaces ​

PackageDescriptionLite modeOSX installationDebian installation
@antfu/nijavascript package manager wrapperxnpmnpm
bunjavascript runtime environment-protoproto
nodejavascript runtime environmentxprotoproto
npmjavascript package managerxprotoproto
pnpmjavascript disk space efficient package manager-protoproto
yarnpackage manager that doubles down as project manager-protoproto

Go ​

Command line interfaces ​

PackageDescriptionLite modeOSX installationDebian installation
cobra-clicli build tool-gogo
goprogramming languagexprotoproto
kubebuildersdk for building Kubernetes APIs using CRDs-homebrewapt
kustomizecustomization of kubernetes YAML configurations-homebrewapt
operator-sdksdk for building Kubernetes applications-homebrewapt

AI ​

Applications ​

PackageDescriptionLite modeOSX installationDebian installation
ollamaget up and running with large language models.-homebrew - caskshell

Extras ​

Command line interfaces ​

PackageDescriptionLite modeOSX installationDebian installation
audacityaudio manipulation app-homebrew - cask-
discordcollaboration app-homebrew - cask-
raspberry-pi-imagerraspberrypi image manager-homebrew - cask-
soulseekfile sharing app-homebrew - cask-
transmissiontorrent client-homebrew - cask-
vlcvideo playerxhomebrew - 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 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 :

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.