[IMPROVED] Actualizar configuración y archivos del sistema
- Actualizar CLAUDE.md con instrucciones para usar version - Añadir soporte para Home Assistant OS (haos.sh y mensajes) - Eliminar bin/ollama/podman-compose.yml (ahora se usa ~/.ollama) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
9e8420c287
commit
7e99c82b60
4 changed files with 621 additions and 12 deletions
|
@ -15,6 +15,7 @@
|
||||||
- Document function purpose with comments
|
- Document function purpose with comments
|
||||||
- Include usage examples in script headers
|
- Include usage examples in script headers
|
||||||
- Handle errors with proper exit codes
|
- Handle errors with proper exit codes
|
||||||
|
- Use version from `bin/config/version` file in script header (#Version line)
|
||||||
|
|
||||||
## Development Practices
|
## Development Practices
|
||||||
- Use `bin/lib/base.lib` for common functions
|
- Use `bin/lib/base.lib` for common functions
|
||||||
|
|
524
bin/haos.sh
Executable file
524
bin/haos.sh
Executable file
|
@ -0,0 +1,524 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#Script : haos.sh
|
||||||
|
#Apps : MRDEVS TOOLS
|
||||||
|
#Description : Instala y administra Home Assistant OS en Podman
|
||||||
|
#Author : Cortana Rosero One <cortana@rosero.one>
|
||||||
|
#Created : 2025/04/01 12:00:00
|
||||||
|
#Modified : 2025/04/01 12:00:00
|
||||||
|
#Version : 1.3.0
|
||||||
|
#==============================================================================
|
||||||
|
# Derechos de Autor [2025] [Mauro Rosero P. <mauro@rosero.one>]
|
||||||
|
#==============================================================================
|
||||||
|
# Este programa es software libre: usted puede redistribuirlo y/o modificarlo
|
||||||
|
# bajo los términos de la Licencia Pública Affero General de GNU tal como
|
||||||
|
# lo publica la Free Software Foundation, ya sea la versión 3 de la licencia,
|
||||||
|
# o (a su elección) cualquier versión posterior.
|
||||||
|
#
|
||||||
|
# Este programa se distribuye con la esperanza de que sea útil,
|
||||||
|
# pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
|
||||||
|
# COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
|
||||||
|
# Licencia Pública Affero General de GNU para obtener más detalles.
|
||||||
|
#
|
||||||
|
# Debería haber recibido una copia de la Licencia Pública Affero General
|
||||||
|
# junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>.
|
||||||
|
# [Generated] Created by Claude Code (claude-3-7-sonnet-20250219)
|
||||||
|
|
||||||
|
# Configuración inicial
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
BIN_BASE="bin"
|
||||||
|
BIN_LIBS="lib"
|
||||||
|
BIN_MESG="msg"
|
||||||
|
BIN_CFGS="config"
|
||||||
|
|
||||||
|
# Leer DEVSPATH desde el archivo de configuración o usar "devs" por defecto
|
||||||
|
if [ -f "$SCRIPT_DIR/config/devspath.dat" ]; then
|
||||||
|
DEVSPATH=$(cat "$SCRIPT_DIR/$BIN_CFGS/devspath.dat")
|
||||||
|
else
|
||||||
|
DEVSPATH="devs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
BIN_HOME="$HOME/$DEVSPATH"
|
||||||
|
BIN_PATH=$BIN_HOME/$BIN_BASE
|
||||||
|
VERSION=$(cat "$BIN_HOME/$BIN_BASE/$BIN_CFGS/version")
|
||||||
|
|
||||||
|
# CHECK SHELL LANGUAGE
|
||||||
|
BIN_LANG=${LANG:0:2}
|
||||||
|
|
||||||
|
# Importar bibliotecas necesarias
|
||||||
|
if [ -f "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/base.lib" ]; then
|
||||||
|
source "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/base.lib"
|
||||||
|
# Cargar mensajes en el idioma del sistema o español por defecto
|
||||||
|
load_messages "${BIN_HOME}/${BIN_BASE}" "${BIN_MESG}" "${BIN_LANG}" "head"
|
||||||
|
# Cargar mensajes específicos de developers
|
||||||
|
load_messages "${BIN_HOME}/${BIN_BASE}" "${BIN_MESG}" "${BIN_LANG}" "developers"
|
||||||
|
title="${head_000} ${head_002} - ${ha_000}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verificar que estemos en una carpeta de proyectos
|
||||||
|
if [ -f "$SCRIPT_DIR/$BIN_CFGS/projects.dat" ]; then
|
||||||
|
PROJECTS_DIR=$(cat "$SCRIPT_DIR/$BIN_CFGS/projects.dat")
|
||||||
|
else
|
||||||
|
PROJECTS_DIR="projects"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Comprobación de proyecto válido
|
||||||
|
CURRENT_PATH="$PWD"
|
||||||
|
PROJECT_BASE="$HOME/$DEVSPATH/$PROJECTS_DIR"
|
||||||
|
|
||||||
|
# Verificar que el directorio actual esté dentro de la carpeta de proyectos
|
||||||
|
if [[ "$CURRENT_PATH" != "$PROJECT_BASE"* ]]; then
|
||||||
|
echo "${head_002} ${head_warning}: ${ha_081}"
|
||||||
|
printf "${ha_082}\n" "$PROJECT_BASE"
|
||||||
|
|
||||||
|
# Crear directorio de proyectos si no existe
|
||||||
|
if [ ! -d "$PROJECT_BASE" ]; then
|
||||||
|
printf "${ha_083}" "$PROJECT_BASE" | read -p CREATE_DIR
|
||||||
|
if [[ "$CREATE_DIR" =~ ^[Ss]$ ]]; then
|
||||||
|
mkdir -p "$PROJECT_BASE"
|
||||||
|
echo "${ha_084}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
printf "${ha_085}\n" "$PROJECT_BASE"
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configuración básica
|
||||||
|
HA_CONFIG_DIR="$PWD/ha"
|
||||||
|
HA_PORT=8123
|
||||||
|
HA_NETWORKS="--network=host" # Modo host para descubrimiento de dispositivos
|
||||||
|
|
||||||
|
# Configuración de versiones
|
||||||
|
HA_CORE_CONTAINER_NAME="homeassistant"
|
||||||
|
HA_CORE_IMAGE="ghcr.io/home-assistant/home-assistant:stable"
|
||||||
|
|
||||||
|
HA_OS_CONTAINER_NAME="haos"
|
||||||
|
HA_OS_IMAGE="docker.io/homeassistant/home-assistant:stable"
|
||||||
|
|
||||||
|
# Por defecto usamos Home Assistant Core
|
||||||
|
HA_CONTAINER_NAME=$HA_CORE_CONTAINER_NAME
|
||||||
|
HA_IMAGE=$HA_CORE_IMAGE
|
||||||
|
HA_TYPE="core" # puede ser "core" o "os"
|
||||||
|
|
||||||
|
# Verificar si podman está instalado
|
||||||
|
check_podman() {
|
||||||
|
if ! command -v podman &> /dev/null; then
|
||||||
|
echo "${ha_003}"
|
||||||
|
if [ -f "$BIN_PATH/bootstrap.sh" ]; then
|
||||||
|
$BIN_PATH/bootstrap.sh
|
||||||
|
else
|
||||||
|
echo "${ha_004}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${ha_005}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Crear directorios necesarios
|
||||||
|
prepare_directories() {
|
||||||
|
echo "${ha_006}"
|
||||||
|
mkdir -p "$HA_CONFIG_DIR"
|
||||||
|
mkdir -p "$HA_CONFIG_DIR/config"
|
||||||
|
mkdir -p "$HA_CONFIG_DIR/media"
|
||||||
|
mkdir -p "$HA_CONFIG_DIR/ssl"
|
||||||
|
mkdir -p "$HA_CONFIG_DIR/share"
|
||||||
|
|
||||||
|
# Asegurar permisos correctos
|
||||||
|
chmod -R 755 "$HA_CONFIG_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Seleccionar versión de Home Assistant
|
||||||
|
select_ha_version() {
|
||||||
|
echo "${ha_086}"
|
||||||
|
echo "${ha_087}"
|
||||||
|
echo "${ha_088}"
|
||||||
|
|
||||||
|
local choice
|
||||||
|
read -p "${ha_089}" choice
|
||||||
|
|
||||||
|
case $choice in
|
||||||
|
1)
|
||||||
|
echo "${ha_091}"
|
||||||
|
HA_CONTAINER_NAME=$HA_CORE_CONTAINER_NAME
|
||||||
|
HA_IMAGE=$HA_CORE_IMAGE
|
||||||
|
HA_TYPE="core"
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
echo "${ha_092}"
|
||||||
|
HA_CONTAINER_NAME=$HA_OS_CONTAINER_NAME
|
||||||
|
HA_IMAGE=$HA_OS_IMAGE
|
||||||
|
HA_TYPE="os"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "${ha_090}"
|
||||||
|
select_ha_version
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Instalar Home Assistant en podman
|
||||||
|
install() {
|
||||||
|
check_podman
|
||||||
|
prepare_directories
|
||||||
|
|
||||||
|
# Seleccionar qué versión de Home Assistant instalar
|
||||||
|
select_ha_version
|
||||||
|
|
||||||
|
# Descargar la imagen apropiada
|
||||||
|
if [ "$HA_TYPE" = "core" ]; then
|
||||||
|
echo "${ha_007}"
|
||||||
|
else
|
||||||
|
echo "${ha_093}"
|
||||||
|
fi
|
||||||
|
podman pull $HA_IMAGE
|
||||||
|
|
||||||
|
if podman container exists $HA_CONTAINER_NAME; then
|
||||||
|
printf "${ha_008}\n" "$HA_CONTAINER_NAME"
|
||||||
|
printf "${ha_009}\n" "$0"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${ha_010}"
|
||||||
|
podman run -d \
|
||||||
|
--name=$HA_CONTAINER_NAME \
|
||||||
|
$HA_NETWORKS \
|
||||||
|
-v "$HA_CONFIG_DIR/config:/config" \
|
||||||
|
-v "$HA_CONFIG_DIR/media:/media" \
|
||||||
|
-v "$HA_CONFIG_DIR/ssl:/ssl" \
|
||||||
|
-v "$HA_CONFIG_DIR/share:/share" \
|
||||||
|
--restart=unless-stopped \
|
||||||
|
$HA_IMAGE
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "${ha_011}"
|
||||||
|
printf "${ha_002}\n" "$HA_PORT"
|
||||||
|
echo "${ha_012}"
|
||||||
|
else
|
||||||
|
echo "${ha_013}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iniciar el contenedor de Home Assistant
|
||||||
|
start() {
|
||||||
|
if ! podman container exists $HA_CONTAINER_NAME; then
|
||||||
|
printf "${ha_014}\n" "$HA_CONTAINER_NAME"
|
||||||
|
printf "${ha_015}\n" "$0"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if podman container inspect $HA_CONTAINER_NAME --format '{{.State.Running}}' | grep -q "true"; then
|
||||||
|
echo "${ha_001}"
|
||||||
|
printf "${ha_002}\n" "$HA_PORT"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${ha_016}"
|
||||||
|
podman start $HA_CONTAINER_NAME
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "${ha_017}"
|
||||||
|
printf "${ha_002}\n" "$HA_PORT"
|
||||||
|
else
|
||||||
|
echo "${ha_018}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Detener el contenedor de Home Assistant
|
||||||
|
stop() {
|
||||||
|
if ! podman container exists $HA_CONTAINER_NAME; then
|
||||||
|
printf "${ha_019}\n" "$HA_CONTAINER_NAME"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! podman container inspect $HA_CONTAINER_NAME --format '{{.State.Running}}' | grep -q "true"; then
|
||||||
|
echo "${ha_020}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${ha_021}"
|
||||||
|
podman stop $HA_CONTAINER_NAME
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "${ha_022}"
|
||||||
|
else
|
||||||
|
echo "${ha_023}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Reiniciar el contenedor de Home Assistant
|
||||||
|
restart() {
|
||||||
|
echo "${ha_024}"
|
||||||
|
|
||||||
|
stop
|
||||||
|
sleep 3
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mostrar el estado del contenedor de Home Assistant
|
||||||
|
status() {
|
||||||
|
if ! podman container exists $HA_CONTAINER_NAME; then
|
||||||
|
echo "${ha_026}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${ha_025}"
|
||||||
|
podman container inspect $HA_CONTAINER_NAME --format '{{.State.Status}}'
|
||||||
|
|
||||||
|
if podman container inspect $HA_CONTAINER_NAME --format '{{.State.Running}}' | grep -q "true"; then
|
||||||
|
echo "${ha_027}"
|
||||||
|
printf "${ha_028}\n" "$HA_PORT"
|
||||||
|
printf "${ha_029}\n" "$HA_CONFIG_DIR"
|
||||||
|
|
||||||
|
# Mostrar tiempo de ejecución
|
||||||
|
local start_time=$(podman container inspect $HA_CONTAINER_NAME --format '{{.State.StartedAt}}')
|
||||||
|
[ -n "$start_time" ] && printf "${ha_030}\n" "$start_time"
|
||||||
|
|
||||||
|
# Verificar si el servicio está respondiendo
|
||||||
|
if command -v curl &>/dev/null; then
|
||||||
|
if curl -s "http://localhost:$HA_PORT" >/dev/null; then
|
||||||
|
echo "${ha_031}"
|
||||||
|
else
|
||||||
|
echo "${ha_032}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${ha_033}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Actualizar la imagen de Home Assistant
|
||||||
|
update() {
|
||||||
|
echo "${ha_034}"
|
||||||
|
|
||||||
|
# Detener el contenedor existente
|
||||||
|
stop
|
||||||
|
|
||||||
|
# Guardar la información del contenedor actual
|
||||||
|
echo "${ha_035}"
|
||||||
|
podman commit $HA_CONTAINER_NAME homeassistant-backup
|
||||||
|
|
||||||
|
# Descargar la nueva imagen
|
||||||
|
echo "${ha_036}"
|
||||||
|
podman pull $HA_IMAGE
|
||||||
|
|
||||||
|
# Eliminar el contenedor actual pero mantener los volúmenes
|
||||||
|
echo "${ha_037}"
|
||||||
|
podman rm $HA_CONTAINER_NAME
|
||||||
|
|
||||||
|
# Recrear el contenedor con la nueva imagen
|
||||||
|
echo "${ha_038}"
|
||||||
|
podman run -d \
|
||||||
|
--name=$HA_CONTAINER_NAME \
|
||||||
|
$HA_NETWORKS \
|
||||||
|
-v "$HA_CONFIG_DIR/config:/config" \
|
||||||
|
-v "$HA_CONFIG_DIR/media:/media" \
|
||||||
|
-v "$HA_CONFIG_DIR/ssl:/ssl" \
|
||||||
|
-v "$HA_CONFIG_DIR/share:/share" \
|
||||||
|
--restart=unless-stopped \
|
||||||
|
$HA_IMAGE
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "${ha_039}"
|
||||||
|
printf "${ha_002}\n" "$HA_PORT"
|
||||||
|
echo "${ha_040}"
|
||||||
|
echo "podman stop homeassistant && podman rm homeassistant && podman tag homeassistant-backup homeassistant && podman run -d [opciones] homeassistant"
|
||||||
|
else
|
||||||
|
echo "${ha_041}"
|
||||||
|
podman run -d \
|
||||||
|
--name=$HA_CONTAINER_NAME \
|
||||||
|
$HA_NETWORKS \
|
||||||
|
-v "$HA_CONFIG_DIR/config:/config" \
|
||||||
|
-v "$HA_CONFIG_DIR/media:/media" \
|
||||||
|
-v "$HA_CONFIG_DIR/ssl:/ssl" \
|
||||||
|
-v "$HA_CONFIG_DIR/share:/share" \
|
||||||
|
--restart=unless-stopped \
|
||||||
|
homeassistant-backup
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "${ha_042}"
|
||||||
|
else
|
||||||
|
echo "${ha_043}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Eliminar el contenedor de Home Assistant
|
||||||
|
remove() {
|
||||||
|
echo "${ha_044}"
|
||||||
|
|
||||||
|
# Detener el contenedor primero
|
||||||
|
stop
|
||||||
|
|
||||||
|
# Preguntar si se desea realizar una copia de seguridad
|
||||||
|
read -p "${ha_045}" BACKUP
|
||||||
|
if [[ "$BACKUP" =~ ^[Ss]$ ]]; then
|
||||||
|
echo "${ha_046}"
|
||||||
|
podman commit $HA_CONTAINER_NAME homeassistant-backup
|
||||||
|
echo "${ha_047}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Preguntar si se desea eliminar los datos de configuración
|
||||||
|
read -p "${ha_048}" REMOVE_CONFIG
|
||||||
|
|
||||||
|
# Eliminar el contenedor
|
||||||
|
podman rm $HA_CONTAINER_NAME
|
||||||
|
|
||||||
|
if [[ "$REMOVE_CONFIG" =~ ^[Ss]$ ]]; then
|
||||||
|
echo "${ha_049}"
|
||||||
|
rm -rf "$HA_CONFIG_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${ha_050}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mostrar los logs del contenedor
|
||||||
|
logs() {
|
||||||
|
if ! podman container exists $HA_CONTAINER_NAME; then
|
||||||
|
printf "${ha_019}\n" "$HA_CONTAINER_NAME"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${ha_051}"
|
||||||
|
podman logs -f $HA_CONTAINER_NAME
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configuración de complementos adicionales
|
||||||
|
setup_addons() {
|
||||||
|
echo "${ha_052}"
|
||||||
|
|
||||||
|
# Verifica si Home Assistant está ejecutándose
|
||||||
|
if ! podman container inspect $HA_CONTAINER_NAME --format '{{.State.Running}}' | grep -q "true"; then
|
||||||
|
echo "${ha_053}"
|
||||||
|
echo "${ha_054}"
|
||||||
|
start
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${ha_055}"
|
||||||
|
echo "1. MQTT Broker (Mosquitto)"
|
||||||
|
echo "2. Z-Wave JS"
|
||||||
|
echo "3. Zigbee2MQTT"
|
||||||
|
echo "4. AdGuard Home"
|
||||||
|
echo "5. Node-RED"
|
||||||
|
echo "0. Cancelar"
|
||||||
|
|
||||||
|
read -p "${ha_056}" ADDON_CHOICE
|
||||||
|
|
||||||
|
case $ADDON_CHOICE in
|
||||||
|
1)
|
||||||
|
echo "${ha_057}"
|
||||||
|
podman run -d \
|
||||||
|
--name=mosquitto \
|
||||||
|
--network=host \
|
||||||
|
-v "$HA_CONFIG_DIR/mosquitto:/mosquitto" \
|
||||||
|
-p 1883:1883 \
|
||||||
|
--restart=unless-stopped \
|
||||||
|
eclipse-mosquitto:latest
|
||||||
|
echo "${ha_058}"
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
echo "${ha_059}"
|
||||||
|
podman run -d \
|
||||||
|
--name=zwavejs \
|
||||||
|
--network=host \
|
||||||
|
-v "$HA_CONFIG_DIR/zwavejs:/usr/src/app/store" \
|
||||||
|
--device=/dev/ttyUSB0:/dev/ttyUSB0 \
|
||||||
|
-p 8091:8091 \
|
||||||
|
--restart=unless-stopped \
|
||||||
|
zwavejs/zwavejs2mqtt:latest
|
||||||
|
echo "${ha_060}"
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
echo "${ha_061}"
|
||||||
|
mkdir -p "$HA_CONFIG_DIR/zigbee2mqtt/data"
|
||||||
|
podman run -d \
|
||||||
|
--name=zigbee2mqtt \
|
||||||
|
--network=host \
|
||||||
|
-v "$HA_CONFIG_DIR/zigbee2mqtt/data:/app/data" \
|
||||||
|
--device=/dev/ttyUSB0:/dev/ttyUSB0 \
|
||||||
|
-p 8080:8080 \
|
||||||
|
--restart=unless-stopped \
|
||||||
|
koenkk/zigbee2mqtt:latest
|
||||||
|
echo "${ha_062}"
|
||||||
|
;;
|
||||||
|
4)
|
||||||
|
echo "${ha_063}"
|
||||||
|
podman run -d \
|
||||||
|
--name=adguardhome \
|
||||||
|
--network=host \
|
||||||
|
-v "$HA_CONFIG_DIR/adguardhome/workdir:/opt/adguardhome/work" \
|
||||||
|
-v "$HA_CONFIG_DIR/adguardhome/confdir:/opt/adguardhome/conf" \
|
||||||
|
-p 53:53/tcp -p 53:53/udp \
|
||||||
|
-p 80:80/tcp -p 443:443/tcp -p 3000:3000/tcp \
|
||||||
|
--restart=unless-stopped \
|
||||||
|
adguard/adguardhome:latest
|
||||||
|
echo "${ha_064}"
|
||||||
|
;;
|
||||||
|
5)
|
||||||
|
echo "${ha_065}"
|
||||||
|
podman run -d \
|
||||||
|
--name=nodered \
|
||||||
|
--network=host \
|
||||||
|
-v "$HA_CONFIG_DIR/nodered:/data" \
|
||||||
|
-p 1880:1880 \
|
||||||
|
--restart=unless-stopped \
|
||||||
|
nodered/node-red:latest
|
||||||
|
echo "${ha_066}"
|
||||||
|
;;
|
||||||
|
0)
|
||||||
|
echo "${ha_067}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "${ha_068}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Función principal y procesamiento de comandos
|
||||||
|
case "$1" in
|
||||||
|
install)
|
||||||
|
install
|
||||||
|
;;
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
restart
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status
|
||||||
|
;;
|
||||||
|
update)
|
||||||
|
update
|
||||||
|
;;
|
||||||
|
remove)
|
||||||
|
remove
|
||||||
|
;;
|
||||||
|
logs)
|
||||||
|
logs
|
||||||
|
;;
|
||||||
|
addons)
|
||||||
|
setup_addons
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "${ha_069}"
|
||||||
|
printf "${ha_070}\n" "$0"
|
||||||
|
echo ""
|
||||||
|
echo "${ha_071}"
|
||||||
|
echo "${ha_072}"
|
||||||
|
echo "${ha_073}"
|
||||||
|
echo "${ha_074}"
|
||||||
|
echo "${ha_075}"
|
||||||
|
echo "${ha_076}"
|
||||||
|
echo "${ha_077}"
|
||||||
|
echo "${ha_078}"
|
||||||
|
echo "${ha_079}"
|
||||||
|
echo "${ha_080}"
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -187,6 +187,102 @@ qrmsg_012="Error"
|
||||||
qrmsg_013="Dialog no está instalado"
|
qrmsg_013="Dialog no está instalado"
|
||||||
qrmsg_014="Zbar no está instalado"
|
qrmsg_014="Zbar no está instalado"
|
||||||
|
|
||||||
|
# Mensajes para Home Assistant OS
|
||||||
|
ha_000="GESTOR DE HOME ASSISTANT OS"
|
||||||
|
ha_001="Home Assistant ya está en ejecución"
|
||||||
|
ha_002="Accede a Home Assistant en: http://localhost:%s"
|
||||||
|
ha_003="Podman no está instalado. Instalando..."
|
||||||
|
ha_004="Error: No se encuentra el script bootstrap.sh"
|
||||||
|
ha_005="Podman está instalado."
|
||||||
|
ha_006="Preparando directorios para Home Assistant..."
|
||||||
|
ha_007="Descargando imagen de Home Assistant..."
|
||||||
|
ha_086="Selecciona la versión de Home Assistant a instalar:"
|
||||||
|
ha_087="1. Home Assistant Core (Aplicación regular)"
|
||||||
|
ha_088="2. Home Assistant OS (Sistema operativo completo)"
|
||||||
|
ha_089="Selecciona una opción (1-2): "
|
||||||
|
ha_090="Opción no válida. Por favor, selecciona 1 o 2."
|
||||||
|
ha_091="Preparando instalación de Home Assistant Core..."
|
||||||
|
ha_092="Preparando instalación de Home Assistant OS..."
|
||||||
|
ha_093="Descargando imagen de Home Assistant OS..."
|
||||||
|
ha_008="El contenedor %s ya existe. Removerlo antes de instalar."
|
||||||
|
ha_009="Usa: %s remove para eliminar el contenedor existente."
|
||||||
|
ha_010="Creando contenedor de Home Assistant..."
|
||||||
|
ha_011="Home Assistant instalado correctamente."
|
||||||
|
ha_012="Espera unos minutos mientras Home Assistant se inicia por primera vez."
|
||||||
|
ha_013="Error al crear el contenedor de Home Assistant."
|
||||||
|
ha_014="El contenedor %s no existe. Instálalo primero."
|
||||||
|
ha_015="Usa: %s install para instalar Home Assistant."
|
||||||
|
ha_016="Iniciando Home Assistant..."
|
||||||
|
ha_017="Home Assistant iniciado correctamente."
|
||||||
|
ha_018="Error al iniciar Home Assistant."
|
||||||
|
ha_019="El contenedor %s no existe."
|
||||||
|
ha_020="Home Assistant ya está detenido."
|
||||||
|
ha_021="Deteniendo Home Assistant..."
|
||||||
|
ha_022="Home Assistant detenido correctamente."
|
||||||
|
ha_023="Error al detener Home Assistant."
|
||||||
|
ha_024="Reiniciando Home Assistant..."
|
||||||
|
ha_025="Estado de Home Assistant:"
|
||||||
|
ha_026="Home Assistant no está instalado."
|
||||||
|
ha_027="Home Assistant está en ejecución:"
|
||||||
|
ha_028=" - URL: http://localhost:%s"
|
||||||
|
ha_029=" - Directorio de configuración: %s"
|
||||||
|
ha_030=" - Iniciado: %s"
|
||||||
|
ha_031=" - Estado: Respondiendo"
|
||||||
|
ha_032=" - Estado: Proceso en ejecución pero no responde HTTP"
|
||||||
|
ha_033="Home Assistant está detenido."
|
||||||
|
ha_034="Actualizando Home Assistant..."
|
||||||
|
ha_035="Respaldando configuración actual..."
|
||||||
|
ha_036="Descargando la nueva imagen de Home Assistant..."
|
||||||
|
ha_037="Eliminando el contenedor actual..."
|
||||||
|
ha_038="Recreando el contenedor con la nueva imagen..."
|
||||||
|
ha_039="Home Assistant actualizado correctamente."
|
||||||
|
ha_040="Si encuentras problemas, puedes restaurar la copia de seguridad con:"
|
||||||
|
ha_041="Error al actualizar Home Assistant. Intentando restaurar la versión anterior..."
|
||||||
|
ha_042="Restauración exitosa de la versión anterior."
|
||||||
|
ha_043="Error al restaurar la versión anterior. Es posible que debas reinstalar Home Assistant."
|
||||||
|
ha_044="Eliminando el contenedor de Home Assistant..."
|
||||||
|
ha_045="¿Deseas realizar una copia de seguridad antes de eliminar? (s/N): "
|
||||||
|
ha_046="Realizando copia de seguridad..."
|
||||||
|
ha_047="Copia de seguridad creada como imagen: homeassistant-backup"
|
||||||
|
ha_048="¿Deseas eliminar también los directorios de configuración? (s/N): "
|
||||||
|
ha_049="Eliminando directorios de configuración..."
|
||||||
|
ha_050="Home Assistant eliminado correctamente."
|
||||||
|
ha_051="Mostrando logs de Home Assistant (Ctrl+C para salir):"
|
||||||
|
ha_052="Configurando complementos adicionales para Home Assistant..."
|
||||||
|
ha_053="Home Assistant debe estar en ejecución para configurar complementos."
|
||||||
|
ha_054="Iniciando Home Assistant..."
|
||||||
|
ha_055="Complementos disponibles:"
|
||||||
|
ha_056="Selecciona un complemento para instalar (0-5): "
|
||||||
|
ha_057="Instalando MQTT Broker (Mosquitto)..."
|
||||||
|
ha_058="MQTT Broker instalado. Configúralo en Home Assistant."
|
||||||
|
ha_059="Instalando Z-Wave JS..."
|
||||||
|
ha_060="Z-Wave JS instalado. Accede a UI en http://localhost:8091"
|
||||||
|
ha_061="Instalando Zigbee2MQTT..."
|
||||||
|
ha_062="Zigbee2MQTT instalado. Configúralo en Home Assistant."
|
||||||
|
ha_063="Instalando AdGuard Home..."
|
||||||
|
ha_064="AdGuard Home instalado. Configúralo en http://localhost:3000"
|
||||||
|
ha_065="Instalando Node-RED..."
|
||||||
|
ha_066="Node-RED instalado. Accede a http://localhost:1880"
|
||||||
|
ha_067="Operación cancelada."
|
||||||
|
ha_068="Opción no válida."
|
||||||
|
ha_069="Home Assistant OS en Podman"
|
||||||
|
ha_070="Uso: %s {install|start|stop|restart|status|update|remove|logs|addons}"
|
||||||
|
ha_071="Comandos:"
|
||||||
|
ha_081="Este script debe ejecutarse desde una carpeta de proyecto."
|
||||||
|
ha_082="La carpeta de proyectos es: %s"
|
||||||
|
ha_083="¿Deseas crear la carpeta de proyectos %s? (s/N): "
|
||||||
|
ha_084="Carpeta de proyectos creada. Por favor, crea un proyecto dentro y ejecuta este script desde ahí."
|
||||||
|
ha_085="Por favor, navega a un directorio dentro de %s para ejecutar este script."
|
||||||
|
ha_072=" install - Instala Home Assistant en un contenedor Podman"
|
||||||
|
ha_073=" start - Inicia el contenedor de Home Assistant"
|
||||||
|
ha_074=" stop - Detiene el contenedor de Home Assistant"
|
||||||
|
ha_075=" restart - Reinicia el contenedor de Home Assistant"
|
||||||
|
ha_076=" status - Muestra el estado del contenedor de Home Assistant"
|
||||||
|
ha_077=" update - Actualiza Home Assistant a la última versión"
|
||||||
|
ha_078=" remove - Elimina el contenedor de Home Assistant"
|
||||||
|
ha_079=" logs - Muestra los logs en tiempo real"
|
||||||
|
ha_080=" addons - Configura complementos adicionales"
|
||||||
|
|
||||||
# Mensajes para fjadmin_install.sh
|
# Mensajes para fjadmin_install.sh
|
||||||
fjmsg_000="INSTALADOR DE FORGEJO CLI"
|
fjmsg_000="INSTALADOR DE FORGEJO CLI"
|
||||||
fjmsg_001="Instalando Forgejo CLI"
|
fjmsg_001="Instalando Forgejo CLI"
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
version: "3.8"
|
|
||||||
|
|
||||||
services:
|
|
||||||
ollama:
|
|
||||||
image: docker.io/ollama/ollama:latest
|
|
||||||
container_name: ollama
|
|
||||||
privileged: true
|
|
||||||
ports:
|
|
||||||
- "11434:11434"
|
|
||||||
volumes:
|
|
||||||
- ../../data:/root/.ollama
|
|
||||||
restart: unless-stopped
|
|
Loading…
Reference in a new issue