Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
manifestVersion: 1.1
|
||||
id: thelounge
|
||||
category: social
|
||||
name: The Lounge
|
||||
version: "4.4.3"
|
||||
tagline: Современный веб-клиент IRC, предназначенный для самостоятельного хостинга.
|
||||
description: >-
|
||||
The Lounge — это современный веб-клиент IRC (Internet Relay Chat) с открытым исходным кодом, который обеспечивает постоянное подключение, позволяя пользователям оставаться на связи с серверами IRC даже в автономном режиме, а также обеспечивает адаптивный интерфейс, совместимый с настольными компьютерами, смартфонами и планшетами.
|
||||
|
||||
|
||||
Он переносит IRC в 21 век с такими функциями, как push-уведомления, предварительный просмотр ссылок и загрузка файлов, а также поддерживает несколько учетных записей пользователей, позволяя совместно использовать сервер друзьям или членам команды.
|
||||
|
||||
|
||||
Для обеспечения оптимальной производительности Lounge можно установить на постоянно работающий сервер, предоставляя пользователям доступ через браузеры или мобильные устройства.
|
||||
|
||||
|
||||
Он предлагает как приватный режим, сочетающий в себе функции вышибалы и клиента для современного чата, так и публичный режим, позволяющий открыть доступ к чату без регистрации.
|
||||
developer: The Lounge Team
|
||||
website: https://thelounge.chat
|
||||
dependencies: []
|
||||
repo: https://github.com/thelounge/thelounge
|
||||
support: https://github.com/thelounge/thelounge/issues
|
||||
port: 9003
|
||||
gallery:
|
||||
- 1.jpg
|
||||
- 2.jpg
|
||||
- 3.jpg
|
||||
path: ""
|
||||
defaultUsername: "dfwebos"
|
||||
deterministicPassword: true
|
||||
submitter: oren-z0
|
||||
submission: https://github.com/getumbrel/dfwebos-apps/pull/2412
|
||||
@@ -0,0 +1,16 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
app_proxy:
|
||||
environment:
|
||||
APP_HOST: thelounge_web_1
|
||||
APP_PORT: 9000
|
||||
PROXY_AUTH_ADD: "false"
|
||||
|
||||
web:
|
||||
image: ghcr.io/thelounge/thelounge:v4.4.3@sha256:c0565787e0c44951df4ea77840519a41cfe6a4ec040bf1bda928a91866cc3e5e
|
||||
user: "1000:1000"
|
||||
restart: on-failure
|
||||
stop_grace_period: 1m
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data:/var/opt/thelounge
|
||||
Executable
+58
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Цель этого предстартового хука — добавить пользователя гостиной
|
||||
|
||||
APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")"
|
||||
|
||||
# дозорный файл, чтобы проверить, был ли уже инициализирован пользователь
|
||||
USER_SENTINEL="${APP_DATA_DIR}/.user_created"
|
||||
|
||||
# имя пользователя и адрес электронной почты
|
||||
USER_NAME="dfwebos"
|
||||
|
||||
# максимальное количество попыток и время ожидания между ними (60 секунд)
|
||||
MAX_TRIES=12
|
||||
SLEEP_SECS=5
|
||||
|
||||
# ────────────────────────────────────────────────────────────
|
||||
# Полностью пропустить загрузку, если пользователь уже инициализирован
|
||||
# ────────────────────────────────────────────────────────────
|
||||
if [[ -f "$USER_SENTINEL" ]]; then
|
||||
echo "thelounge: user already initialised - skipping bootstrap."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ────────────────────────────────────────────────────────────
|
||||
# Поднимите веб-сервис, чтобы все было готово к запуску.
|
||||
# ────────────────────────────────────────────────────────────
|
||||
echo "thelounge: starting full stack to run migrations…"
|
||||
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" \
|
||||
up -d --wait --wait-timeout 90 web
|
||||
|
||||
# ────────────────────────────────────────────────────────────
|
||||
# Повторяйте попытку, пока пользователь не будет создан (максимум 60 секунд).
|
||||
# Это должно добиться успеха с первой попытки
|
||||
# Но включение цикла повторов для надежности
|
||||
# ────────────────────────────────────────────────────────────
|
||||
echo "thelounge: ensuring user exists…"
|
||||
for ((try=1; try<=MAX_TRIES; try++)); do
|
||||
if "${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" exec -T web thelounge add "${USER_NAME}" --password "${APP_PASSWORD}" \ ; then
|
||||
touch "$USER_SENTINEL"
|
||||
echo "thelounge: user ready."
|
||||
break
|
||||
fi
|
||||
echo " Attempt $try/$MAX_TRIES failed - retrying in ${SLEEP_SECS}s…"
|
||||
sleep "$SLEEP_SECS"
|
||||
done
|
||||
|
||||
if [[ ! -f "$USER_SENTINEL" ]]; then
|
||||
echo "thelounge ERROR: could not create user after $MAX_TRIES attempts."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ────────────────────────────────────────────────────────────
|
||||
# Отключите все контейнеры и позвольте DFWebOS запустить их заново.
|
||||
# ────────────────────────────────────────────────────────────
|
||||
echo "thelounge: bootstrap finished - stopping stack for clean start…"
|
||||
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" stop
|
||||
Reference in New Issue
Block a user