mirror of
https://github.com/YunoHost-Apps/weblate_ynh.git
synced 2024-10-01 13:35:04 +02:00
Merge 796ae34817
into 905bb1fa9a
This commit is contained in:
commit
c42c426961
21 changed files with 365 additions and 297 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -99,3 +99,6 @@ ENV/
|
|||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
*~
|
||||
*.sw[op]
|
||||
.DS_Store
|
||||
|
|
|
@ -5,4 +5,7 @@
|
|||
- [Irakurri README euskaraz](README_eu.md)
|
||||
- [Lire le README en français](README_fr.md)
|
||||
- [Le o README en galego](README_gl.md)
|
||||
- [Baca README dalam bahasa bahasa Indonesia](README_id.md)
|
||||
- [Lees de README in het Nederlands](README_nl.md)
|
||||
- [Прочитать README на русский](README_ru.md)
|
||||
- [阅读中文(简体)的 README](README_zh_Hans.md)
|
||||
|
|
|
@ -5,7 +5,7 @@ It shall NOT be edited by hand.
|
|||
|
||||
# Weblate for YunoHost
|
||||
|
||||
[](https://dash.yunohost.org/appci/app/weblate)  
|
||||
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||
|
||||
[](https://install-app.yunohost.org/?app=weblate)
|
||||
|
||||
|
@ -18,7 +18,7 @@ It shall NOT be edited by hand.
|
|||
|
||||
Weblate is a libre web-based translation tool with tight version control integration. It provides two user interfaces, propagation of translations across components, quality checks and automatic linking to source files.
|
||||
|
||||
**Shipped version:** 5.4.3~ynh1
|
||||
**Shipped version:** 5.5.3~ynh1
|
||||
|
||||
**Demo:** <https://hosted.weblate.org/>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ No se debe editar a mano.
|
|||
|
||||
# Weblate para Yunohost
|
||||
|
||||
[](https://dash.yunohost.org/appci/app/weblate)  
|
||||
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||
|
||||
[](https://install-app.yunohost.org/?app=weblate)
|
||||
|
||||
|
@ -18,7 +18,7 @@ No se debe editar a mano.
|
|||
|
||||
Weblate is a libre web-based translation tool with tight version control integration. It provides two user interfaces, propagation of translations across components, quality checks and automatic linking to source files.
|
||||
|
||||
**Versión actual:** 5.4.3~ynh1
|
||||
**Versión actual:** 5.5.3~ynh1
|
||||
|
||||
**Demo:** <https://hosted.weblate.org/>
|
||||
|
||||
|
@ -37,7 +37,7 @@ Weblate is a libre web-based translation tool with tight version control integra
|
|||
|
||||
## Información para desarrolladores
|
||||
|
||||
Por favor enviar sus correcciones a la [`branch testing`](https://github.com/YunoHost-Apps/weblate_ynh/tree/testing
|
||||
Por favor enviar sus correcciones a la [rama `testing`](https://github.com/YunoHost-Apps/weblate_ynh/tree/testing).
|
||||
|
||||
Para probar la rama `testing`, sigue asÍ:
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ EZ editatu eskuz.
|
|||
|
||||
# Weblate YunoHost-erako
|
||||
|
||||
[](https://dash.yunohost.org/appci/app/weblate)  
|
||||
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||
|
||||
[](https://install-app.yunohost.org/?app=weblate)
|
||||
|
||||
|
@ -18,7 +18,7 @@ EZ editatu eskuz.
|
|||
|
||||
Weblate is a libre web-based translation tool with tight version control integration. It provides two user interfaces, propagation of translations across components, quality checks and automatic linking to source files.
|
||||
|
||||
**Paketatutako bertsioa:** 5.4.3~ynh1
|
||||
**Paketatutako bertsioa:** 5.5.3~ynh1
|
||||
|
||||
**Demoa:** <https://hosted.weblate.org/>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ Il NE doit PAS être modifié à la main.
|
|||
|
||||
# Weblate pour YunoHost
|
||||
|
||||
[](https://dash.yunohost.org/appci/app/weblate)  
|
||||
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||
|
||||
[](https://install-app.yunohost.org/?app=weblate)
|
||||
|
||||
|
@ -18,7 +18,7 @@ Il NE doit PAS être modifié à la main.
|
|||
|
||||
Weblate est un outil de traduction libre avec une intégration étroite du contrôle de version. Il fournit deux interfaces utilisateur, la propagation des traductions entre les composants, les contrôles de qualité et la liaison automatique aux fichiers source.
|
||||
|
||||
**Version incluse :** 5.4.3~ynh1
|
||||
**Version incluse :** 5.5.3~ynh1
|
||||
|
||||
**Démo :** <https://hosted.weblate.org/>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ NON debe editarse manualmente.
|
|||
|
||||
# Weblate para YunoHost
|
||||
|
||||
[](https://dash.yunohost.org/appci/app/weblate)  
|
||||
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||
|
||||
[](https://install-app.yunohost.org/?app=weblate)
|
||||
|
||||
|
@ -18,7 +18,7 @@ NON debe editarse manualmente.
|
|||
|
||||
Weblate is a libre web-based translation tool with tight version control integration. It provides two user interfaces, propagation of translations across components, quality checks and automatic linking to source files.
|
||||
|
||||
**Versión proporcionada:** 5.4.3~ynh1
|
||||
**Versión proporcionada:** 5.5.3~ynh1
|
||||
|
||||
**Demo:** <https://hosted.weblate.org/>
|
||||
|
||||
|
|
50
README_id.md
Normal file
50
README_id.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
<!--
|
||||
N.B.: README ini dibuat secara otomatis oleh <https://github.com/YunoHost/apps/tree/master/tools/readme_generator>
|
||||
Ini TIDAK boleh diedit dengan tangan.
|
||||
-->
|
||||
|
||||
# Weblate untuk YunoHost
|
||||
|
||||
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||
|
||||
[](https://install-app.yunohost.org/?app=weblate)
|
||||
|
||||
*[Baca README ini dengan bahasa yang lain.](./ALL_README.md)*
|
||||
|
||||
> *Paket ini memperbolehkan Anda untuk memasang Weblate secara cepat dan mudah pada server YunoHost.*
|
||||
> *Bila Anda tidak mempunyai YunoHost, silakan berkonsultasi dengan [panduan](https://yunohost.org/install) untuk mempelajari bagaimana untuk memasangnya.*
|
||||
|
||||
## Ringkasan
|
||||
|
||||
Weblate is a libre web-based translation tool with tight version control integration. It provides two user interfaces, propagation of translations across components, quality checks and automatic linking to source files.
|
||||
|
||||
**Versi terkirim:** 5.5.3~ynh1
|
||||
|
||||
**Demo:** <https://hosted.weblate.org/>
|
||||
|
||||
## Tangkapan Layar
|
||||
|
||||

|
||||
|
||||
## Dokumentasi dan sumber daya
|
||||
|
||||
- Website aplikasi resmi: <https://weblate.org>
|
||||
- Dokumentasi pengguna resmi: <https://docs.weblate.org/>
|
||||
- Dokumentasi admin resmi: <https://docs.weblate.org/>
|
||||
- Depot kode aplikasi hulu: <https://github.com/WeblateOrg/weblate>
|
||||
- Gudang YunoHost: <https://apps.yunohost.org/app/weblate>
|
||||
- Laporkan bug: <https://github.com/YunoHost-Apps/weblate_ynh/issues>
|
||||
|
||||
## Info developer
|
||||
|
||||
Silakan kirim pull request ke [`testing` branch](https://github.com/YunoHost-Apps/weblate_ynh/tree/testing).
|
||||
|
||||
Untuk mencoba branch `testing`, silakan dilanjutkan seperti:
|
||||
|
||||
```bash
|
||||
sudo yunohost app install https://github.com/YunoHost-Apps/weblate_ynh/tree/testing --debug
|
||||
atau
|
||||
sudo yunohost app upgrade weblate -u https://github.com/YunoHost-Apps/weblate_ynh/tree/testing --debug
|
||||
```
|
||||
|
||||
**Info lebih lanjut mengenai pemaketan aplikasi:** <https://yunohost.org/packaging_apps>
|
50
README_nl.md
Normal file
50
README_nl.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
<!--
|
||||
NB: Deze README is automatisch gegenereerd door <https://github.com/YunoHost/apps/tree/master/tools/readme_generator>
|
||||
Hij mag NIET handmatig aangepast worden.
|
||||
-->
|
||||
|
||||
# Weblate voor Yunohost
|
||||
|
||||
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||
|
||||
[](https://install-app.yunohost.org/?app=weblate)
|
||||
|
||||
*[Deze README in een andere taal lezen.](./ALL_README.md)*
|
||||
|
||||
> *Met dit pakket kun je Weblate snel en eenvoudig op een YunoHost-server installeren.*
|
||||
> *Als je nog geen YunoHost hebt, lees dan [de installatiehandleiding](https://yunohost.org/install), om te zien hoe je 'm installeert.*
|
||||
|
||||
## Overzicht
|
||||
|
||||
Weblate is a libre web-based translation tool with tight version control integration. It provides two user interfaces, propagation of translations across components, quality checks and automatic linking to source files.
|
||||
|
||||
**Geleverde versie:** 5.5.3~ynh1
|
||||
|
||||
**Demo:** <https://hosted.weblate.org/>
|
||||
|
||||
## Schermafdrukken
|
||||
|
||||

|
||||
|
||||
## Documentatie en bronnen
|
||||
|
||||
- Officiele website van de app: <https://weblate.org>
|
||||
- Officiele gebruikersdocumentatie: <https://docs.weblate.org/>
|
||||
- Officiele beheerdersdocumentatie: <https://docs.weblate.org/>
|
||||
- Upstream app codedepot: <https://github.com/WeblateOrg/weblate>
|
||||
- YunoHost-store: <https://apps.yunohost.org/app/weblate>
|
||||
- Meld een bug: <https://github.com/YunoHost-Apps/weblate_ynh/issues>
|
||||
|
||||
## Ontwikkelaarsinformatie
|
||||
|
||||
Stuur je pull request alsjeblieft naar de [`testing`-branch](https://github.com/YunoHost-Apps/weblate_ynh/tree/testing).
|
||||
|
||||
Om de `testing`-branch uit te proberen, ga als volgt te werk:
|
||||
|
||||
```bash
|
||||
sudo yunohost app install https://github.com/YunoHost-Apps/weblate_ynh/tree/testing --debug
|
||||
of
|
||||
sudo yunohost app upgrade weblate -u https://github.com/YunoHost-Apps/weblate_ynh/tree/testing --debug
|
||||
```
|
||||
|
||||
**Verdere informatie over app-packaging:** <https://yunohost.org/packaging_apps>
|
50
README_ru.md
Normal file
50
README_ru.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
<!--
|
||||
Важно: этот README был автоматически сгенерирован <https://github.com/YunoHost/apps/tree/master/tools/readme_generator>
|
||||
Он НЕ ДОЛЖЕН редактироваться вручную.
|
||||
-->
|
||||
|
||||
# Weblate для YunoHost
|
||||
|
||||
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||
|
||||
[](https://install-app.yunohost.org/?app=weblate)
|
||||
|
||||
*[Прочтите этот README на других языках.](./ALL_README.md)*
|
||||
|
||||
> *Этот пакет позволяет Вам установить Weblate быстро и просто на YunoHost-сервер.*
|
||||
> *Если у Вас нет YunoHost, пожалуйста, посмотрите [инструкцию](https://yunohost.org/install), чтобы узнать, как установить его.*
|
||||
|
||||
## Обзор
|
||||
|
||||
Weblate is a libre web-based translation tool with tight version control integration. It provides two user interfaces, propagation of translations across components, quality checks and automatic linking to source files.
|
||||
|
||||
**Поставляемая версия:** 5.5.3~ynh1
|
||||
|
||||
**Демо-версия:** <https://hosted.weblate.org/>
|
||||
|
||||
## Снимки экрана
|
||||
|
||||

|
||||
|
||||
## Документация и ресурсы
|
||||
|
||||
- Официальный веб-сайт приложения: <https://weblate.org>
|
||||
- Официальная документация пользователя: <https://docs.weblate.org/>
|
||||
- Официальная документация администратора: <https://docs.weblate.org/>
|
||||
- Репозиторий кода главной ветки приложения: <https://github.com/WeblateOrg/weblate>
|
||||
- Магазин YunoHost: <https://apps.yunohost.org/app/weblate>
|
||||
- Сообщите об ошибке: <https://github.com/YunoHost-Apps/weblate_ynh/issues>
|
||||
|
||||
## Информация для разработчиков
|
||||
|
||||
Пришлите Ваш запрос на слияние в [ветку `testing`](https://github.com/YunoHost-Apps/weblate_ynh/tree/testing).
|
||||
|
||||
Чтобы попробовать ветку `testing`, пожалуйста, сделайте что-то вроде этого:
|
||||
|
||||
```bash
|
||||
sudo yunohost app install https://github.com/YunoHost-Apps/weblate_ynh/tree/testing --debug
|
||||
или
|
||||
sudo yunohost app upgrade weblate -u https://github.com/YunoHost-Apps/weblate_ynh/tree/testing --debug
|
||||
```
|
||||
|
||||
**Больше информации о пакетировании приложений:** <https://yunohost.org/packaging_apps>
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
# YunoHost 上的 Weblate
|
||||
|
||||
[](https://dash.yunohost.org/appci/app/weblate)  
|
||||
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||
|
||||
[](https://install-app.yunohost.org/?app=weblate)
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
|||
|
||||
Weblate is a libre web-based translation tool with tight version control integration. It provides two user interfaces, propagation of translations across components, quality checks and automatic linking to source files.
|
||||
|
||||
**分发版本:** 5.4.3~ynh1
|
||||
**分发版本:** 5.5.3~ynh1
|
||||
|
||||
**演示:** <https://hosted.weblate.org/>
|
||||
|
||||
|
|
|
@ -15,9 +15,7 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Copyright © Michal Čihař <michal@weblate.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# mypy: disable-error-code="var-annotated"
|
||||
|
||||
import os
|
||||
import platform
|
||||
|
@ -138,6 +136,7 @@ LANGUAGES = (
|
|||
("sr", "Српски"),
|
||||
("sr-latn", "Srpski"),
|
||||
("sv", "Svenska"),
|
||||
("ta", "தமிழ்"),
|
||||
("th", "ไทย"),
|
||||
("tr", "Türkçe"),
|
||||
("uk", "Українська"),
|
||||
|
@ -158,7 +157,7 @@ USE_TZ = True
|
|||
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
|
||||
|
||||
# URL prefix to use, please see documentation for more details
|
||||
# WARNING: this must be without trailing slash (this is why we set __PATH_NO_SLASH__ (cf. loaded settings in install and upgrade))
|
||||
# YUNOHOST_WARNING: this must be without trailing slash (this is why we set __PATH_NO_SLASH__ (cf. loaded settings in install and upgrade))
|
||||
URL_PREFIX = "__PATH_NO_SLASH__"
|
||||
|
||||
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
||||
|
@ -222,9 +221,6 @@ GITHUB_CREDENTIALS = {
|
|||
"token": "__GITHUB_TOKEN__",
|
||||
}
|
||||
}
|
||||
# Azure DevOps username and token for sending pull requests.
|
||||
# Please see the documentation for more details.
|
||||
AZURE_DEVOPS_CREDENTIALS = {}
|
||||
|
||||
# Azure DevOps username and token for sending pull requests.
|
||||
# Please see the documentation for more details.
|
||||
|
@ -244,7 +240,7 @@ GITLAB_CREDENTIALS = {
|
|||
BITBUCKETSERVER_CREDENTIALS = {}
|
||||
|
||||
# Authentication configuration
|
||||
AUTHENTICATION_BACKENDS = (
|
||||
AUTHENTICATION_BACKENDS: tuple[str, ...] = (
|
||||
"social_core.backends.email.EmailAuth",
|
||||
# "social_core.backends.google.GoogleOAuth2",
|
||||
# "social_core.backends.github.GithubOAuth2",
|
||||
|
@ -431,7 +427,7 @@ INSTALLED_APPS = [
|
|||
"django.contrib.sessions",
|
||||
"django.contrib.messages",
|
||||
"django.contrib.staticfiles",
|
||||
"django.contrib.admin.apps.SimpleAdminConfig",
|
||||
"django.contrib.admin",
|
||||
"django.contrib.admindocs",
|
||||
"django.contrib.sitemaps",
|
||||
"django.contrib.humanize",
|
||||
|
@ -464,7 +460,7 @@ if platform.system() != "Windows":
|
|||
# Since Python 3.7 connect failures are silently discarded, so
|
||||
# the exception is almost never raised here. Instead we look whether the socket
|
||||
# to syslog is open after init.
|
||||
HAVE_SYSLOG = handler.socket.fileno() != -1
|
||||
HAVE_SYSLOG = handler.socket.fileno() != -1 # type: ignore[attr-defined]
|
||||
handler.close()
|
||||
except OSError:
|
||||
HAVE_SYSLOG = False
|
||||
|
@ -477,7 +473,7 @@ DEFAULT_LOGLEVEL = "DEBUG" if DEBUG else "INFO"
|
|||
# the site admins on every HTTP 500 error when DEBUG=False.
|
||||
# See http://docs.djangoproject.com/en/stable/topics/logging for
|
||||
# more details on how to customize your logging configuration.
|
||||
LOGGING = {
|
||||
LOGGING: dict = {
|
||||
"version": 1,
|
||||
"disable_existing_loggers": True,
|
||||
"filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}},
|
||||
|
@ -615,6 +611,10 @@ LOGOUT_URL = f"{URL_PREFIX}/accounts/logout/"
|
|||
|
||||
# Default location for login
|
||||
LOGIN_REDIRECT_URL = f"{URL_PREFIX}/"
|
||||
LOGOUT_REDIRECT_URL = f"{URL_PREFIX}/"
|
||||
|
||||
# Opt-in for Django 6.0 default
|
||||
FORMS_URLFIELD_ASSUME_HTTPS = True
|
||||
|
||||
# Anonymous user name
|
||||
ANONYMOUS_USER_NAME = "anonymous"
|
||||
|
@ -657,6 +657,7 @@ CRISPY_TEMPLATE_PACK = "bootstrap3"
|
|||
# "weblate.checks.chars.EndColonCheck",
|
||||
# "weblate.checks.chars.EndQuestionCheck",
|
||||
# "weblate.checks.chars.EndExclamationCheck",
|
||||
# "weblate.checks.chars.EndInterrobangCheck",
|
||||
# "weblate.checks.chars.EndEllipsisCheck",
|
||||
# "weblate.checks.chars.EndSemicolonCheck",
|
||||
# "weblate.checks.chars.MaxLengthCheck",
|
||||
|
@ -824,6 +825,7 @@ REST_FRAMEWORK = {
|
|||
"DEFAULT_PAGINATION_CLASS": "weblate.api.pagination.StandardPagination",
|
||||
"PAGE_SIZE": 50,
|
||||
"VIEW_DESCRIPTION_FUNCTION": "weblate.api.views.get_view_description",
|
||||
"EXCEPTION_HANDLER": "weblate.api.views.weblate_exception_handler",
|
||||
"UNAUTHENTICATED_USER": "weblate.auth.models.get_anonymous",
|
||||
}
|
||||
|
||||
|
@ -850,6 +852,7 @@ if REQUIRE_LOGIN:
|
|||
# rf"{URL_PREFIX}/healthz/$", # Allowing public access to health check
|
||||
# rf"{URL_PREFIX}/api/(.*)$", # Allowing access to API
|
||||
# rf"{URL_PREFIX}/js/i18n/$", # JavaScript localization
|
||||
# rf"{URL_PREFIX}/css/custom\.css$", # Custom CSS support
|
||||
# rf"{URL_PREFIX}/contact/$", # Optional for contact form
|
||||
# rf"{URL_PREFIX}/legal/(.*)$", # Optional for legal app
|
||||
# rf"{URL_PREFIX}/avatar/(.*)$", # Optional for avatars
|
||||
|
@ -869,7 +872,9 @@ SILENCED_SYSTEM_CHECKS = [
|
|||
# Celery worker configuration for production
|
||||
CELERY_TASK_ALWAYS_EAGER = False
|
||||
CELERY_BROKER_URL = "redis://127.0.0.1:6379/__REDIS_DB__"
|
||||
CELERY_RESULT_BACKEND = CELERY_BROKER_URL
|
||||
CELERY_RESULT_BACKEND: str | None = CELERY_BROKER_URL
|
||||
CELERY_BROKER_CONNECTION_RETRY_ON_STARTUP = True
|
||||
CELERY_BROKER_CONNECTION_RETRY = True
|
||||
|
||||
# Celery settings, it is not recommended to change these
|
||||
CELERY_WORKER_MAX_MEMORY_PER_CHILD = 200000
|
||||
|
@ -887,7 +892,7 @@ CELERY_TASK_ROUTES = {
|
|||
|
||||
# CORS allowed origins
|
||||
CORS_ALLOWED_ORIGINS = []
|
||||
CORS_URLS_REGEX = r"^/api/.*$"
|
||||
CORS_URLS_REGEX = rf"^{URL_PREFIX}/api/.*$"
|
||||
|
||||
# Enable plain database backups
|
||||
DATABASE_BACKUP = "plain"
|
||||
|
|
|
@ -7,7 +7,7 @@ name = "Weblate"
|
|||
description.en = "Translation platform using Git and Python"
|
||||
description.fr = "Plateforme de traduction utilisant Git et Python"
|
||||
|
||||
version = "5.4.3~ynh1"
|
||||
version = "5.5.3~ynh1"
|
||||
|
||||
maintainers = ["Thovi98"]
|
||||
|
||||
|
@ -22,7 +22,8 @@ cpe = "cpe:2.3:a:weblate:weblate"
|
|||
fund = "https://weblate.org/fr/donate/"
|
||||
|
||||
[integration]
|
||||
yunohost = ">= 11.2.12"
|
||||
yunohost = ">= 12.0.0"
|
||||
helpers_version = "2.1"
|
||||
architectures = "all"
|
||||
multi_instance = true
|
||||
ldap = false
|
||||
|
@ -86,6 +87,7 @@ ram.runtime = "3G"
|
|||
[resources.system_user]
|
||||
|
||||
[resources.install_dir]
|
||||
group = "www-data:r-x"
|
||||
|
||||
[resources.permissions]
|
||||
main.url = "/"
|
||||
|
@ -94,11 +96,29 @@ ram.runtime = "3G"
|
|||
main.default = 8080
|
||||
|
||||
[resources.apt]
|
||||
# §1 = weblate dependecies, §2 = borgbackup dependencies
|
||||
packages = ["libxml2-dev", "libxslt-dev", "libfreetype6-dev", "libjpeg-dev", "libz-dev", "libyaml-dev", "libffi-dev", "libcairo-dev", "gir1.2-pango-1.0", "libgirepository1.0-dev", "libacl1-dev", "libssl-dev", "libpq-dev", "libjpeg62-turbo-dev", "build-essential", "python3-gdbm", "python3-dev", "python3-pip", "python3-venv", "python3-virtualenv", "virtualenv", "git", "uwsgi", "uwsgi-plugin-python3", "redis-server", "postgresql", "postgresql-contrib", "hub",
|
||||
|
||||
|
||||
"libacl1-dev", "libacl1", "libssl-dev", "liblz4-dev", "libzstd-dev", "libxxhash-dev", "build-essential", "pkg-config", "python3-pkgconfig"]
|
||||
packages = [
|
||||
# Weblate dependencies
|
||||
"build-essential", "git",
|
||||
"gir1.2-pango-1.0", "libacl1-dev", "libcairo-dev", "libffi-dev", "libfreetype6-dev",
|
||||
"libgirepository1.0-dev", "libjpeg-dev", "libjpeg62-turbo-dev", "libpq-dev",
|
||||
"libssl-dev", "libxml2-dev", "libxslt-dev", "libyaml-dev", "libz-dev", "librsvg2-dev",
|
||||
"python3-gdbm",
|
||||
"python3-dev",
|
||||
"python3-pip",
|
||||
"python3-venv",
|
||||
"python3-virtualenv",
|
||||
"virtualenv",
|
||||
"uwsgi",
|
||||
"uwsgi-plugin-python3",
|
||||
"redis-server",
|
||||
"postgresql",
|
||||
"postgresql-contrib",
|
||||
"hub",
|
||||
"gettext",
|
||||
# Borg backup dependencies
|
||||
"pkg-config", "python3-pkgconfig",
|
||||
"libacl1-dev", "libacl1", "libssl-dev", "liblz4-dev", "libzstd-dev", "libxxhash-dev",
|
||||
]
|
||||
|
||||
[resources.database]
|
||||
type = "postgresql"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# COMMON VARIABLES
|
||||
# COMMON VARIABLES AND CUSTOM HELPERS
|
||||
#=================================================
|
||||
|
||||
debian_maj_version=$(sed 's/\..*//' /etc/debian_version)
|
||||
|
@ -16,10 +16,6 @@ elif [ "$debian_maj_version" -eq 12 ] ; then
|
|||
weblate_pypath="python3.11"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# PERSONAL HELPERS
|
||||
#=================================================
|
||||
|
||||
set_forge_variables() {
|
||||
if [ $used_forge = "GitHub" ] ; then
|
||||
github_username="$forge_username"
|
||||
|
@ -33,11 +29,3 @@ set_forge_variables() {
|
|||
gitlab_token="$forge_token"
|
||||
fi
|
||||
}
|
||||
|
||||
#=================================================
|
||||
# EXPERIMENTAL HELPERS
|
||||
#=================================================
|
||||
|
||||
#=================================================
|
||||
# FUTURE OFFICIAL HELPERS
|
||||
#=================================================
|
||||
|
|
|
@ -1,62 +1,38 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
|
||||
source ../settings/scripts/_common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# DECLARE DATA AND CONF FILES TO BACKUP
|
||||
#=================================================
|
||||
ynh_print_info --message="Declaring files to be backed up..."
|
||||
ynh_print_info "Declaring files to be backed up..."
|
||||
|
||||
#=================================================
|
||||
# BACKUP THE APP MAIN DIR
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="$install_dir"
|
||||
ynh_backup "$install_dir"
|
||||
|
||||
#=================================================
|
||||
# BACKUP THE NGINX CONFIGURATION
|
||||
# SYSTEM CONFIGURATION
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC BACKUP
|
||||
#=================================================
|
||||
# BACKUP LOGROTATE
|
||||
#=================================================
|
||||
ynh_backup "/etc/logrotate.d/$app"
|
||||
|
||||
ynh_backup --src_path="/etc/logrotate.d/$app"
|
||||
ynh_backup "/etc/systemd/system/$app.service"
|
||||
ynh_backup "/etc/systemd/system/$app-celery.service"
|
||||
|
||||
#=================================================
|
||||
# BACKUP SYSTEMD
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="/etc/systemd/system/$app.service"
|
||||
ynh_backup --src_path="/etc/systemd/system/$app-celery.service"
|
||||
|
||||
#=================================================
|
||||
# BACKUP VARIOUS FILES
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="/etc/uwsgi/apps-available/$app.ini"
|
||||
ynh_backup "/etc/uwsgi/apps-available/$app.ini"
|
||||
|
||||
#=================================================
|
||||
# BACKUP THE POSTGRESQL DATABASE
|
||||
#=================================================
|
||||
ynh_print_info --message="Backing up the PostgreSQL database..."
|
||||
ynh_print_info "Backing up the PostgreSQL database..."
|
||||
|
||||
ynh_psql_dump_db --database="$db_name" > db.sql
|
||||
ynh_psql_dump_db > db.sql
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."
|
||||
ynh_print_info "Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."
|
||||
|
|
|
@ -1,87 +1,75 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC STARTING
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# STANDARD MODIFICATIONS
|
||||
#=================================================
|
||||
# STOP SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Stopping systemd services..." --weight=1
|
||||
ynh_script_progression "Stopping systemd services..."
|
||||
|
||||
ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/weblate.log" --line_match="goodbye to uWSGI"
|
||||
ynh_systemd_action --service_name="$app-celery" --action="stop" --log_path="systemd"
|
||||
ynh_systemctl --service=$app --action="stop" --log_path="/var/log/$app/weblate.log" --wait_until="goodbye to uWSGI"
|
||||
ynh_systemctl --service="$app-celery" --action="stop" --log_path="systemd"
|
||||
|
||||
#=================================================
|
||||
# MODIFY URL IN NGINX CONF
|
||||
#=================================================
|
||||
ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1
|
||||
ynh_script_progression "Updating NGINX web server configuration..."
|
||||
|
||||
ynh_change_url_nginx_config
|
||||
ynh_config_change_url_nginx
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC MODIFICATIONS
|
||||
#=================================================
|
||||
# MODIFY SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Modify weblate's config file..." --weight=1
|
||||
ynh_script_progression "Modify weblate's config file..."
|
||||
|
||||
settings="$install_dir/venv/lib/$weblate_pypath/site-packages/weblate/settings.py"
|
||||
ynh_backup_if_checksum_is_different --file="$settings"
|
||||
ynh_backup_if_checksum_is_different "$settings"
|
||||
|
||||
# Change the path in the nginx config file
|
||||
if [ $change_path -eq 1 ]
|
||||
then
|
||||
ynh_replace_string --match_string="URL_PREFIX = \"${old_path%/}\"" --replace_string="URL_PREFIX = \"${new_path%/}\"" --target_file="$settings"
|
||||
ynh_replace --match="URL_PREFIX = \"${old_path%/}\"" --replace="URL_PREFIX = \"${new_path%/}\"" --file="$settings"
|
||||
fi
|
||||
|
||||
# Change the domain for nginx
|
||||
if [ $change_domain -eq 1 ]
|
||||
then
|
||||
# replace SERVER_EMAIL
|
||||
ynh_replace_string --match_string="noreply@$old_domain" --replace_string="noreply@$new_domain" --target_file="$settings"
|
||||
ynh_replace --match="noreply@$old_domain" --replace="noreply@$new_domain" --file="$settings"
|
||||
# replace SITE_DOMAIN
|
||||
ynh_replace_string --match_string="SITE_DOMAIN = \"$old_domain\"" --replace_string="SITE_DOMAIN = \"$new_domain\"" --target_file="$settings"
|
||||
ynh_replace --match="SITE_DOMAIN = \"$old_domain\"" --replace="SITE_DOMAIN = \"$new_domain\"" --file="$settings"
|
||||
# replace ALLOWED_HOSTS
|
||||
ynh_replace_string --match_string="ALLOWED_HOSTS = \[\"$old_domain\"\]" --replace_string="ALLOWED_HOSTS = \[\"$new_domain\"\]" --target_file="$settings"
|
||||
ynh_replace --match="ALLOWED_HOSTS = \[\"$old_domain\"\]" --replace="ALLOWED_HOSTS = \[\"$new_domain\"\]" --file="$settings"
|
||||
fi
|
||||
|
||||
ynh_store_file_checksum --file="$settings"
|
||||
ynh_store_file_checksum "$settings"
|
||||
|
||||
#=================================================
|
||||
# MODIFY UWSGI
|
||||
#=================================================
|
||||
|
||||
finaluwsgiini="/etc/uwsgi/apps-available/$app.ini"
|
||||
ynh_backup_if_checksum_is_different --file="$finaluwsgiini"
|
||||
ynh_backup_if_checksum_is_different "$finaluwsgiini"
|
||||
|
||||
# Change the path in the nginx config file
|
||||
if [ $change_path -eq 1 ]
|
||||
then
|
||||
ynh_replace_string --match_string="mount = $old_path=" --replace_string="mount = $new_path=" --target_file="$finaluwsgiini"
|
||||
ynh_replace --match="mount = $old_path=" --replace="mount = $new_path=" --file="$finaluwsgiini"
|
||||
fi
|
||||
|
||||
ynh_store_file_checksum --file="$finaluwsgiini"
|
||||
ynh_store_file_checksum "$finaluwsgiini"
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALISATION
|
||||
#=================================================
|
||||
# START SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting a systemd service..." --weight=5
|
||||
ynh_script_progression "Starting $app's systemd service..."
|
||||
|
||||
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/weblate.log" --line_match="spawned uWSGI"
|
||||
ynh_systemd_action --service_name="$app-celery" --action="start" --log_path="/var/log/$app/weblate-celery-celery.log" --line_match="mingle: all alone"
|
||||
ynh_systemctl --service=$app --action="start" --log_path="/var/log/$app/weblate.log" --wait_until="spawned uWSGI"
|
||||
ynh_systemctl --service="$app-celery" --action="start" --log_path="/var/log/$app/weblate-celery-celery.log" --wait_until="mingle: all alone"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Change of URL completed for $app" --last
|
||||
ynh_script_progression "Change of URL completed for $app"
|
||||
|
|
|
@ -1,11 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
|
@ -19,11 +13,11 @@ key=$(ynh_string_random --length=50)
|
|||
#=================================================
|
||||
# STORE SETTINGS FROM MANIFEST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Storing installation settings..." --weight=1
|
||||
ynh_script_progression "Storing installation settings..."
|
||||
|
||||
ynh_app_setting_set --app=$app --key=used_forge --value=$used_forge
|
||||
ynh_app_setting_set --app=$app --key=forge_username --value=$forge_username
|
||||
ynh_app_setting_set --app=$app --key=forge_token --value=$forge_token
|
||||
ynh_app_setting_set --key=used_forge --value=$used_forge
|
||||
ynh_app_setting_set --key=forge_username --value=$forge_username
|
||||
ynh_app_setting_set --key=forge_token --value=$forge_token
|
||||
|
||||
# Remove trailing "/" from the path
|
||||
path_no_slash=${path%/}
|
||||
|
@ -31,14 +25,14 @@ path_no_slash=${path%/}
|
|||
#=================================================
|
||||
# CREATE A POSTGRESQL DATABASE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Creating a PostgreSQL database..." --weight=2
|
||||
ynh_script_progression "Creating a PostgreSQL database..."
|
||||
|
||||
ynh_psql_execute_as_root --sql="CREATE EXTENSION IF NOT EXISTS pg_trgm;" --database=$db_name
|
||||
ynh_psql_db_shell <<< "CREATE EXTENSION IF NOT EXISTS pg_trgm;"
|
||||
|
||||
#=================================================
|
||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Setting up source files..."
|
||||
ynh_script_progression "Setting up source files..."
|
||||
|
||||
mkdir -p "$install_dir/avatar-cache"
|
||||
mkdir -p "$install_dir/data"
|
||||
|
@ -50,17 +44,14 @@ chown -R $app:www-data "$install_dir"
|
|||
#=================================================
|
||||
# NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring NGINX web server..." --weight=2
|
||||
ynh_script_progression "Configuring NGINX web server..."
|
||||
|
||||
# Create a dedicated NGINX config
|
||||
ynh_add_nginx_config
|
||||
ynh_config_add_nginx
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC SETUP
|
||||
#=================================================
|
||||
# INSTALL XXHASH
|
||||
#=================================================
|
||||
ynh_script_progression --message="Installing xxHash..."
|
||||
ynh_script_progression "Installing xxHash..."
|
||||
|
||||
tempdir="$(mktemp -d)"
|
||||
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
||||
|
@ -68,17 +59,17 @@ pushd $tempdir
|
|||
make
|
||||
make install
|
||||
popd
|
||||
ynh_secure_remove --file="$tempdir"
|
||||
ynh_safe_rm "$tempdir"
|
||||
|
||||
#=================================================
|
||||
# CONFIGURE HUB
|
||||
#=================================================
|
||||
|
||||
if [ $used_forge = "GitHub" ] ; then
|
||||
ynh_script_progression --message="Configure hub..." --weight=1
|
||||
|
||||
ynh_script_progression "Configure hub..."
|
||||
|
||||
mkdir "$install_dir/.config/"
|
||||
ynh_add_config --template="../conf/hub_config" --destination="$install_dir/.config/hub"
|
||||
ynh_config_add --template="hub_config" --destination="$install_dir/.config/hub"
|
||||
|
||||
cat <<EOF > "$install_dir/.bashrc"
|
||||
eval "$(hub alias -s /bin/bash)"
|
||||
|
@ -88,7 +79,7 @@ fi
|
|||
#=================================================
|
||||
# PIP INSTALLATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Install weblate using PIP..." --weight=80
|
||||
ynh_script_progression "Install weblate using PIP..."
|
||||
|
||||
virtualenv --python=python3 "${install_dir}/venv"
|
||||
chown -R $app: "$install_dir"
|
||||
|
@ -116,17 +107,20 @@ chown -R $app: "$install_dir"
|
|||
#=================================================
|
||||
# ADD A CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Adding a configuration file..." --weight=1
|
||||
ynh_script_progression "Adding $app's configuration..."
|
||||
|
||||
redis_db=$(ynh_redis_get_free_db)
|
||||
ynh_app_setting_set --app=$app --key=redis_db --value="$redis_db"
|
||||
ynh_app_setting_set --key=redis_db --value="$redis_db"
|
||||
settings="$install_dir/venv/lib/$weblate_pypath/site-packages/weblate/settings.py"
|
||||
|
||||
set_forge_variables
|
||||
|
||||
ynh_add_config --template="../conf/settings.py" --destination="$settings"
|
||||
ynh_add_config --template="../conf/celery-weblate" --destination="$install_dir/celery-weblate"
|
||||
ynh_add_config --template="../conf/uwsgi.ini" --destination="/etc/uwsgi/apps-available/$app.ini"
|
||||
ynh_config_add --template="settings.py" --destination="$settings"
|
||||
ynh_config_add --template="celery-weblate" --destination="$install_dir/celery-weblate"
|
||||
ynh_config_add --template="uwsgi.ini" --destination="/etc/uwsgi/apps-available/$app.ini"
|
||||
|
||||
chmod 640 "/etc/uwsgi/apps-available/$app.ini"
|
||||
chown $app:$app "/etc/uwsgi/apps-available/$app.ini"
|
||||
|
||||
touch "$install_dir/local_settings.py"
|
||||
ln -sf "$install_dir/local_settings.py" "$install_dir/venv/lib/$weblate_pypath/site-packages/weblate/local_settings.py"
|
||||
|
@ -142,7 +136,7 @@ chown -R "$app:www-data" "$install_dir/data"
|
|||
# SPECIFIC SETUP Filling up the database
|
||||
# https://docs.weblate.org/en/latest/admin/install.html#filling-up-the-database
|
||||
#==========================================
|
||||
ynh_script_progression --message="Filling up the database..." --weight=10
|
||||
ynh_script_progression "Filling up the database..."
|
||||
|
||||
(
|
||||
set +o nounset
|
||||
|
@ -152,46 +146,44 @@ ynh_script_progression --message="Filling up the database..." --weight=10
|
|||
cd "${install_dir}"
|
||||
|
||||
# the user needs to be weblate for postgresql
|
||||
ynh_exec_warn_less sudo --user=$app $install_dir/venv/bin/weblate migrate --noinput
|
||||
|
||||
ynh_exec_warn_less sudo --user=$app $install_dir/venv/bin/weblate createadmin --no-color \
|
||||
ynh_hide_warnings sudo --user=$app $install_dir/venv/bin/weblate migrate --noinput
|
||||
|
||||
ynh_hide_warnings sudo --user=$app $install_dir/venv/bin/weblate createadmin --no-color \
|
||||
--password "$password" \
|
||||
--username "$admin" \
|
||||
--email "$admin_mail"
|
||||
|
||||
# generate static files
|
||||
ynh_exec_warn_less sudo --user=$app $install_dir/venv/bin/weblate collectstatic --noinput
|
||||
ynh_hide_warnings sudo --user=$app $install_dir/venv/bin/weblate collectstatic --noinput
|
||||
|
||||
# https://docs.weblate.org/en/latest/admin/install/venv-debian.html
|
||||
ynh_exec_warn_less sudo --user=$app $install_dir/venv/bin/weblate compress
|
||||
ynh_hide_warnings sudo --user=$app $install_dir/venv/bin/weblate compress
|
||||
|
||||
# Check the configuration
|
||||
# This may fail in some cases with errors, etc., but the app works and the user can fix issues later.
|
||||
ynh_exec_warn_less sudo --user=$app $install_dir/venv/bin/weblate check --deploy || true
|
||||
ynh_hide_warnings sudo --user=$app $install_dir/venv/bin/weblate check --deploy || true
|
||||
)
|
||||
|
||||
#=================================================
|
||||
# SETUP SYSTEMD
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring a systemd service..." --weight=3
|
||||
ynh_script_progression "Configuring $app's systemd service..."
|
||||
|
||||
ynh_add_systemd_config --service=$app --template="weblate.service"
|
||||
ynh_add_systemd_config --service="$app-celery" --template="celery-weblate.service"
|
||||
ynh_config_add_systemd --template="weblate.service"
|
||||
ynh_config_add_systemd --service="$app-celery" --template="celery-weblate.service"
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# SETUP LOGROTATE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring log rotation..." --weight=1
|
||||
ynh_script_progression "Configuring log rotation..."
|
||||
|
||||
# Use logrotate to manage application logfile(s)
|
||||
ynh_use_logrotate --non-append
|
||||
ynh_config_add_logrotate
|
||||
|
||||
#=================================================
|
||||
# INTEGRATE SERVICE IN YUNOHOST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Integrating service in YunoHost..." --weight=3
|
||||
ynh_script_progression "Integrating service in YunoHost..."
|
||||
|
||||
yunohost service add $app --log="/var/log/$app/weblate.log"
|
||||
yunohost service add "$app-celery" --log="/var/log/$app/weblate-celery-w1.log"
|
||||
|
@ -199,13 +191,13 @@ yunohost service add "$app-celery" --log="/var/log/$app/weblate-celery-w1.log"
|
|||
#=================================================
|
||||
# START SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting a systemd service..." --weight=5
|
||||
ynh_script_progression "Starting $app's systemd service..."
|
||||
|
||||
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/weblate.log" --line_match="spawned uWSGI"
|
||||
ynh_systemd_action --service_name="$app-celery" --action="start" --log_path="/var/log/$app/weblate-celery-celery.log" --line_match="mingle: all alone"
|
||||
ynh_systemctl --service=$app --action="start" --log_path="/var/log/$app/weblate.log" --wait_until="spawned uWSGI"
|
||||
ynh_systemctl --service="$app-celery" --action="start" --log_path="/var/log/$app/weblate-celery-celery.log" --wait_until="mingle: all alone"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Installation of $app completed" --last
|
||||
ynh_script_progression "Installation of $app completed"
|
||||
|
|
|
@ -1,63 +1,33 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# STANDARD REMOVE
|
||||
#=================================================
|
||||
# REMOVE SERVICE INTEGRATION IN YUNOHOST
|
||||
# REMOVE SYSTEM CONFIGURATIONS
|
||||
#=================================================
|
||||
ynh_script_progression "Removing system configurations related to $app..."
|
||||
|
||||
# Remove the service from the list of services known by YunoHost (added from `yunohost service add`)
|
||||
if ynh_exec_warn_less yunohost service status $app >/dev/null
|
||||
then
|
||||
ynh_script_progression --message="Removing $app service integration..." --weight=1
|
||||
if ynh_hide_warnings yunohost service status $app >/dev/null; then
|
||||
yunohost service remove $app
|
||||
fi
|
||||
|
||||
# Remove the service from the list of services known by YunoHost (added from `yunohost service add`)
|
||||
if ynh_exec_warn_less yunohost service status "$app-celery" >/dev/null
|
||||
then
|
||||
ynh_script_progression --message="Removing $app-celery service integration..." --weight=1
|
||||
if ynh_hide_warnings yunohost service status "$app-celery" >/dev/null; then
|
||||
yunohost service remove "$app-celery"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# STOP AND REMOVE SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Stopping and removing the systemd service..." --weight=5
|
||||
ynh_config_remove_systemd
|
||||
|
||||
# Remove the dedicated systemd config
|
||||
ynh_remove_systemd_config --service=$app
|
||||
ynh_remove_systemd_config --service="$app-celery"
|
||||
ynh_config_remove_systemd "$app-celery"
|
||||
|
||||
#=================================================
|
||||
# REMOVE LOGROTATE CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing logrotate configuration..." --weight=1
|
||||
ynh_config_remove_logrotate
|
||||
|
||||
# Remove the app-specific logrotate config
|
||||
ynh_remove_logrotate
|
||||
|
||||
#=================================================
|
||||
# REMOVE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1
|
||||
|
||||
# Remove the dedicated NGINX config
|
||||
ynh_remove_nginx_config
|
||||
ynh_config_remove_nginx
|
||||
|
||||
#=================================================
|
||||
# REMOVE XXHASH
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing xxHash..."
|
||||
ynh_script_progression "Removing xxHash..."
|
||||
|
||||
tempdir="$(mktemp -d)"
|
||||
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
||||
|
@ -65,18 +35,16 @@ pushd $tempdir
|
|||
make
|
||||
make uninstall
|
||||
popd
|
||||
ynh_secure_remove --file="$tempdir"
|
||||
ynh_safe_rm "$tempdir"
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC REMOVE
|
||||
#=================================================
|
||||
# REMOVE VARIOUS FILES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing various files..."
|
||||
ynh_script_progression "Removing various files..."
|
||||
|
||||
ynh_secure_remove --file="/etc/uwsgi/apps-available/$app.ini"
|
||||
ynh_safe_rm "/etc/uwsgi/apps-available/$app.ini"
|
||||
|
||||
ynh_secure_remove --file="/var/run/$app-celery"
|
||||
ynh_safe_rm "/var/run/$app-celery"
|
||||
|
||||
ynh_redis_remove_db
|
||||
|
||||
|
@ -84,4 +52,4 @@ ynh_redis_remove_db
|
|||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Removal of $app completed" --last
|
||||
ynh_script_progression "Removal of $app completed"
|
||||
|
|
|
@ -1,21 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
|
||||
source ../settings/scripts/_common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# RESTORE THE APP MAIN DIR
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the app main directory..." --weight=4
|
||||
ynh_script_progression "Restoring the app main directory..."
|
||||
|
||||
ynh_restore_file --origin_path="$install_dir"
|
||||
ynh_restore "$install_dir"
|
||||
|
||||
touch "$install_dir/local_settings.py"
|
||||
ln -sf "$install_dir/local_settings.py" "$install_dir/venv/lib/$weblate_pypath/site-packages/weblate/local_settings.py"
|
||||
|
@ -29,21 +22,21 @@ chown -R $app:www-data "$install_dir/data"
|
|||
#=================================================
|
||||
# RESTORE THE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the NGINX web server configuration..."
|
||||
ynh_script_progression "Restoring the NGINX web server configuration..."
|
||||
|
||||
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
ynh_restore "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
#=================================================
|
||||
# RESTORE THE POSTGRESQL DATABASE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the PostgreSQL database..." --weight=5
|
||||
ynh_script_progression "Restoring the PostgreSQL database..."
|
||||
|
||||
ynh_psql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql
|
||||
ynh_psql_db_shell < ./db.sql
|
||||
|
||||
#=================================================
|
||||
# INSTALL XXHASH
|
||||
#=================================================
|
||||
ynh_script_progression --message="Installing xxHash..."
|
||||
ynh_script_progression "Installing xxHash..."
|
||||
|
||||
tempdir="$(mktemp -d)"
|
||||
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
||||
|
@ -51,37 +44,37 @@ pushd $tempdir
|
|||
make
|
||||
make install
|
||||
popd
|
||||
ynh_secure_remove --file="$tempdir"
|
||||
ynh_safe_rm "$tempdir"
|
||||
|
||||
#=================================================
|
||||
# RESTORE VARIOUS FILES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring various files..." --weight=1
|
||||
ynh_script_progression "Restoring various files..."
|
||||
|
||||
ynh_restore_file --origin_path="/etc/uwsgi/apps-available/$app.ini"
|
||||
ynh_restore "/etc/uwsgi/apps-available/$app.ini"
|
||||
|
||||
#=================================================
|
||||
# RESTORE SYSTEMD
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the systemd configuration..." --weight=4
|
||||
ynh_script_progression "Restoring $app's systemd service..."
|
||||
|
||||
ynh_restore_file --origin_path="/etc/systemd/system/$app.service"
|
||||
ynh_restore "/etc/systemd/system/$app.service"
|
||||
systemctl enable $app.service --quiet
|
||||
ynh_restore_file --origin_path="/etc/systemd/system/$app-celery.service"
|
||||
ynh_restore "/etc/systemd/system/$app-celery.service"
|
||||
systemctl enable "$app-celery" --quiet
|
||||
|
||||
#=================================================
|
||||
# RESTORE THE LOGROTATE CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the logrotate configuration..."
|
||||
ynh_script_progression "Restoring the logrotate configuration..."
|
||||
|
||||
mkdir -p "/var/log/$app"
|
||||
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
|
||||
ynh_restore "/etc/logrotate.d/$app"
|
||||
|
||||
#=================================================
|
||||
# INTEGRATE SERVICE IN YUNOHOST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Integrating service in YunoHost..." --weight=3
|
||||
ynh_script_progression "Integrating service in YunoHost..."
|
||||
|
||||
yunohost service add $app --log="/var/log/$app/weblate.log"
|
||||
yunohost service add "$app-celery" --log="/var/log/$app/weblate-celery-w1.log"
|
||||
|
@ -89,22 +82,20 @@ yunohost service add "$app-celery" --log="/var/log/$app/weblate-celery-w1.log"
|
|||
#=================================================
|
||||
# START SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting a systemd service..." --weight=5
|
||||
ynh_script_progression "Starting $app's systemd service..."
|
||||
|
||||
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/weblate.log" --line_match="spawned uWSGI"
|
||||
ynh_systemd_action --service_name="$app-celery" --action="start" --log_path="/var/log/$app/weblate-celery-w1.log" --line_match="mingle: all alone"
|
||||
ynh_systemctl --service=$app --action="start" --log_path="/var/log/$app/weblate.log" --wait_until="spawned uWSGI"
|
||||
ynh_systemctl --service="$app-celery" --action="start" --log_path="/var/log/$app/weblate-celery-w1.log" --wait_until="mingle: all alone"
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading NGINX web server..." --weight=1
|
||||
ynh_script_progression "Reloading NGINX web server..."
|
||||
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
ynh_systemctl --service=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Restoration completed for $app" --last
|
||||
ynh_script_progression "Restoration completed for $app"
|
||||
|
|
101
scripts/upgrade
101
scripts/upgrade
|
@ -1,18 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..." --weight=1
|
||||
ynh_script_progression "Loading installation settings..."
|
||||
|
||||
admin_mail=$(ynh_user_get_info --username="$admin" --key=mail)
|
||||
key=$(ynh_string_random --length=50)
|
||||
|
@ -20,51 +14,41 @@ key=$(ynh_string_random --length=50)
|
|||
# Remove trailing "/" from the path
|
||||
path_no_slash=${path%/}
|
||||
|
||||
#=================================================
|
||||
# CHECK VERSION
|
||||
#=================================================
|
||||
|
||||
upgrade_type=$(ynh_check_app_version_changed)
|
||||
|
||||
#=================================================
|
||||
# STANDARD UPGRADE STEPS
|
||||
#=================================================
|
||||
# STOP SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Stopping systemd services..." --weight=5
|
||||
ynh_script_progression "Stopping systemd services..."
|
||||
|
||||
ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/weblate.log" --line_match="goodbye to uWSGI"
|
||||
ynh_systemd_action --service_name="$app-celery" --action="stop" --log_path="systemd"
|
||||
ynh_systemctl --service=$app --action="stop" --log_path="/var/log/$app/weblate.log" --wait_until="goodbye to uWSGI"
|
||||
ynh_systemctl --service="$app-celery" --action="stop" --log_path="systemd"
|
||||
|
||||
#=================================================
|
||||
# ENSURE DOWNWARD COMPATIBILITY
|
||||
#=================================================
|
||||
ynh_script_progression --message="Ensuring downward compatibility..." --weight=1
|
||||
ynh_script_progression "Ensuring downward compatibility..."
|
||||
|
||||
# If used_forge, forge_username, forge_token don't exist, create them
|
||||
if [ -z "$used_forge" ]; then
|
||||
used_forge="GitHub"
|
||||
forge_username=$(ynh_app_setting_get --app=$app --key=github_account)
|
||||
forge_token=$(ynh_app_setting_get --app=$app --key=github_token)
|
||||
ynh_app_setting_set --app=$app --key=used_forge --value=$used_forge
|
||||
ynh_app_setting_set --app=$app --key=forge_username --value=$forge_username
|
||||
ynh_app_setting_set --app=$app --key=forge_token --value=$forge_token
|
||||
forge_username=$(ynh_app_setting_get --key=github_account)
|
||||
forge_token=$(ynh_app_setting_get --key=github_token)
|
||||
ynh_app_setting_set --key=used_forge --value=$used_forge
|
||||
ynh_app_setting_set --key=forge_username --value=$forge_username
|
||||
ynh_app_setting_set --key=forge_token --value=$forge_token
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=3
|
||||
ynh_script_progression "Upgrading NGINX web server configuration..."
|
||||
|
||||
# Create a dedicated NGINX config
|
||||
ynh_add_nginx_config
|
||||
ynh_config_add_nginx
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC UPGRADE
|
||||
#=================================================
|
||||
# INSTALL XXHASH
|
||||
#=================================================
|
||||
ynh_script_progression --message="Installing xxHash..."
|
||||
ynh_script_progression "Installing xxHash..."
|
||||
|
||||
tempdir="$(mktemp -d)"
|
||||
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
||||
|
@ -72,17 +56,17 @@ pushd $tempdir
|
|||
make
|
||||
make install
|
||||
popd
|
||||
ynh_secure_remove --file="$tempdir"
|
||||
ynh_safe_rm "$tempdir"
|
||||
|
||||
#=================================================
|
||||
# CONFIGURE HUB
|
||||
#=================================================
|
||||
|
||||
if [ $used_forge = "GitHub" ] ; then
|
||||
ynh_script_progression --message="Configure hub..." --weight=1
|
||||
|
||||
ynh_script_progression "Configure hub..."
|
||||
|
||||
#mkdir "$install_dir/.config/"
|
||||
ynh_add_config --template="../conf/hub_config" --destination="$install_dir/.config/hub"
|
||||
ynh_config_add --template="hub_config" --destination="$install_dir/.config/hub"
|
||||
|
||||
cat <<EOF > "$install_dir/.bashrc"
|
||||
eval "$(hub alias -s /bin/bash)"
|
||||
|
@ -92,19 +76,20 @@ fi
|
|||
#=================================================
|
||||
# UPDATE A CONFIG FILE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Updating a configuration file..." --weight=2
|
||||
ynh_script_progression "Updating configuration..."
|
||||
|
||||
ynh_add_config --template="../conf/uwsgi.ini" --destination="/etc/uwsgi/apps-available/$app.ini"
|
||||
ynh_config_add --template="uwsgi.ini" --destination="/etc/uwsgi/apps-available/$app.ini"
|
||||
chmod 600 "/etc/uwsgi/apps-available/$app.ini"
|
||||
|
||||
ynh_add_config --template="../conf/celery-weblate" --destination="$install_dir/celery-weblate"
|
||||
ynh_config_add --template="celery-weblate" --destination="$install_dir/celery-weblate"
|
||||
|
||||
#=================================================
|
||||
# SETUP SYSTEMD
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring a systemd service..." --weight=3
|
||||
ynh_script_progression "Configuring $app's systemd service..."
|
||||
|
||||
ynh_add_systemd_config --service=$app --template="weblate.service"
|
||||
ynh_add_systemd_config --service="$app-celery" --template="celery-weblate.service"
|
||||
ynh_config_add_systemd --template="weblate.service"
|
||||
ynh_config_add_systemd --service="$app-celery" --template="celery-weblate.service"
|
||||
|
||||
#=================================================
|
||||
# UPGRADE WEBLATE
|
||||
|
@ -116,12 +101,11 @@ upgrade() {
|
|||
#=================================================
|
||||
# PIP INSTALLATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Install weblate using PIP..." --weight=15
|
||||
ynh_script_progression "Install weblate using PIP..."
|
||||
|
||||
ynh_secure_remove --file="${install_dir}/venv"
|
||||
ynh_safe_rm "${install_dir}/venv"
|
||||
virtualenv --python=python3 "${install_dir}/venv"
|
||||
chown -R $app: "$install_dir"
|
||||
|
||||
#run source in a 'sub shell'
|
||||
(
|
||||
set +o nounset
|
||||
|
@ -144,19 +128,20 @@ upgrade() {
|
|||
#=================================================
|
||||
# MODIFY A CONFIG FILE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Create weblate configuration file..." --weight=2
|
||||
ynh_script_progression "Create weblate configuration file..."
|
||||
|
||||
# save old settings file
|
||||
settings="$install_dir/venv/lib/$weblate_pypath/site-packages/weblate/settings.py"
|
||||
path="${path%/}"
|
||||
|
||||
set_forge_variables
|
||||
|
||||
ynh_add_config --template="../conf/settings.py" --destination="$settings"
|
||||
ynh_config_add --template="settings.py" --destination="$settings"
|
||||
|
||||
ynh_app_setting_set --app=$app --key=redis_db --value="$redis_db"
|
||||
ynh_app_setting_set --key=redis_db --value="$redis_db"
|
||||
|
||||
# Recalculate and store the config file checksum into the app settings
|
||||
ynh_store_file_checksum --file="$settings"
|
||||
ynh_store_file_checksum "$settings"
|
||||
|
||||
touch "$install_dir/local_settings.py"
|
||||
ln -sf "$install_dir/local_settings.py" "$install_dir/venv/lib/$weblate_pypath/site-packages/weblate/local_settings.py"
|
||||
|
@ -164,9 +149,9 @@ upgrade() {
|
|||
#=================================================
|
||||
# MIGRATE WEBLATE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Run migration scripts..." --weight=10
|
||||
ynh_script_progression "Run migration scripts..."
|
||||
|
||||
ynh_systemd_action --service_name="$app-celery" --action="start"
|
||||
ynh_systemctl --service="$app-celery" --action="start"
|
||||
|
||||
(
|
||||
set +o nounset
|
||||
|
@ -189,7 +174,7 @@ upgrade() {
|
|||
fi
|
||||
)
|
||||
|
||||
ynh_systemd_action --service_name="$app-celery" --action="stop"
|
||||
ynh_systemctl --service="$app-celery" --action="stop"
|
||||
}
|
||||
|
||||
file_version="${install_dir}/venv/lib/$weblate_pypath/site-packages/weblate/__init__.py"
|
||||
|
@ -205,7 +190,7 @@ else
|
|||
current_version=3
|
||||
fi
|
||||
|
||||
ynh_psql_execute_as_root --sql="CREATE EXTENSION IF NOT EXISTS pg_trgm;" --database=$db_name
|
||||
ynh_psql_db_shell <<< "CREATE EXTENSION IF NOT EXISTS pg_trgm;"
|
||||
|
||||
if [ "$current_version" -lt "5" ]
|
||||
then
|
||||
|
@ -223,20 +208,18 @@ chown -R "$app:www-data" "$install_dir/data"
|
|||
chmod 750 "$install_dir"
|
||||
chmod -R o-rwx "$install_dir"
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# SETUP LOGROTATE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading logrotate configuration..." --weight=1
|
||||
ynh_script_progression "Upgrading logrotate configuration..."
|
||||
|
||||
# Use logrotate to manage app-specific logfile(s)
|
||||
ynh_use_logrotate --non-append
|
||||
ynh_config_add_logrotate
|
||||
|
||||
#=================================================
|
||||
# INTEGRATE SERVICE IN YUNOHOST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Integrating service in YunoHost..." --weight=2
|
||||
ynh_script_progression "Integrating service in YunoHost..."
|
||||
|
||||
yunohost service add $app --log="/var/log/$app/weblate.log"
|
||||
yunohost service add "$app-celery" --log="/var/log/$app/weblate-celery-w1.log"
|
||||
|
@ -244,13 +227,13 @@ yunohost service add "$app-celery" --log="/var/log/$app/weblate-celery-w1.log"
|
|||
#=================================================
|
||||
# START SYSTEMD SERVICES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting systemd services..." --weight=5
|
||||
ynh_script_progression "Starting systemd services..."
|
||||
|
||||
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/weblate.log" --line_match="spawned uWSGI"
|
||||
ynh_systemd_action --service_name="$app-celery" --action="start" --log_path="/var/log/$app/weblate-celery-celery.log" --line_match="mingle: all alone"
|
||||
ynh_systemctl --service=$app --action="start" --log_path="/var/log/$app/weblate.log" --wait_until="spawned uWSGI"
|
||||
ynh_systemctl --service="$app-celery" --action="start" --log_path="/var/log/$app/weblate-celery-celery.log" --wait_until="mingle: all alone"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Upgrade of $app completed" --last
|
||||
ynh_script_progression "Upgrade of $app completed"
|
||||
|
|
|
@ -27,4 +27,5 @@ test_format = 1.0
|
|||
|
||||
test_upgrade_from.52db1ab.name = "5.3.1-ynh2"
|
||||
test_upgrade_from.e075efc.name = "5.4.1"
|
||||
test_upgrade_from.40ff28f.name = "5.4.2"
|
||||
test_upgrade_from.40ff28f.name = "5.4.2"
|
||||
test_upgrade_from.def94c9.name = "5.4.3"
|
Loading…
Add table
Reference in a new issue