mirror of
https://github.com/YunoHost-Apps/gitea_ynh.git
synced 2024-09-03 20:36:22 +02:00
apply last example_ynh
This commit is contained in:
parent
4a792efc12
commit
d04a90ec4d
96 changed files with 1039 additions and 1193 deletions
|
@ -1,24 +1,24 @@
|
|||
;; General
|
||||
; Manifest
|
||||
domain="domain.tld" (DOMAIN)
|
||||
path="/path" (PATH)
|
||||
admin="john" (USER)
|
||||
is_public=1 (PUBLIC|public=1|private=0)
|
||||
; Checks
|
||||
pkg_linter=1
|
||||
setup_sub_dir=1
|
||||
setup_root=1
|
||||
setup_nourl=0
|
||||
setup_private=1
|
||||
setup_public=1
|
||||
upgrade=1
|
||||
upgrade=1 from_commit=349992d4f3921e4e1adb37a0cace4a5a9eb67099
|
||||
upgrade=1 from_commit=4e078e91129725c8b09ba551ab2a04e0328a45b3
|
||||
backup_restore=1
|
||||
multi_instance=1
|
||||
incorrect_path=0
|
||||
port_already_use=1 (6000)
|
||||
change_url=1
|
||||
; Manifest
|
||||
domain="domain.tld"
|
||||
path="/path"
|
||||
is_public=1
|
||||
admin="john"
|
||||
; Checks
|
||||
pkg_linter=1
|
||||
setup_sub_dir=1
|
||||
setup_root=1
|
||||
setup_nourl=0
|
||||
setup_private=1
|
||||
setup_public=1
|
||||
upgrade=1
|
||||
upgrade=1 from_commit=349992d4f3921e4e1adb37a0cace4a5a9eb67099
|
||||
upgrade=1 from_commit=4e078e91129725c8b09ba551ab2a04e0328a45b3
|
||||
backup_restore=1
|
||||
multi_instance=1
|
||||
incorrect_path=0
|
||||
port_already_use=1 (6000)
|
||||
change_url=1
|
||||
;;; Upgrade options
|
||||
; commit=349992d4f3921e4e1adb37a0cace4a5a9eb67099
|
||||
name=First package version
|
||||
|
|
14
conf/app.ini
14
conf/app.ini
|
@ -7,14 +7,14 @@ RUN_MODE = prod
|
|||
DB_TYPE = mysql
|
||||
HOST = 127.0.0.1:3306
|
||||
NAME = __DB_USER__
|
||||
USER = __DB_USER__
|
||||
PASSWD = __DB_PASSWORD__
|
||||
USER = __DB_NAME__
|
||||
PASSWD = __DB_PWD__
|
||||
SSL_MODE = disable
|
||||
PATH = data/gitea.db
|
||||
LOG_SQL = false
|
||||
|
||||
[repository]
|
||||
ROOT = __REPOS_PATH__
|
||||
ROOT = __DATADIR__/repositories
|
||||
FORCE_PRIVATE = false
|
||||
|
||||
[server]
|
||||
|
@ -25,7 +25,7 @@ ROOT_URL = https://__DOMAIN____PATH_URL__
|
|||
DISABLE_SSH = false
|
||||
SSH_PORT = __SSH_PORT__
|
||||
OFFLINE_MODE = false
|
||||
APP_DATA_PATH = __DATA_PATH__
|
||||
APP_DATA_PATH = __DATADIR__/data
|
||||
LANDING_PAGE = explore
|
||||
|
||||
[mailer]
|
||||
|
@ -44,10 +44,10 @@ ENABLE_REVERSE_PROXY_AUTHENTICATION = true
|
|||
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false
|
||||
|
||||
[picture]
|
||||
AVATAR_UPLOAD_PATH = __DATA_PATH__/avatars
|
||||
AVATAR_UPLOAD_PATH = __DATADIR__/data/avatars
|
||||
|
||||
[attachment]
|
||||
PATH = __DATA_PATH__/attachments
|
||||
PATH = __DATADIR__/data/attachments
|
||||
|
||||
[session]
|
||||
PROVIDER = memory
|
||||
|
@ -71,6 +71,6 @@ XORM = file
|
|||
|
||||
[security]
|
||||
INSTALL_LOCK = true
|
||||
SECRET_KEY = __KEY__
|
||||
SECRET_KEY = __SECRET_KEY__
|
||||
REVERSE_PROXY_AUTHENTICATION_USER = REMOTE-USER
|
||||
REVERSE_PROXY_TRUSTED_PROXIES = 127.0.0.0/8,::1/128
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.0.2/gitea-1.0.2-linux-arm64
|
||||
SOURCE_SUM=b13562f19c41602d2b4f1601931e9d150de8273682969c081a4a5029622eb8b3
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.1.4/gitea-1.1.4-linux-arm64
|
||||
SOURCE_SUM=3f7a01669bbad671907942cece744f12390a37771fd8e1142afffeb9ee1f31f7
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.10.3/gitea-1.10.3-linux-arm64
|
||||
SOURCE_SUM=3a0b6470a205c6b9f19a8b31469728f29818c58dd17e85a81ac4a928ab9f9512
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.11.7/gitea-1.11.7-linux-arm64
|
||||
SOURCE_SUM=71bc3b41955461491ca3b1a1e4abeaf70dc0cbd15e43e59e2178514b8f1ef0f8
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.12.6/gitea-1.12.6-linux-arm64
|
||||
SOURCE_SUM=b1e4620191d817b6d6975358c35197bf659bce04a5690bea2d1e6511054d0866
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.13.7/gitea-1.13.7-linux-arm64
|
||||
SOURCE_SUM=cae7529e75ccfb0e4f3270c197777f9dbdcf66a516d3b4e102d1e208ff9a0224
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.14.6/gitea-1.14.6-linux-arm64
|
||||
SOURCE_SUM=d0e177368445748dcbfc3a082e2f1c68317d1490e11574224fb12ca01e91e15e
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.15.11/gitea-1.15.11-linux-arm64
|
||||
SOURCE_SUM=a41a702d24e463c44dbc57a30551938a5e4c9377995065aca07e9dfbb22d5afc
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.2.3/gitea-1.2.3-linux-arm64
|
||||
SOURCE_SUM=e779d43f2050c43138509a40540bdd4d16a11e8b76a6f66b447623ead6466fca
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.3.3/gitea-1.3.3-linux-arm64
|
||||
SOURCE_SUM=348993e5fd119b6708b96a29067ddc41d8fefe4c0d5abf540d1e89e9886202ce
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.4.3/gitea-1.4.3-linux-arm64
|
||||
SOURCE_SUM=af6a55516b94f5bfb7a9744086bd92124e6cba8c3d610935e5fe4c8ba42427ef
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.5.3/gitea-1.5.3-linux-arm64
|
||||
SOURCE_SUM=cdddf46e1711c7964cfd18b4ae37109d4865996b26426d4badaa78da969cfbae
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.6.4/gitea-1.6.4-linux-arm64
|
||||
SOURCE_SUM=30252ca0adf170e84f52499a502195ad762f4fdca941f40ded80292790eaa2d3
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.7.3/gitea-1.7.3-linux-arm64
|
||||
SOURCE_SUM=dc34250ddbcdf3096a7355db419fff615d7fd488e0336bec9bc880091f549c23
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.8.3/gitea-1.8.3-linux-arm64
|
||||
SOURCE_SUM=e3569745122a793dbf1e86940a00c8843c0c3022513a9d9004593823b9e6abe1
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.9.6/gitea-1.9.6-linux-arm64
|
||||
SOURCE_SUM=f11e46fdca921e81255c4b052969e5c6085f24245e6e0da726c9627aaec78252
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.0.2/gitea-1.0.2-linux-arm-6
|
||||
SOURCE_SUM=d8cd551840b4b5620609eba92e810f4963b259d2809a34724e8fae7b1db00d91
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.1.4/gitea-1.1.4-linux-arm-6
|
||||
SOURCE_SUM=f39bce7927b363402d37774484a5d0c893ee55595175e3a4d14a12126bccdd80
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.10.3/gitea-1.10.3-linux-arm-6
|
||||
SOURCE_SUM=54ca0b8ca9f927c91c69c61da134738b66faf0be68e310f140e56c4f14fe7ecf
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.11.7/gitea-1.11.7-linux-arm-6
|
||||
SOURCE_SUM=f106d1a846da7abfd8a7dbf20a5d9c60502e1ed034a31f5503f460dea4d0c77d
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.12.6/gitea-1.12.6-linux-arm-6
|
||||
SOURCE_SUM=116caba20b596886b03309df0e319a5885ee72e3740e62ac488e4e38f424ca88
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.13.7/gitea-1.13.7-linux-arm-6
|
||||
SOURCE_SUM=ed4a0c39e1d68592210d5be78ef90125760f24cf1448fb864081265c93823ef7
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.14.6/gitea-1.14.6-linux-arm-6
|
||||
SOURCE_SUM=4c075c11ee6b89b6c436c94e47290cf7daeff2006bb7ca1fbe6f22db4482e16f
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.15.11/gitea-1.15.11-linux-arm-6
|
||||
SOURCE_SUM=c60d364d8cb7e25b341cb7d9988cbc7b3485ff5aa994e021980dc47996a870f9
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.2.3/gitea-1.2.3-linux-arm-6
|
||||
SOURCE_SUM=06023c75babee8c9d76cee2886890ae9fe82b84a0e723c11ef9fafe3c5ba9539
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.3.3/gitea-1.3.3-linux-arm-6
|
||||
SOURCE_SUM=b1b20d5905cd275b384da2a08d36ed0730801f23fb33df5c45302c9a6ec62dc6
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.4.3/gitea-1.4.3-linux-arm-6
|
||||
SOURCE_SUM=d7341bd9536dbc7b1c3935efe3b0b6be953b0c3f0390b9b794e8fd54d58fee5b
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.5.3/gitea-1.5.3-linux-arm-6
|
||||
SOURCE_SUM=6d16b6bcc3cf804cc9b4e0e9ce3aa42e6699662f99998a06c25c7a43df64b0b6
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.6.4/gitea-1.6.4-linux-arm-6
|
||||
SOURCE_SUM=30bb6220cde6b35522bdaf5ffca0d2daba8a0eebee56e3f11cd40d3e5f8f5669
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.7.3/gitea-1.7.3-linux-arm-6
|
||||
SOURCE_SUM=c38394be40634b0e1bd0fac0898474ff50e4535af610c12ee16ec3cabd2d4771
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.8.3/gitea-1.8.3-linux-arm-6
|
||||
SOURCE_SUM=920b74ec10be323e5dc684fe3b5c3b157bf6f1d6cca0ee1c4f9693f766d1574d
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.9.6/gitea-1.9.6-linux-arm-6
|
||||
SOURCE_SUM=b8f825d701d9205b529acfc9c311fd079af8f0b4ae9267b2dab5c12aee339c57
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.0.2/gitea-1.0.2-linux-arm-7
|
||||
SOURCE_SUM=1533c4b9142d89e3ac78ac9650a1f1507d24f9ac7afcdbe73c83ae5517c36165
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.1.4/gitea-1.1.4-linux-arm-7
|
||||
SOURCE_SUM=3b66cbca2f6ad10c8323c3d35280d63d17e192ab5e4aaa7415f5048710c00705
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,8 +0,0 @@
|
|||
# The armv7 build is brocken
|
||||
# See : https://github.com/go-gitea/gitea/issues/6700
|
||||
# Use temporary the armv6 binary
|
||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.10.3/gitea-1.10.3-linux-arm-6
|
||||
SOURCE_SUM=54ca0b8ca9f927c91c69c61da134738b66faf0be68e310f140e56c4f14fe7ecf
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,8 +0,0 @@
|
|||
# The armv7 build is brocken
|
||||
# See : https://github.com/go-gitea/gitea/issues/6700
|
||||
# Use temporary the armv6 binary
|
||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.11.7/gitea-1.11.7-linux-arm-6
|
||||
SOURCE_SUM=f106d1a846da7abfd8a7dbf20a5d9c60502e1ed034a31f5503f460dea4d0c77d
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,8 +0,0 @@
|
|||
# The armv7 build is brocken
|
||||
# See : https://github.com/go-gitea/gitea/issues/6700
|
||||
# Use temporary the armv6 binary
|
||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.12.6/gitea-1.12.6-linux-arm-6
|
||||
SOURCE_SUM=116caba20b596886b03309df0e319a5885ee72e3740e62ac488e4e38f424ca88
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,8 +0,0 @@
|
|||
# The armv7 build is brocken
|
||||
# See : https://github.com/go-gitea/gitea/issues/6700
|
||||
# Use temporary the armv6 binary
|
||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.13.7/gitea-1.13.7-linux-arm-6
|
||||
SOURCE_SUM=ed4a0c39e1d68592210d5be78ef90125760f24cf1448fb864081265c93823ef7
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,8 +0,0 @@
|
|||
# The armv7 build is brocken
|
||||
# See : https://github.com/go-gitea/gitea/issues/6700
|
||||
# Use temporary the armv6 binary
|
||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.14.6/gitea-1.14.6-linux-arm-6
|
||||
SOURCE_SUM=4c075c11ee6b89b6c436c94e47290cf7daeff2006bb7ca1fbe6f22db4482e16f
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,8 +0,0 @@
|
|||
# The armv7 build is brocken
|
||||
# See : https://github.com/go-gitea/gitea/issues/6700
|
||||
# Use temporary the armv6 binary
|
||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.15.11/gitea-1.15.11-linux-arm-6
|
||||
SOURCE_SUM=c60d364d8cb7e25b341cb7d9988cbc7b3485ff5aa994e021980dc47996a870f9
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.2.3/gitea-1.2.3-linux-arm-7
|
||||
SOURCE_SUM=92a1a6fccae6d9382dccee90223457850124a8a9e9505401a04f507b8a90c1dd
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.3.3/gitea-1.3.3-linux-arm-7
|
||||
SOURCE_SUM=1f52cbaf97ca70cf6db5c152f6cff7921e9b066ffbe21ee4015616946c9d4251
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.4.3/gitea-1.4.3-linux-arm-7
|
||||
SOURCE_SUM=2a93d7a09f0f9b999651f156a4c0c65a1d4da0c75a68a13bdd0b920082d514de
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.5.3/gitea-1.5.3-linux-arm-7
|
||||
SOURCE_SUM=eb939edb6cdc46702109410f38e358cc572564307e619c4798b6b8b99d6ec7e5
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.6.4/gitea-1.6.4-linux-arm-7
|
||||
SOURCE_SUM=e78d31922e42ccaaf6566f32e249fb6ba4af2876102c6248b3ba32d051e69327
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.7.3/gitea-1.7.3-linux-arm-7
|
||||
SOURCE_SUM=fd4ba028a30eb2fac1f8570fd3f6157f0c46c21992a2062dd7a6751cc8a47f2f
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,8 +0,0 @@
|
|||
# The armv7 build is brocken
|
||||
# See : https://github.com/go-gitea/gitea/issues/6700
|
||||
# Use temporary the armv6 binary
|
||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.8.3/gitea-1.8.3-linux-arm-6
|
||||
SOURCE_SUM=920b74ec10be323e5dc684fe3b5c3b157bf6f1d6cca0ee1c4f9693f766d1574d
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,8 +0,0 @@
|
|||
# The armv7 build is brocken
|
||||
# See : https://github.com/go-gitea/gitea/issues/6700
|
||||
# Use temporary the armv6 binary
|
||||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.9.6/gitea-1.9.6-linux-arm-6
|
||||
SOURCE_SUM=b8f825d701d9205b529acfc9c311fd079af8f0b4ae9267b2dab5c12aee339c57
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.0.2/gitea-1.0.2-linux-386
|
||||
SOURCE_SUM=966840c7b815662332c3785a65685bed08c8eab508b8af0fe41307b5ebce8399
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.1.4/gitea-1.1.4-linux-386
|
||||
SOURCE_SUM=d3fc91e4da9282abc2785bb96d1d805c85ae0a253228c2277e21fb332946c0fe
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.10.3/gitea-1.10.3-linux-386
|
||||
SOURCE_SUM=829946f7ba6fced84d42718039db4be4371e10a3166f44ee22c9bfee35747954
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.11.7/gitea-1.11.7-linux-386
|
||||
SOURCE_SUM=e176c650ab1dd9735014e5a2c29f15585b988ead9d800d02763e0f4adf283496
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.12.6/gitea-1.12.6-linux-386
|
||||
SOURCE_SUM=de287e912b32b0617e538f4c9c8d263fc16b5e2ba0b76ea9ab018011e9943316
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.13.7/gitea-1.13.7-linux-386
|
||||
SOURCE_SUM=927710a470af5f5ebab55bb3e4a0994f5832942c1c618e288226b57634232ec4
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.14.6/gitea-1.14.6-linux-386
|
||||
SOURCE_SUM=1a3382eb4faf60a5f5c590843f8e7cd1f7d0e78e99fe2511f86368340c0cfe2e
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.15.11/gitea-1.15.11-linux-386
|
||||
SOURCE_SUM=bad15648236e8da71de1a09b9fe0f21d955605c3aba92f6bcf7dc1f490791a8d
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.2.3/gitea-1.2.3-linux-386
|
||||
SOURCE_SUM=a8593c5e908c7e6c26620d45122d017e38441e915a4ea472543251772dc5a6d9
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.3.3/gitea-1.3.3-linux-386
|
||||
SOURCE_SUM=1b746cccffca446876ccc71efe328699f002622dab1d438e2142c8d7c23a22d7
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.4.3/gitea-1.4.3-linux-386
|
||||
SOURCE_SUM=760dda6f1cd76aa705915686a1d18837af3c4d912f731d1399048409a46ed2ea
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.5.3/gitea-1.5.3-linux-386
|
||||
SOURCE_SUM=292ef977c46b15650a68782666710bc3379bb4b22a3ae2cae761724569ca5857
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.6.4/gitea-1.6.4-linux-386
|
||||
SOURCE_SUM=1ccdca624582fbfb8c2b0a819b63b33e7b05a2d355bb4527cc55a6e367d5765d
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.7.3/gitea-1.7.3-linux-386
|
||||
SOURCE_SUM=a420bccb17e6e1c317c014475ce5a5bf8091da123cc55b0569660ae43ababf44
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.8.3/gitea-1.8.3-linux-386
|
||||
SOURCE_SUM=e58f4a88b01a4880f97ae32a92e869d978a434a9a876c6a3f4e4a5721e8c4bd6
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.9.6/gitea-1.9.6-linux-386
|
||||
SOURCE_SUM=0cd6db19ea9268633ba17d5a6d7d4c6cc01b79b1dc4a39e16fda110b4f5f5569
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.0.2/gitea-1.0.2-linux-amd64
|
||||
SOURCE_SUM=02ed9a3bb7bcd1c8f3d8888e51a0887b3c0f44b2a80d50c99f9e407e457545ab
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.1.4/gitea-1.1.4-linux-amd64
|
||||
SOURCE_SUM=1d8804ff7bed26464d61115b9d88ead8a7a7937ceed66fd0bfaceecd4be41274
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.10.3/gitea-1.10.3-linux-amd64
|
||||
SOURCE_SUM=e4e393da9f3dbcc6b200a58c0ba8c19ef02346ca24d6b273748b8346313053d0
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.11.7/gitea-1.11.7-linux-amd64
|
||||
SOURCE_SUM=9261c23b0063132eba61f995561d3a1e76eabfadd7370f8dea2989180c36e2ff
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.12.6/gitea-1.12.6-linux-amd64
|
||||
SOURCE_SUM=74417bc8e950b685de79c3a39655029f28d27c99e94adbe83c0ec22325d8771f
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.13.7/gitea-1.13.7-linux-amd64
|
||||
SOURCE_SUM=f1c0d3368d49f544183ec799005e7149fa566e3fd6eca1091d67d75b3f89f716
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.14.6/gitea-1.14.6-linux-amd64
|
||||
SOURCE_SUM=20cc0a89421695320b077c9fe4f16996f03aaf9d24f661f8d2255794551c849b
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.15.11/gitea-1.15.11-linux-amd64
|
||||
SOURCE_SUM=e2f62b67c311116fbf8e52b4c162dbd7684ce9c7f0370642c1d402fece43aa8f
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.2.3/gitea-1.2.3-linux-amd64
|
||||
SOURCE_SUM=bc71b6005617700c9b5654ddf5649aa9ee28dc2344d84254ddeb2678f4d44809
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.3.3/gitea-1.3.3-linux-amd64
|
||||
SOURCE_SUM=4f37b280eb9dcde7820e801e51ca07682faee703c220548da2f8aa9b6adb5231
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.4.3/gitea-1.4.3-linux-amd64
|
||||
SOURCE_SUM=fe60fca294baa24fe4862bbcfe29c92d5a8a883a48aadb80f3a1270cf5de9bd4
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.5.3/gitea-1.5.3-linux-amd64
|
||||
SOURCE_SUM=f84eb0b77b47d88b16b1de6ca443dab4a77e940835748d309956052887b9c507
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.6.4/gitea-1.6.4-linux-amd64
|
||||
SOURCE_SUM=e9508e04688e9840708c341125b47b43a2c12cad52185be4b7b6cf7a2fb8bb71
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.7.3/gitea-1.7.3-linux-amd64
|
||||
SOURCE_SUM=49b733a3272dc49cb869c1ba9624a9880168f27b8112197d0c7fa32411dbf625
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.8.3/gitea-1.8.3-linux-amd64
|
||||
SOURCE_SUM=7bb28b21cce4bdf0a24e6f6b21c064afa56d84904052dd55afdf59c419d49988
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -1,5 +0,0 @@
|
|||
SOURCE_URL=https://github.com/go-gitea/gitea/releases/download/v1.9.6/gitea-1.9.6-linux-amd64
|
||||
SOURCE_SUM=8080c6469fb1dd7e24995bedf927185f6abb57215c043dc8d7fb0cba113c3735
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FILENAME=gitea
|
||||
SOURCE_EXTRACT=false
|
|
@ -6,15 +6,15 @@
|
|||
"en": "Lightweight Git forge",
|
||||
"fr": "Forge Git légère"
|
||||
},
|
||||
"version": "1.16.8~ynh1",
|
||||
"url": "https://gitea.io",
|
||||
"upstream": {
|
||||
"license": "free",
|
||||
"website": "https://gitea.io/",
|
||||
"admindoc": "https://docs.gitea.io/",
|
||||
"code": "https://github.com/go-gitea/gitea"
|
||||
},
|
||||
"url": "http://gitea.io",
|
||||
"license": "MIT",
|
||||
"version": "1.16.8~ynh1",
|
||||
"maintainer": {
|
||||
"name": "Josué Tille",
|
||||
"email": "josue@tille.ch"
|
||||
|
@ -23,16 +23,16 @@
|
|||
"name": "rafi59",
|
||||
"email": "rafi59_dev@srvmaison.fr.nf"
|
||||
},
|
||||
"requirements": {
|
||||
"yunohost": ">= 4.3.0"
|
||||
},
|
||||
"multi_instance": true,
|
||||
"services": [
|
||||
"nginx",
|
||||
"mysql"
|
||||
],
|
||||
"requirements": {
|
||||
"yunohost": ">= 4.2.6.1"
|
||||
},
|
||||
"arguments": {
|
||||
"install" : [
|
||||
"install": [
|
||||
{
|
||||
"name": "domain",
|
||||
"type": "domain"
|
||||
|
@ -40,12 +40,9 @@
|
|||
{
|
||||
"name": "path",
|
||||
"type": "path",
|
||||
"example": "/gitea",
|
||||
"default": "/gitea"
|
||||
},
|
||||
{
|
||||
"name": "admin",
|
||||
"type": "user"
|
||||
},
|
||||
{
|
||||
"name": "is_public",
|
||||
"type": "boolean",
|
||||
|
@ -54,6 +51,10 @@
|
|||
"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."
|
||||
},
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"name": "admin",
|
||||
"type": "user"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,69 +1,262 @@
|
|||
#=================================================
|
||||
# SET ALL CONSTANTS
|
||||
#=================================================
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
dbname=$app
|
||||
db_user=$app
|
||||
final_path="/opt/$app"
|
||||
datadir="/home/yunohost.app/$app"
|
||||
repos_path="$datadir/repositories"
|
||||
data_path="$datadir/data"
|
||||
ssh_path="$datadir/.ssh"
|
||||
|
||||
# Detect the system architecture to download the right tarball
|
||||
# NOTE: `uname -m` is more accurate and universal than `arch`
|
||||
# See https://en.wikipedia.org/wiki/Uname
|
||||
if [ -n "$(uname -m | grep arm64)" ] || [ -n "$(uname -m | grep aarch64)" ]; then
|
||||
architecture="arm64"
|
||||
elif [ -n "$(uname -m | grep 64)" ]; then
|
||||
architecture="x86-64"
|
||||
elif [ -n "$(uname -m | grep 86)" ]; then
|
||||
architecture="i386"
|
||||
elif [ -n "$(uname -m | grep armv7)" ]; then
|
||||
architecture="armv7"
|
||||
elif [ -n "$(uname -m | grep arm)" ]; then
|
||||
architecture="arm"
|
||||
else
|
||||
ynh_die --message "Unable to detect your achitecture, please open a bug describing \
|
||||
your hardware and the result of the command \"uname -m\"." 1
|
||||
fi
|
||||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# DEFINE ALL COMMON FONCTIONS
|
||||
# COMMON VARIABLES
|
||||
#=================================================
|
||||
|
||||
create_dir() {
|
||||
mkdir -p "$final_path/data"
|
||||
mkdir -p "$final_path/custom/conf"
|
||||
mkdir -p "$ssh_path"
|
||||
mkdir -p "$repos_path"
|
||||
mkdir -p "$data_path/avatars"
|
||||
mkdir -p "$data_path/attachments"
|
||||
mkdir -p "/var/log/$app"
|
||||
}
|
||||
#=================================================
|
||||
# PERSONAL HELPERS
|
||||
#=================================================
|
||||
|
||||
config_nginx() {
|
||||
if [ "$path_url" != "/" ]
|
||||
#=================================================
|
||||
# EXPERIMENTAL HELPERS
|
||||
#=================================================
|
||||
|
||||
#=================================================
|
||||
# FUTURE OFFICIAL HELPERS
|
||||
#=================================================
|
||||
|
||||
# Need also the helper https://github.com/YunoHost-Apps/Experimental_helpers/blob/master/ynh_handle_getopts_args/ynh_handle_getopts_args
|
||||
|
||||
# Make the main steps to migrate an app to its fork.
|
||||
#
|
||||
# This helper has to be used for an app which needs to migrate to a new name or a new fork
|
||||
# (like owncloud to nextcloud or zerobin to privatebin).
|
||||
#
|
||||
# This helper will move the files of an app to its new name
|
||||
# or recreate the things it can't move.
|
||||
#
|
||||
# To specify which files it has to move, you have to create a "migration file", stored in ../conf
|
||||
# This file is a simple list of each file it has to move,
|
||||
# except that file names must reference the $app variable instead of the real name of the app,
|
||||
# and every instance-specific variables (like $domain).
|
||||
# $app is especially important because it's this variable which will be used to identify the old place and the new one for each file.
|
||||
#
|
||||
# If a database exists for this app, it will be dumped and then imported in a newly created database, with a new name and new user.
|
||||
# Don't forget you have to then apply these changes to application-specific settings (depends on the packaged application)
|
||||
#
|
||||
# Same things for an existing user, a new one will be created.
|
||||
# But the old one can't be removed unless it's not used. See below.
|
||||
#
|
||||
# If you have some dependencies for your app, it's possible to change the fake debian package which manages them.
|
||||
# You have to fill the $pkg_dependencies variable, and then a new fake package will be created and installed,
|
||||
# and the old one will be removed.
|
||||
# If you don't have a $pkg_dependencies variable, the helper can't know what the app dependencies are.
|
||||
#
|
||||
# The app settings.yml will be modified as follows:
|
||||
# - finalpath will be changed according to the new name (but only if the existing $final_path contains the old app name)
|
||||
# - The checksums of php-fpm and nginx config files will be updated too.
|
||||
# - If there is a $db_name value, it will be changed.
|
||||
# - And, of course, the ID will be changed to the new name too.
|
||||
#
|
||||
# Finally, the $app variable will take the value of the new name.
|
||||
# The helper will set the $migration_process variable to 1 if a migration has been successfully handled.
|
||||
#
|
||||
# You have to handle by yourself all the migrations not done by this helper, like configuration or special values in settings.yml
|
||||
# Also, at the end of the upgrade script, you have to add a post_migration script to handle all the things the helper can't do during YunoHost upgrade (mostly for permission reasons),
|
||||
# especially remove the old user, move some hooks and remove the old configuration directory
|
||||
# To launch this script, you have to move it elsewhere and start it after the upgrade script.
|
||||
# `cp ../conf/$script_post_migration /tmp`
|
||||
# `(cd /tmp; echo "/tmp/$script_post_migration" | at now + 2 minutes)`
|
||||
#
|
||||
# usage: ynh_handle_app_migration migration_id migration_list
|
||||
# | arg: -i, --migration_id= - ID from which to migrate
|
||||
# | arg: -l, --migration_list= - File specifying every file to move (one file per line)
|
||||
ynh_handle_app_migration () {
|
||||
# Need for end of install
|
||||
ynh_package_install at
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
|
||||
old_app=$YNH_APP_INSTANCE_NAME
|
||||
local old_app_id=$YNH_APP_ID
|
||||
local old_app_number=$YNH_APP_INSTANCE_NUMBER
|
||||
|
||||
# Declare an array to define the options of this helper.
|
||||
declare -Ar args_array=( [i]=migration_id= [l]=migration_list= )
|
||||
# Get the id from which to migrate
|
||||
local migration_id
|
||||
# And the file with the paths to move
|
||||
local migration_list
|
||||
# Manage arguments with getopts
|
||||
ynh_handle_getopts_args "$@"
|
||||
|
||||
# Get the new app id in the manifest
|
||||
local new_app_id=$(grep \"id\": ../manifest.json | cut -d\" -f4)
|
||||
if [ $old_app_number -eq 1 ]; then
|
||||
local new_app=$new_app_id
|
||||
else
|
||||
local new_app=${new_app_id}__${old_app_number}
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# CHECK IF IT HAS TO MIGRATE
|
||||
#=================================================
|
||||
|
||||
migration_process=0
|
||||
|
||||
if [ "$old_app_id" == "$new_app_id" ]
|
||||
then
|
||||
# If the 2 id are the same
|
||||
# No migration to do.
|
||||
echo 0
|
||||
return 0
|
||||
else
|
||||
if [ "$old_app_id" != "$migration_id" ]
|
||||
then
|
||||
ynh_replace_string --match_string "^#sub_path_only" --replace_string "" --target_file "../conf/nginx.conf"
|
||||
# If the new app is not the authorized id, fail.
|
||||
ynh_die --message "Incompatible application for migration from $old_app_id to $new_app_id"
|
||||
fi
|
||||
ynh_add_nginx_config
|
||||
}
|
||||
|
||||
config_gitea() {
|
||||
ssh_port=$(grep -P "Port\s+\d+" /etc/ssh/sshd_config | grep -P -o "\d+")
|
||||
ynh_add_config --template="app.ini" --destination="$final_path/custom/conf/app.ini"
|
||||
}
|
||||
echo "Migrate from $old_app_id to $new_app_id" >&2
|
||||
|
||||
set_permission() {
|
||||
chown -R $app:$app "$final_path"
|
||||
chown -R $app:$app "$datadir"
|
||||
chown -R $app:$app "/var/log/$app"
|
||||
#=================================================
|
||||
# CHECK IF THE MIGRATION CAN BE DONE
|
||||
#=================================================
|
||||
|
||||
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/custom/conf/app.ini"
|
||||
chmod u=rwX,g=rX,o= "$datadir"
|
||||
chmod u=rwX,g=rX,o= "/var/log/$app"
|
||||
# TODO Handle multi instance apps...
|
||||
# Check that there is not already an app installed for this id.
|
||||
(yunohost app list --installed -f "$new_app" | grep -q id) \
|
||||
&& ynh_die "$new_app is already installed"
|
||||
|
||||
#=================================================
|
||||
# CHECK THE LIST OF FILES TO MOVE
|
||||
#=================================================
|
||||
|
||||
local temp_migration_list="$(tempfile)"
|
||||
|
||||
# Build the list by removing blank lines and comment lines
|
||||
sed '/^#.*\|^$/d' "../conf/$migration_list" > "$temp_migration_list"
|
||||
|
||||
# Check if there is no file in the destination
|
||||
local file_to_move=""
|
||||
while read file_to_move
|
||||
do
|
||||
# Replace all occurences of $app by $new_app in each file to move.
|
||||
local move_to_destination="${file_to_move//\$app/$new_app}"
|
||||
test -e "$move_to_destination" && ynh_die "A file named $move_to_destination already exists."
|
||||
done < "$temp_migration_list"
|
||||
|
||||
#=================================================
|
||||
# COPY YUNOHOST SETTINGS FOR THIS APP
|
||||
#=================================================
|
||||
|
||||
local settings_dir="/etc/yunohost/apps"
|
||||
cp -a "$settings_dir/$old_app" "$settings_dir/$new_app"
|
||||
cp -a ../{scripts,conf} "$settings_dir/$new_app"
|
||||
|
||||
# Replace the old id by the new one
|
||||
ynh_replace_string "\(^id: .*\)$old_app" "\1$new_app" "$settings_dir/$new_app/settings.yml"
|
||||
# INFO: There a special behavior with yunohost app setting:
|
||||
# if the id given in argument does not match with the id
|
||||
# stored in the config file, the config file will be purged.
|
||||
# That's why we use sed instead of app setting here.
|
||||
# https://github.com/YunoHost/yunohost/blob/c6b5284be8da39cf2da4e1036a730eb5e0515096/src/yunohost/app.py#L1316-L1321
|
||||
|
||||
# Change the label if it's simply the name of the app
|
||||
old_label=$(ynh_app_setting_get $new_app label)
|
||||
if [ "${old_label,,}" == "$old_app_id" ]
|
||||
then
|
||||
# Build the new label from the id of the app. With the first character as upper case
|
||||
new_label=$(echo $new_app_id | cut -c1 | tr [:lower:] [:upper:])$(echo $new_app_id | cut -c2-)
|
||||
ynh_app_setting_set $new_app label $new_label
|
||||
fi
|
||||
|
||||
yunohost tools shell -c "from yunohost.permission import permission_delete; permission_delete('$old_app.main', force=True, sync_perm=False)"
|
||||
yunohost tools shell -c "from yunohost.permission import permission_create; permission_create('$new_app.main', url='/' , sync_perm=True)"
|
||||
|
||||
#=================================================
|
||||
# MOVE FILES TO THE NEW DESTINATION
|
||||
#=================================================
|
||||
|
||||
while read file_to_move
|
||||
do
|
||||
# Replace all occurence of $app by $new_app in each file to move.
|
||||
move_to_destination="$(eval echo "${file_to_move//\$app/$new_app}")"
|
||||
local real_file_to_move="$(eval echo "${file_to_move//\$app/$old_app}")"
|
||||
echo "Move file $real_file_to_move to $move_to_destination" >&2
|
||||
mv "$real_file_to_move" "$move_to_destination"
|
||||
done < "$temp_migration_list"
|
||||
|
||||
#=================================================
|
||||
# UPDATE SETTINGS KNOWN ENTRIES
|
||||
#=================================================
|
||||
|
||||
# Replace nginx checksum
|
||||
ynh_replace_string "\(^checksum__etc_nginx.*\)_$old_app" "\1_$new_app/" "$settings_dir/$new_app/settings.yml"
|
||||
|
||||
# Replace php5-fpm checksums
|
||||
ynh_replace_string "\(^checksum__etc_php5.*[-_]\)$old_app" "\1$new_app/" "$settings_dir/$new_app/settings.yml"
|
||||
|
||||
# Replace final_path
|
||||
ynh_replace_string "\(^final_path: .*\)$old_app" "\1$new_app" "$settings_dir/$new_app/settings.yml"
|
||||
|
||||
#=================================================
|
||||
# MOVE THE DATABASE
|
||||
#=================================================
|
||||
|
||||
db_pwd=$(ynh_app_setting_get $old_app mysqlpwd)
|
||||
db_name=$dbname
|
||||
|
||||
# Check if a database exists before trying to move it
|
||||
local mysql_root_password=$(cat $MYSQL_ROOT_PWD_FILE)
|
||||
if [ -n "$db_name" ] && mysqlshow -u root -p$mysql_root_password | grep -q "^| $db_name"
|
||||
then
|
||||
new_db_name=$(ynh_sanitize_dbid $new_app)
|
||||
echo "Rename the database $db_name to $new_db_name" >&2
|
||||
|
||||
local sql_dump="/tmp/${db_name}-$(date '+%s').sql"
|
||||
|
||||
# Dump the old database
|
||||
ynh_mysql_dump_db "$db_name" > "$sql_dump"
|
||||
|
||||
# Create a new database
|
||||
ynh_mysql_setup_db $new_db_name $new_db_name $db_pwd
|
||||
# Then restore the old one into the new one
|
||||
ynh_mysql_connect_as $new_db_name $db_pwd $new_db_name < "$sql_dump"
|
||||
|
||||
# Remove the old database
|
||||
ynh_mysql_remove_db $db_name $db_name
|
||||
# And the dump
|
||||
ynh_secure_remove --file="$sql_dump"
|
||||
|
||||
# Update the value of $db_name
|
||||
db_name=$new_db_name
|
||||
ynh_app_setting_set $new_app db_name $db_name
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# CHANGE THE FAKE DEPENDENCIES PACKAGE
|
||||
#=================================================
|
||||
|
||||
# Check if a variable $pkg_dependencies exists
|
||||
# If this variable doesn't exist, this part shall be managed in the upgrade script.
|
||||
if [ -n "${pkg_dependencies:-}" ]
|
||||
then
|
||||
# Define the name of the package
|
||||
local old_package_name="${old_app//_/-}-ynh-deps"
|
||||
local new_package_name="${new_app//_/-}-ynh-deps"
|
||||
|
||||
if ynh_package_is_installed "$old_package_name"
|
||||
then
|
||||
# Install a new fake package
|
||||
app=$new_app
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
# Then remove the old one
|
||||
app=$old_app
|
||||
ynh_remove_app_dependencies
|
||||
fi
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# UPDATE THE ID OF THE APP
|
||||
#=================================================
|
||||
|
||||
app=$new_app
|
||||
|
||||
# Set migration_process to 1 to inform that an upgrade has been made
|
||||
migration_process=1
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -3,49 +3,88 @@
|
|||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
|
||||
# Load common variables and helpers
|
||||
source ../settings/scripts/experimental_helper.sh
|
||||
source ../settings/scripts/_common.sh
|
||||
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
|
||||
source ../settings/scripts/_common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# MANAGE SCRIPT FAILURE
|
||||
#=================================================
|
||||
|
||||
ynh_clean_setup () {
|
||||
true
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
# Retrieve app settings
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_print_info --message="Loading installation settings..."
|
||||
domain=$(ynh_app_setting_get --app $app --key domain)
|
||||
|
||||
if [[ ! "$(systemctl status $app.service)" =~ "Active: inactive (dead)" ]]; then
|
||||
ynh_print_warn --message="It's hightly recommended to make your backup when the service is stopped. Please stop $app service and with this command before to run the backup 'systemctl stop $app.service'"
|
||||
fi
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
|
||||
|
||||
#=================================================
|
||||
# STANDARD BACKUP STEPS
|
||||
# DECLARE DATA AND CONF FILES TO BACKUP
|
||||
#=================================================
|
||||
ynh_print_info --message="Declaring files to be backed up..."
|
||||
|
||||
#=================================================
|
||||
# BACKUP THE APP MAIN DIR
|
||||
#=================================================
|
||||
|
||||
# Copy the app source files
|
||||
ynh_print_info --message="Backing up code..."
|
||||
ynh_backup --src_path "$final_path"
|
||||
ynh_backup --src_path="$final_path"
|
||||
|
||||
# Copy the data files
|
||||
ynh_print_info --message="Backing up user data..."
|
||||
ynh_backup --src_path "$datadir" --is_big=1
|
||||
#=================================================
|
||||
# BACKUP THE DATA DIR
|
||||
#=================================================
|
||||
|
||||
ynh_print_info --message="Backing up configuration..."
|
||||
ynh_backup --src_path="$datadir" --is_big
|
||||
|
||||
# Copy the conf files
|
||||
ynh_backup --src_path "/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
||||
ynh_backup --src_path "/etc/systemd/system/${app}.service"
|
||||
#=================================================
|
||||
# BACKUP THE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
|
||||
# Backup logs
|
||||
ynh_print_info --message="Backing up logs..."
|
||||
ynh_backup --src_path "/var/log/$app"
|
||||
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
# Dump the database
|
||||
ynh_print_info --message="Backing up database"
|
||||
ynh_mysql_dump_db "$dbname" > ./db.sql
|
||||
#=================================================
|
||||
# BACKUP FAIL2BAN CONFIGURATION
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf"
|
||||
ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf"
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC BACKUP
|
||||
#=================================================
|
||||
# BACKUP LOGROTATE
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="/etc/logrotate.d/$app"
|
||||
|
||||
#=================================================
|
||||
# BACKUP SYSTEMD
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="/etc/systemd/system/$app.service"
|
||||
|
||||
#=================================================
|
||||
# BACKUP THE MYSQL DATABASE
|
||||
#=================================================
|
||||
ynh_print_info --message="Backing up the MySQL database..."
|
||||
|
||||
ynh_mysql_dump_db --database="$db_name" > db.sql
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."
|
||||
|
|
|
@ -1,65 +1,147 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC START
|
||||
# GENERIC STARTING
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
# Import common cmd
|
||||
source ./experimental_helper.sh
|
||||
source ./_common.sh
|
||||
|
||||
# IMPORT GENERIC HELPERS
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# RETRIEVE ARGUMENTS
|
||||
#=================================================
|
||||
|
||||
old_domain=$YNH_APP_OLD_DOMAIN
|
||||
old_path=$YNH_APP_OLD_PATH
|
||||
|
||||
new_domain=$YNH_APP_NEW_DOMAIN
|
||||
new_path=$YNH_APP_NEW_PATH
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
# Needed for helper "ynh_add_nginx_config"
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
|
||||
# Add settings here as needed by your application
|
||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
db_user=$db_name
|
||||
db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
secret_key=$(ynh_app_setting_get --app=$app --key=secret_key)
|
||||
|
||||
#=================================================
|
||||
# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..."
|
||||
|
||||
# Backup the current version of the app
|
||||
ynh_backup_before_upgrade
|
||||
ynh_clean_setup () {
|
||||
ynh_clean_check_starting
|
||||
# Remove the new domain config file, the remove script won't do it as it doesn't know yet its location.
|
||||
ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
||||
|
||||
# Restore it if the upgrade fails
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
#=================================================
|
||||
# CHECK WHICH PARTS SHOULD BE CHANGED
|
||||
#=================================================
|
||||
|
||||
# RETRIEVE ARGUMENTS
|
||||
old_domain=$YNH_APP_OLD_DOMAIN
|
||||
domain=$YNH_APP_NEW_DOMAIN
|
||||
path_url=$(ynh_normalize_url_path --path_url ${YNH_APP_NEW_PATH:-'/'})
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
change_domain=0
|
||||
if [ "$old_domain" != "$new_domain" ]
|
||||
then
|
||||
change_domain=1
|
||||
fi
|
||||
|
||||
db_password=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
||||
admin=$(ynh_app_setting_get --app $app --key adminusername)
|
||||
key=$(ynh_app_setting_get --app $app --key secret_key)
|
||||
port=$(ynh_app_setting_get --app $app --key web_port)
|
||||
upstream_version=$(ynh_app_setting_get $app upstream_version)
|
||||
change_path=0
|
||||
if [ "$old_path" != "$new_path" ]
|
||||
then
|
||||
change_path=1
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# STANDARD MODIFICATIONS
|
||||
#=================================================
|
||||
# STOP SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Stopping a systemd service..."
|
||||
|
||||
ynh_script_progression --message="Updating nginx configuration..."
|
||||
ynh_systemd_action --service_name=$app --action="stop"
|
||||
|
||||
#=================================================
|
||||
# MODIFY URL IN NGINX CONF
|
||||
#=================================================
|
||||
ynh_script_progression --message="Updating NGINX web server configuration..."
|
||||
|
||||
nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf
|
||||
|
||||
# Change the domain for nginx
|
||||
# Change the domain for nginx
|
||||
if [[ "$old_domain" != "$domain" ]]; then
|
||||
# Delete file checksum for the old conf file location
|
||||
ynh_delete_file_checksum --file "$nginx_conf_path"
|
||||
mv $nginx_conf_path /etc/nginx/conf.d/$domain.d/$app.conf
|
||||
# Store file checksum for the new config file location
|
||||
ynh_store_file_checksum --file "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
# Change the path in the NGINX config file
|
||||
if [ $change_path -eq 1 ]
|
||||
then
|
||||
# Make a backup of the original NGINX config file if modified
|
||||
ynh_backup_if_checksum_is_different --file="$nginx_conf_path"
|
||||
# Set global variables for NGINX helper
|
||||
domain="$old_domain"
|
||||
path_url="$new_path"
|
||||
# Create a dedicated NGINX config
|
||||
ynh_add_nginx_config
|
||||
fi
|
||||
|
||||
config_nginx
|
||||
# Change the domain for NGINX
|
||||
if [ $change_domain -eq 1 ]
|
||||
then
|
||||
# Delete file checksum for the old conf file location
|
||||
ynh_delete_file_checksum --file="$nginx_conf_path"
|
||||
mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf
|
||||
# Store file checksum for the new config file location
|
||||
ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
||||
fi
|
||||
|
||||
# Update gitea config
|
||||
ynh_script_progression --message="Updating gitea configuration..."
|
||||
config_gitea
|
||||
#=================================================
|
||||
# SPECIFIC MODIFICATIONS
|
||||
#=================================================
|
||||
# UPDATE A CONFIG FILE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Updating a configuration file..."
|
||||
|
||||
# RELOAD services
|
||||
ynh_script_progression --message="Starting services..."
|
||||
ynh_systemd_action -l "Starting new Web server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10 -a restart
|
||||
domain=$new_domain
|
||||
path_url=$new_path
|
||||
|
||||
# Configure gitea with app.ini file
|
||||
ssh_port=$(grep -P "Port\s+\d+" /etc/ssh/sshd_config | grep -P -o "\d+")
|
||||
ynh_add_config --template="app.ini" --destination="$final_path/custom/conf/app.ini"
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALISATION
|
||||
#=================================================
|
||||
# START SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting a systemd service..."
|
||||
|
||||
# Start a systemd service
|
||||
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/gitea.log" --line_match="Starting new Web server: tcp:127.0.0.1:" --timeout=10
|
||||
sleep 1
|
||||
|
||||
# Store the checksum with the 'INTERNAL_TOKEN' value.
|
||||
# Should be removed when the issue https://github.com/go-gitea/gitea/issues/3246 is fixed
|
||||
ynh_store_file_checksum --file "$final_path/custom/conf/app.ini"
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading NGINX web server..."
|
||||
|
||||
ynh_script_progression --message="Change of URL completed for $app" --last
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Change of URL completed for $app"
|
||||
|
|
|
@ -1,257 +0,0 @@
|
|||
# Execute a command as another user
|
||||
# usage: exec_as USER COMMAND [ARG ...]
|
||||
exec_as() {
|
||||
local USER=$1
|
||||
shift 1
|
||||
|
||||
if [[ $USER = $(whoami) ]]; then
|
||||
eval "$@"
|
||||
else
|
||||
sudo -u "$USER" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Need also the helper https://github.com/YunoHost-Apps/Experimental_helpers/blob/master/ynh_handle_getopts_args/ynh_handle_getopts_args
|
||||
|
||||
# Make the main steps to migrate an app to its fork.
|
||||
#
|
||||
# This helper has to be used for an app which needs to migrate to a new name or a new fork
|
||||
# (like owncloud to nextcloud or zerobin to privatebin).
|
||||
#
|
||||
# This helper will move the files of an app to its new name
|
||||
# or recreate the things it can't move.
|
||||
#
|
||||
# To specify which files it has to move, you have to create a "migration file", stored in ../conf
|
||||
# This file is a simple list of each file it has to move,
|
||||
# except that file names must reference the $app variable instead of the real name of the app,
|
||||
# and every instance-specific variables (like $domain).
|
||||
# $app is especially important because it's this variable which will be used to identify the old place and the new one for each file.
|
||||
#
|
||||
# If a database exists for this app, it will be dumped and then imported in a newly created database, with a new name and new user.
|
||||
# Don't forget you have to then apply these changes to application-specific settings (depends on the packaged application)
|
||||
#
|
||||
# Same things for an existing user, a new one will be created.
|
||||
# But the old one can't be removed unless it's not used. See below.
|
||||
#
|
||||
# If you have some dependencies for your app, it's possible to change the fake debian package which manages them.
|
||||
# You have to fill the $pkg_dependencies variable, and then a new fake package will be created and installed,
|
||||
# and the old one will be removed.
|
||||
# If you don't have a $pkg_dependencies variable, the helper can't know what the app dependencies are.
|
||||
#
|
||||
# The app settings.yml will be modified as follows:
|
||||
# - finalpath will be changed according to the new name (but only if the existing $final_path contains the old app name)
|
||||
# - The checksums of php-fpm and nginx config files will be updated too.
|
||||
# - If there is a $db_name value, it will be changed.
|
||||
# - And, of course, the ID will be changed to the new name too.
|
||||
#
|
||||
# Finally, the $app variable will take the value of the new name.
|
||||
# The helper will set the $migration_process variable to 1 if a migration has been successfully handled.
|
||||
#
|
||||
# You have to handle by yourself all the migrations not done by this helper, like configuration or special values in settings.yml
|
||||
# Also, at the end of the upgrade script, you have to add a post_migration script to handle all the things the helper can't do during YunoHost upgrade (mostly for permission reasons),
|
||||
# especially remove the old user, move some hooks and remove the old configuration directory
|
||||
# To launch this script, you have to move it elsewhere and start it after the upgrade script.
|
||||
# `cp ../conf/$script_post_migration /tmp`
|
||||
# `(cd /tmp; echo "/tmp/$script_post_migration" | at now + 2 minutes)`
|
||||
#
|
||||
# usage: ynh_handle_app_migration migration_id migration_list
|
||||
# | arg: -i, --migration_id= - ID from which to migrate
|
||||
# | arg: -l, --migration_list= - File specifying every file to move (one file per line)
|
||||
ynh_handle_app_migration () {
|
||||
# Need for end of install
|
||||
ynh_package_install at
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
|
||||
old_app=$YNH_APP_INSTANCE_NAME
|
||||
local old_app_id=$YNH_APP_ID
|
||||
local old_app_number=$YNH_APP_INSTANCE_NUMBER
|
||||
|
||||
# Declare an array to define the options of this helper.
|
||||
declare -Ar args_array=( [i]=migration_id= [l]=migration_list= )
|
||||
# Get the id from which to migrate
|
||||
local migration_id
|
||||
# And the file with the paths to move
|
||||
local migration_list
|
||||
# Manage arguments with getopts
|
||||
ynh_handle_getopts_args "$@"
|
||||
|
||||
# Get the new app id in the manifest
|
||||
local new_app_id=$(grep \"id\": ../manifest.json | cut -d\" -f4)
|
||||
if [ $old_app_number -eq 1 ]; then
|
||||
local new_app=$new_app_id
|
||||
else
|
||||
local new_app=${new_app_id}__${old_app_number}
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# CHECK IF IT HAS TO MIGRATE
|
||||
#=================================================
|
||||
|
||||
migration_process=0
|
||||
|
||||
if [ "$old_app_id" == "$new_app_id" ]
|
||||
then
|
||||
# If the 2 id are the same
|
||||
# No migration to do.
|
||||
echo 0
|
||||
return 0
|
||||
else
|
||||
if [ "$old_app_id" != "$migration_id" ]
|
||||
then
|
||||
# If the new app is not the authorized id, fail.
|
||||
ynh_die --message "Incompatible application for migration from $old_app_id to $new_app_id"
|
||||
fi
|
||||
|
||||
echo "Migrate from $old_app_id to $new_app_id" >&2
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE MIGRATION CAN BE DONE
|
||||
#=================================================
|
||||
|
||||
# TODO Handle multi instance apps...
|
||||
# Check that there is not already an app installed for this id.
|
||||
(yunohost app list --installed -f "$new_app" | grep -q id) \
|
||||
&& ynh_die "$new_app is already installed"
|
||||
|
||||
#=================================================
|
||||
# CHECK THE LIST OF FILES TO MOVE
|
||||
#=================================================
|
||||
|
||||
local temp_migration_list="$(tempfile)"
|
||||
|
||||
# Build the list by removing blank lines and comment lines
|
||||
sed '/^#.*\|^$/d' "../conf/$migration_list" > "$temp_migration_list"
|
||||
|
||||
# Check if there is no file in the destination
|
||||
local file_to_move=""
|
||||
while read file_to_move
|
||||
do
|
||||
# Replace all occurences of $app by $new_app in each file to move.
|
||||
local move_to_destination="${file_to_move//\$app/$new_app}"
|
||||
test -e "$move_to_destination" && ynh_die "A file named $move_to_destination already exists."
|
||||
done < "$temp_migration_list"
|
||||
|
||||
#=================================================
|
||||
# COPY YUNOHOST SETTINGS FOR THIS APP
|
||||
#=================================================
|
||||
|
||||
local settings_dir="/etc/yunohost/apps"
|
||||
cp -a "$settings_dir/$old_app" "$settings_dir/$new_app"
|
||||
cp -a ../{scripts,conf} "$settings_dir/$new_app"
|
||||
|
||||
# Replace the old id by the new one
|
||||
ynh_replace_string "\(^id: .*\)$old_app" "\1$new_app" "$settings_dir/$new_app/settings.yml"
|
||||
# INFO: There a special behavior with yunohost app setting:
|
||||
# if the id given in argument does not match with the id
|
||||
# stored in the config file, the config file will be purged.
|
||||
# That's why we use sed instead of app setting here.
|
||||
# https://github.com/YunoHost/yunohost/blob/c6b5284be8da39cf2da4e1036a730eb5e0515096/src/yunohost/app.py#L1316-L1321
|
||||
|
||||
# Change the label if it's simply the name of the app
|
||||
old_label=$(ynh_app_setting_get $new_app label)
|
||||
if [ "${old_label,,}" == "$old_app_id" ]
|
||||
then
|
||||
# Build the new label from the id of the app. With the first character as upper case
|
||||
new_label=$(echo $new_app_id | cut -c1 | tr [:lower:] [:upper:])$(echo $new_app_id | cut -c2-)
|
||||
ynh_app_setting_set $new_app label $new_label
|
||||
fi
|
||||
|
||||
yunohost tools shell -c "from yunohost.permission import permission_delete; permission_delete('$old_app.main', force=True, sync_perm=False)"
|
||||
yunohost tools shell -c "from yunohost.permission import permission_create; permission_create('$new_app.main', url='/' , sync_perm=True)"
|
||||
|
||||
#=================================================
|
||||
# MOVE FILES TO THE NEW DESTINATION
|
||||
#=================================================
|
||||
|
||||
while read file_to_move
|
||||
do
|
||||
# Replace all occurence of $app by $new_app in each file to move.
|
||||
move_to_destination="$(eval echo "${file_to_move//\$app/$new_app}")"
|
||||
local real_file_to_move="$(eval echo "${file_to_move//\$app/$old_app}")"
|
||||
echo "Move file $real_file_to_move to $move_to_destination" >&2
|
||||
mv "$real_file_to_move" "$move_to_destination"
|
||||
done < "$temp_migration_list"
|
||||
|
||||
#=================================================
|
||||
# UPDATE SETTINGS KNOWN ENTRIES
|
||||
#=================================================
|
||||
|
||||
# Replace nginx checksum
|
||||
ynh_replace_string "\(^checksum__etc_nginx.*\)_$old_app" "\1_$new_app/" "$settings_dir/$new_app/settings.yml"
|
||||
|
||||
# Replace php5-fpm checksums
|
||||
ynh_replace_string "\(^checksum__etc_php5.*[-_]\)$old_app" "\1$new_app/" "$settings_dir/$new_app/settings.yml"
|
||||
|
||||
# Replace final_path
|
||||
ynh_replace_string "\(^final_path: .*\)$old_app" "\1$new_app" "$settings_dir/$new_app/settings.yml"
|
||||
|
||||
#=================================================
|
||||
# MOVE THE DATABASE
|
||||
#=================================================
|
||||
|
||||
db_pwd=$(ynh_app_setting_get $old_app mysqlpwd)
|
||||
db_name=$dbname
|
||||
|
||||
# Check if a database exists before trying to move it
|
||||
local mysql_root_password=$(cat $MYSQL_ROOT_PWD_FILE)
|
||||
if [ -n "$db_name" ] && mysqlshow -u root -p$mysql_root_password | grep -q "^| $db_name"
|
||||
then
|
||||
new_db_name=$(ynh_sanitize_dbid $new_app)
|
||||
echo "Rename the database $db_name to $new_db_name" >&2
|
||||
|
||||
local sql_dump="/tmp/${db_name}-$(date '+%s').sql"
|
||||
|
||||
# Dump the old database
|
||||
ynh_mysql_dump_db "$db_name" > "$sql_dump"
|
||||
|
||||
# Create a new database
|
||||
ynh_mysql_setup_db $new_db_name $new_db_name $db_pwd
|
||||
# Then restore the old one into the new one
|
||||
ynh_mysql_connect_as $new_db_name $db_pwd $new_db_name < "$sql_dump"
|
||||
|
||||
# Remove the old database
|
||||
ynh_mysql_remove_db $db_name $db_name
|
||||
# And the dump
|
||||
ynh_secure_remove --file="$sql_dump"
|
||||
|
||||
# Update the value of $db_name
|
||||
db_name=$new_db_name
|
||||
ynh_app_setting_set $new_app db_name $db_name
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# CHANGE THE FAKE DEPENDENCIES PACKAGE
|
||||
#=================================================
|
||||
|
||||
# Check if a variable $pkg_dependencies exists
|
||||
# If this variable doesn't exist, this part shall be managed in the upgrade script.
|
||||
if [ -n "${pkg_dependencies:-}" ]
|
||||
then
|
||||
# Define the name of the package
|
||||
local old_package_name="${old_app//_/-}-ynh-deps"
|
||||
local new_package_name="${new_app//_/-}-ynh-deps"
|
||||
|
||||
if ynh_package_is_installed "$old_package_name"
|
||||
then
|
||||
# Install a new fake package
|
||||
app=$new_app
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
# Then remove the old one
|
||||
app=$old_app
|
||||
ynh_remove_app_dependencies
|
||||
fi
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# UPDATE THE ID OF THE APP
|
||||
#=================================================
|
||||
|
||||
app=$new_app
|
||||
|
||||
# Set migration_process to 1 to inform that an upgrade has been made
|
||||
migration_process=1
|
||||
fi
|
||||
}
|
273
scripts/install
273
scripts/install
|
@ -3,101 +3,167 @@
|
|||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
|
||||
# Load common variables and helpers
|
||||
source ./experimental_helper.sh
|
||||
source ./_common.sh
|
||||
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# MANAGE SCRIPT FAILURE
|
||||
#=================================================
|
||||
|
||||
ynh_clean_setup () {
|
||||
ynh_clean_check_starting
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
ynh_script_progression --message="Validating installation parameters..."
|
||||
#=================================================
|
||||
# RETRIEVE ARGUMENTS FROM THE MANIFEST
|
||||
#=================================================
|
||||
|
||||
# Retrieve arguments
|
||||
domain=$YNH_APP_ARG_DOMAIN
|
||||
path_url=$YNH_APP_ARG_PATH
|
||||
admin=$YNH_APP_ARG_ADMIN
|
||||
is_public=$YNH_APP_ARG_IS_PUBLIC
|
||||
admin=$YNH_APP_ARG_ADMIN
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
upstream_version=$(ynh_app_upstream_version)
|
||||
secret_key=$(ynh_string_random)
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Validating installation parameters..."
|
||||
|
||||
final_path=/opt/$app
|
||||
test ! -e "$final_path" || ynh_die --message="This path already contains a folder"
|
||||
|
||||
# Register (book) web path
|
||||
ynh_webpath_register --app $app --domain $domain --path_url $path_url
|
||||
ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url
|
||||
|
||||
# Check user parameter
|
||||
ynh_user_exists "$admin" \
|
||||
|| ynh_die --message "The chosen admin user does not exist."
|
||||
|
||||
# Check Final Path availability
|
||||
test ! -e "$final_path" || ynh_die --message "This path already contains a folder"
|
||||
|
||||
if [ -e "$datadir" ]; then
|
||||
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"
|
||||
mv "$datadir" "$old_data_dir_path"
|
||||
fi
|
||||
|
||||
# Generate random password and key
|
||||
ynh_script_progression --message="Defining db password and key..."
|
||||
db_password=$(ynh_string_random)
|
||||
key=$(ynh_string_random)
|
||||
|
||||
# Find available ports
|
||||
port=$(ynh_find_port --port 6000)
|
||||
|
||||
# Store Settings
|
||||
#=================================================
|
||||
# STORE SETTINGS FROM MANIFEST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Storing installation settings..."
|
||||
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 secret_key --value $key
|
||||
ynh_app_setting_set --app $app --key web_port --value $port
|
||||
|
||||
ynh_app_setting_set --app=$app --key=domain --value=$domain
|
||||
ynh_app_setting_set --app=$app --key=path --value=$path_url
|
||||
ynh_app_setting_set --app=$app --key=admin --value=$admin
|
||||
ynh_app_setting_set --app=$app --key=mysqlpwd --value=$db_password
|
||||
ynh_app_setting_set --app=$app --key=secret_key --value=$key
|
||||
ynh_app_setting_set --app=$app --key=upstream_version --value=$upstream_version
|
||||
|
||||
#=================================================
|
||||
# STANDARD MODIFICATIONS
|
||||
#=================================================
|
||||
# FIND AND OPEN A PORT
|
||||
#=================================================
|
||||
ynh_script_progression --message="Finding an available port..."
|
||||
|
||||
# Initialize database and store mysql password for upgrade
|
||||
ynh_script_progression --message="Configuring MySQL database..."
|
||||
ynh_mysql_create_db "$dbname" "$db_user" "$db_password"
|
||||
# Find an available port
|
||||
port=$(ynh_find_port --port=6000)
|
||||
ynh_app_setting_set --app=$app --key=port --value=$port
|
||||
|
||||
# Add users
|
||||
#=================================================
|
||||
# CREATE DEDICATED USER
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring system user..."
|
||||
ynh_system_user_create --username=$app --home_dir=$datadir --use_shell
|
||||
|
||||
# Create a system user
|
||||
ynh_system_user_create --username=$app --home_dir="$final_path" --home_dir=$datadir --use_shell
|
||||
# Add ssh permission for gitea user
|
||||
adduser $app ssh.app
|
||||
|
||||
# create needed directories
|
||||
create_dir
|
||||
#=================================================
|
||||
# CREATE A MYSQL DATABASE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Creating a MySQL database..."
|
||||
|
||||
# Configure init script
|
||||
db_name=$(ynh_sanitize_dbid --db_name=$app)
|
||||
db_user=$db_name
|
||||
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
|
||||
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name
|
||||
|
||||
#=================================================
|
||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Setting up source files..."
|
||||
|
||||
ynh_app_setting_set --app=$app --key=final_path --value=$final_path
|
||||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_setup_source --dest_dir="$final_path" --source_id="$YNH_ARCH"
|
||||
|
||||
# create needed directories
|
||||
mkdir -p "$final_path/data"
|
||||
mkdir -p "$final_path/custom/conf"
|
||||
|
||||
chmod 750 "$final_path"
|
||||
chmod -R o-rwx "$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/custom/conf/app.ini"
|
||||
chown -R $app:$app "$final_path"
|
||||
|
||||
mkdir -p "/var/log/$app"
|
||||
chown -R $app:$app "/var/log/$app"
|
||||
chmod u=rwX,g=rX,o= "/var/log/$app"
|
||||
|
||||
#=================================================
|
||||
# NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring NGINX web server..." --weight=1
|
||||
|
||||
# Create a dedicated NGINX config
|
||||
ynh_add_nginx_config
|
||||
|
||||
#=================================================
|
||||
# CREATE DATA DIRECTORY
|
||||
#=================================================
|
||||
ynh_script_progression --message="Creating a data directory..."
|
||||
|
||||
datadir=/home/yunohost.app/$app
|
||||
ynh_app_setting_set --app=$app --key=datadir --value=$datadir
|
||||
|
||||
mkdir -p $datadir
|
||||
mkdir -p "$datadir/.ssh"
|
||||
mkdir -p "$datadir/repositories"
|
||||
mkdir -p "$datadir/data/avatars"
|
||||
mkdir -p "$datadir/data/attachments"
|
||||
|
||||
chmod 750 "$datadir"
|
||||
chmod -R o-rwx "$datadir"
|
||||
chown -R $app:www-data "$datadir"
|
||||
|
||||
#=================================================
|
||||
# ADD A CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Adding a configuration file..."
|
||||
|
||||
ssh_port=$(grep -P "Port\s+\d+" /etc/ssh/sshd_config | grep -P -o "\d+")
|
||||
ynh_add_config --template="app.ini" --destination="$final_path/custom/conf/app.ini"
|
||||
|
||||
chmod 400 "$final_path/custom/conf/app.ini"
|
||||
chown $app:$app "$final_path/custom/conf/app.ini"
|
||||
|
||||
#=================================================
|
||||
# SETUP SYSTEMD
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring a systemd service..." --weight=2
|
||||
|
||||
# Create a dedicated systemd config
|
||||
ynh_add_systemd_config
|
||||
|
||||
# Modify Nginx configuration file and copy it to Nginx conf directory
|
||||
ynh_script_progression --message="Configuring nginx..." --weight=1
|
||||
config_nginx
|
||||
#=================================================
|
||||
# SETUP APPLICATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Setuping application..."
|
||||
|
||||
# Configure gitea with app.ini file
|
||||
ynh_script_progression --message="Configuring application, step 1/2..."
|
||||
config_gitea
|
||||
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/gitea.log"
|
||||
|
||||
ynh_script_progression --message="Installing sources files..." --weight=10
|
||||
|
||||
# Install gitea
|
||||
ynh_setup_source $final_path source/$architecture
|
||||
|
||||
# Set permissions
|
||||
ynh_script_progression --message="Protecting directory"
|
||||
set_permission
|
||||
|
||||
ynh_script_progression --message="Configuring application, step 2/2..."
|
||||
|
||||
# Start gitea for building mysql tables
|
||||
systemctl start "$app".service
|
||||
|
||||
# Wait untill login_source mysql table is created
|
||||
# Wait until login_source mysql table is created
|
||||
while ! $(ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" <<< "SELECT * FROM login_source;" &>/dev/null)
|
||||
do
|
||||
sleep 2
|
||||
|
@ -107,43 +173,64 @@ done
|
|||
ynh_replace_string --match_string "__APP__" --replace_string "$app" --target_file ../conf/login_source.sql
|
||||
ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" < ../conf/login_source.sql
|
||||
|
||||
# SETUP FAIL2BAN
|
||||
ynh_script_progression --message="Configuring fail2ban..."
|
||||
ynh_add_fail2ban_config --logpath "/var/log/$app/gitea.log" --failregex ".*Failed authentication attempt for .* from <HOST>" --max_retry 5
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
|
||||
# Unprotect root from SSO if public
|
||||
ynh_script_progression --message="Configuring permissions..."
|
||||
if [ "$is_public" == '1' ];
|
||||
then
|
||||
ynh_permission_update --permission "main" --add "visitors"
|
||||
fi
|
||||
|
||||
# Create permission
|
||||
ynh_script_progression --message="Configuring permissions"
|
||||
ynh_permission_create --permission="admin" --allowed=$admin
|
||||
|
||||
# Add gitea to YunoHost's monitored services
|
||||
ynh_script_progression --message="Register gitea service..."
|
||||
yunohost service add "$app" --log "/var/log/$app/gitea.log"
|
||||
|
||||
# Configure logrotate
|
||||
# SETUP LOGROTATE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring log rotation..."
|
||||
|
||||
# Use logrotate to manage application logfile(s)
|
||||
ynh_use_logrotate --logfile "/var/log/$app"
|
||||
|
||||
# Save Version
|
||||
ynh_app_setting_set --app $app --key upstream_version --value $(ynh_app_upstream_version)
|
||||
#=================================================
|
||||
# INTEGRATE SERVICE IN YUNOHOST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Integrating service in YunoHost..."
|
||||
|
||||
# Reload services
|
||||
ynh_script_progression --message="Starting gitea services..." --weight=3
|
||||
ynh_systemd_action -l "Starting new Web server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10
|
||||
yunohost service add $app --log="/var/log/$app/gitea.log"
|
||||
|
||||
#=================================================
|
||||
# START SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting a systemd service..."
|
||||
|
||||
# Start a systemd service
|
||||
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/gitea.log" --line_match="Starting new Web server: tcp:127.0.0.1:" --timeout=10
|
||||
sleep 1
|
||||
|
||||
# Store the checksum with the 'INTERNAL_TOKEN' value.
|
||||
# Should be removed when the issue https://github.com/go-gitea/gitea/issues/3246 is fixed
|
||||
ynh_store_file_checksum --file "$final_path/custom/conf/app.ini"
|
||||
#=================================================
|
||||
# SETUP FAIL2BAN
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring Fail2Ban..."
|
||||
|
||||
# Create a dedicated Fail2Ban config
|
||||
ynh_add_fail2ban_config --logpath="/var/log/$app/gitea.log" --failregex=".*Failed authentication attempt for .* from <HOST>" --max_retry=5
|
||||
|
||||
#=================================================
|
||||
# SETUP SSOWAT
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring permissions..."
|
||||
|
||||
# Make app public if necessary
|
||||
if [ $is_public -eq 1 ]
|
||||
then
|
||||
# Everyone can access the app.
|
||||
# The "main" permission is automatically created before the install script.
|
||||
ynh_permission_update --permission="main" --add="visitors"
|
||||
fi
|
||||
|
||||
ynh_permission_create --permission="admin" --allowed=$admin
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading NGINX web server..."
|
||||
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Installation of $app completed" --last
|
||||
|
|
131
scripts/remove
131
scripts/remove
|
@ -3,62 +3,119 @@
|
|||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
|
||||
# Load common variables and helpers
|
||||
source ./experimental_helper.sh
|
||||
source ./_common.sh
|
||||
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
# Retrieve domain from app settings
|
||||
domain=$(ynh_app_setting_get --app $app --key domain)
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
db_user=$db_name
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
|
||||
|
||||
#=================================================
|
||||
# STANDARD REMOVE
|
||||
#=================================================
|
||||
# REMOVE SERVICE INTEGRATION IN YUNOHOST
|
||||
#=================================================
|
||||
|
||||
# Stop gitea
|
||||
ynh_script_progression --message="Stoping services..."
|
||||
systemctl stop "$app".service
|
||||
# Remove the service from the list of services known by YunoHost (added from `yunohost service add`)
|
||||
if ynh_exec_warn_less yunohost service status $app >/dev/null
|
||||
then
|
||||
ynh_script_progression --message="Removing $app service integration..."
|
||||
yunohost service remove $app
|
||||
fi
|
||||
|
||||
# Drop MySQL database and user
|
||||
ynh_script_progression --message="Removing databases..."
|
||||
ynh_mysql_drop_db "$dbname" 2>/dev/null
|
||||
ynh_mysql_drop_user "$db_user" 2>/dev/null
|
||||
#=================================================
|
||||
# STOP AND REMOVE SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Stopping and removing the systemd service..."
|
||||
|
||||
# Delete app directory and configurations
|
||||
ynh_script_progression --message="Removing code..."
|
||||
ynh_secure_remove --file="$final_path"
|
||||
ynh_script_progression --message="Removing logs..."
|
||||
ynh_secure_remove --file="/var/log/$app"
|
||||
# Remove the dedicated systemd config
|
||||
ynh_remove_systemd_config
|
||||
|
||||
#=================================================
|
||||
# REMOVE LOGROTATE CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing logrotate configuration..."
|
||||
|
||||
# Remove the app-specific logrotate config
|
||||
ynh_remove_logrotate
|
||||
|
||||
# Remove nginx config
|
||||
ynh_script_progression --message="Removing nginx configuration..."
|
||||
#=================================================
|
||||
# REMOVE THE MYSQL DATABASE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing the MySQL database..."
|
||||
|
||||
# Remove a database if it exists, along with the associated user
|
||||
ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name
|
||||
|
||||
#=================================================
|
||||
# REMOVE APP MAIN DIR
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing app main directory..."
|
||||
|
||||
# Remove the app directory securely
|
||||
ynh_secure_remove --file="$final_path"
|
||||
|
||||
#=================================================
|
||||
# REMOVE DATA DIR
|
||||
#=================================================
|
||||
|
||||
# Remove the data directory if --purge option is used
|
||||
if [ "${YNH_APP_PURGE:-0}" -eq 1 ]
|
||||
then
|
||||
ynh_script_progression --message="Removing app data directory..."
|
||||
ynh_secure_remove --file="$datadir"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# REMOVE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing NGINX web server configuration..."
|
||||
|
||||
# Remove the dedicated NGINX config
|
||||
ynh_remove_nginx_config
|
||||
|
||||
# Remove gitea user and data
|
||||
ynh_script_progression --message="Removing the dedicated system user..."
|
||||
ynh_system_user_delete $app
|
||||
#=================================================
|
||||
# REMOVE FAIL2BAN CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing Fail2Ban configuration..."
|
||||
|
||||
# Remove init script
|
||||
ynh_script_progression --message="Removing systemd units..."
|
||||
ynh_remove_systemd_config
|
||||
|
||||
# Remove monitor
|
||||
ynh_script_progression --message="Removing gitea service..."
|
||||
yunohost service remove "$app"
|
||||
|
||||
# Remove fail2ban config
|
||||
ynh_script_progression --message="Removing fail2ban configuration..."
|
||||
# Remove the dedicated 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."
|
||||
#=================================================
|
||||
# SPECIFIC REMOVE
|
||||
#=================================================
|
||||
# REMOVE VARIOUS FILES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing various files..."
|
||||
|
||||
ynh_script_progression --message="Removal of $app completed" --last
|
||||
sleep 1
|
||||
# Remove the log files
|
||||
ynh_secure_remove --file="/var/log/$app"
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# REMOVE DEDICATED USER
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing the dedicated system user..."
|
||||
|
||||
# Delete a system user
|
||||
ynh_system_user_delete --username=$app
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Removal of $app completed"
|
||||
|
|
182
scripts/restore
182
scripts/restore
|
@ -3,79 +3,165 @@
|
|||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
|
||||
# Load common variables and helpers
|
||||
source ../settings/scripts/experimental_helper.sh
|
||||
source ../settings/scripts/_common.sh
|
||||
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
|
||||
source ../settings/scripts/_common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# MANAGE SCRIPT FAILURE
|
||||
#=================================================
|
||||
|
||||
ynh_clean_setup () {
|
||||
ynh_clean_check_starting
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
ynh_script_progression --message="Loading settings..."
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
# Retrieve old app settings
|
||||
domain=$(ynh_app_setting_get --app $app --key domain)
|
||||
path_url=$(ynh_app_setting_get --app $app --key path)
|
||||
db_password=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
db_user=$db_name
|
||||
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
|
||||
admin=$(ynh_app_setting_get --app $app --key adminusername)
|
||||
port=$(ynh_app_setting_get --app $app --key web_port)
|
||||
upstream_version=$(ynh_app_setting_get $app upstream_version)
|
||||
|
||||
# Check user parameter
|
||||
ynh_user_exists "$admin" \
|
||||
|| ynh_die --message "The chosen admin user does not exist."
|
||||
#=================================================
|
||||
# CHECK IF THE APP CAN BE RESTORED
|
||||
#=================================================
|
||||
ynh_script_progression --message="Validating restoration parameters..."
|
||||
|
||||
# Check Final Path availability
|
||||
test ! -e "$final_path" || ynh_die --message "This path already contains a folder"
|
||||
test ! -d $final_path \
|
||||
|| ynh_die --message="There is already a directory: $final_path "
|
||||
|
||||
#=================================================
|
||||
# STANDARD RESTORATION STEPS
|
||||
#=================================================
|
||||
# RESTORE THE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the NGINX web server configuration..."
|
||||
|
||||
# Add users
|
||||
ynh_script_progression --message="Configuring system user..."
|
||||
ynh_system_user_create --username=$app --home_dir=$datadir --use_shell
|
||||
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
# Restore all files
|
||||
ynh_script_progression --message="Restoring files..." --weight=10
|
||||
ynh_restore
|
||||
#=================================================
|
||||
# RECREATE THE DEDICATED USER
|
||||
#=================================================
|
||||
ynh_script_progression --message="Recreating the dedicated system user..."
|
||||
|
||||
# Create and restore the database
|
||||
ynh_script_progression --message="Restoring database..." --weight=3
|
||||
ynh_mysql_create_db "$dbname" "$db_user" "$db_password"
|
||||
ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" < ./db.sql
|
||||
# Create the dedicated user (if not existing)
|
||||
ynh_system_user_create --username=$app --home_dir="$final_path" --use_shell
|
||||
|
||||
# Restore systemd files
|
||||
systemctl daemon-reload
|
||||
systemctl enable "$app".service --quiet
|
||||
#=================================================
|
||||
# RESTORE THE APP MAIN DIR
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the app main directory..."
|
||||
|
||||
# SETUP FAIL2BAN
|
||||
ynh_script_progression --message="Configuring fail2ban..."
|
||||
ynh_add_fail2ban_config --logpath "/var/log/$app/gitea.log" --failregex ".*Failed authentication attempt for .* from <HOST>" --max_retry 5
|
||||
ynh_restore_file --origin_path="$final_path"
|
||||
|
||||
# create needed directories
|
||||
mkdir -p "$final_path/data"
|
||||
mkdir -p "$final_path/custom/conf"
|
||||
|
||||
chmod 750 "$final_path"
|
||||
chmod -R o-rwx "$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/custom/conf/app.ini"
|
||||
chown -R $app:$app "$final_path"
|
||||
|
||||
mkdir -p "/var/log/$app"
|
||||
chown -R $app:$app "/var/log/$app"
|
||||
chmod u=rwX,g=rX,o= "/var/log/$app"
|
||||
|
||||
#=================================================
|
||||
# RESTORE THE DATA DIRECTORY
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the data directory..."
|
||||
|
||||
ynh_restore_file --origin_path="$datadir" --not_mandatory
|
||||
|
||||
mkdir -p $datadir
|
||||
mkdir -p "$datadir/.ssh"
|
||||
mkdir -p "$datadir/repositories"
|
||||
mkdir -p "$datadir/data/avatars"
|
||||
mkdir -p "$datadir/data/attachments"
|
||||
|
||||
chmod 750 "$datadir"
|
||||
chmod -R o-rwx "$datadir"
|
||||
chown -R $app:www-data "$datadir"
|
||||
|
||||
#=================================================
|
||||
# RESTORE FAIL2BAN CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the Fail2Ban configuration..."
|
||||
|
||||
ynh_restore_file --origin_path="/etc/fail2ban/jail.d/$app.conf"
|
||||
ynh_restore_file --origin_path="/etc/fail2ban/filter.d/$app.conf"
|
||||
ynh_systemd_action --action=restart --service_name=fail2ban
|
||||
|
||||
#=================================================
|
||||
# RESTORE THE MYSQL DATABASE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the MySQL database..."
|
||||
|
||||
db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)
|
||||
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd
|
||||
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql
|
||||
|
||||
#=================================================
|
||||
# RESTORE SYSTEMD
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the systemd configuration..."
|
||||
|
||||
ynh_restore_file --origin_path="/etc/systemd/system/$app.service"
|
||||
systemctl enable $app.service --quiet
|
||||
|
||||
#=================================================
|
||||
# RESTORE THE LOGROTATE CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the logrotate configuration..."
|
||||
|
||||
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
|
||||
|
||||
#=================================================
|
||||
# INTEGRATE SERVICE IN YUNOHOST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Integrating service in YunoHost..."
|
||||
|
||||
yunohost service add $app --log="/var/log/$app/gitea.log"
|
||||
|
||||
#=================================================
|
||||
# START SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting a systemd service..."
|
||||
|
||||
# Start a systemd service
|
||||
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/gitea.log" --line_match="Starting new Web server: tcp:127.0.0.1:" --timeout=10
|
||||
sleep 1
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading NGINX web server..."
|
||||
|
||||
# Set permissions
|
||||
ynh_script_progression --message="Protecting directory..."
|
||||
set_permission
|
||||
ynh_systemd_action --service_name=php$phpversion-fpm --action=reload
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
# Configure logrotate
|
||||
ynh_script_progression --message="Configuring log rotation..."
|
||||
ynh_use_logrotate --logfile "/var/log/$app"
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
# Add gitea to YunoHost's monitored services
|
||||
ynh_script_progression --message="Register gitea service..."
|
||||
yunohost service add "$app" --log /var/log/"$app"/gitea.log
|
||||
|
||||
# Reload services
|
||||
ynh_script_progression --message="Reloading services..."
|
||||
systemctl reload nginx.service
|
||||
ynh_systemd_action -l "Starting new Web server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10
|
||||
sleep 1
|
||||
|
||||
ynh_script_progression --message="Restoration completed for $app" --last
|
||||
ynh_script_progression --message="Restoration completed for $app"
|
||||
|
|
332
scripts/upgrade
332
scripts/upgrade
|
@ -3,45 +3,61 @@
|
|||
#=================================================
|
||||
# GENERIC START
|
||||
#=================================================
|
||||
|
||||
# Load common variables and helpers
|
||||
source ./experimental_helper.sh
|
||||
source ./_common.sh
|
||||
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
# Retrieve app settings
|
||||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
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))
|
||||
db_password=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
||||
admin=$(ynh_app_setting_get --app $app --key adminusername)
|
||||
key=$(ynh_app_setting_get --app $app --key secret_key)
|
||||
port=$(ynh_app_setting_get --app $app --key web_port)
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
domain=$(ynh_app_setting_get --app=$app --key=domain)
|
||||
path_url=$(ynh_app_setting_get --app=$app --key=path)
|
||||
admin=$(ynh_app_setting_get --app=$app --key=admin)
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
|
||||
db_user=$db_name
|
||||
db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)
|
||||
port=$(ynh_app_setting_get --app=$app --key=port)
|
||||
secret_key=$(ynh_app_setting_get --app=$app --key=secret_key)
|
||||
|
||||
upstream_version=$(ynh_app_setting_get --app $app --key upstream_version)
|
||||
|
||||
#=================================================
|
||||
# CHECK VERSION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Checking version..."
|
||||
|
||||
upgrade_type=$(ynh_check_app_version_changed)
|
||||
|
||||
#=================================================
|
||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=10
|
||||
|
||||
# We stop the service before to set ynh_clean_setup
|
||||
ynh_systemd_action --service_name=$app.service --action=stop
|
||||
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..."
|
||||
|
||||
# Backup the current version of the app
|
||||
if [ "0$(ynh_app_setting_get --app=$app --key=disable_backup_before_upgrade)" -ne 1 ]
|
||||
then
|
||||
ynh_backup_before_upgrade
|
||||
ynh_clean_setup () {
|
||||
# Clean installation remainings that are not handled by the remove script.
|
||||
ynh_clean_check_starting
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
fi
|
||||
ynh_backup_before_upgrade
|
||||
ynh_clean_setup () {
|
||||
ynh_clean_check_starting
|
||||
# Restore it if the upgrade fails
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# STANDARD UPGRADE STEPS
|
||||
#=================================================
|
||||
# STOP SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Stopping a systemd service..."
|
||||
|
||||
ynh_systemd_action --service_name=$app --action="stop"
|
||||
|
||||
#=================================================
|
||||
# MIGRATION FROM GOGS
|
||||
|
@ -76,11 +92,11 @@ if [[ $migration_process -eq 1 ]]; then
|
|||
ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" < ../conf/login_source.sql
|
||||
|
||||
# Fix hooks
|
||||
if [[ -e $repos_path ]];then
|
||||
ls $repos_path/*/*.git/hooks/pre-receive | while read p; do
|
||||
if [[ -e $datadir/repositories ]];then
|
||||
ls $datadir/repositories/*/*.git/hooks/pre-receive | while read p; do
|
||||
ynh_secure_remove --file=$p
|
||||
done
|
||||
ls $repos_path/*/*.git/hooks/post-receive | while read p; do
|
||||
ls $datadir/repositories/*/*.git/hooks/post-receive | while read p; do
|
||||
ynh_secure_remove --file=$p
|
||||
done
|
||||
fi
|
||||
|
@ -89,137 +105,10 @@ if [[ $migration_process -eq 1 ]]; then
|
|||
fi
|
||||
|
||||
# Move data directory
|
||||
if [ -e "/home/""$app" ] && [ ! -e $datadir ]; then
|
||||
mv "/home/""$app" "$datadir"
|
||||
if [ -e "/home/$app" ] && [ ! -e $datadir ]; then
|
||||
mv "/home/$app" "$datadir"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# STANDARD UPGRADE STEPS
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Configuring application..."
|
||||
|
||||
# Clean template to fix issue : https://github.com/gogits/gogs/issues/4585
|
||||
ynh_secure_remove --file="/opt/$app/templates"
|
||||
|
||||
# Configure gitea with app.ini file
|
||||
config_gitea
|
||||
|
||||
# Configure init script
|
||||
ynh_script_progression --message="Updating systemd units..."
|
||||
ynh_add_systemd_config
|
||||
|
||||
# Modify Nginx configuration file and copy it to Nginx conf directory
|
||||
ynh_script_progression --message="Configuring nginx..." --weight=1
|
||||
config_nginx
|
||||
|
||||
#=================================================
|
||||
# DB migration
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Upgrading database and sources..." --weight=6
|
||||
|
||||
# Before the version 1.7 the upstream version was not stored
|
||||
# The way to find the version for the install < 1.7 is to parse the binary file to find which version is installed
|
||||
if [ -z ${upstream_version:-} ]; then
|
||||
for version in "0.0." "1.0." "1.1." "1.2." "1.3." "1.4." "1.5." "1.6." "1.7."; do
|
||||
if strings $final_path/gitea | grep -P "^${version//./\\.}\d"; then
|
||||
upstream_version="${version}0"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
restart_gitea() {
|
||||
# Set permissions
|
||||
set_permission
|
||||
ynh_systemd_action -l "Starting new server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 30
|
||||
# Leave the time to update the database schema
|
||||
sleep 5
|
||||
systemctl stop $app
|
||||
}
|
||||
|
||||
case $upstream_version in
|
||||
"0.0."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.0
|
||||
set_permission
|
||||
systemctl start $app
|
||||
sleep 20
|
||||
systemctl stop $app
|
||||
;&
|
||||
"1.0."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.1
|
||||
restart_gitea
|
||||
;&
|
||||
"1.1."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.2
|
||||
restart_gitea
|
||||
;&
|
||||
"1.2."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.3
|
||||
restart_gitea
|
||||
;&
|
||||
"1.3."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.4
|
||||
restart_gitea
|
||||
;&
|
||||
"1.4."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.5
|
||||
restart_gitea
|
||||
;&
|
||||
"1.5."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.6
|
||||
restart_gitea
|
||||
;&
|
||||
"1.6."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.7
|
||||
restart_gitea
|
||||
;&
|
||||
"1.7."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.8
|
||||
restart_gitea
|
||||
;&
|
||||
"1.8."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.9
|
||||
restart_gitea
|
||||
;&
|
||||
"1.9."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.10
|
||||
restart_gitea
|
||||
;&
|
||||
"1.10."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.11
|
||||
restart_gitea
|
||||
;&
|
||||
"1.11."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.12
|
||||
restart_gitea
|
||||
;&
|
||||
"1.12."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.13
|
||||
restart_gitea
|
||||
;&
|
||||
"1.13."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.14
|
||||
restart_gitea
|
||||
;&
|
||||
"1.14."* )
|
||||
ynh_setup_source $final_path source/${architecture}_1.15
|
||||
restart_gitea
|
||||
;&
|
||||
esac
|
||||
|
||||
# Install gitea source
|
||||
ynh_setup_source $final_path source/$architecture
|
||||
restart_gitea
|
||||
|
||||
# SETUP FAIL2BAN
|
||||
ynh_script_progression --message="Configuring fail2ban..."
|
||||
ynh_add_fail2ban_config --logpath "/var/log/$app/gitea.log" --failregex ".*Failed authentication attempt for .* from <HOST>" --max_retry 5
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
|
||||
# Set all permissions
|
||||
ynh_script_progression --message="Update permission..."
|
||||
|
@ -231,35 +120,124 @@ if ! ynh_permission_exists --permission admin; then
|
|||
ynh_mysql_connect_as "$db_user" "$db_password" "$dbname" < ../conf/login_source.sql
|
||||
fi
|
||||
|
||||
# Add gitea to YunoHost's monitored services
|
||||
ynh_script_progression --message="Register gitea service..."
|
||||
yunohost service add "$app" --log "/var/log/$app/gitea.log"
|
||||
#=================================================
|
||||
# CREATE DEDICATED USER
|
||||
#=================================================
|
||||
ynh_script_progression --message="Making sure dedicated system user exists..."
|
||||
|
||||
# Create a dedicated user (if not existing)
|
||||
ynh_system_user_create --username=$app --home_dir="$final_path" --home_dir=$datadir --use_shell
|
||||
|
||||
# Add ssh permission for gitea user
|
||||
adduser $app ssh.app
|
||||
|
||||
# Set permissions
|
||||
ynh_script_progression --message="Protecting directory"
|
||||
set_permission
|
||||
#=================================================
|
||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||
#=================================================
|
||||
|
||||
if [ "$upgrade_type" == "UPGRADE_APP" ]
|
||||
then
|
||||
ynh_script_progression --message="Upgrading source files..."
|
||||
|
||||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_setup_source --dest_dir="$final_path" --source_id="$YNH_ARCH" --keep="custom/conf/app.ini"
|
||||
fi
|
||||
|
||||
# create needed directories
|
||||
mkdir -p "$final_path/data"
|
||||
mkdir -p "$final_path/custom/conf"
|
||||
|
||||
chmod 750 "$final_path"
|
||||
chmod -R o-rwx "$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/custom/conf/app.ini"
|
||||
chown -R $app:$app "$final_path"
|
||||
|
||||
mkdir -p "/var/log/$app"
|
||||
chown -R $app:$app "/var/log/$app"
|
||||
chmod u=rwX,g=rX,o= "/var/log/$app"
|
||||
|
||||
# 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=$upstream_version
|
||||
|
||||
# Reload services
|
||||
ynh_script_progression --message="Starting gitea services..." --weight=3
|
||||
ynh_systemd_action -l "Starting new Web server: tcp:127.0.0.1:" -p "/var/log/$app/gitea.log" -t 10
|
||||
#=================================================
|
||||
# NGINX CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading NGINX web server configuration..."
|
||||
|
||||
# Create a dedicated NGINX config
|
||||
ynh_add_nginx_config
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC UPGRADE
|
||||
#=================================================
|
||||
# UPDATE A CONFIG FILE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Updating a configuration file..."
|
||||
|
||||
# Clean template to fix issue : https://github.com/gogits/gogs/issues/4585
|
||||
ynh_secure_remove --file="$final_path/templates"
|
||||
|
||||
# Configure gitea with app.ini file
|
||||
ssh_port=$(grep -P "Port\s+\d+" /etc/ssh/sshd_config | grep -P -o "\d+")
|
||||
ynh_add_config --template="app.ini" --destination="$final_path/custom/conf/app.ini"
|
||||
|
||||
#=================================================
|
||||
# SETUP SYSTEMD
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading systemd configuration..."
|
||||
|
||||
# Create a dedicated systemd config
|
||||
ynh_add_systemd_config
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# SETUP LOGROTATE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading logrotate configuration..."
|
||||
|
||||
# Use logrotate to manage app-specific logfile(s)
|
||||
ynh_use_logrotate --non-append
|
||||
|
||||
#=================================================
|
||||
# INTEGRATE SERVICE IN YUNOHOST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Integrating service in YunoHost..."
|
||||
|
||||
yunohost service add $app --log="/var/log/$app/gitea.log"
|
||||
|
||||
#=================================================
|
||||
# START SYSTEMD SERVICE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Starting a systemd service..."
|
||||
|
||||
# Start a systemd service
|
||||
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/gitea.log" --line_match="Starting new Web server: tcp:127.0.0.1:" --timeout=10
|
||||
sleep 1
|
||||
|
||||
# Store the checksum with the 'INTERNAL_TOKEN' value.
|
||||
# Should be removed when the issue https://github.com/go-gitea/gitea/issues/3246 is fixed
|
||||
ynh_store_file_checksum --file "$final_path/custom/conf/app.ini"
|
||||
#=================================================
|
||||
# UPGRADE FAIL2BAN
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reconfiguring Fail2Ban..."
|
||||
|
||||
# Create a dedicated Fail2Ban config
|
||||
ynh_add_fail2ban_config --logpath="/var/log/$app/gitea.log" --failregex=".*Failed authentication attempt for .* from <HOST>" --max_retry=5
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reloading NGINX web server..."
|
||||
|
||||
ynh_systemd_action --service_name=nginx --action=reload
|
||||
|
||||
#=================================================
|
||||
# FINISH MIGRATION PROCESS
|
||||
#=================================================
|
||||
|
||||
if [[ $migration_process -eq 1 ]]; then
|
||||
echo "gogs has been successfully migrated to Gitea! \
|
||||
ynh_script_progression --message="gogs has been successfully migrated to Gitea! \
|
||||
A last scheduled operation will run in a couple of minutes to finish the \
|
||||
migration in YunoHost side. Do not proceed any application operation while \
|
||||
you don't see Gogs as installed." >&2
|
||||
|
@ -274,4 +252,8 @@ you don't see Gogs as installed." >&2
|
|||
(cd /tmp; echo "/tmp/$script_post_migration > /tmp/$script_post_migration.log 2>&1" | at now + 2 minutes)
|
||||
fi
|
||||
|
||||
ynh_script_progression --message="Upgrade of $app completed" --last
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Upgrade of $app completed"
|
||||
|
|
Loading…
Add table
Reference in a new issue