first commit
This commit is contained in:
parent
023626fbce
commit
7cbfef40b7
47
Changelog
Normal file
47
Changelog
Normal file
@ -0,0 +1,47 @@
|
||||
Changelog for clidmanager
|
||||
My standard System: Debian 12 (Server)
|
||||
create on 20-3-2025 by Désiré Werner Menrath
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
- Add comments
|
||||
|
||||
- write in English and add translation in German
|
||||
|
||||
|
||||
### Added
|
||||
20-03-2025
|
||||
|
||||
- first 70 lines written for tests
|
||||
|
||||
|
||||
### Added
|
||||
21-03-2025
|
||||
|
||||
- functions declared: Create new folder, edit yml files,
|
||||
start/restart container with up -d, view log file,
|
||||
Docker Special "Crownsec-Treafik-Stack" updaten
|
||||
|
||||
- Installer added
|
||||
|
||||
- File no_pwd_clidmanager added in /etc/sudoers.d
|
||||
|
||||
|
||||
### Added
|
||||
22-03-2025
|
||||
|
||||
- functions declared: Start/stop all containers,
|
||||
View current container, Added version number,
|
||||
Colors added for better readability and more beautiful look
|
||||
|
||||
- sepparate Bash file for directory change
|
||||
|
||||
- Info and info 2 Variable for Note on directory changer with dw
|
||||
|
||||
- Numbering from now on in yellow for better readability
|
||||
|
||||
### Added
|
||||
23-03-2025
|
||||
|
||||
- Docker directory for logs, edit yml files and start container
|
||||
is now displayed numbered, for easy handling.
|
242
clidmanager
Executable file
242
clidmanager
Executable file
@ -0,0 +1,242 @@
|
||||
#!/bin/bash
|
||||
|
||||
# clidmanager simple management a docker container
|
||||
# Author: Désiré Werner Menrath
|
||||
# Email: polunga40@unity-mail.de
|
||||
# Translate German to English with LibreTranslate
|
||||
# Translatefiles edit with Poedit
|
||||
# Use without warranty!
|
||||
|
||||
NORMAL='\033[0m'
|
||||
GREEN='\033[1;32m'
|
||||
RED='\033[31;1;42m'
|
||||
BLUE='\033[30;1;34m'
|
||||
ZYAN='\033[30;1;36m'
|
||||
LBLUE='\033[1;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
|
||||
# 1 = 1. Year, 09 = Month of the Year, 2924 = Day and Year of the Year
|
||||
|
||||
version=$(echo -e $GREEN"v. 1.03.2325"$LBLUE)
|
||||
cmname=$(echo -e $YELLOW"containermanager"$LBLUE)
|
||||
info=$(echo -e $GREEN"Im Terminal dw eingeben um direkt")
|
||||
info2=$(echo -e $GREEN"in das Docker Verzeichnis zu kommen."$LBLUE)
|
||||
one=$(echo -e $YELLOW"1"$LBLUE)
|
||||
two=$(echo -e $YELLOW"2"$LBLUE)
|
||||
three=$(echo -e $YELLOW"3"$LBLUE)
|
||||
four=$(echo -e $YELLOW"4"$LBLUE)
|
||||
five=$(echo -e $YELLOW"5"$LBLUE)
|
||||
six=$(echo -e $YELLOW"6"$LBLUE)
|
||||
seven=$(echo -e $YELLOW"7"$LBLUE)
|
||||
eight=$(echo -e $YELLOW"8"$LBLUE)
|
||||
Encoding=UTF-8
|
||||
|
||||
# i18n - Internationalization - Internationalisierung
|
||||
|
||||
export TEXTDOMAIN=clidmanager
|
||||
export TEXTDOMAINDIR="/usr/share/locale"
|
||||
|
||||
list_dir_with_numbers() {
|
||||
|
||||
unset dcname
|
||||
|
||||
# Here Is is used to store all folders of a directory in an array
|
||||
array=($(ls))
|
||||
|
||||
# This loop outputs the directory numbered
|
||||
typeset -i i=0 max=${#array[*]}
|
||||
while (( i < max ))
|
||||
do
|
||||
echo -e $LBLUE[$YELLOW$i$LBLUE] $LBLUE"${array[$i]}"$NORMAL
|
||||
i=i+1
|
||||
done
|
||||
|
||||
# Loop that only allows numbers
|
||||
|
||||
while read -p "Ordner Nummer eingeben: " entrynumber
|
||||
do
|
||||
if [[ "$entrynumber" =~ ^[0-9]+$ && "$entrynumber" -lt "$i" ]]
|
||||
then
|
||||
dcname=${array[entrynumber]}
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
newdir() {
|
||||
clear
|
||||
echo
|
||||
echo -e $BLUE"Wird hier ein Name eingegeben,\nerstellt dies einen Ordner in /opt/containers/."$NORMAL
|
||||
echo
|
||||
echo -e $GREEN"Achtung hier bitte nur einen Ordner angeben!"$NORMAL
|
||||
read -p "Containername eingeben: " dcname
|
||||
sudo mkdir -p /opt/containers/$dcname
|
||||
while [ -z $dcname ]
|
||||
do
|
||||
echo -e $GREEN"Ups da wurde kein Ordnername eingegeben..."$NORMAL
|
||||
echo
|
||||
read -p "Containername eingeben: " dcname
|
||||
sudo mkdir -p /opt/containers/$dcname
|
||||
done
|
||||
if [ -d /opt/containers/$dcname ]
|
||||
then
|
||||
clear
|
||||
echo
|
||||
echo -e $GREEN"Ordner"$BLUE ${dcname} $GREEN"wurde erfolreich erstellt."$NORMAL
|
||||
echo
|
||||
echo "Sollen in dem erstellten Ordner weitere Ordner erstellt werden?"
|
||||
echo "Für weitere Ordner y und Enter drücken. Mit Enter geht es zurück zum Programm."
|
||||
read -p "" response
|
||||
if [ "$response" == "y" ]
|
||||
then
|
||||
clear
|
||||
echo -e $GREEN"Beispiel für 2 weitere Ordner in dem erstellen Ordner:"
|
||||
echo
|
||||
echo -e $BLUE"data config"$NORMAL
|
||||
echo
|
||||
echo -e $GREEN"Hier können auch mehr als 2 Ordner angegeben werden,"$NORMAL
|
||||
read -p "Ordnernamen eingeben: " subfolders
|
||||
for item in ${subfolders[*]}
|
||||
do
|
||||
sudo mkdir -p /opt/containers/$dcname/$item
|
||||
done
|
||||
while [ -z $item ]
|
||||
do
|
||||
echo -e $GREEN"Ups es wurden keine weiteren Ordner angegeben..."
|
||||
echo -e $GREEN"Bitte nochmal"$NORMAL
|
||||
read -p "Ordnernamen eingeben: " subfolders
|
||||
for item in ${subfolders[*]}
|
||||
do
|
||||
sudo mkdir -p /opt/containers/$dcname/$item
|
||||
done
|
||||
done
|
||||
clear
|
||||
echo -e $GREEN"Ordner ...$BLUE"
|
||||
echo
|
||||
ls -x /opt/containers/$dcname/
|
||||
echo
|
||||
echo -e $GREEN"wurden erstellt."
|
||||
echo
|
||||
read -p "Weiter mit Enter."
|
||||
sudo clidmanager
|
||||
else
|
||||
sudo clidmanager
|
||||
fi
|
||||
else
|
||||
echo -e $RED"Es trat ein fehler auf...\nBitte im Pfad nachsehen ob der Ordner existiert."$NORMAL
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
list_containers() {
|
||||
|
||||
clear
|
||||
echo -e $ZYAN
|
||||
docker ps --format 'table {{.Names}}\t{{.Status}}'
|
||||
echo -e $NORMAL
|
||||
}
|
||||
|
||||
# dcname = Docker Container Name
|
||||
|
||||
log() {
|
||||
|
||||
unset dcname
|
||||
clear
|
||||
echo -e ""$NORMAL
|
||||
echo -e $BLUE" -----Docker Compose Logs-----"$NORMAL
|
||||
echo -e $GREEN"Unten sehen sie eine Liste der Container"$NORMAL
|
||||
echo -e ""$ZYAN
|
||||
cd /opt/containers/ && list_dir_with_numbers
|
||||
cd $dcname && docker compose logs
|
||||
}
|
||||
|
||||
# dcstart = docker compose start
|
||||
|
||||
dcstart() {
|
||||
|
||||
unset dcname
|
||||
clear
|
||||
echo -e ""$NORMAL
|
||||
echo -e $BLUE"Hier wird der angegebene Container bei änderung der yml Datei, neu erstellt."
|
||||
echo -e "Und bei einem neuen Container wird dieser runtergeladen und gestartet."$NORMAL
|
||||
echo
|
||||
echo -e $BLUE" -----Docker Compose start-----"
|
||||
echo -e $GREEN"Unten sehen sie eine Liste der Container"$NORMAL
|
||||
echo -e ""$ZYAN
|
||||
cd /opt/containers/ && list_dir_with_numbers
|
||||
cd $dcname && docker compose up -d
|
||||
|
||||
}
|
||||
|
||||
edit_yml() {
|
||||
|
||||
unset dcname
|
||||
clear
|
||||
echo -e ""$NORMAL
|
||||
echo -e $BLUE" -----yml File edit-----"
|
||||
echo -e $GREEN"Unten sehen sie eine Liste der Container"$NORMAL
|
||||
echo -e ""$ZYAN
|
||||
cd /opt/containers/ && list_dir_with_numbers
|
||||
cd $dcname && nano docker-compose.yml
|
||||
sudo clidmanager
|
||||
}
|
||||
|
||||
all_stop() {
|
||||
|
||||
docker stop $(docker ps -a -q)
|
||||
}
|
||||
|
||||
all_start() {
|
||||
|
||||
docker start $(docker ps -a -q)
|
||||
}
|
||||
|
||||
stack_update() {
|
||||
|
||||
cd /opt/containers/traefik-crowdsec-stack/ && wait && \
|
||||
docker compose restart crowdsec && wait && \
|
||||
docker compose down && wait && \
|
||||
docker compose pull && wait && \
|
||||
docker compose up -d
|
||||
}
|
||||
|
||||
clear
|
||||
echo -e $LBLUE""
|
||||
read -n 1 -s -r -p "$version | $cmname |
|
||||
|
||||
[$one] Neuen Container Ordner erstellen
|
||||
|
||||
[$two] yml Datei bearbeiten/erstellen
|
||||
|
||||
[$three] Container mit up -d starten/neustarten
|
||||
|
||||
[$four] Log Datei einsehen
|
||||
|
||||
[$five] Alle Container stoppen
|
||||
|
||||
[$six] Alle Container starten
|
||||
|
||||
[$seven] Docker Spezial \"Crownsec-Treafik-Stack\" updaten
|
||||
|
||||
[$eight] Laufende Container anzeigen
|
||||
|
||||
$info
|
||||
$info2
|
||||
======================================================
|
||||
Bitte eine Zahl von 1-8 wählen.
|
||||
|
||||
Abbruch mit jeder anderen Taste ..." entry
|
||||
clear
|
||||
case $entry in
|
||||
[1]* ) clear; newdir; exit;;
|
||||
[2]* ) clear; edit_yml; exit;;
|
||||
[3]* ) clear; dcstart; exit;;
|
||||
[4]* ) clear; log; exit;;
|
||||
[5]* ) clear; all_stop; exit;;
|
||||
[6]* ) clear; all_start; exit;;
|
||||
[7]* ) clear; stack_update; exit;;
|
||||
[8]* ) clear; list_containers; exit;;
|
||||
esac
|
||||
|
||||
################ENDE#######################
|
9
docker_work
Executable file
9
docker_work
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
clear
|
||||
cd /opt/containers/
|
||||
echo
|
||||
ls
|
||||
echo
|
||||
echo "Oben sehen sie eine liste der vorhandenen Ordner"
|
||||
echo
|
88
install
Executable file
88
install
Executable file
@ -0,0 +1,88 @@
|
||||
#!/bin/bash
|
||||
|
||||
########################################################
|
||||
########################################################
|
||||
# installer for simple management a docker container ##
|
||||
# Author: Désiré Werner Menrath ##
|
||||
# Email: polunga40@unity-mail.de ##
|
||||
# Translate German to English with LibreTranslate ##
|
||||
# Translatefiles edit with Poedit ##
|
||||
# Use without warranty! ##
|
||||
########################################################
|
||||
########################################################
|
||||
|
||||
Encoding=UTF-8
|
||||
|
||||
# i18n - Internationalization - Internationalisierung
|
||||
|
||||
export TEXTDOMAIN=clidmanager
|
||||
export TEXTDOMAINDIR="/usr/share/locale"
|
||||
|
||||
############################################################################################################
|
||||
############################################################################################################
|
||||
|
||||
isgroup=$(cat /etc/group | grep docker)
|
||||
|
||||
which compose >/dev/null
|
||||
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Docker Compose wird für die verwendung von clidmanager benötigt."
|
||||
echo "Bitte das Paket docker compose installieren."
|
||||
read -p "Zum beenden Enter drücken"
|
||||
exit 0
|
||||
|
||||
|
||||
else
|
||||
exists=$(grep -i "alias dm='sudo clidmanager'" ~/.bashrc | grep -i "alias clidmanager='sudo clidmanager'" ~/.bashrc | grep -i "alias dw='source docker_work'" ~/.bashrc)
|
||||
if [ "$?" = "0" ]
|
||||
then
|
||||
|
||||
echo "$USER ALL = NOPASSWD:/usr/local/bin/clidmanager" > no_pwd_clidmanager
|
||||
|
||||
sudo chown 0:0 no_pwd_clidmanager
|
||||
|
||||
sudo cp -f clidmanager docker_work /usr/local/bin/ && sudo mv no_pwd_clidmanager /etc/sudoers.d/
|
||||
echo
|
||||
echo "clidmanager intalliert."
|
||||
echo
|
||||
echo "Es wurden aliase angelegt..."
|
||||
echo
|
||||
echo "Bei der nächten anmeldung können sie clidmanager"
|
||||
echo
|
||||
echo "entweder über clidmanager oder über dm aufrufen."
|
||||
echo
|
||||
|
||||
read -p "Enter zum beenden drücken..."
|
||||
|
||||
else
|
||||
|
||||
echo "alias dm='sudo clidmanager'" >> ~/.bashrc
|
||||
echo "alias clidmanager='sudo clidmanager'" >> ~/.bashrc
|
||||
echo "alias dw='source docker_work'" >> ~/.bashrc
|
||||
echo "$USER ALL = NOPASSWD:/usr/local/bin/clidmanager" > no_pwd_clidmanager
|
||||
|
||||
sudo chown 0:0 no_pwd_clidmanager
|
||||
sudo usermod -aG docker $USER
|
||||
|
||||
sudo cp -f clidmanager docker_work /usr/local/bin/ && sudo mv no_pwd_clidmanager /etc/sudoers.d/
|
||||
echo
|
||||
echo "clidmanager intalliert."
|
||||
echo
|
||||
echo "Es wurden aliase angelegt..."
|
||||
echo
|
||||
echo "Bei der nächten anmeldung können sie clidmanager"
|
||||
echo
|
||||
echo "entweder über clidmanager oder über dm aufrufen."
|
||||
echo
|
||||
|
||||
read -p "Enter zum beenden drücken..."
|
||||
|
||||
fi
|
||||
if [ -z $isgroup ]
|
||||
then
|
||||
sudo usermod -aG docker $USER
|
||||
|
||||
fi
|
||||
fi
|
||||
|
Loading…
x
Reference in New Issue
Block a user