implemented kaido_config_folder

This commit is contained in:
Snogard 2024-03-20 13:36:23 +01:00
parent 998cb07390
commit 7a8fe7907b
15 changed files with 52 additions and 42 deletions

View File

@ -14,22 +14,29 @@ every configuration must be under /etc/kaido.
(to implement): if "/etc/kaido/" is a git repository, the update function will also take that into account when deciding what container to recreate
### Folder structure
- /etc/kaido
- commands
- build (holds container build data)
- containerName
- Dockerfile
- data.txt
- ecc...
- commands (holds additional or substitute commands)
- install
- install-transmission.sh
- install-pihole.sh
- ecc...
- config
- ecc...
- containers
- containers (holds container configuration)
- container1
- config
- secrets
- envs.sh
- container2
- ecc...
- system (not implemented)
- user (not implemented)
- system (holds system configuration)
- samba
- ecc...
- user (holds user configuration, not implemented)
- update.conf
- envs.sh
### /etc/kaido/update.conf
@ -54,9 +61,9 @@ warning: No parameters are supported yet
### /etc/kaido/envs.sh
This file will be sourced to overrwrite default envs
CONTAINERS_FOLDER: where container folders are created by default
CONTAINERS_FOLDER: where container folders are created by default (not fully implemented)
BUILDS_FOLDER: where files are downloaded for build purposes
KAIDO_CONFIG_FOLDER: where kaido will look for a kaido-config repository (not fully implemented)
KAIDO_CONFIG_FOLDER: where kaido will look for a kaido-config repository
# Container Installation:

View File

@ -1,9 +1,10 @@
#!/bin/bash
source /opt/kaido/src/libs/bash/lib.sh
# docs https://gist.github.com/rudylacrete/dcd9779175fe18731852
containerName=aria-rpc
srcConfigPath=/etc/kaido/containers/$containerName/config
srcConfigPath="$KAIDO_CONFIG_FOLDER/containers/$containerName/config"
dstConfigPath=/mnt/storage/containers/$containerName/config
systemctl stop --user $containerName

View File

@ -1,7 +1,8 @@
#!/bin/bash
source /opt/kaido/src/libs/bash/lib.sh
containerName=reverse-proxy
srcConfigPath=/etc/kaido/containers/$containerName/config
srcConfigPath="$KAIDO_CONFIG_FOLDER/containers/$containerName/config"
dstConfigPath=/mnt/storage/containers/$containerName/config
if [ ! -d $srcConfigPath ]; then

View File

@ -11,8 +11,8 @@ containerName=aria-ng
max_log_size=1m
external_port=10103
if [ -f "/etc/kaido/containers/$containerName/envs.sh" ]; then
source /etc/kaido/containers/$containerName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh"
fi

View File

@ -18,8 +18,8 @@ external_port=10102
internal_port=6800
secret_rpc_secret="$containerName-rpc_secret"
if [ -f "/etc/kaido/containers/$containerName/envs.sh" ]; then
source /etc/kaido/containers/$containerName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh"
fi

View File

@ -16,16 +16,16 @@ dstDataPath=/mnt/storage/containers/$containerName/data
# envs
hostname="example.com"
if [ -f "/etc/kaido/containers/$baseContainerName/envs.sh" ]; then
source /etc/kaido/containers/$baseContainerName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$baseContainerName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$baseContainerName/envs.sh"
fi
if [ -f "/etc/kaido/containers/$containerName/envs.sh" ]; then
source /etc/kaido/containers/$containerName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh"
fi
if [[ "$hostname" == "example.com" ]]; then
echo "ERROR: you must set the domain foundry will run on."
echo "Please set the 'hostname' variable in '/etc/kaido/containers/$containerName/envs.sh'"
echo "Please set the 'hostname' variable in '$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh'"
exit 1
fi

View File

@ -3,7 +3,7 @@
source /opt/kaido/src/libs/bash/lib.sh
# setup
imageName=docker.io/gotson/komga:1.8.4
imageName=docker.io/gotson/komga:1.10.4
containerName=komga
@ -15,8 +15,8 @@ dstDataPath=/mnt/storage/containers/$containerName/data
externalPort=10111
internalPort=25600
if [ -f "/etc/kaido/containers/$containerName/envs.sh" ]; then
source /etc/kaido/containers/$containerName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh"
fi

View File

@ -32,8 +32,8 @@ dstDBDataPath=$dstBasePath/db/data
# envs
trusted_domains="localhost example.com"
if [ -f "/etc/kaido/containers/$podName/envs.sh" ]; then
source /etc/kaido/containers/$podName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$podName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$podName/envs.sh"
fi
# pre install

View File

@ -3,7 +3,7 @@ source /opt/kaido/src/libs/bash/lib.sh
# docs https://hub.docker.com/r/pihole/pihole
# setup
imageName=docker.io/pihole/pihole:2023.11.0
imageName=docker.io/pihole/pihole:2024.02.2
containerName=pihole
srcConfigPath=/home-server/configuration/$containerName
@ -18,8 +18,8 @@ webport=10105
virtual_host=pihole_host
timezone=Europe/Rome
if [ -f "/etc/kaido/containers/$containerName/envs.sh" ]; then
source /etc/kaido/containers/$containerName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh"
fi
# pre install

View File

@ -14,10 +14,10 @@ domain="example.com"
subdomains=""
email="example@example.com"
if [ -f "/etc/kaido/containers/$containerName/envs.sh" ]; then
source /etc/kaido/containers/$containerName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh"
else
echo "You must configure this container with this file: /etc/kaido/containers/$containerName/envs.sh"
echo "You must configure this container with this file: "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh"
exit 1
fi

View File

@ -4,7 +4,7 @@ source /opt/kaido/src/libs/bash/lib.sh
# setup
imageName=docker.io/linuxserver/transmission:4.0.5-r0-ls211
imageName=docker.io/linuxserver/transmission:4.0.5-r0-ls226
containerName=transmission
dstBasePath="$CONTAINERS_FOLDER/$containerName"
@ -26,8 +26,8 @@ themeDownloadUrl="https://github.com/johman10/flood-for-transmission/releases/do
secret_user=$containerName-user
secret_pass=$containerName-pass
if [ -f "/etc/kaido/containers/$containerName/envs.sh" ]; then
source /etc/kaido/containers/$containerName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$containerName/envs.sh"
fi

View File

@ -25,8 +25,8 @@ if [ $(uname -m) == "aarch64" ]; then
max_old_space_size=2048
fi
if [ -f "/etc/kaido/containers/$podName/envs.sh" ]; then
source /etc/kaido/containers/$podName/envs.sh
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$podName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$podName/envs.sh"
fi

View File

@ -1,6 +1,6 @@
#!/bin/bash
srcCondigFile=/etc/kaido/system/samba/smb.conf
srcCondigFile="$KAIDO_CONFIG_FOLDER/system/samba/smb.conf"
dstConfigFile=/etc/samba/smb.conf
if [ ! -f "$srcCondigFile" ]; then

View File

@ -1,6 +1,6 @@
#!/bin/bash
srcSysctlConf=/etc/kaido/system/sysctl/sysctl.conf
srcSysctlConf="$KAIDO_CONFIG_FOLDER/system/sysctl/sysctl.conf"
dstSysctlConf=/etc/sysctl.conf
if [ ! -f "$srcSysctlConf" ]; then

View File

@ -1,13 +1,14 @@
CONTAINERS_FOLDER="$HOME/.local/share/kaido/containers"
BUILDS_FOLDER="$HOME/.cache/kaido/build"
#TODO check if this is used
MASTER_CONFIG_FOLDER="$HOME/.config/kaido"
HOME_KAIDO_CONFIG_FOLDER="$HOME/.config/kaido"
SYSTEM_KAIDO_CONFIG_FOLDER="/etc/kaido"
if [ -f "/etc/kaido/envs.sh" ]; then
source /etc/kaido/envs.sh
KAIDO_CONFIG_FOLDER=$SYSTEM_KAIDO_CONFIG_FOLDER
if [ -d "$HOME_KAIDO_CONFIG_FOLDER" ]; then
KAIDO_CONFIG_FOLDER=$HOME_KAIDO_CONFIG_FOLDER
fi
# keep here until fully implemented, maybe read it from kaido.conf?
KAIDO_CONFIG_FOLDER="/etc/kaido"
if [ -f "$KAIDO_CONFIG_FOLDER/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/envs.sh"
fi