before stt adding

This commit is contained in:
2025-11-28 17:43:00 +06:00
parent fccafad6de
commit f933c315e8
17 changed files with 10002 additions and 672 deletions

86
shell/build-n-export.sh Normal file
View File

@@ -0,0 +1,86 @@
#!/bin/bash
# Скрипт для сборки Podman образа и опционального экспорта в tar.gz
# Использование: ./build-n-export.sh <base_image> <registry> <image_name> <version> [export]
# Пример: ./build-n-export.sh registry.altlinux.org/alt/base:p10 kuznetcovay go-speech v1.0.4 true
# ./build-n-export.sh registry.altlinux.org/alt/base:p10 kuznetcovay go-speech v1.0.4 false (только сборка)
set -e # Остановка при ошибке
# Проверка аргументов
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ]; then
echo "Ошибка: Недостаточно аргументов"
echo "Использование: $0 <base_image> <registry> <image_name> <version> [export]"
echo " base_image - базовый образ для второго этапа сборки (например: registry.altlinux.org/alt/base:p10)"
echo " registry - реестр для образа"
echo " image_name - имя образа"
echo " version - версия образа"
echo " export - true/yes/1 - экспортировать образ (по умолчанию: false)"
echo ""
echo "Пример: $0 registry.altlinux.org/alt/base:p10 kuznetcovay go-speech v1.0.4 true"
echo " $0 registry.altlinux.org/alt/base:p10 kuznetcovay go-speech v1.0.4 false (только сборка)"
exit 1
fi
BASE_IMAGE="$1"
REGISTRY="$2"
IMAGE_NAME="$3"
VERSION="$4"
EXPORT="${5:-false}" # По умолчанию false, если не указано
FULL_IMAGE_NAME="${REGISTRY}/${IMAGE_NAME}:${VERSION}"
OUTPUT_FILE="go-speech-${VERSION}.tar.gz"
# Сохранение версии в VERSION.txt
echo "${VERSION}" > VERSION.txt
echo "✓ Версия сохранена в VERSION.txt: ${VERSION}"
# Нормализация значения export (приводим к нижнему регистру)
EXPORT=$(echo "$EXPORT" | tr '[:upper:]' '[:lower:]')
# Проверка значения export
if [[ "$EXPORT" == "true" || "$EXPORT" == "yes" || "$EXPORT" == "1" ]]; then
DO_EXPORT=true
else
DO_EXPORT=false
fi
echo "=== Сборка Podman образа ==="
echo "Базовый образ: ${BASE_IMAGE}"
echo "Образ: ${FULL_IMAGE_NAME}"
echo "Экспорт: ${DO_EXPORT}"
echo ""
# Сборка образа с передачей базового образа через build arg
podman build --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${FULL_IMAGE_NAME}" .
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось собрать образ"
exit 1
fi
echo ""
echo "✓ Образ успешно собран"
echo ""
# Экспорт образа в tar.gz (только если указано)
if [ "$DO_EXPORT" = true ]; then
echo "=== Экспорт образа в tar.gz ==="
echo "Файл: ${OUTPUT_FILE}"
echo ""
podman save "${FULL_IMAGE_NAME}" | gzip > "${OUTPUT_FILE}"
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось экспортировать образ"
exit 1
fi
# Проверка размера файла
FILE_SIZE=$(du -h "${OUTPUT_FILE}" | cut -f1)
echo "✓ Образ успешно экспортирован"
echo "Размер файла: ${FILE_SIZE}"
echo ""
echo "Файл сохранен: ${OUTPUT_FILE}"
else
echo "Экспорт пропущен (параметр export = false)"
fi

7
shell/docker-run.sh Normal file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
docker run -d --name go-speech --restart=always -p 18443:18443 \
-v "$(pwd)/certs:/app/certs:ro" \
-e GO_SPEECH_VOICE=ruslan \
-e GO_SPEECH_PORT=18443 \
kuznetcovay/go-speech:v1.0.4

25
shell/generate-certs.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
# Скрипт для генерации самоподписанных SSL сертификатов
CERT_DIR="certs"
CERT_FILE="$CERT_DIR/server.crt"
KEY_FILE="$CERT_DIR/server.key"
# Создание директории если не существует
mkdir -p "$CERT_DIR"
# Генерация самоподписанного сертификата
openssl req -x509 -newkey rsa:4096 -keyout "$KEY_FILE" -out "$CERT_FILE" \
-days 3650 -nodes \
-subj "/C=RU/ST=Moscow/L=Moscow/O=Go-Speech/CN=localhost" \
-addext "subjectAltName=DNS:localhost,DNS:*.localhost,IP:127.0.0.1"
echo "Сертификаты созданы:"
echo " Certificate: $CERT_FILE"
echo " Private Key: $KEY_FILE"
echo ""
echo "Для использования в браузере, добавьте сертификат в доверенные:"
echo " sudo cp $CERT_FILE /usr/local/share/ca-certificates/go-speech.crt"
echo " sudo update-ca-certificates"

11
shell/podman-run.sh Normal file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
# -v "$(pwd)/certs:/app/certs:ro" \
podman run -p 17443:8080 \
-e GO_SPEECH_VOICE=ruslan \
-e GO_SPEECH_PORT=8080 \
-e GO_SPEECH_TLS=true \
kuznetcovay/go-speech:v1.0.5-alt
# podman run -p 17443:8080 -e GO_SPEECH_VOICE=ruslan -e GO_SPEECH_PORT=8080 -e GO_SPEECH_TLS=true kuznetcovay/go-speech:v1.0.5-alt