diff --git a/ALL_README.md b/ALL_README.md new file mode 100644 index 0000000..a01b345 --- /dev/null +++ b/ALL_README.md @@ -0,0 +1,7 @@ +# All available README files by language + +- [Read the README in English](README.md) +- [Irakurri README euskaraz](README_eu.md) +- [Lire le README en français](README_fr.md) +- [Le o README en galego](README_gl.md) +- [阅读中文(简体)的 README](README_zh_Hans.md) diff --git a/README.md b/README.md index 5c8f689..ad7a27b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ @@ -9,17 +9,17 @@ It shall NOT be edited by hand. [![Install BorgWarehouse with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=borgwarehouse) -*[Lire ce readme en français.](./README_fr.md)* +*[Read this README in other languages.](./ALL_README.md)* -> *This package allows you to install BorgWarehouse quickly and simply on a YunoHost server. -If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* +> *This package allows you to install BorgWarehouse quickly and simply on a YunoHost server.* +> *If you don't have YunoHost, please consult [the guide](https://yunohost.org/install) to learn how to install it.* ## Overview BorgWarhouse is a fast and modern WebUI for a BorgBackup's central repository server. -**Shipped version:** 2.2.0~ynh1 +**Shipped version:** 2.2.1~ynh1 ## Screenshots @@ -27,22 +27,22 @@ BorgWarhouse is a fast and modern WebUI for a BorgBackup's central repository se ## Documentation and resources -* Official app website: -* Official admin documentation: -* Upstream app code repository: -* YunoHost Store: -* Report a bug: +- Official app website: +- Official admin documentation: +- Upstream app code repository: +- YunoHost Store: +- Report a bug: ## Developer info -Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing). +Please send your pull request to the [`testing` branch](https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing). -To try the testing branch, please proceed like that. +To try the `testing` branch, please proceed like that: -``` bash +```bash sudo yunohost app install https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug or sudo yunohost app upgrade borgwarehouse -u https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug ``` -**More info regarding app packaging:** \ No newline at end of file +**More info regarding app packaging:** diff --git a/README_eu.md b/README_eu.md new file mode 100644 index 0000000..bbbd26b --- /dev/null +++ b/README_eu.md @@ -0,0 +1,48 @@ + + +# BorgWarehouse YunoHost-erako + +[![Integrazio maila](https://dash.yunohost.org/integration/borgwarehouse.svg)](https://dash.yunohost.org/appci/app/borgwarehouse) ![Funtzionamendu egoera](https://ci-apps.yunohost.org/ci/badges/borgwarehouse.status.svg) ![Mantentze egoera](https://ci-apps.yunohost.org/ci/badges/borgwarehouse.maintain.svg) + +[![Instalatu BorgWarehouse YunoHost-ekin](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=borgwarehouse) + +*[Irakurri README hau beste hizkuntzatan.](./ALL_README.md)* + +> *Pakete honek BorgWarehouse YunoHost zerbitzari batean azkar eta zailtasunik gabe instalatzea ahalbidetzen dizu.* +> *YunoHost ez baduzu, kontsultatu [gida](https://yunohost.org/install) nola instalatu ikasteko.* + +## Aurreikuspena + +BorgWarhouse is a fast and modern WebUI for a BorgBackup's central repository server. + + +**Paketatutako bertsioa:** 2.2.1~ynh1 + +## Pantaila-argazkiak + +![BorgWarehouse(r)en pantaila-argazkia](./doc/screenshots/screenshot.png) + +## Dokumentazioa eta baliabideak + +- Aplikazioaren webgune ofiziala: +- Administratzaileen dokumentazio ofiziala: +- Jatorrizko aplikazioaren kode-gordailua: +- YunoHost Denda: +- Eman errore baten berri: + +## Garatzaileentzako informazioa + +Bidali `pull request`a [`testing` abarrera](https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing). + +`testing` abarra probatzeko, ondorengoa egin: + +```bash +sudo yunohost app install https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug +edo +sudo yunohost app upgrade borgwarehouse -u https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug +``` + +**Informazio gehiago aplikazioaren paketatzeari buruz:** diff --git a/README_fr.md b/README_fr.md index f15cfe3..dba7e98 100644 --- a/README_fr.md +++ b/README_fr.md @@ -1,6 +1,6 @@ # BorgWarehouse pour YunoHost @@ -9,16 +9,16 @@ It shall NOT be edited by hand. [![Installer BorgWarehouse avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=borgwarehouse) -*[Read this readme in english.](./README.md)* +*[Lire le README dans d'autres langues.](./ALL_README.md)* -> *Ce package vous permet d’installer BorgWarehouse rapidement et simplement sur un serveur YunoHost. -Si vous n’avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l’installer et en profiter.* +> *Ce package vous permet d’installer BorgWarehouse rapidement et simplement sur un serveur YunoHost.* +> *Si vous n’avez pas YunoHost, consultez [ce guide](https://yunohost.org/install) pour savoir comment l’installer et en profiter.* ## Vue d’ensemble BorgWarhouse est une interface Web rapide et moderne pour BorgBackup. -**Version incluse :** 2.2.0~ynh1 +**Version incluse :** 2.2.1~ynh1 ## Captures d’écran @@ -26,22 +26,22 @@ BorgWarhouse est une interface Web rapide et moderne pour BorgBackup. ## Documentations et ressources -* Site officiel de l’app : -* Documentation officielle de l’admin : -* Dépôt de code officiel de l’app : -* YunoHost Store: -* Signaler un bug : +- Site officiel de l’app : +- Documentation officielle de l’admin : +- Dépôt de code officiel de l’app : +- YunoHost Store : +- Signaler un bug : ## Informations pour les développeurs -Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing). +Merci de faire vos pull request sur la [branche `testing`](https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing). -Pour essayer la branche testing, procédez comme suit. +Pour essayer la branche `testing`, procédez comme suit : -``` bash +```bash sudo yunohost app install https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug ou sudo yunohost app upgrade borgwarehouse -u https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug ``` -**Plus d’infos sur le packaging d’applications :** \ No newline at end of file +**Plus d’infos sur le packaging d’applications :** diff --git a/README_gl.md b/README_gl.md new file mode 100644 index 0000000..efd927c --- /dev/null +++ b/README_gl.md @@ -0,0 +1,48 @@ + + +# BorgWarehouse para YunoHost + +[![Nivel de integración](https://dash.yunohost.org/integration/borgwarehouse.svg)](https://dash.yunohost.org/appci/app/borgwarehouse) ![Estado de funcionamento](https://ci-apps.yunohost.org/ci/badges/borgwarehouse.status.svg) ![Estado de mantemento](https://ci-apps.yunohost.org/ci/badges/borgwarehouse.maintain.svg) + +[![Instalar BorgWarehouse con YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=borgwarehouse) + +*[Le este README en outros idiomas.](./ALL_README.md)* + +> *Este paquete permíteche instalar BorgWarehouse de xeito rápido e doado nun servidor YunoHost.* +> *Se non usas YunoHost, le a [documentación](https://yunohost.org/install) para saber como instalalo.* + +## Vista xeral + +BorgWarhouse is a fast and modern WebUI for a BorgBackup's central repository server. + + +**Versión proporcionada:** 2.2.1~ynh1 + +## Capturas de pantalla + +![Captura de pantalla de BorgWarehouse](./doc/screenshots/screenshot.png) + +## Documentación e recursos + +- Web oficial da app: +- Documentación oficial para admin: +- Repositorio de orixe do código: +- Tenda YunoHost: +- Informar dun problema: + +## Info de desenvolvemento + +Envía a túa colaboración á [rama `testing`](https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing). + +Para probar a rama `testing`, procede deste xeito: + +```bash +sudo yunohost app install https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug +ou +sudo yunohost app upgrade borgwarehouse -u https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug +``` + +**Máis info sobre o empaquetado da app:** diff --git a/README_zh_Hans.md b/README_zh_Hans.md new file mode 100644 index 0000000..0c1b8a6 --- /dev/null +++ b/README_zh_Hans.md @@ -0,0 +1,48 @@ + + +# YunoHost 上的 BorgWarehouse + +[![集成程度](https://dash.yunohost.org/integration/borgwarehouse.svg)](https://dash.yunohost.org/appci/app/borgwarehouse) ![工作状态](https://ci-apps.yunohost.org/ci/badges/borgwarehouse.status.svg) ![维护状态](https://ci-apps.yunohost.org/ci/badges/borgwarehouse.maintain.svg) + +[![使用 YunoHost 安装 BorgWarehouse](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=borgwarehouse) + +*[阅读此 README 的其它语言版本。](./ALL_README.md)* + +> *通过此软件包,您可以在 YunoHost 服务器上快速、简单地安装 BorgWarehouse。* +> *如果您还没有 YunoHost,请参阅[指南](https://yunohost.org/install)了解如何安装它。* + +## 概况 + +BorgWarhouse is a fast and modern WebUI for a BorgBackup's central repository server. + + +**分发版本:** 2.2.1~ynh1 + +## 截图 + +![BorgWarehouse 的截图](./doc/screenshots/screenshot.png) + +## 文档与资源 + +- 官方应用网站: +- 官方管理文档: +- 上游应用代码库: +- YunoHost 商店: +- 报告 bug: + +## 开发者信息 + +请向 [`testing` 分支](https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing) 发送拉取请求。 + +如要尝试 `testing` 分支,请这样操作: + +```bash +sudo yunohost app install https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug +或 +sudo yunohost app upgrade borgwarehouse -u https://github.com/YunoHost-Apps/borgwarehouse_ynh/tree/testing --debug +``` + +**有关应用打包的更多信息:** diff --git a/conf/.env b/conf/.env index 53534b7..979ae75 100644 --- a/conf/.env +++ b/conf/.env @@ -2,6 +2,10 @@ NEXTAUTH_URL=https://__DOMAIN__ NEXTAUTH_SECRET='__SECRET__' CRONJOB_KEY='__CRON_KEY__' + +# Base directory +home=/home/yunohost.app/__APP__ + # Wizard's variables UNIX_USER=__APP__ FQDN=__DOMAIN__ @@ -9,6 +13,7 @@ SSH_SERVER_PORT=__SSH_PORT__ SSH_SERVER_FINGERPRINT_RSA=__RSA_KEY__ SSH_SERVER_FINGERPRINT_ED25519=__ED25519_KEY__ SSH_SERVER_FINGERPRINT_ECDSA=__ECDSA_KEY__ + # SMTP's variables MAIL_SMTP_FROM=borgwarehouse@__MAIN_DOMAIN__ MAIL_SMTP_HOST=__MAIN_DOMAIN__ @@ -16,5 +21,6 @@ MAIL_SMTP_PORT=25 MAIL_SMTP_LOGIN=__APP__ MAIL_SMTP_PWD=__MAIL_PWD__ MAIL_REJECT_SELFSIGNED_TLS=true + # Disable NextJS telemetry NEXT_TELEMETRY_DISABLED=1 \ No newline at end of file diff --git a/conf/systemd.service b/conf/systemd.service index 9360a93..cf70664 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -7,45 +7,11 @@ After=network.target Type=simple User=__APP__ Group=__APP__ -Environment="PATH=__ENV_PATH__" -WorkingDirectory=__INSTALL_DIR__/app +Environment="__YNH_NODE_LOAD_PATH__" +WorkingDirectory=/home/yunohost.app/__APP__/app Environment=PORT=__PORT__ ExecStart=__YNH_NPM__ run start Restart=on-failure -# Sandboxing options to harden security -# Depending on specificities of your service/app, you may need to tweak these -# .. but this should be a good baseline -# Details for these options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html -NoNewPrivileges=yes -PrivateTmp=yes -PrivateDevices=yes -RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK -RestrictNamespaces=yes -RestrictRealtime=yes -DevicePolicy=closed -ProtectClock=yes -ProtectHostname=yes -ProtectProc=invisible -ProtectSystem=full -ProtectControlGroups=yes -ProtectKernelModules=yes -ProtectKernelTunables=yes -LockPersonality=yes -SystemCallArchitectures=native -SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap @cpu-emulation @privileged - -# Denying access to capabilities that should not be relevant for webapps -# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html -CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD -CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE -CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT -CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK -CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM -CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG -CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE -CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW -CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG - [Install] WantedBy=multi-user.target diff --git a/manifest.toml b/manifest.toml index fbcbbba..d01e949 100644 --- a/manifest.toml +++ b/manifest.toml @@ -7,7 +7,7 @@ name = "BorgWarehouse" description.en = "WebUI for a BorgBackup's central repository server" description.fr = "WebUI pour BorgBackup" -version = "2.2.0~ynh1" +version = "2.2.1~ynh1" maintainers = [] @@ -43,12 +43,14 @@ ram.runtime = "50M" [resources.sources] [resources.sources.main] - url = "https://github.com/ravinou/borgwarehouse/archive/refs/tags/v2.2.0.tar.gz" - sha256 = "ef99c432f6783796446754963c0b4705b2da2dcefc67252a6f36005fcb48243a" + url = "https://github.com/ravinou/borgwarehouse/archive/refs/tags/v2.2.1.tar.gz" + sha256 = "e1e9730691f7b0a787bc1097de09df6a94e230670dd4afaffade2cad26ff4bf2" autoupdate.strategy = "latest_github_tag" [resources.system_user] allow_email = true + allow_ssh = true + home = "/home/yunohost.app/__APP__" [resources.install_dir] diff --git a/scripts/backup b/scripts/backup index a07766f..4d90835 100755 --- a/scripts/backup +++ b/scripts/backup @@ -19,7 +19,14 @@ ynh_print_info --message="Declaring files to be backed up..." # BACKUP THE APP MAIN DIR #================================================= -ynh_backup --src_path="$install_dir" +ynh_backup --src_path="/home/yunohost.app/$app/app" +ynh_backup --src_path="/home/yunohost.app/$app/.ssh" + +#================================================= +# BACKUP THE REPOS DIRECTORY +#================================================= + +ynh_backup --src_path="/home/yunohost.app/$app/repos" --is_big #================================================= # BACKUP THE NGINX CONFIGURATION diff --git a/scripts/change_url b/scripts/change_url index 43b84fb..8157cf0 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -30,10 +30,10 @@ ynh_change_url_nginx_config #================================================= ynh_script_progression --message="Adding a configuration file..." --weight=1 -ynh_add_config --template=".env" --destination="$install_dir/app/.env.local" +ynh_add_config --template=".env" --destination="/home/yunohost.app/$app/app/.env.local" -chmod 400 "$install_dir/app/.env.local" -chown $app:$app "$install_dir/app/.env.local" +chmod 400 "/home/yunohost.app/$app/app/.env.local" +chown $app:$app "/home/yunohost.app/$app/app/.env.local" #================================================= # GENERIC FINALISATION diff --git a/scripts/install b/scripts/install index cf8db0d..0bf997c 100755 --- a/scripts/install +++ b/scripts/install @@ -35,15 +35,21 @@ ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version #================================================= ynh_script_progression --message="Setting up source files..." --weight=1 +mkdir "/home/yunohost.app/$app" && chmod 700 "/home/yunohost.app/$app" + # Download, check integrity, uncompress and patch the source from manifest.toml -ynh_setup_source --dest_dir="$install_dir/app" +ynh_setup_source --dest_dir="/home/yunohost.app/$app/app" -mkdir $install_dir/.ssh && chmod 700 $install_dir/.ssh -touch $install_dir/.ssh/authorized_keys && chmod 600 $install_dir/.ssh/authorized_keys -mkdir $install_dir/repos && chmod 700 $install_dir/repos +chmod 700 "/home/yunohost.app/$app" -chown -R $app:www-data "$install_dir" -chmod 700 $install_dir/app/helpers/shells/* +mkdir "/home/yunohost.app/$app/.ssh" && chmod 700 "/home/yunohost.app/$app/.ssh" +touch "/home/yunohost.app/$app/.ssh/authorized_keys" && chmod 600 "/home/yunohost.app/$app/.ssh/authorized_keys" + +chmod 700 "/home/yunohost.app/$app/app/helpers/shells/"* + +mkdir "/home/yunohost.app/$app/repos" && chmod 700 "/home/yunohost.app/$app/repos" + +chown -R $app:www-data "/home/yunohost.app/$app" #================================================= # SYSTEM CONFIGURATION @@ -52,10 +58,9 @@ ynh_script_progression --message="Adding system configurations related to $app.. ynh_add_nginx_config -env_path="$PATH" ynh_add_systemd_config -ynh_add_config --template="../conf/cron" --destination="/etc/cron.d/$app" +ynh_add_config --template="cron" --destination="/etc/cron.d/$app" chown root: "/etc/cron.d/$app" chmod 644 "/etc/cron.d/$app" @@ -68,17 +73,17 @@ yunohost service add $app --description="WebUI for BorgBackup" --log="/var/log/$ #================================================= ynh_script_progression --message="Adding a configuration file..." --weight=1 -ynh_add_config --template=".env" --destination="$install_dir/app/.env.local" +ynh_add_config --template=".env" --destination="/home/yunohost.app/$app/app/.env.local" -chmod 400 "$install_dir/app/.env.local" -chown $app:$app "$install_dir/app/.env.local" +chmod 400 "/home/yunohost.app/$app/app/.env.local" +chown $app:$app "/home/yunohost.app/$app/app/.env.local" #================================================= # INSTALL BORGWARHOUSE #================================================= ynh_script_progression --message="Installing $app..." --weight=10 -pushd $install_dir/app +pushd /home/yunohost.app/$app/app ynh_use_nodejs ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm ci ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH NODE_ENV=production $ynh_npm run build diff --git a/scripts/remove b/scripts/remove index 3ec7dc4..ce16d7a 100755 --- a/scripts/remove +++ b/scripts/remove @@ -31,6 +31,8 @@ ynh_remove_nodejs ynh_secure_remove --file="/etc/cron.d/$app" +ynh_secure_remove --file="/home/yunohost.app/$app" + #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/restore b/scripts/restore index 5c7b30d..10a0863 100755 --- a/scripts/restore +++ b/scripts/restore @@ -15,9 +15,17 @@ source /usr/share/yunohost/helpers #================================================= ynh_script_progression --message="Restoring the app main directory..." --weight=1 -ynh_restore_file --origin_path="$install_dir" +mkdir -p "/home/yunohost.app/$app" && chmod 700 "/home/yunohost.app/$app" -chown -R $app:www-data "$install_dir" +ynh_restore_file --origin_path="/home/yunohost.app/$app/app" +ynh_restore_file --origin_path="/home/yunohost.app/$app/.ssh" + +ynh_restore_file --origin_path="/home/yunohost.app/$app/repos" --not_mandatory + +chmod -R 700 "/home/yunohost.app/$app" +chmod 600 "/home/yunohost.app/$app/.ssh/authorized_keys" + +chown -R $app:www-data "/home/yunohost.app/$app" #================================================= # REINSTALL DEPENDENCIES diff --git a/scripts/upgrade b/scripts/upgrade index 9c56584..d609955 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -37,10 +37,10 @@ then ynh_script_progression --message="Upgrading source files..." --weight=1 # Download, check integrity, uncompress and patch the source from manifest.toml - ynh_setup_source --dest_dir="$install_dir" --keep="app/.env.local app/config/users.json app/config/repo.json" + ynh_setup_source --dest_dir="/home/yunohost.app/$app/app" --keep="app/.env.local app/config/users.json app/config/repo.json" fi -chown -R $app:www-data "$install_dir" +chown -R $app:www-data "/home/yunohost.app/$app/app" #================================================= # REAPPLY SYSTEM CONFIGURATIONS @@ -49,7 +49,6 @@ ynh_script_progression --message="Upgrading system configurations related to $ap ynh_add_nginx_config -env_path="$PATH" ynh_add_systemd_config yunohost service add $app --description="WebUI for BorgBackup" --log="/var/log/$app/$app.log" @@ -61,10 +60,10 @@ yunohost service add $app --description="WebUI for BorgBackup" --log="/var/log/$ #================================================= ynh_script_progression --message="Updating a configuration file..." --weight=1 -ynh_add_config --template=".env" --destination="$install_dir/app/.env.local" +ynh_add_config --template=".env" --destination="/home/yunohost.app/$app/app/.env.local" -chmod 400 "$install_dir/app/.env.local" -chown $app:$app "$install_dir/app/.env.local" +chmod 400 "/home/yunohost.app/$app/app/.env.local" +chown $app:$app "/home/yunohost.app/$app/app/.env.local" #================================================= # START SYSTEMD SERVICE