init(): initial commit

This commit is contained in:
ITQ
2026-02-20 23:14:19 +03:00
commit fd8de1052a
36 changed files with 1713 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update && \
apt install -y --no-install-recommends \
ca-certificates \
curl \
bash \
zsh \
vim \
git \
bind9-dnsutils \
bridge-utils \
conntrack \
ethtool \
ipset \
iptables \
openssh-server \
strace \
jq \
netcat-openbsd \
ipython3 \
scapy \
iproute2 \
iputils-ping \
iputils-arping \
mtr \
traceroute \
tcptraceroute \
net-tools \
tcpdump \
tshark \
bird2-doc \
bird2 && \
mkdir /run/bird && \
apt clean && \
rm -rf /var/lib/apt/lists/*
USER root
WORKDIR /root
ENV HOSTNAME=sch57
# ZSH Themes
RUN curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh | sh
RUN git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
RUN git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
COPY ./configs/zshrc .zshrc
COPY ./configs/motd motd
RUN chmod -R g=u /root
RUN chown root:root /usr/bin/dumpcap
CMD [ "sleep", "infinity" ]
+8
View File
@@ -0,0 +1,8 @@
_ ___
| | |__ \
| | ) |
| | / /
| |____ / /_
|______|____|
Networks Demo
+140
View File
@@ -0,0 +1,140 @@
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
#export TERM="xterm-256color"
ZSH_THEME="powerlevel10k/powerlevel10k"
ZSH_DISABLE_COMPFIX="true"
# Set list of themes to load
# Setting this variable when ZSH_THEME=random
# cause zsh load theme from this variable instead of
# looking in ~/.oh-my-zsh/themes/
# An empty array have no effect
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
zsh-autosuggestions
yarn
web-search
jsontools
macports
node
sudo
docker
)
source $ZSH/oh-my-zsh.sh
# User configuration
cat motd
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
# Reload the plugin to highlight the commands each time Iterm2 starts
#source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
### VISUAL CUSTOMIZATION ###
# Elements options of left prompt (remove the @username context)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(host dir rbenv)
# Elements options of right prompt
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
# Add a second prompt line for the command
POWERLEVEL9K_PROMPT_ON_NEWLINE=false
# Add a space in the first prompt
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=''
# Visual customization of the second prompt line
#local user_symbol="$"
#if [[ $(print -P "%#") =~ "#" ]]; then
# user_symbol = "#"
#fi
#POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%{%B%F{black}%K{yellow}%} $user_symbol%{%b%f%k%F{yellow}%} %{%f%}"
# Change the git status to red when something isn't committed and pushed
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='red'
# Add a new line after the global prompt
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
# Colorize the top Tabs of Iterm2 with the same color as background
# Just change the 18/26/33 which are the rgb values
echo -e "\033]6;1;bg;red;brightness;18\a"
echo -e "\033]6;1;bg;green;brightness;26\a"
echo -e "\033]6;1;bg;blue;brightness;33\a"
+40
View File
@@ -0,0 +1,40 @@
#!/bin/sh
set -eux pipefail
# containerlab needs some time to setup links
sleep $CONTAINERLAB_TIMEOUT
if [ "$ROUTER" = "yes" ]; then
echo "Configuring as router..."
ip link add br0 type bridge
ip addr add 192.168.100.1/24 dev br0
ip addr add 172.16.100.1/24 dev br0
ip link set dev br0 up
ip link set eth1 up
ip link set eth2 up
ip link set eth3 up
ip link set eth4 up
ip link set eth1 master br0
ip link set eth2 master br0
ip link set eth3 master br0
ip link set eth4 master br0
echo "Router setup complete"
else
echo "Configuring as host with CIDR=$CIDR and GATEWAY=$GATEWAY"
ip link set eth1 up
ip addr add $CIDR dev eth1
ip route add default via $GATEWAY dev eth1
echo "Host setup complete"
fi
sleep infinity