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
|
||||||
.mypy_cache/
|
.mypy_cache/
|
||||||
|
*~
|
||||||
|
*.sw[op]
|
||||||
|
.DS_Store
|
||||||
|
|
|
@ -5,4 +5,7 @@
|
||||||
- [Irakurri README euskaraz](README_eu.md)
|
- [Irakurri README euskaraz](README_eu.md)
|
||||||
- [Lire le README en français](README_fr.md)
|
- [Lire le README en français](README_fr.md)
|
||||||
- [Le o README en galego](README_gl.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)
|
- [阅读中文(简体)的 README](README_zh_Hans.md)
|
||||||
|
|
|
@ -5,7 +5,7 @@ It shall NOT be edited by hand.
|
||||||
|
|
||||||
# Weblate for YunoHost
|
# 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)
|
[](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.
|
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/>
|
**Demo:** <https://hosted.weblate.org/>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ No se debe editar a mano.
|
||||||
|
|
||||||
# Weblate para Yunohost
|
# 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)
|
[](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.
|
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/>
|
**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
|
## 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Í:
|
Para probar la rama `testing`, sigue asÍ:
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ EZ editatu eskuz.
|
||||||
|
|
||||||
# Weblate YunoHost-erako
|
# 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)
|
[](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.
|
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/>
|
**Demoa:** <https://hosted.weblate.org/>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ Il NE doit PAS être modifié à la main.
|
||||||
|
|
||||||
# Weblate pour YunoHost
|
# 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)
|
[](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.
|
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/>
|
**Démo :** <https://hosted.weblate.org/>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ NON debe editarse manualmente.
|
||||||
|
|
||||||
# Weblate para YunoHost
|
# 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)
|
[](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.
|
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/>
|
**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
|
# YunoHost 上的 Weblate
|
||||||
|
|
||||||
[](https://dash.yunohost.org/appci/app/weblate)  
|
[](https://ci-apps.yunohost.org/ci/apps/weblate/)  
|
||||||
|
|
||||||
[](https://install-app.yunohost.org/?app=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.
|
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/>
|
**演示:** <https://hosted.weblate.org/>
|
||||||
|
|
||||||
|
|
|
@ -15,9 +15,7 @@
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
# Copyright © Michal Čihař <michal@weblate.org>
|
# mypy: disable-error-code="var-annotated"
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
|
@ -138,6 +136,7 @@ LANGUAGES = (
|
||||||
("sr", "Српски"),
|
("sr", "Српски"),
|
||||||
("sr-latn", "Srpski"),
|
("sr-latn", "Srpski"),
|
||||||
("sv", "Svenska"),
|
("sv", "Svenska"),
|
||||||
|
("ta", "தமிழ்"),
|
||||||
("th", "ไทย"),
|
("th", "ไทย"),
|
||||||
("tr", "Türkçe"),
|
("tr", "Türkçe"),
|
||||||
("uk", "Українська"),
|
("uk", "Українська"),
|
||||||
|
@ -158,7 +157,7 @@ USE_TZ = True
|
||||||
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
|
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
|
||||||
|
|
||||||
# URL prefix to use, please see documentation for more details
|
# 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__"
|
URL_PREFIX = "__PATH_NO_SLASH__"
|
||||||
|
|
||||||
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
||||||
|
@ -222,9 +221,6 @@ GITHUB_CREDENTIALS = {
|
||||||
"token": "__GITHUB_TOKEN__",
|
"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.
|
# Azure DevOps username and token for sending pull requests.
|
||||||
# Please see the documentation for more details.
|
# Please see the documentation for more details.
|
||||||
|
@ -244,7 +240,7 @@ GITLAB_CREDENTIALS = {
|
||||||
BITBUCKETSERVER_CREDENTIALS = {}
|
BITBUCKETSERVER_CREDENTIALS = {}
|
||||||
|
|
||||||
# Authentication configuration
|
# Authentication configuration
|
||||||
AUTHENTICATION_BACKENDS = (
|
AUTHENTICATION_BACKENDS: tuple[str, ...] = (
|
||||||
"social_core.backends.email.EmailAuth",
|
"social_core.backends.email.EmailAuth",
|
||||||
# "social_core.backends.google.GoogleOAuth2",
|
# "social_core.backends.google.GoogleOAuth2",
|
||||||
# "social_core.backends.github.GithubOAuth2",
|
# "social_core.backends.github.GithubOAuth2",
|
||||||
|
@ -431,7 +427,7 @@ INSTALLED_APPS = [
|
||||||
"django.contrib.sessions",
|
"django.contrib.sessions",
|
||||||
"django.contrib.messages",
|
"django.contrib.messages",
|
||||||
"django.contrib.staticfiles",
|
"django.contrib.staticfiles",
|
||||||
"django.contrib.admin.apps.SimpleAdminConfig",
|
"django.contrib.admin",
|
||||||
"django.contrib.admindocs",
|
"django.contrib.admindocs",
|
||||||
"django.contrib.sitemaps",
|
"django.contrib.sitemaps",
|
||||||
"django.contrib.humanize",
|
"django.contrib.humanize",
|
||||||
|
@ -464,7 +460,7 @@ if platform.system() != "Windows":
|
||||||
# Since Python 3.7 connect failures are silently discarded, so
|
# Since Python 3.7 connect failures are silently discarded, so
|
||||||
# the exception is almost never raised here. Instead we look whether the socket
|
# the exception is almost never raised here. Instead we look whether the socket
|
||||||
# to syslog is open after init.
|
# to syslog is open after init.
|
||||||
HAVE_SYSLOG = handler.socket.fileno() != -1
|
HAVE_SYSLOG = handler.socket.fileno() != -1 # type: ignore[attr-defined]
|
||||||
handler.close()
|
handler.close()
|
||||||
except OSError:
|
except OSError:
|
||||||
HAVE_SYSLOG = False
|
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.
|
# the site admins on every HTTP 500 error when DEBUG=False.
|
||||||
# See http://docs.djangoproject.com/en/stable/topics/logging for
|
# See http://docs.djangoproject.com/en/stable/topics/logging for
|
||||||
# more details on how to customize your logging configuration.
|
# more details on how to customize your logging configuration.
|
||||||
LOGGING = {
|
LOGGING: dict = {
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"disable_existing_loggers": True,
|
"disable_existing_loggers": True,
|
||||||
"filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}},
|
"filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}},
|
||||||
|
@ -615,6 +611,10 @@ LOGOUT_URL = f"{URL_PREFIX}/accounts/logout/"
|
||||||
|
|
||||||
# Default location for login
|
# Default location for login
|
||||||
LOGIN_REDIRECT_URL = f"{URL_PREFIX}/"
|
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_USER_NAME = "anonymous"
|
ANONYMOUS_USER_NAME = "anonymous"
|
||||||
|
@ -657,6 +657,7 @@ CRISPY_TEMPLATE_PACK = "bootstrap3"
|
||||||
# "weblate.checks.chars.EndColonCheck",
|
# "weblate.checks.chars.EndColonCheck",
|
||||||
# "weblate.checks.chars.EndQuestionCheck",
|
# "weblate.checks.chars.EndQuestionCheck",
|
||||||
# "weblate.checks.chars.EndExclamationCheck",
|
# "weblate.checks.chars.EndExclamationCheck",
|
||||||
|
# "weblate.checks.chars.EndInterrobangCheck",
|
||||||
# "weblate.checks.chars.EndEllipsisCheck",
|
# "weblate.checks.chars.EndEllipsisCheck",
|
||||||
# "weblate.checks.chars.EndSemicolonCheck",
|
# "weblate.checks.chars.EndSemicolonCheck",
|
||||||
# "weblate.checks.chars.MaxLengthCheck",
|
# "weblate.checks.chars.MaxLengthCheck",
|
||||||
|
@ -824,6 +825,7 @@ REST_FRAMEWORK = {
|
||||||
"DEFAULT_PAGINATION_CLASS": "weblate.api.pagination.StandardPagination",
|
"DEFAULT_PAGINATION_CLASS": "weblate.api.pagination.StandardPagination",
|
||||||
"PAGE_SIZE": 50,
|
"PAGE_SIZE": 50,
|
||||||
"VIEW_DESCRIPTION_FUNCTION": "weblate.api.views.get_view_description",
|
"VIEW_DESCRIPTION_FUNCTION": "weblate.api.views.get_view_description",
|
||||||
|
"EXCEPTION_HANDLER": "weblate.api.views.weblate_exception_handler",
|
||||||
"UNAUTHENTICATED_USER": "weblate.auth.models.get_anonymous",
|
"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}/healthz/$", # Allowing public access to health check
|
||||||
# rf"{URL_PREFIX}/api/(.*)$", # Allowing access to API
|
# rf"{URL_PREFIX}/api/(.*)$", # Allowing access to API
|
||||||
# rf"{URL_PREFIX}/js/i18n/$", # JavaScript localization
|
# 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}/contact/$", # Optional for contact form
|
||||||
# rf"{URL_PREFIX}/legal/(.*)$", # Optional for legal app
|
# rf"{URL_PREFIX}/legal/(.*)$", # Optional for legal app
|
||||||
# rf"{URL_PREFIX}/avatar/(.*)$", # Optional for avatars
|
# rf"{URL_PREFIX}/avatar/(.*)$", # Optional for avatars
|
||||||
|
@ -869,7 +872,9 @@ SILENCED_SYSTEM_CHECKS = [
|
||||||
# Celery worker configuration for production
|
# Celery worker configuration for production
|
||||||
CELERY_TASK_ALWAYS_EAGER = False
|
CELERY_TASK_ALWAYS_EAGER = False
|
||||||
CELERY_BROKER_URL = "redis://127.0.0.1:6379/__REDIS_DB__"
|
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 settings, it is not recommended to change these
|
||||||
CELERY_WORKER_MAX_MEMORY_PER_CHILD = 200000
|
CELERY_WORKER_MAX_MEMORY_PER_CHILD = 200000
|
||||||
|
@ -887,7 +892,7 @@ CELERY_TASK_ROUTES = {
|
||||||
|
|
||||||
# CORS allowed origins
|
# CORS allowed origins
|
||||||
CORS_ALLOWED_ORIGINS = []
|
CORS_ALLOWED_ORIGINS = []
|
||||||
CORS_URLS_REGEX = r"^/api/.*$"
|
CORS_URLS_REGEX = rf"^{URL_PREFIX}/api/.*$"
|
||||||
|
|
||||||
# Enable plain database backups
|
# Enable plain database backups
|
||||||
DATABASE_BACKUP = "plain"
|
DATABASE_BACKUP = "plain"
|
||||||
|
|
|
@ -7,7 +7,7 @@ name = "Weblate"
|
||||||
description.en = "Translation platform using Git and Python"
|
description.en = "Translation platform using Git and Python"
|
||||||
description.fr = "Plateforme de traduction utilisant Git et Python"
|
description.fr = "Plateforme de traduction utilisant Git et Python"
|
||||||
|
|
||||||
version = "5.4.3~ynh1"
|
version = "5.5.3~ynh1"
|
||||||
|
|
||||||
maintainers = ["Thovi98"]
|
maintainers = ["Thovi98"]
|
||||||
|
|
||||||
|
@ -22,7 +22,8 @@ cpe = "cpe:2.3:a:weblate:weblate"
|
||||||
fund = "https://weblate.org/fr/donate/"
|
fund = "https://weblate.org/fr/donate/"
|
||||||
|
|
||||||
[integration]
|
[integration]
|
||||||
yunohost = ">= 11.2.12"
|
yunohost = ">= 12.0.0"
|
||||||
|
helpers_version = "2.1"
|
||||||
architectures = "all"
|
architectures = "all"
|
||||||
multi_instance = true
|
multi_instance = true
|
||||||
ldap = false
|
ldap = false
|
||||||
|
@ -86,6 +87,7 @@ ram.runtime = "3G"
|
||||||
[resources.system_user]
|
[resources.system_user]
|
||||||
|
|
||||||
[resources.install_dir]
|
[resources.install_dir]
|
||||||
|
group = "www-data:r-x"
|
||||||
|
|
||||||
[resources.permissions]
|
[resources.permissions]
|
||||||
main.url = "/"
|
main.url = "/"
|
||||||
|
@ -94,11 +96,29 @@ ram.runtime = "3G"
|
||||||
main.default = 8080
|
main.default = 8080
|
||||||
|
|
||||||
[resources.apt]
|
[resources.apt]
|
||||||
# §1 = weblate dependecies, §2 = borgbackup dependencies
|
packages = [
|
||||||
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",
|
# Weblate dependencies
|
||||||
|
"build-essential", "git",
|
||||||
|
"gir1.2-pango-1.0", "libacl1-dev", "libcairo-dev", "libffi-dev", "libfreetype6-dev",
|
||||||
"libacl1-dev", "libacl1", "libssl-dev", "liblz4-dev", "libzstd-dev", "libxxhash-dev", "build-essential", "pkg-config", "python3-pkgconfig"]
|
"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]
|
[resources.database]
|
||||||
type = "postgresql"
|
type = "postgresql"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# COMMON VARIABLES
|
# COMMON VARIABLES AND CUSTOM HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
debian_maj_version=$(sed 's/\..*//' /etc/debian_version)
|
debian_maj_version=$(sed 's/\..*//' /etc/debian_version)
|
||||||
|
@ -16,10 +16,6 @@ elif [ "$debian_maj_version" -eq 12 ] ; then
|
||||||
weblate_pypath="python3.11"
|
weblate_pypath="python3.11"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# PERSONAL HELPERS
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
set_forge_variables() {
|
set_forge_variables() {
|
||||||
if [ $used_forge = "GitHub" ] ; then
|
if [ $used_forge = "GitHub" ] ; then
|
||||||
github_username="$forge_username"
|
github_username="$forge_username"
|
||||||
|
@ -33,11 +29,3 @@ set_forge_variables() {
|
||||||
gitlab_token="$forge_token"
|
gitlab_token="$forge_token"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# EXPERIMENTAL HELPERS
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# FUTURE OFFICIAL HELPERS
|
|
||||||
#=================================================
|
|
||||||
|
|
|
@ -1,62 +1,38 @@
|
||||||
#!/bin/bash
|
#!/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 ../settings/scripts/_common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
#=================================================
|
ynh_print_info "Declaring files to be backed up..."
|
||||||
# DECLARE DATA AND CONF FILES TO BACKUP
|
|
||||||
#=================================================
|
|
||||||
ynh_print_info --message="Declaring files to be backed up..."
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP THE APP MAIN DIR
|
# 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"
|
||||||
|
|
||||||
#=================================================
|
ynh_backup "/etc/logrotate.d/$app"
|
||||||
# SPECIFIC BACKUP
|
|
||||||
#=================================================
|
|
||||||
# BACKUP LOGROTATE
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
ynh_backup --src_path="/etc/logrotate.d/$app"
|
ynh_backup "/etc/systemd/system/$app.service"
|
||||||
|
ynh_backup "/etc/systemd/system/$app-celery.service"
|
||||||
|
|
||||||
#=================================================
|
ynh_backup "/etc/uwsgi/apps-available/$app.ini"
|
||||||
# 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"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# BACKUP THE POSTGRESQL DATABASE
|
# 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
|
# 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
|
#!/bin/bash
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# GENERIC STARTING
|
|
||||||
#=================================================
|
|
||||||
# IMPORT GENERIC HELPERS
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# STANDARD MODIFICATIONS
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STOP SYSTEMD SERVICE
|
# 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_systemctl --service=$app --action="stop" --log_path="/var/log/$app/weblate.log" --wait_until="goodbye to uWSGI"
|
||||||
ynh_systemd_action --service_name="$app-celery" --action="stop" --log_path="systemd"
|
ynh_systemctl --service="$app-celery" --action="stop" --log_path="systemd"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# MODIFY URL IN NGINX CONF
|
# 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
|
# 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"
|
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
|
# Change the path in the nginx config file
|
||||||
if [ $change_path -eq 1 ]
|
if [ $change_path -eq 1 ]
|
||||||
then
|
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
|
fi
|
||||||
|
|
||||||
# Change the domain for nginx
|
# Change the domain for nginx
|
||||||
if [ $change_domain -eq 1 ]
|
if [ $change_domain -eq 1 ]
|
||||||
then
|
then
|
||||||
# replace SERVER_EMAIL
|
# 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
|
# 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
|
# 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
|
fi
|
||||||
|
|
||||||
ynh_store_file_checksum --file="$settings"
|
ynh_store_file_checksum "$settings"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# MODIFY UWSGI
|
# MODIFY UWSGI
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
finaluwsgiini="/etc/uwsgi/apps-available/$app.ini"
|
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
|
# Change the path in the nginx config file
|
||||||
if [ $change_path -eq 1 ]
|
if [ $change_path -eq 1 ]
|
||||||
then
|
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
|
fi
|
||||||
|
|
||||||
ynh_store_file_checksum --file="$finaluwsgiini"
|
ynh_store_file_checksum "$finaluwsgiini"
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# GENERIC FINALISATION
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# START SYSTEMD SERVICE
|
# 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_systemctl --service=$app --action="start" --log_path="/var/log/$app/weblate.log" --wait_until="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-celery" --action="start" --log_path="/var/log/$app/weblate-celery-celery.log" --wait_until="mingle: all alone"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# END OF SCRIPT
|
# 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
|
#!/bin/bash
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# GENERIC START
|
|
||||||
#=================================================
|
|
||||||
# IMPORT GENERIC HELPERS
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
@ -19,11 +13,11 @@ key=$(ynh_string_random --length=50)
|
||||||
#=================================================
|
#=================================================
|
||||||
# STORE SETTINGS FROM MANIFEST
|
# 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 --key=used_forge --value=$used_forge
|
||||||
ynh_app_setting_set --app=$app --key=forge_username --value=$forge_username
|
ynh_app_setting_set --key=forge_username --value=$forge_username
|
||||||
ynh_app_setting_set --app=$app --key=forge_token --value=$forge_token
|
ynh_app_setting_set --key=forge_token --value=$forge_token
|
||||||
|
|
||||||
# Remove trailing "/" from the path
|
# Remove trailing "/" from the path
|
||||||
path_no_slash=${path%/}
|
path_no_slash=${path%/}
|
||||||
|
@ -31,14 +25,14 @@ path_no_slash=${path%/}
|
||||||
#=================================================
|
#=================================================
|
||||||
# CREATE A POSTGRESQL DATABASE
|
# 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
|
# 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/avatar-cache"
|
||||||
mkdir -p "$install_dir/data"
|
mkdir -p "$install_dir/data"
|
||||||
|
@ -50,17 +44,14 @@ chown -R $app:www-data "$install_dir"
|
||||||
#=================================================
|
#=================================================
|
||||||
# NGINX CONFIGURATION
|
# 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_config_add_nginx
|
||||||
ynh_add_nginx_config
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# SPECIFIC SETUP
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INSTALL XXHASH
|
# INSTALL XXHASH
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Installing xxHash..."
|
ynh_script_progression "Installing xxHash..."
|
||||||
|
|
||||||
tempdir="$(mktemp -d)"
|
tempdir="$(mktemp -d)"
|
||||||
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
||||||
|
@ -68,17 +59,17 @@ pushd $tempdir
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
popd
|
popd
|
||||||
ynh_secure_remove --file="$tempdir"
|
ynh_safe_rm "$tempdir"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CONFIGURE HUB
|
# CONFIGURE HUB
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
if [ $used_forge = "GitHub" ] ; then
|
if [ $used_forge = "GitHub" ] ; then
|
||||||
ynh_script_progression --message="Configure hub..." --weight=1
|
ynh_script_progression "Configure hub..."
|
||||||
|
|
||||||
mkdir "$install_dir/.config/"
|
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"
|
cat <<EOF > "$install_dir/.bashrc"
|
||||||
eval "$(hub alias -s /bin/bash)"
|
eval "$(hub alias -s /bin/bash)"
|
||||||
|
@ -88,7 +79,7 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
# PIP INSTALLATION
|
# 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"
|
virtualenv --python=python3 "${install_dir}/venv"
|
||||||
chown -R $app: "$install_dir"
|
chown -R $app: "$install_dir"
|
||||||
|
@ -116,17 +107,20 @@ chown -R $app: "$install_dir"
|
||||||
#=================================================
|
#=================================================
|
||||||
# ADD A CONFIGURATION
|
# 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)
|
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"
|
settings="$install_dir/venv/lib/$weblate_pypath/site-packages/weblate/settings.py"
|
||||||
|
|
||||||
set_forge_variables
|
set_forge_variables
|
||||||
|
|
||||||
ynh_add_config --template="../conf/settings.py" --destination="$settings"
|
ynh_config_add --template="settings.py" --destination="$settings"
|
||||||
ynh_add_config --template="../conf/celery-weblate" --destination="$install_dir/celery-weblate"
|
ynh_config_add --template="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="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"
|
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"
|
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
|
# SPECIFIC SETUP Filling up the database
|
||||||
# https://docs.weblate.org/en/latest/admin/install.html#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
|
set +o nounset
|
||||||
|
@ -152,46 +146,44 @@ ynh_script_progression --message="Filling up the database..." --weight=10
|
||||||
cd "${install_dir}"
|
cd "${install_dir}"
|
||||||
|
|
||||||
# the user needs to be weblate for postgresql
|
# the user needs to be weblate for postgresql
|
||||||
ynh_exec_warn_less sudo --user=$app $install_dir/venv/bin/weblate migrate --noinput
|
ynh_hide_warnings 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 createadmin --no-color \
|
||||||
--password "$password" \
|
--password "$password" \
|
||||||
--username "$admin" \
|
--username "$admin" \
|
||||||
--email "$admin_mail"
|
--email "$admin_mail"
|
||||||
|
|
||||||
# generate static files
|
# 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
|
# 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
|
# Check the configuration
|
||||||
# This may fail in some cases with errors, etc., but the app works and the user can fix issues later.
|
# 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
|
# 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_config_add_systemd --template="weblate.service"
|
||||||
ynh_add_systemd_config --service="$app-celery" --template="celery-weblate.service"
|
ynh_config_add_systemd --service="$app-celery" --template="celery-weblate.service"
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# GENERIC FINALIZATION
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP LOGROTATE
|
# SETUP LOGROTATE
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Configuring log rotation..." --weight=1
|
ynh_script_progression "Configuring log rotation..."
|
||||||
|
|
||||||
# Use logrotate to manage application logfile(s)
|
# Use logrotate to manage application logfile(s)
|
||||||
ynh_use_logrotate --non-append
|
ynh_config_add_logrotate
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INTEGRATE SERVICE IN YUNOHOST
|
# 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 --log="/var/log/$app/weblate.log"
|
||||||
yunohost service add "$app-celery" --log="/var/log/$app/weblate-celery-w1.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
|
# 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_systemctl --service=$app --action="start" --log_path="/var/log/$app/weblate.log" --wait_until="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-celery" --action="start" --log_path="/var/log/$app/weblate-celery-celery.log" --wait_until="mingle: all alone"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# END OF SCRIPT
|
# 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
|
#!/bin/bash
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# GENERIC START
|
|
||||||
#=================================================
|
|
||||||
# IMPORT GENERIC HELPERS
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD REMOVE
|
# REMOVE SYSTEM CONFIGURATIONS
|
||||||
#=================================================
|
|
||||||
# REMOVE SERVICE INTEGRATION IN YUNOHOST
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
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_hide_warnings yunohost service status $app >/dev/null; then
|
||||||
if ynh_exec_warn_less yunohost service status $app >/dev/null
|
|
||||||
then
|
|
||||||
ynh_script_progression --message="Removing $app service integration..." --weight=1
|
|
||||||
yunohost service remove $app
|
yunohost service remove $app
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Remove the service from the list of services known by YunoHost (added from `yunohost service add`)
|
if ynh_hide_warnings yunohost service status "$app-celery" >/dev/null; then
|
||||||
if ynh_exec_warn_less yunohost service status "$app-celery" >/dev/null
|
|
||||||
then
|
|
||||||
ynh_script_progression --message="Removing $app-celery service integration..." --weight=1
|
|
||||||
yunohost service remove "$app-celery"
|
yunohost service remove "$app-celery"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
ynh_config_remove_systemd
|
||||||
# STOP AND REMOVE SERVICE
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Stopping and removing the systemd service..." --weight=5
|
|
||||||
|
|
||||||
# Remove the dedicated systemd config
|
ynh_config_remove_systemd "$app-celery"
|
||||||
ynh_remove_systemd_config --service=$app
|
|
||||||
ynh_remove_systemd_config --service="$app-celery"
|
|
||||||
|
|
||||||
#=================================================
|
ynh_config_remove_logrotate
|
||||||
# REMOVE LOGROTATE CONFIGURATION
|
|
||||||
#=================================================
|
|
||||||
ynh_script_progression --message="Removing logrotate configuration..." --weight=1
|
|
||||||
|
|
||||||
# Remove the app-specific logrotate config
|
ynh_config_remove_nginx
|
||||||
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
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE XXHASH
|
# REMOVE XXHASH
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Removing xxHash..."
|
ynh_script_progression "Removing xxHash..."
|
||||||
|
|
||||||
tempdir="$(mktemp -d)"
|
tempdir="$(mktemp -d)"
|
||||||
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
||||||
|
@ -65,18 +35,16 @@ pushd $tempdir
|
||||||
make
|
make
|
||||||
make uninstall
|
make uninstall
|
||||||
popd
|
popd
|
||||||
ynh_secure_remove --file="$tempdir"
|
ynh_safe_rm "$tempdir"
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# SPECIFIC REMOVE
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# REMOVE VARIOUS FILES
|
# 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
|
ynh_redis_remove_db
|
||||||
|
|
||||||
|
@ -84,4 +52,4 @@ ynh_redis_remove_db
|
||||||
# END OF SCRIPT
|
# 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
|
#!/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 ../settings/scripts/_common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE THE APP MAIN DIR
|
# 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"
|
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"
|
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
|
# 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
|
# 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
|
# INSTALL XXHASH
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Installing xxHash..."
|
ynh_script_progression "Installing xxHash..."
|
||||||
|
|
||||||
tempdir="$(mktemp -d)"
|
tempdir="$(mktemp -d)"
|
||||||
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
||||||
|
@ -51,37 +44,37 @@ pushd $tempdir
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
popd
|
popd
|
||||||
ynh_secure_remove --file="$tempdir"
|
ynh_safe_rm "$tempdir"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE VARIOUS FILES
|
# 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
|
# 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
|
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
|
systemctl enable "$app-celery" --quiet
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTORE THE LOGROTATE CONFIGURATION
|
# RESTORE THE LOGROTATE CONFIGURATION
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Restoring the logrotate configuration..."
|
ynh_script_progression "Restoring the logrotate configuration..."
|
||||||
|
|
||||||
mkdir -p "/var/log/$app"
|
mkdir -p "/var/log/$app"
|
||||||
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
|
ynh_restore "/etc/logrotate.d/$app"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INTEGRATE SERVICE IN YUNOHOST
|
# 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 --log="/var/log/$app/weblate.log"
|
||||||
yunohost service add "$app-celery" --log="/var/log/$app/weblate-celery-w1.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
|
# 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_systemctl --service=$app --action="start" --log_path="/var/log/$app/weblate.log" --wait_until="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-celery" --action="start" --log_path="/var/log/$app/weblate-celery-w1.log" --wait_until="mingle: all alone"
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# GENERIC FINALIZATION
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RELOAD NGINX
|
# 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
|
# 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
|
#!/bin/bash
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# GENERIC START
|
|
||||||
#=================================================
|
|
||||||
# IMPORT GENERIC HELPERS
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# LOAD SETTINGS
|
# 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)
|
admin_mail=$(ynh_user_get_info --username="$admin" --key=mail)
|
||||||
key=$(ynh_string_random --length=50)
|
key=$(ynh_string_random --length=50)
|
||||||
|
@ -20,51 +14,41 @@ key=$(ynh_string_random --length=50)
|
||||||
# Remove trailing "/" from the path
|
# Remove trailing "/" from the path
|
||||||
path_no_slash=${path%/}
|
path_no_slash=${path%/}
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# CHECK VERSION
|
|
||||||
#=================================================
|
|
||||||
|
|
||||||
upgrade_type=$(ynh_check_app_version_changed)
|
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# STANDARD UPGRADE STEPS
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STOP SYSTEMD SERVICE
|
# 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_systemctl --service=$app --action="stop" --log_path="/var/log/$app/weblate.log" --wait_until="goodbye to uWSGI"
|
||||||
ynh_systemd_action --service_name="$app-celery" --action="stop" --log_path="systemd"
|
ynh_systemctl --service="$app-celery" --action="stop" --log_path="systemd"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# ENSURE DOWNWARD COMPATIBILITY
|
# 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 used_forge, forge_username, forge_token don't exist, create them
|
||||||
if [ -z "$used_forge" ]; then
|
if [ -z "$used_forge" ]; then
|
||||||
used_forge="GitHub"
|
used_forge="GitHub"
|
||||||
forge_username=$(ynh_app_setting_get --app=$app --key=github_account)
|
forge_username=$(ynh_app_setting_get --key=github_account)
|
||||||
forge_token=$(ynh_app_setting_get --app=$app --key=github_token)
|
forge_token=$(ynh_app_setting_get --key=github_token)
|
||||||
ynh_app_setting_set --app=$app --key=used_forge --value=$used_forge
|
ynh_app_setting_set --key=used_forge --value=$used_forge
|
||||||
ynh_app_setting_set --app=$app --key=forge_username --value=$forge_username
|
ynh_app_setting_set --key=forge_username --value=$forge_username
|
||||||
ynh_app_setting_set --app=$app --key=forge_token --value=$forge_token
|
ynh_app_setting_set --key=forge_token --value=$forge_token
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# NGINX CONFIGURATION
|
# 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
|
# Create a dedicated NGINX config
|
||||||
ynh_add_nginx_config
|
ynh_config_add_nginx
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# SPECIFIC UPGRADE
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INSTALL XXHASH
|
# INSTALL XXHASH
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Installing xxHash..."
|
ynh_script_progression "Installing xxHash..."
|
||||||
|
|
||||||
tempdir="$(mktemp -d)"
|
tempdir="$(mktemp -d)"
|
||||||
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
ynh_setup_source --dest_dir=$tempdir --source_id="libxxhash"
|
||||||
|
@ -72,17 +56,17 @@ pushd $tempdir
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
popd
|
popd
|
||||||
ynh_secure_remove --file="$tempdir"
|
ynh_safe_rm "$tempdir"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CONFIGURE HUB
|
# CONFIGURE HUB
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
if [ $used_forge = "GitHub" ] ; then
|
if [ $used_forge = "GitHub" ] ; then
|
||||||
ynh_script_progression --message="Configure hub..." --weight=1
|
ynh_script_progression "Configure hub..."
|
||||||
|
|
||||||
#mkdir "$install_dir/.config/"
|
#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"
|
cat <<EOF > "$install_dir/.bashrc"
|
||||||
eval "$(hub alias -s /bin/bash)"
|
eval "$(hub alias -s /bin/bash)"
|
||||||
|
@ -92,19 +76,20 @@ fi
|
||||||
#=================================================
|
#=================================================
|
||||||
# UPDATE A CONFIG FILE
|
# 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
|
# 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_config_add_systemd --template="weblate.service"
|
||||||
ynh_add_systemd_config --service="$app-celery" --template="celery-weblate.service"
|
ynh_config_add_systemd --service="$app-celery" --template="celery-weblate.service"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# UPGRADE WEBLATE
|
# UPGRADE WEBLATE
|
||||||
|
@ -116,12 +101,11 @@ upgrade() {
|
||||||
#=================================================
|
#=================================================
|
||||||
# PIP INSTALLATION
|
# 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"
|
virtualenv --python=python3 "${install_dir}/venv"
|
||||||
chown -R $app: "$install_dir"
|
chown -R $app: "$install_dir"
|
||||||
|
|
||||||
#run source in a 'sub shell'
|
#run source in a 'sub shell'
|
||||||
(
|
(
|
||||||
set +o nounset
|
set +o nounset
|
||||||
|
@ -144,19 +128,20 @@ upgrade() {
|
||||||
#=================================================
|
#=================================================
|
||||||
# MODIFY A CONFIG FILE
|
# 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
|
# save old settings file
|
||||||
settings="$install_dir/venv/lib/$weblate_pypath/site-packages/weblate/settings.py"
|
settings="$install_dir/venv/lib/$weblate_pypath/site-packages/weblate/settings.py"
|
||||||
path="${path%/}"
|
path="${path%/}"
|
||||||
|
|
||||||
set_forge_variables
|
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
|
# 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"
|
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"
|
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
|
# 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
|
set +o nounset
|
||||||
|
@ -189,7 +174,7 @@ upgrade() {
|
||||||
fi
|
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"
|
file_version="${install_dir}/venv/lib/$weblate_pypath/site-packages/weblate/__init__.py"
|
||||||
|
@ -205,7 +190,7 @@ else
|
||||||
current_version=3
|
current_version=3
|
||||||
fi
|
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" ]
|
if [ "$current_version" -lt "5" ]
|
||||||
then
|
then
|
||||||
|
@ -223,20 +208,18 @@ chown -R "$app:www-data" "$install_dir/data"
|
||||||
chmod 750 "$install_dir"
|
chmod 750 "$install_dir"
|
||||||
chmod -R o-rwx "$install_dir"
|
chmod -R o-rwx "$install_dir"
|
||||||
|
|
||||||
#=================================================
|
|
||||||
# GENERIC FINALIZATION
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP LOGROTATE
|
# 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)
|
# Use logrotate to manage app-specific logfile(s)
|
||||||
ynh_use_logrotate --non-append
|
ynh_config_add_logrotate
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INTEGRATE SERVICE IN YUNOHOST
|
# 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 --log="/var/log/$app/weblate.log"
|
||||||
yunohost service add "$app-celery" --log="/var/log/$app/weblate-celery-w1.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
|
# 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_systemctl --service=$app --action="start" --log_path="/var/log/$app/weblate.log" --wait_until="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-celery" --action="start" --log_path="/var/log/$app/weblate-celery-celery.log" --wait_until="mingle: all alone"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# END OF SCRIPT
|
# 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.52db1ab.name = "5.3.1-ynh2"
|
||||||
test_upgrade_from.e075efc.name = "5.4.1"
|
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