Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.

This commit is contained in:
2026-04-30 07:41:41 +03:00
parent eec534760e
commit 89b17ea2b2
1406 changed files with 38483 additions and 3 deletions
View File
+32
View File
@@ -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
+16
View File
@@ -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
+58
View File
@@ -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