mirror of
https://framagit.org/YunoHost-Apps/gitea_ynh.git
synced 2024-11-22 02:51:35 +01:00
commit
a5bb99f809
102
README.md
102
README.md
@ -1,48 +1,30 @@
|
|||||||
Gitea package for YunoHost
|
<!--
|
||||||
==========================
|
N.B.: This README was automatically generated by https://github.com/YunoHost/apps/tree/master/tools/README-generator
|
||||||
|
It shall NOT be edited by hand.
|
||||||
|
-->
|
||||||
|
|
||||||
|
# Gitea for YunoHost
|
||||||
|
|
||||||
[![Integration level](https://dash.yunohost.org/integration/gitea.svg)](https://dash.yunohost.org/appci/app/gitea) ![](https://ci-apps.yunohost.org/ci/badges/gitea.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/gitea.maintain.svg)
|
[![Integration level](https://dash.yunohost.org/integration/gitea.svg)](https://dash.yunohost.org/appci/app/gitea) ![Working status](https://ci-apps.yunohost.org/ci/badges/gitea.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/gitea.maintain.svg)
|
||||||
[![Install gitea with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=gitea)
|
[![Install Gitea with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=gitea)
|
||||||
|
|
||||||
> *This package allow you to install gitea quickly and simply on a YunoHost server.
|
*[Lire ce readme en français.](./README_fr.md)*
|
||||||
If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.*
|
|
||||||
|
|
||||||
Overview
|
> *This package allows you to install Gitea 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
|
||||||
|
|
||||||
Gitea is a fork of Gogs a self-hosted Git service written in Go. Alternative to Github.
|
Gitea is a fork of Gogs a self-hosted Git service written in Go. Alternative to Github.
|
||||||
|
|
||||||
**Shipped version:** 1.16.4
|
|
||||||
|
|
||||||
Screenshots
|
**Shipped version:** 1.16.8~ynh1
|
||||||
-----------
|
|
||||||
|
|
||||||
![](https://gitea.io/images/screenshot.png)
|
## Screenshots
|
||||||
|
|
||||||
Documentation
|
![Screenshot of Gitea](./doc/screenshots/screenshot.png)
|
||||||
-------------
|
|
||||||
|
|
||||||
* Official documentation: https://docs.gitea.io/
|
## Disclaimers / important information
|
||||||
* YunoHost documentation: There no other documentations, feel free to contribute.
|
|
||||||
|
|
||||||
YunoHost specific features
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
### Multi-users support
|
|
||||||
|
|
||||||
LDAP and HTTP auth are supported.
|
|
||||||
|
|
||||||
### Supported architectures
|
|
||||||
|
|
||||||
* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/gitea%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/gitea/)
|
|
||||||
* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/gitea%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/gitea/)
|
|
||||||
|
|
||||||
<!--Limitations
|
|
||||||
------------
|
|
||||||
|
|
||||||
* Any known limitations.
|
|
||||||
-->
|
|
||||||
|
|
||||||
Additional informations
|
Additional informations
|
||||||
-----------------------
|
-----------------------
|
||||||
@ -53,7 +35,7 @@ If you want to use Gitea with ssh and be able to pull/push with you ssh key, you
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
PubkeyAuthentication yes
|
PubkeyAuthentication yes
|
||||||
AuthorizedKeysFile /home/%u/.ssh/authorized_keys
|
AuthorizedKeysFile /home/yunohost.app/%u/.ssh/authorized_keys
|
||||||
ChallengeResponseAuthentication no
|
ChallengeResponseAuthentication no
|
||||||
PasswordAuthentication no
|
PasswordAuthentication no
|
||||||
UsePAM no
|
UsePAM no
|
||||||
@ -68,10 +50,6 @@ Host domain.tld
|
|||||||
port 2222 # change this with the port you use
|
port 2222 # change this with the port you use
|
||||||
```
|
```
|
||||||
|
|
||||||
### Architecture
|
|
||||||
|
|
||||||
This package is compatible with amd64, i386 and arm. The package will try to detect it with the command uname -m and fail if it can't detect the architecture. If that happens please open an issue describing your hardware and the result of the command `uname -m`.
|
|
||||||
|
|
||||||
### Upgrade
|
### Upgrade
|
||||||
|
|
||||||
By default a backup is made before the upgrade. To avoid this you have theses following possibilites:
|
By default a backup is made before the upgrade. To avoid this you have theses following possibilites:
|
||||||
@ -98,14 +76,14 @@ This app use now the core-only feature of the backup. To keep the integrity of t
|
|||||||
|
|
||||||
`yunohost backup create --app gitea`
|
`yunohost backup create --app gitea`
|
||||||
|
|
||||||
- Do a backup of your data with your specific strategy (could be with rsync, borg backup or just cp). The data is generally stored in `/home/gitea`.
|
- Do a backup of your data with your specific strategy (could be with rsync, borg backup or just cp). The data is generally stored in `/home/yunohost.app/gitea`.
|
||||||
- Restart the gitea service with theses command:
|
- Restart the gitea service with theses command:
|
||||||
|
|
||||||
`systemctl start gitea.service`
|
`systemctl start gitea.service`
|
||||||
|
|
||||||
### Remove
|
### Remove
|
||||||
|
|
||||||
Due of the backup core only feature the data directory in `/home/gitea` **is not removed**. It need to be removed manually to purge app user data.
|
Due of the backup core only feature the data directory in `/home/yunohost.app/gitea` **is not removed**. It need to be removed manually to purge app user data.
|
||||||
|
|
||||||
### LFS setup
|
### LFS setup
|
||||||
To use a repository with an `LFS` setup, you need to activate-it on `/opt/gitea/custom/conf/app.ini`
|
To use a repository with an `LFS` setup, you need to activate-it on `/opt/gitea/custom/conf/app.ini`
|
||||||
@ -126,36 +104,24 @@ Don't forget to restart Gitea `sudo systemctl restart gitea.service`.
|
|||||||
|
|
||||||
If you want to use the git command (like `git clone`, `git pull`, `git push`), you need to set this app as **public**.
|
If you want to use the git command (like `git clone`, `git pull`, `git push`), you need to set this app as **public**.
|
||||||
|
|
||||||
Links
|
## Documentation and resources
|
||||||
-----
|
|
||||||
|
|
||||||
* Report a bug: https://framagit.org/YunoHost-Apps/gitea_ynh/issues
|
* Official app website: <https://gitea.io/>
|
||||||
* App website: http://gitea.io
|
* Official admin documentation: <https://docs.gitea.io/>
|
||||||
* YunoHost website: https://yunohost.org/
|
* Upstream app code repository: <https://github.com/go-gitea/gitea>
|
||||||
|
* YunoHost documentation for this app: <https://yunohost.org/app_gitea>
|
||||||
|
* Report a bug: <https://github.com/YunoHost-Apps/gitea_ynh/issues>
|
||||||
|
|
||||||
---
|
## Developer info
|
||||||
|
|
||||||
Install
|
Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/gitea_ynh/tree/testing).
|
||||||
-------
|
|
||||||
|
|
||||||
From command line:
|
To try the testing branch, please proceed like that.
|
||||||
|
|
||||||
`sudo yunohost app install -l gitea https://github.com/YunoHost-Apps/gitea_ynh`
|
``` bash
|
||||||
|
sudo yunohost app install https://github.com/YunoHost-Apps/gitea_ynh/tree/testing --debug
|
||||||
|
or
|
||||||
|
sudo yunohost app upgrade gitea -u https://github.com/YunoHost-Apps/gitea_ynh/tree/testing --debug
|
||||||
|
```
|
||||||
|
|
||||||
Upgrade
|
**More info regarding app packaging:** <https://yunohost.org/packaging_apps>
|
||||||
-------
|
|
||||||
|
|
||||||
From command line:
|
|
||||||
|
|
||||||
`sudo yunohost app upgrade gitea -u https://github.com/YunoHost-Apps/gitea_ynh`
|
|
||||||
|
|
||||||
License
|
|
||||||
-------
|
|
||||||
|
|
||||||
Gitea is published under the MIT License:
|
|
||||||
https://github.com/go-gitea/gitea/blob/master/LICENSE
|
|
||||||
|
|
||||||
This package is published under the MIT License.
|
|
||||||
|
|
||||||
Todo
|
|
||||||
----
|
|
||||||
|
127
README_fr.md
Normal file
127
README_fr.md
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<!--
|
||||||
|
N.B.: This README was automatically generated by https://github.com/YunoHost/apps/tree/master/tools/README-generator
|
||||||
|
It shall NOT be edited by hand.
|
||||||
|
-->
|
||||||
|
|
||||||
|
# Gitea pour YunoHost
|
||||||
|
|
||||||
|
[![Niveau d'intégration](https://dash.yunohost.org/integration/gitea.svg)](https://dash.yunohost.org/appci/app/gitea) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/gitea.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/gitea.maintain.svg)
|
||||||
|
[![Installer Gitea avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=gitea)
|
||||||
|
|
||||||
|
*[Read this readme in english.](./README.md)*
|
||||||
|
|
||||||
|
> *Ce package vous permet d'installer Gitea 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.*
|
||||||
|
|
||||||
|
## Vue d'ensemble
|
||||||
|
|
||||||
|
Gitea is a fork of Gogs a self-hosted Git service written in Go. Alternative to Github.
|
||||||
|
|
||||||
|
|
||||||
|
**Version incluse :** 1.16.8~ynh1
|
||||||
|
|
||||||
|
## Captures d'écran
|
||||||
|
|
||||||
|
![Capture d'écran de Gitea](./doc/screenshots/screenshot.png)
|
||||||
|
|
||||||
|
## Avertissements / informations importantes
|
||||||
|
|
||||||
|
Additional informations
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
### Notes on SSH usage
|
||||||
|
|
||||||
|
If you want to use Gitea with ssh and be able to pull/push with you ssh key, your ssh daemon must be properly configured to use private/public keys. Here is a sample configuration of `/etc/ssh/sshd_config` that works with Gitea:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
PubkeyAuthentication yes
|
||||||
|
AuthorizedKeysFile /home/yunohost.app/%u/.ssh/authorized_keys
|
||||||
|
ChallengeResponseAuthentication no
|
||||||
|
PasswordAuthentication no
|
||||||
|
UsePAM no
|
||||||
|
```
|
||||||
|
|
||||||
|
You also need to add your public key to your Gitea profile.
|
||||||
|
|
||||||
|
If you use ssh on another port than 22, you need to add theses lines to your ssh config in `~/.ssh/config`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Host domain.tld
|
||||||
|
port 2222 # change this with the port you use
|
||||||
|
```
|
||||||
|
|
||||||
|
### Upgrade
|
||||||
|
|
||||||
|
By default a backup is made before the upgrade. To avoid this you have theses following possibilites:
|
||||||
|
- Pass the `NO_BACKUP_UPGRADE` env variable with `1` at each upgrade. By example `NO_BACKUP_UPGRADE=1 yunohost app upgrade gitea`.
|
||||||
|
- Set the settings `disable_backup_before_upgrade` to `1`. You can set this with this command:
|
||||||
|
|
||||||
|
`yunohost app setting gitea disable_backup_before_upgrade -v 1`
|
||||||
|
|
||||||
|
After this settings will be applied for **all** next upgrade.
|
||||||
|
|
||||||
|
From command line:
|
||||||
|
|
||||||
|
`yunohost app upgrade gitea`
|
||||||
|
|
||||||
|
### Backup
|
||||||
|
|
||||||
|
This app use now the core-only feature of the backup. To keep the integrity of the data and to have a better guarantee of the restoration is recommended to proceed like this:
|
||||||
|
|
||||||
|
- Stop gitea service with theses following command:
|
||||||
|
|
||||||
|
`systemctl stop gitea.service`
|
||||||
|
|
||||||
|
- Launch the backup of gitea with this following command:
|
||||||
|
|
||||||
|
`yunohost backup create --app gitea`
|
||||||
|
|
||||||
|
- Do a backup of your data with your specific strategy (could be with rsync, borg backup or just cp). The data is generally stored in `/home/yunohost.app/gitea`.
|
||||||
|
- Restart the gitea service with theses command:
|
||||||
|
|
||||||
|
`systemctl start gitea.service`
|
||||||
|
|
||||||
|
### Remove
|
||||||
|
|
||||||
|
Due of the backup core only feature the data directory in `/home/yunohost.app/gitea` **is not removed**. It need to be removed manually to purge app user data.
|
||||||
|
|
||||||
|
### LFS setup
|
||||||
|
To use a repository with an `LFS` setup, you need to activate-it on `/opt/gitea/custom/conf/app.ini`
|
||||||
|
```ini
|
||||||
|
[server]
|
||||||
|
LFS_START_SERVER = true
|
||||||
|
LFS_HTTP_AUTH_EXPIRY = 20m
|
||||||
|
```
|
||||||
|
By default Nginx is setup with a max value to updload files at 200 Mo. It's possible to change this value on `/etc/nginx/conf.d/my.domain.tld.d/gitea.conf`.
|
||||||
|
```
|
||||||
|
client_max_body_size 200M;
|
||||||
|
```
|
||||||
|
Don't forget to restart Gitea `sudo systemctl restart gitea.service`.
|
||||||
|
|
||||||
|
> This settings are restored to the default config when Gitea is updated. Don't forget to restore your setup after all updates.
|
||||||
|
|
||||||
|
### Git command access with HTTPS
|
||||||
|
|
||||||
|
If you want to use the git command (like `git clone`, `git pull`, `git push`), you need to set this app as **public**.
|
||||||
|
|
||||||
|
## Documentations et ressources
|
||||||
|
|
||||||
|
* Site officiel de l'app : <https://gitea.io/>
|
||||||
|
* Documentation officielle de l'admin : <https://docs.gitea.io/>
|
||||||
|
* Dépôt de code officiel de l'app : <https://github.com/go-gitea/gitea>
|
||||||
|
* Documentation YunoHost pour cette app : <https://yunohost.org/app_gitea>
|
||||||
|
* Signaler un bug : <https://github.com/YunoHost-Apps/gitea_ynh/issues>
|
||||||
|
|
||||||
|
## Informations pour les développeurs
|
||||||
|
|
||||||
|
Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/gitea_ynh/tree/testing).
|
||||||
|
|
||||||
|
Pour essayer la branche testing, procédez comme suit.
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
sudo yunohost app install https://github.com/YunoHost-Apps/gitea_ynh/tree/testing --debug
|
||||||
|
ou
|
||||||
|
sudo yunohost app upgrade gitea -u https://github.com/YunoHost-Apps/gitea_ynh/tree/testing --debug
|
||||||
|
```
|
||||||
|
|
||||||
|
**Plus d'infos sur le packaging d'applications :** <https://yunohost.org/packaging_apps>
|
@ -21,7 +21,7 @@ FORCE_PRIVATE = false
|
|||||||
DOMAIN = __DOMAIN__
|
DOMAIN = __DOMAIN__
|
||||||
HTTP_PORT = __PORT__
|
HTTP_PORT = __PORT__
|
||||||
HTTP_ADDR = 127.0.0.1
|
HTTP_ADDR = 127.0.0.1
|
||||||
ROOT_URL = https://__URL__/
|
ROOT_URL = https://__DOMAIN____PATH_URL__
|
||||||
DISABLE_SSH = false
|
DISABLE_SSH = false
|
||||||
SSH_PORT = __SSH_PORT__
|
SSH_PORT = __SSH_PORT__
|
||||||
OFFLINE_MODE = false
|
OFFLINE_MODE = false
|
||||||
@ -72,5 +72,5 @@ XORM = file
|
|||||||
[security]
|
[security]
|
||||||
INSTALL_LOCK = true
|
INSTALL_LOCK = true
|
||||||
SECRET_KEY = __KEY__
|
SECRET_KEY = __KEY__
|
||||||
REVERSE_PROXY_AUTHENTICATION_USER = REMOTE_USER
|
REVERSE_PROXY_AUTHENTICATION_USER = REMOTE-USER
|
||||||
REVERSE_PROXY_TRUSTED_PROXIES = 127.0.0.0/8,::1/128
|
REVERSE_PROXY_TRUSTED_PROXIES = 127.0.0.0/8,::1/128
|
||||||
|
@ -6,11 +6,6 @@ location __PATH__/ {
|
|||||||
client_max_body_size 200M;
|
client_max_body_size 200M;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
|
||||||
# Force https
|
|
||||||
if ($scheme = http) {
|
|
||||||
rewrite ^ https://$server_name$request_uri? permanent;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Include SSOWAT user panel.
|
# Include SSOWAT user panel.
|
||||||
include conf.d/yunohost_panel.conf.inc;
|
include conf.d/yunohost_panel.conf.inc;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.4/gitea-1.16.4-linux-arm-6
|
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.8/gitea-1.16.8-linux-arm-6
|
||||||
SOURCE_SUM=ed5c2fd355c05111c74cdf1ac9f6d184071fa1cabf194cdd11b8eb945db87195
|
SOURCE_SUM=5fc53c77655b31b148eed6417dbeed44087e2b1caf83e2583ca3695f209f8664
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FILENAME=gitea
|
SOURCE_FILENAME=gitea
|
||||||
SOURCE_EXTRACT=false
|
SOURCE_EXTRACT=false
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.4/gitea-1.16.4-linux-arm64
|
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.8/gitea-1.16.8-linux-arm64
|
||||||
SOURCE_SUM=570e334a327f4dc1b8412bf0af6423efc52508300ef54a646d63d4838dba0273
|
SOURCE_SUM=1afed74f74792e35daec5b2fd381e4e06ddda906ed940c8d7f604744d1f65d39
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FILENAME=gitea
|
SOURCE_FILENAME=gitea
|
||||||
SOURCE_EXTRACT=false
|
SOURCE_EXTRACT=false
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# The armv7 build is brocken
|
# The armv7 build is brocken
|
||||||
# See : https://github.com/go-gitea/gitea/issues/6700
|
# See : https://github.com/go-gitea/gitea/issues/6700
|
||||||
# Use temporary the armv6 binary
|
# Use temporary the armv6 binary
|
||||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.4/gitea-1.16.4-linux-arm-6
|
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.8/gitea-1.16.8-linux-arm-6
|
||||||
SOURCE_SUM=ed5c2fd355c05111c74cdf1ac9f6d184071fa1cabf194cdd11b8eb945db87195
|
SOURCE_SUM=5fc53c77655b31b148eed6417dbeed44087e2b1caf83e2583ca3695f209f8664
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FILENAME=gitea
|
SOURCE_FILENAME=gitea
|
||||||
SOURCE_EXTRACT=false
|
SOURCE_EXTRACT=false
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.4/gitea-1.16.4-linux-386
|
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.8/gitea-1.16.8-linux-386
|
||||||
SOURCE_SUM=016e4c7c99337edf4a44231e872aea4f29575a63efa9b15b39e3319efe962139
|
SOURCE_SUM=59d9979e0cf20b712692471c389e2aad3f2536290e517674db18003c303a1024
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FILENAME=gitea
|
SOURCE_FILENAME=gitea
|
||||||
SOURCE_EXTRACT=false
|
SOURCE_EXTRACT=false
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.4/gitea-1.16.4-linux-amd64
|
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.16.8/gitea-1.16.8-linux-amd64
|
||||||
SOURCE_SUM=49f2469a7aabe3f5dc432b2c967e2d2c6c5c4fad6aae4c1ab4197ebbd159ddd1
|
SOURCE_SUM=1fedb3dd22a8fa2e815dd0491d3db36b3ebf1bb78eafdb8d3f60f740c8885365
|
||||||
SOURCE_SUM_PRG=sha256sum
|
SOURCE_SUM_PRG=sha256sum
|
||||||
SOURCE_FILENAME=gitea
|
SOURCE_FILENAME=gitea
|
||||||
SOURCE_EXTRACT=false
|
SOURCE_EXTRACT=false
|
||||||
|
@ -15,10 +15,10 @@ After=slapd.service
|
|||||||
Type=simple
|
Type=simple
|
||||||
User=__APP__
|
User=__APP__
|
||||||
Group=__APP__
|
Group=__APP__
|
||||||
WorkingDirectory=/home/__APP__
|
WorkingDirectory=/home/yunohost.app/__APP__
|
||||||
ExecStart=/opt/__APP__/gitea web
|
ExecStart=/opt/__APP__/gitea web
|
||||||
Restart=always
|
Restart=always
|
||||||
Environment=USER=__APP__ HOME=/home/__APP__
|
Environment=USER=__APP__ HOME=/home/yunohost.app/__APP__
|
||||||
|
|
||||||
# Sandboxing options to harden security
|
# Sandboxing options to harden security
|
||||||
# Depending on specificities of your service/app, you may need to tweak these
|
# Depending on specificities of your service/app, you may need to tweak these
|
||||||
|
1
doc/DESCRIPTION.md
Normal file
1
doc/DESCRIPTION.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
Gitea is a fork of Gogs a self-hosted Git service written in Go. Alternative to Github.
|
77
doc/DISCLAIMER.md
Normal file
77
doc/DISCLAIMER.md
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
Additional informations
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
### Notes on SSH usage
|
||||||
|
|
||||||
|
If you want to use Gitea with ssh and be able to pull/push with you ssh key, your ssh daemon must be properly configured to use private/public keys. Here is a sample configuration of `/etc/ssh/sshd_config` that works with Gitea:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
PubkeyAuthentication yes
|
||||||
|
AuthorizedKeysFile /home/yunohost.app/%u/.ssh/authorized_keys
|
||||||
|
ChallengeResponseAuthentication no
|
||||||
|
PasswordAuthentication no
|
||||||
|
UsePAM no
|
||||||
|
```
|
||||||
|
|
||||||
|
You also need to add your public key to your Gitea profile.
|
||||||
|
|
||||||
|
If you use ssh on another port than 22, you need to add theses lines to your ssh config in `~/.ssh/config`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Host domain.tld
|
||||||
|
port 2222 # change this with the port you use
|
||||||
|
```
|
||||||
|
|
||||||
|
### Upgrade
|
||||||
|
|
||||||
|
By default a backup is made before the upgrade. To avoid this you have theses following possibilites:
|
||||||
|
- Pass the `NO_BACKUP_UPGRADE` env variable with `1` at each upgrade. By example `NO_BACKUP_UPGRADE=1 yunohost app upgrade gitea`.
|
||||||
|
- Set the settings `disable_backup_before_upgrade` to `1`. You can set this with this command:
|
||||||
|
|
||||||
|
`yunohost app setting gitea disable_backup_before_upgrade -v 1`
|
||||||
|
|
||||||
|
After this settings will be applied for **all** next upgrade.
|
||||||
|
|
||||||
|
From command line:
|
||||||
|
|
||||||
|
`yunohost app upgrade gitea`
|
||||||
|
|
||||||
|
### Backup
|
||||||
|
|
||||||
|
This app use now the core-only feature of the backup. To keep the integrity of the data and to have a better guarantee of the restoration is recommended to proceed like this:
|
||||||
|
|
||||||
|
- Stop gitea service with theses following command:
|
||||||
|
|
||||||
|
`systemctl stop gitea.service`
|
||||||
|
|
||||||
|
- Launch the backup of gitea with this following command:
|
||||||
|
|
||||||
|
`yunohost backup create --app gitea`
|
||||||
|
|
||||||
|
- Do a backup of your data with your specific strategy (could be with rsync, borg backup or just cp). The data is generally stored in `/home/yunohost.app/gitea`.
|
||||||
|
- Restart the gitea service with theses command:
|
||||||
|
|
||||||
|
`systemctl start gitea.service`
|
||||||
|
|
||||||
|
### Remove
|
||||||
|
|
||||||
|
Due of the backup core only feature the data directory in `/home/yunohost.app/gitea` **is not removed**. It need to be removed manually to purge app user data.
|
||||||
|
|
||||||
|
### LFS setup
|
||||||
|
To use a repository with an `LFS` setup, you need to activate-it on `/opt/gitea/custom/conf/app.ini`
|
||||||
|
```ini
|
||||||
|
[server]
|
||||||
|
LFS_START_SERVER = true
|
||||||
|
LFS_HTTP_AUTH_EXPIRY = 20m
|
||||||
|
```
|
||||||
|
By default Nginx is setup with a max value to updload files at 200 Mo. It's possible to change this value on `/etc/nginx/conf.d/my.domain.tld.d/gitea.conf`.
|
||||||
|
```
|
||||||
|
client_max_body_size 200M;
|
||||||
|
```
|
||||||
|
Don't forget to restart Gitea `sudo systemctl restart gitea.service`.
|
||||||
|
|
||||||
|
> This settings are restored to the default config when Gitea is updated. Don't forget to restore your setup after all updates.
|
||||||
|
|
||||||
|
### Git command access with HTTPS
|
||||||
|
|
||||||
|
If you want to use the git command (like `git clone`, `git pull`, `git push`), you need to set this app as **public**.
|
BIN
doc/screenshots/screenshot.png
Normal file
BIN
doc/screenshots/screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 96 KiB |
@ -6,9 +6,15 @@
|
|||||||
"en": "Lightweight Git forge",
|
"en": "Lightweight Git forge",
|
||||||
"fr": "Forge Git légère"
|
"fr": "Forge Git légère"
|
||||||
},
|
},
|
||||||
|
"upstream": {
|
||||||
|
"license": "free",
|
||||||
|
"website": "https://gitea.io/",
|
||||||
|
"admindoc": "https://docs.gitea.io/",
|
||||||
|
"code": "https://github.com/go-gitea/gitea"
|
||||||
|
},
|
||||||
"url": "http://gitea.io",
|
"url": "http://gitea.io",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"version": "1.16.4~ynh1",
|
"version": "1.16.8~ynh1",
|
||||||
"maintainer": {
|
"maintainer": {
|
||||||
"name": "Josué Tille",
|
"name": "Josué Tille",
|
||||||
"email": "josue@tille.ch"
|
"email": "josue@tille.ch"
|
||||||
@ -29,39 +35,20 @@
|
|||||||
"install" : [
|
"install" : [
|
||||||
{
|
{
|
||||||
"name": "domain",
|
"name": "domain",
|
||||||
"type": "domain",
|
"type": "domain"
|
||||||
"ask": {
|
|
||||||
"en": "Choose a domain for Gitea",
|
|
||||||
"fr": "Choisissez un domaine pour Gitea"
|
|
||||||
},
|
|
||||||
"example": "domain.org"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "path",
|
"name": "path",
|
||||||
"type": "path",
|
"type": "path",
|
||||||
"ask": {
|
|
||||||
"en": "Choose a path for Gitea",
|
|
||||||
"fr": "Choisissez un chemin pour Gitea"
|
|
||||||
},
|
|
||||||
"example": "/gitea",
|
|
||||||
"default": "/gitea"
|
"default": "/gitea"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "admin",
|
"name": "admin",
|
||||||
"type": "user",
|
"type": "user"
|
||||||
"ask": {
|
|
||||||
"en": "Choose the Gitea administrator (must be an existing YunoHost user)",
|
|
||||||
"fr": "Choisissez l'administrateur de Gitea (doit être un utilisateur YunoHost existant)"
|
|
||||||
},
|
|
||||||
"example": "johndoe"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "is_public",
|
"name": "is_public",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"ask": {
|
|
||||||
"en": "Is it a public site?",
|
|
||||||
"fr": "Est-ce un site public ?"
|
|
||||||
},
|
|
||||||
"help": {
|
"help": {
|
||||||
"en": "A public server means that everybody is able to access to the main page of the forge, on the public profile of the user and on the public repository. But you still can limit the access to each repository if you set it as private. Note that to be able to use the remote Git command (clone, pull, push) with HTTP and to use the API by (by example with a smartphone), you need to set this application as public.",
|
"en": "A public server means that everybody is able to access to the main page of the forge, on the public profile of the user and on the public repository. But you still can limit the access to each repository if you set it as private. Note that to be able to use the remote Git command (clone, pull, push) with HTTP and to use the API by (by example with a smartphone), you need to set this application as public.",
|
||||||
"fr": "Un serveur public signifie que tout le monde peut accéder à la page principale de la forge, au profil public des utilisateurs et aux dépôts publics. Vous pouvez également définir les dépôts comme étant privés. Notez que pour pouvoir utiliser les commandes Git distantes (clone, pull, push) avec HTTP et pour pouvoir utiliser l'API (par exemple avec un smartphone), vous devez paramétrer cette application comme étant publique."
|
"fr": "Un serveur public signifie que tout le monde peut accéder à la page principale de la forge, au profil public des utilisateurs et aux dépôts publics. Vous pouvez également définir les dépôts comme étant privés. Notez que pour pouvoir utiliser les commandes Git distantes (clone, pull, push) avec HTTP et pour pouvoir utiliser l'API (par exemple avec un smartphone), vous devez paramétrer cette application comme étant publique."
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
|
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
dbname=$app
|
dbname=$app
|
||||||
dbuser=$app
|
db_user=$app
|
||||||
final_path="/opt/$app"
|
final_path="/opt/$app"
|
||||||
DATADIR="/home/$app"
|
datadir="/home/yunohost.app/$app"
|
||||||
REPO_PATH="$DATADIR/repositories"
|
repos_path="$datadir/repositories"
|
||||||
DATA_PATH="$DATADIR/data"
|
data_path="$datadir/data"
|
||||||
SSH_PATH="$DATADIR/.ssh"
|
ssh_path="$datadir/.ssh"
|
||||||
|
|
||||||
# Detect the system architecture to download the right tarball
|
# Detect the system architecture to download the right tarball
|
||||||
# NOTE: `uname -m` is more accurate and universal than `arch`
|
# NOTE: `uname -m` is more accurate and universal than `arch`
|
||||||
@ -36,10 +36,10 @@ fi
|
|||||||
create_dir() {
|
create_dir() {
|
||||||
mkdir -p "$final_path/data"
|
mkdir -p "$final_path/data"
|
||||||
mkdir -p "$final_path/custom/conf"
|
mkdir -p "$final_path/custom/conf"
|
||||||
mkdir -p "$SSH_PATH"
|
mkdir -p "$ssh_path"
|
||||||
mkdir -p "$REPO_PATH"
|
mkdir -p "$repos_path"
|
||||||
mkdir -p "$DATA_PATH/avatars"
|
mkdir -p "$data_path/avatars"
|
||||||
mkdir -p "$DATA_PATH/attachments"
|
mkdir -p "$data_path/attachments"
|
||||||
mkdir -p "/var/log/$app"
|
mkdir -p "/var/log/$app"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,46 +53,17 @@ config_nginx() {
|
|||||||
|
|
||||||
config_gitea() {
|
config_gitea() {
|
||||||
ssh_port=$(grep -P "Port\s+\d+" /etc/ssh/sshd_config | grep -P -o "\d+")
|
ssh_port=$(grep -P "Port\s+\d+" /etc/ssh/sshd_config | grep -P -o "\d+")
|
||||||
ynh_backup_if_checksum_is_different --file "$final_path/custom/conf/app.ini"
|
ynh_add_config --template="app.ini" --destination="$final_path/custom/conf/app.ini"
|
||||||
|
|
||||||
cp ../conf/app.ini "$final_path/custom/conf"
|
|
||||||
usermod -s /bin/bash $app
|
|
||||||
|
|
||||||
if [ "$path_url" = "/" ]
|
|
||||||
then
|
|
||||||
ynh_replace_string --match_string __URL__ --replace_string "$domain" --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
else
|
|
||||||
ynh_replace_string --match_string __URL__ --replace_string "$domain${path_url%/}" --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
fi
|
|
||||||
|
|
||||||
ynh_replace_string --match_string __REPOS_PATH__ --replace_string "$REPO_PATH" --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
ynh_replace_string --match_string __DB_PASSWORD__ --replace_string "$dbpass" --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
ynh_replace_string --match_string __DB_USER__ --replace_string "$dbuser" --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
ynh_replace_string --match_string __DOMAIN__ --replace_string "$domain" --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
ynh_replace_string --match_string __KEY__ --replace_string "$key" --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
ynh_replace_string --match_string __DATA_PATH__ --replace_string "$DATA_PATH" --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
ynh_replace_string --match_string __PORT__ --replace_string $port --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
ynh_replace_string --match_string __APP__ --replace_string $app --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
ynh_replace_string --match_string __SSH_PORT__ --replace_string $ssh_port --target_file "$final_path/custom/conf/app.ini"
|
|
||||||
|
|
||||||
ynh_store_file_checksum --file "$final_path/custom/conf/app.ini"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
set_permission() {
|
set_permission() {
|
||||||
chown -R $app:$app "$final_path"
|
chown -R $app:$app "$final_path"
|
||||||
chown -R $app:$app "/home/$app"
|
chown -R $app:$app "$datadir"
|
||||||
chown -R $app:$app "/var/log/$app"
|
chown -R $app:$app "/var/log/$app"
|
||||||
|
|
||||||
chmod u=rwX,g=rX,o= "$final_path"
|
chmod u=rwX,g=rX,o= "$final_path"
|
||||||
chmod u=rwx,g=rx,o= "$final_path/gitea"
|
chmod u=rwx,g=rx,o= "$final_path/gitea"
|
||||||
chmod u=rwx,g=rx,o= "$final_path/custom/conf/app.ini"
|
chmod u=rwx,g=rx,o= "$final_path/custom/conf/app.ini"
|
||||||
chmod u=rwX,g=rX,o= "/home/$app"
|
chmod u=rwX,g=rX,o= "$datadir"
|
||||||
chmod u=rwX,g=rX,o= "/var/log/$app"
|
chmod u=rwX,g=rX,o= "/var/log/$app"
|
||||||
}
|
}
|
||||||
|
|
||||||
set_access_settings() {
|
|
||||||
if [ "$is_public" == '1' ];
|
|
||||||
then
|
|
||||||
ynh_permission_update --permission "main" --add "visitors"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
@ -32,7 +32,7 @@ ynh_backup --src_path "$final_path"
|
|||||||
|
|
||||||
# Copy the data files
|
# Copy the data files
|
||||||
ynh_print_info --message="Backing up user data..."
|
ynh_print_info --message="Backing up user data..."
|
||||||
ynh_backup --src_path "$DATADIR" --is_big=1
|
ynh_backup --src_path "$datadir" --is_big=1
|
||||||
|
|
||||||
ynh_print_info --message="Backing up configuration..."
|
ynh_print_info --message="Backing up configuration..."
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ domain=$YNH_APP_NEW_DOMAIN
|
|||||||
path_url=$(ynh_normalize_url_path --path_url ${YNH_APP_NEW_PATH:-'/'})
|
path_url=$(ynh_normalize_url_path --path_url ${YNH_APP_NEW_PATH:-'/'})
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
dbpass=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
db_password=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
||||||
admin=$(ynh_app_setting_get --app $app --key adminusername)
|
admin=$(ynh_app_setting_get --app $app --key adminusername)
|
||||||
key=$(ynh_app_setting_get --app $app --key secret_key)
|
key=$(ynh_app_setting_get --app $app --key secret_key)
|
||||||
port=$(ynh_app_setting_get --app $app --key web_port)
|
port=$(ynh_app_setting_get --app $app --key web_port)
|
||||||
@ -55,7 +55,7 @@ config_gitea
|
|||||||
|
|
||||||
# RELOAD services
|
# RELOAD services
|
||||||
ynh_script_progression --message="Starting services..."
|
ynh_script_progression --message="Starting services..."
|
||||||
ynh_systemd_action -l "Starting new server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10 -a restart
|
ynh_systemd_action -l "Starting new Web server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10 -a restart
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
# Store the checksum with the 'INTERNAL_TOKEN' value.
|
# Store the checksum with the 'INTERNAL_TOKEN' value.
|
||||||
|
@ -33,15 +33,15 @@ ynh_user_exists "$admin" \
|
|||||||
# Check Final Path availability
|
# Check Final Path availability
|
||||||
test ! -e "$final_path" || ynh_die --message "This path already contains a folder"
|
test ! -e "$final_path" || ynh_die --message "This path already contains a folder"
|
||||||
|
|
||||||
if [ -e "$DATADIR" ]; then
|
if [ -e "$datadir" ]; then
|
||||||
old_data_dir_path="$DATADIR$(date '+%Y%m%d.%H%M%S')"
|
old_data_dir_path="$datadir$(date '+%Y%m%d.%H%M%S')"
|
||||||
ynh_print_warn "A data directory already exist. Data was renamed to $old_data_dir_path"
|
ynh_print_warn "A data directory already exist. Data was renamed to $old_data_dir_path"
|
||||||
mv "$DATADIR" "$old_data_dir_path"
|
mv "$datadir" "$old_data_dir_path"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Generate random password and key
|
# Generate random password and key
|
||||||
ynh_script_progression --message="Defining db password and key..."
|
ynh_script_progression --message="Defining db password and key..."
|
||||||
dbpass=$(ynh_string_random)
|
db_password=$(ynh_string_random)
|
||||||
key=$(ynh_string_random)
|
key=$(ynh_string_random)
|
||||||
|
|
||||||
# Find available ports
|
# Find available ports
|
||||||
@ -49,9 +49,8 @@ port=$(ynh_find_port --port 6000)
|
|||||||
|
|
||||||
# Store Settings
|
# Store Settings
|
||||||
ynh_script_progression --message="Storing installation settings..."
|
ynh_script_progression --message="Storing installation settings..."
|
||||||
ynh_app_setting_set --app $app --key mysqlpwd --value $dbpass
|
ynh_app_setting_set --app $app --key mysqlpwd --value $db_password
|
||||||
ynh_app_setting_set --app $app --key adminusername --value $admin
|
ynh_app_setting_set --app $app --key adminusername --value $admin
|
||||||
ynh_app_setting_set --app $app --key is_public --value $is_public
|
|
||||||
ynh_app_setting_set --app $app --key secret_key --value $key
|
ynh_app_setting_set --app $app --key secret_key --value $key
|
||||||
ynh_app_setting_set --app $app --key web_port --value $port
|
ynh_app_setting_set --app $app --key web_port --value $port
|
||||||
|
|
||||||
@ -61,11 +60,11 @@ ynh_app_setting_set --app $app --key web_port --value $port
|
|||||||
|
|
||||||
# Initialize database and store mysql password for upgrade
|
# Initialize database and store mysql password for upgrade
|
||||||
ynh_script_progression --message="Configuring MySQL database..."
|
ynh_script_progression --message="Configuring MySQL database..."
|
||||||
ynh_mysql_create_db "$dbname" "$dbuser" "$dbpass"
|
ynh_mysql_create_db "$dbname" "$db_user" "$db_password"
|
||||||
|
|
||||||
# Add users
|
# Add users
|
||||||
ynh_script_progression --message="Configuring system user..."
|
ynh_script_progression --message="Configuring system user..."
|
||||||
ynh_system_user_create --username=$app --home_dir=/home/$app --use_shell
|
ynh_system_user_create --username=$app --home_dir=$datadir --use_shell
|
||||||
# Add ssh permission for gitea user
|
# Add ssh permission for gitea user
|
||||||
adduser $app ssh.app
|
adduser $app ssh.app
|
||||||
|
|
||||||
@ -99,14 +98,14 @@ ynh_script_progression --message="Configuring application, step 2/2..."
|
|||||||
systemctl start "$app".service
|
systemctl start "$app".service
|
||||||
|
|
||||||
# Wait untill login_source mysql table is created
|
# Wait untill login_source mysql table is created
|
||||||
while ! $(ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" <<< "SELECT * FROM login_source;" &>/dev/null)
|
while ! $(ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" <<< "SELECT * FROM login_source;" &>/dev/null)
|
||||||
do
|
do
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
|
||||||
# Add ldap config
|
# Add ldap config
|
||||||
ynh_replace_string --match_string "__APP__" --replace_string "$app" --target_file ../conf/login_source.sql
|
ynh_replace_string --match_string "__APP__" --replace_string "$app" --target_file ../conf/login_source.sql
|
||||||
ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" < ../conf/login_source.sql
|
ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" < ../conf/login_source.sql
|
||||||
|
|
||||||
# SETUP FAIL2BAN
|
# SETUP FAIL2BAN
|
||||||
ynh_script_progression --message="Configuring fail2ban..."
|
ynh_script_progression --message="Configuring fail2ban..."
|
||||||
@ -117,8 +116,11 @@ ynh_add_fail2ban_config --logpath "/var/log/$app/gitea.log" --failregex ".*Faile
|
|||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Unprotect root from SSO if public
|
# Unprotect root from SSO if public
|
||||||
ynh_script_progression --message="Protecting directory"
|
ynh_script_progression --message="Configuring permissions..."
|
||||||
set_access_settings
|
if [ "$is_public" == '1' ];
|
||||||
|
then
|
||||||
|
ynh_permission_update --permission "main" --add "visitors"
|
||||||
|
fi
|
||||||
|
|
||||||
# Create permission
|
# Create permission
|
||||||
ynh_script_progression --message="Configuring permissions"
|
ynh_script_progression --message="Configuring permissions"
|
||||||
@ -137,7 +139,7 @@ ynh_app_setting_set --app $app --key upstream_version --value $(ynh_app_upstream
|
|||||||
|
|
||||||
# Reload services
|
# Reload services
|
||||||
ynh_script_progression --message="Starting gitea services..." --weight=3
|
ynh_script_progression --message="Starting gitea services..." --weight=3
|
||||||
ynh_systemd_action -l "Starting new server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10
|
ynh_systemd_action -l "Starting new Web server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
# Store the checksum with the 'INTERNAL_TOKEN' value.
|
# Store the checksum with the 'INTERNAL_TOKEN' value.
|
||||||
|
@ -27,7 +27,7 @@ systemctl stop "$app".service
|
|||||||
# Drop MySQL database and user
|
# Drop MySQL database and user
|
||||||
ynh_script_progression --message="Removing databases..."
|
ynh_script_progression --message="Removing databases..."
|
||||||
ynh_mysql_drop_db "$dbname" 2>/dev/null
|
ynh_mysql_drop_db "$dbname" 2>/dev/null
|
||||||
ynh_mysql_drop_user "$dbuser" 2>/dev/null
|
ynh_mysql_drop_user "$db_user" 2>/dev/null
|
||||||
|
|
||||||
# Delete app directory and configurations
|
# Delete app directory and configurations
|
||||||
ynh_script_progression --message="Removing code..."
|
ynh_script_progression --message="Removing code..."
|
||||||
@ -58,7 +58,7 @@ yunohost service remove "$app"
|
|||||||
ynh_script_progression --message="Removing fail2ban configuration..."
|
ynh_script_progression --message="Removing fail2ban configuration..."
|
||||||
ynh_remove_fail2ban_config
|
ynh_remove_fail2ban_config
|
||||||
|
|
||||||
ynh_print_info --message="Due of the backup core only feature the data directory in '$DATADIR' was not removed. It need to be removed manually to purge app user data."
|
ynh_print_info --message="Due of the backup core only feature the data directory in '$datadir' was not removed. It need to be removed manually to purge app user data."
|
||||||
|
|
||||||
ynh_script_progression --message="Removal of $app completed" --last
|
ynh_script_progression --message="Removal of $app completed" --last
|
||||||
sleep 1
|
sleep 1
|
||||||
|
@ -19,14 +19,11 @@ ynh_script_progression --message="Loading settings..."
|
|||||||
# Retrieve old app settings
|
# Retrieve old app settings
|
||||||
domain=$(ynh_app_setting_get --app $app --key domain)
|
domain=$(ynh_app_setting_get --app $app --key domain)
|
||||||
path_url=$(ynh_app_setting_get --app $app --key path)
|
path_url=$(ynh_app_setting_get --app $app --key path)
|
||||||
dbpass=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
db_password=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
||||||
admin=$(ynh_app_setting_get --app $app --key adminusername)
|
admin=$(ynh_app_setting_get --app $app --key adminusername)
|
||||||
port=$(ynh_app_setting_get --app $app --key web_port)
|
port=$(ynh_app_setting_get --app $app --key web_port)
|
||||||
upstream_version=$(ynh_app_setting_get $app upstream_version)
|
upstream_version=$(ynh_app_setting_get $app upstream_version)
|
||||||
|
|
||||||
# Check domain/path availability with app helper
|
|
||||||
ynh_webpath_available --domain $domain --path_url $path_url || ynh_die --message "$domain is not available as domain, please use an other domain."
|
|
||||||
|
|
||||||
# Check user parameter
|
# Check user parameter
|
||||||
ynh_user_exists "$admin" \
|
ynh_user_exists "$admin" \
|
||||||
|| ynh_die --message "The chosen admin user does not exist."
|
|| ynh_die --message "The chosen admin user does not exist."
|
||||||
@ -40,7 +37,7 @@ test ! -e "$final_path" || ynh_die --message "This path already contains a folde
|
|||||||
|
|
||||||
# Add users
|
# Add users
|
||||||
ynh_script_progression --message="Configuring system user..."
|
ynh_script_progression --message="Configuring system user..."
|
||||||
ynh_system_user_create --username=$app --home_dir=/home/$app --use_shell
|
ynh_system_user_create --username=$app --home_dir=$datadir --use_shell
|
||||||
|
|
||||||
# Restore all files
|
# Restore all files
|
||||||
ynh_script_progression --message="Restoring files..." --weight=10
|
ynh_script_progression --message="Restoring files..." --weight=10
|
||||||
@ -48,8 +45,8 @@ ynh_restore
|
|||||||
|
|
||||||
# Create and restore the database
|
# Create and restore the database
|
||||||
ynh_script_progression --message="Restoring database..." --weight=3
|
ynh_script_progression --message="Restoring database..." --weight=3
|
||||||
ynh_mysql_create_db "$dbname" "$dbuser" "$dbpass"
|
ynh_mysql_create_db "$dbname" "$db_user" "$db_password"
|
||||||
ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" < ./db.sql
|
ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" < ./db.sql
|
||||||
|
|
||||||
# Restore systemd files
|
# Restore systemd files
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
@ -78,7 +75,7 @@ yunohost service add "$app" --log /var/log/"$app"/gitea.log
|
|||||||
# Reload services
|
# Reload services
|
||||||
ynh_script_progression --message="Reloading services..."
|
ynh_script_progression --message="Reloading services..."
|
||||||
systemctl reload nginx.service
|
systemctl reload nginx.service
|
||||||
ynh_systemd_action -l "Starting new server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10
|
ynh_systemd_action -l "Starting new Web server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
ynh_script_progression --message="Restoration completed for $app" --last
|
ynh_script_progression --message="Restoration completed for $app" --last
|
||||||
|
@ -18,10 +18,9 @@ ynh_abort_if_errors
|
|||||||
ynh_script_progression --message="Loading installation settings..."
|
ynh_script_progression --message="Loading installation settings..."
|
||||||
domain=$(ynh_app_setting_get --app $app --key domain)
|
domain=$(ynh_app_setting_get --app $app --key domain)
|
||||||
path_url=$(ynh_normalize_url_path --path_url $(ynh_app_setting_get --app $app --key path))
|
path_url=$(ynh_normalize_url_path --path_url $(ynh_app_setting_get --app $app --key path))
|
||||||
dbpass=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
db_password=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
||||||
admin=$(ynh_app_setting_get --app $app --key adminusername)
|
admin=$(ynh_app_setting_get --app $app --key adminusername)
|
||||||
key=$(ynh_app_setting_get --app $app --key secret_key)
|
key=$(ynh_app_setting_get --app $app --key secret_key)
|
||||||
is_public=$(ynh_app_setting_get --app $app --key is_public)
|
|
||||||
port=$(ynh_app_setting_get --app $app --key web_port)
|
port=$(ynh_app_setting_get --app $app --key web_port)
|
||||||
upstream_version=$(ynh_app_setting_get --app $app --key upstream_version)
|
upstream_version=$(ynh_app_setting_get --app $app --key upstream_version)
|
||||||
|
|
||||||
@ -56,16 +55,16 @@ ynh_handle_app_migration --migration_id=gogs --migration_list=gogs_migrations
|
|||||||
if [[ $migration_process -eq 1 ]]; then
|
if [[ $migration_process -eq 1 ]]; then
|
||||||
# Reload variables
|
# Reload variables
|
||||||
dbname=$app
|
dbname=$app
|
||||||
dbuser=$app
|
db_user=$app
|
||||||
final_path="/opt/$app"
|
final_path="/opt/$app"
|
||||||
DATADIR="/home/$app"
|
datadir="/home/""$app"
|
||||||
REPO_PATH="$DATADIR/repositories"
|
repos_path="$datadir/repositories"
|
||||||
DATA_PATH="$DATADIR/data"
|
data_path="$datadir/data"
|
||||||
|
|
||||||
# Replace the user
|
# Replace the user
|
||||||
ynh_system_user_delete $old_app
|
ynh_system_user_delete $old_app
|
||||||
test getent passwd "$app" &>/dev/null || \
|
test getent passwd "$app" &>/dev/null || \
|
||||||
useradd -d "$DATADIR" --system --user-group "$app" --shell /bin/bash || \
|
useradd -d "$datadir" --system --user-group "$app" --shell /bin/bash || \
|
||||||
ynh_die --message "Unable to create $app system account"
|
ynh_die --message "Unable to create $app system account"
|
||||||
|
|
||||||
# Clean old binary
|
# Clean old binary
|
||||||
@ -74,14 +73,14 @@ if [[ $migration_process -eq 1 ]]; then
|
|||||||
|
|
||||||
# Restore authentication from SQL database
|
# Restore authentication from SQL database
|
||||||
ynh_replace_string --match_string __APP__ --replace_string "$app" --target_file ../conf/login_source.sql
|
ynh_replace_string --match_string __APP__ --replace_string "$app" --target_file ../conf/login_source.sql
|
||||||
ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" < ../conf/login_source.sql
|
ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" < ../conf/login_source.sql
|
||||||
|
|
||||||
# Fix hooks
|
# Fix hooks
|
||||||
if [[ -e $REPO_PATH ]];then
|
if [[ -e $repos_path ]];then
|
||||||
ls $REPO_PATH/*/*.git/hooks/pre-receive | while read p; do
|
ls $repos_path/*/*.git/hooks/pre-receive | while read p; do
|
||||||
ynh_secure_remove --file=$p
|
ynh_secure_remove --file=$p
|
||||||
done
|
done
|
||||||
ls $REPO_PATH/*/*.git/hooks/post-receive | while read p; do
|
ls $repos_path/*/*.git/hooks/post-receive | while read p; do
|
||||||
ynh_secure_remove --file=$p
|
ynh_secure_remove --file=$p
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@ -89,6 +88,11 @@ if [[ $migration_process -eq 1 ]]; then
|
|||||||
upstream_version="0.0.1"
|
upstream_version="0.0.1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Move data directory
|
||||||
|
if [ -e "/home/""$app" ] && [ ! -e $datadir ]; then
|
||||||
|
mv "/home/""$app" "$datadir"
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD UPGRADE STEPS
|
# STANDARD UPGRADE STEPS
|
||||||
#=================================================
|
#=================================================
|
||||||
@ -224,11 +228,7 @@ if ! ynh_permission_exists --permission admin; then
|
|||||||
ynh_permission_create --permission 'admin' --allowed "$admin"
|
ynh_permission_create --permission 'admin' --allowed "$admin"
|
||||||
# Update ldap config
|
# Update ldap config
|
||||||
ynh_replace_string --match_string "__APP__" --replace_string "$app" --target_file ../conf/login_source.sql
|
ynh_replace_string --match_string "__APP__" --replace_string "$app" --target_file ../conf/login_source.sql
|
||||||
ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" < ../conf/login_source.sql
|
ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" < ../conf/login_source.sql
|
||||||
fi
|
|
||||||
if [ "$is_public" == '1' ];
|
|
||||||
then
|
|
||||||
ynh_permission_update --permission "main" --add "visitors"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add gitea to YunoHost's monitored services
|
# Add gitea to YunoHost's monitored services
|
||||||
@ -245,13 +245,9 @@ set_permission
|
|||||||
# Save Version
|
# Save Version
|
||||||
ynh_app_setting_set --app $app --key upstream_version --value $(ynh_app_upstream_version)
|
ynh_app_setting_set --app $app --key upstream_version --value $(ynh_app_upstream_version)
|
||||||
|
|
||||||
# Unprotect root from SSO if public
|
|
||||||
ynh_script_progression --message="Configuring permissions..."
|
|
||||||
set_access_settings
|
|
||||||
|
|
||||||
# Reload services
|
# Reload services
|
||||||
ynh_script_progression --message="Starting gitea services..." --weight=3
|
ynh_script_progression --message="Starting gitea services..." --weight=3
|
||||||
ynh_systemd_action -l "Starting new server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10
|
ynh_systemd_action -l "Starting new Web server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
# Store the checksum with the 'INTERNAL_TOKEN' value.
|
# Store the checksum with the 'INTERNAL_TOKEN' value.
|
||||||
|
Loading…
Reference in New Issue
Block a user