1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/gogs_ynh.git synced 2024-09-03 20:36:23 +02:00

Add multinstance support

This commit is contained in:
Josué Tille 2018-02-08 10:11:36 +01:00
parent 13ab394e5a
commit 943f689f9d
10 changed files with 34 additions and 41 deletions

View file

@ -81,6 +81,8 @@ sudo yunohost app upgrade -f /home/admin/gogs_ynh gogs
## Todo
- Big comment
- Test multi instance
- check migration
- change-url

View file

@ -12,8 +12,9 @@
setup_private=1
setup_public=1
upgrade=1
# upgrade=1 from_commit=a62bce7dbc6bc0e1f1b4e872286ff124747ea009
# upgrade=1 from_commit=f050f88fbfe7bad1bf74d4584ec62ffcf28248e7
upgrade=1 from_commit=aa075b2051ffad7b0b6fef3a9c767376d5bdbfab
upgrade=1 from_commit=1cbec051e1171de5a8ed1e850eb4fb3506114da5
upgrade=1 from_commit=5a706ed246392c1ce39c47a648cb93e2996e80d3
backup_restore=1
multi_instance=1
incorrect_path=0
@ -32,7 +33,9 @@
Level 9=0
Level 10=0
;;; Upgrade options
# ; commit=a62bce7dbc6bc0e1f1b4e872286ff124747ea009
# name=Before multi_instance
# ; commit=f050f88fbfe7bad1bf74d4584ec62ffcf28248e7
# name=Old version package
; commit=aa075b2051ffad7b0b6fef3a9c767376d5bdbfab
name=Before multi_instance and refactoring
; commit=1cbec051e1171de5a8ed1e850eb4fb3506114da5
name=From V0.10.18
; commit=5a706ed246392c1ce39c47a648cb93e2996e80d3
name=The oldest package

View file

@ -1,6 +1,6 @@
;https://github.com/gogits/gogs/blob/master/conf/app.ini
APP_NAME = Gogs: Go Git Service
RUN_USER = gogs
RUN_USER = __APP__
RUN_MODE = prod
[database]
DB_TYPE = mysql
@ -44,7 +44,7 @@ PROVIDER = memory
[log]
MODE = file
LEVEL = Warn
ROOT_PATH = /var/log/gogs
ROOT_PATH = /var/log/__APP__
[security]
INSTALL_LOCK = true
SECRET_KEY = __KEY__

View file

@ -1,3 +1,3 @@
INSERT INTO `gogs`.`login_source` (`id`, `type`, `name`, `is_actived`, `cfg`, `created_unix`, `updated_unix`) VALUES
('1', '2', 'Yunohost LDAP', '1', '{"Name":"Yunohost LDAP","Host":"localhost","Port":389,"UseSSL":false,"BindDN":"","BindPassword":"","UserBase":"ou=users,dc=yunohost,dc=org","AttributeName":"givenName","AttributeSurname":"sn","AttributeMail":"mail","Filter":"(uid=%s)","AdminFilter":"(uid=yuno_admin)","Enabled":true}', '1464014433', '1464015955')
ON DUPLICATE KEY UPDATE cfg='{"Name":"Yunohost LDAP","Host":"localhost","Port":389,"UseSSL":false,"BindDN":"","BindPassword":"","UserBase":"ou=users,dc=yunohost,dc=org","AttributeName":"givenName","AttributeSurname":"sn","AttributeMail":"mail","Filter":"(uid=%s)","AdminFilter":"(uid=yuno_admin)","Enabled":true}'
INSERT INTO `__APP__`.`login_source` (`id`, `type`, `name`, `is_actived`, `cfg`, `created_unix`, `updated_unix`) VALUES
('1', '2', 'Yunohost LDAP', '1', '{"Name":"Yunohost LDAP","Host":"localhost","Port":389,"UseSSL":false,"BindDN":"","BindPassword":"","UserBase":"ou=users,dc=yunohost,dc=org","AttributeName":"givenName","AttributeSurname":"sn","AttributeMail":"mail","Filter":"(uid=%s)","AdminFilter":"(uid=__ADMIN__)","Enabled":true}', '1464014433', '1464015955')
ON DUPLICATE KEY UPDATE cfg='{"Name":"Yunohost LDAP","Host":"localhost","Port":389,"UseSSL":false,"BindDN":"","BindPassword":"","UserBase":"ou=users,dc=yunohost,dc=org","AttributeName":"givenName","AttributeSurname":"sn","AttributeMail":"mail","Filter":"(uid=%s)","AdminFilter":"(uid=__ADMIN__)","Enabled":true}'

View file

@ -13,12 +13,12 @@ After=slapd.service
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=gogs
Group=gogs
WorkingDirectory=/home/gogs
ExecStart=/opt/gogs/gogs web
User=__APP__
Group=__APP__
WorkingDirectory=/home/__APP__
ExecStart=/opt/__APP__/gogs web
Restart=always
Environment=USER=gogs HOME=/home/gogs
Environment=USER=__APP__ HOME=/home/__APP__
[Install]
WantedBy=multi-user.target

View file

@ -14,7 +14,7 @@
"name": "tostaki",
"email": "maxime@max.privy.place"
},
"multi_instance": false,
"multi_instance": true,
"services": [
"nginx",
"mysql"

View file

@ -2,9 +2,9 @@
# Common variables
#
app=$YNH_APP_INSTANCE_NAME
final_path="/opt/$app"
dbname=$app
dbuser=$app
final_path="/opt/$app"
DATADIR="/home/$app"
REPO_PATH="$DATADIR/repositories"
DATA_PATH="$DATADIR/data"
@ -24,6 +24,7 @@ else
fi
create_dir() {
mkdir -p "$final_path/data"
mkdir -p "$final_path/custom/conf"
mkdir -p "$REPO_PATH"
mkdir -p "$DATA_PATH/avatars"
@ -58,6 +59,7 @@ config_gogs() {
ynh_replace_string "__KEY__" "$key" "$final_path/custom/conf/app.ini"
ynh_replace_string "__DATA_PATH__" "$DATA_PATH" "$final_path/custom/conf/app.ini"
ynh_replace_string "__PORT__" $port "$final_path/custom/conf/app.ini"
ynh_replace_string "__APP__" $app "$final_path/custom/conf/app.ini"
ynh_store_file_checksum "$final_path/custom/conf/app.ini"
}

View file

@ -45,16 +45,9 @@ ynh_app_setting_set $app web_port $port
# Add users
ynh_system_user_create $app
# id -g "$app" &>/dev/null || sudo addgroup "$app" --system --quiet
# id -u "$app" &>/dev/null || sudo adduser "$app" \
# --ingroup "$app" --system --quiet --shell /bin/bash
# create needed directories
create_dir
# Create uploads folder and permissions
mkdir /opt/$app/data
# Install Gogs
ynh_setup_source $final_path $architecture
@ -80,11 +73,12 @@ do
done
# Add ldap config
ynh_replace_string "yuno_admin" "$admin" ../conf/login_source.sql
ynh_replace_string "__ADMIN__" "$admin" ../conf/login_source.sql$
ynh_replace_string "__APP__" "$app" ../conf/login_source.sql
ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" < ../conf/login_source.sql
# Unprotect root from SSO if public
if [ ! "$is_public" ]
if [ "$is_public" = '1' ]
then
ynh_app_setting_set $app unprotected_uris "/"
fi

View file

@ -10,11 +10,6 @@ ynh_abort_if_errors
source ../settings/scripts/experimental_helper.sh
source ../settings/scripts/_common.sh
# Set app specific variables
app=${APPNAME:-gogs}
dbname=$app
dbuser=$app
# Retrieve old app settings
domain=$(ynh_app_setting_get "$app" domain)
path_url=$(ynh_app_setting_get "$app" path)

View file

@ -12,7 +12,7 @@ source ./_common.sh
# Retrieve app settings
domain=$(ynh_app_setting_get "$app" domain)
path_url=$(ynh_app_setting_get "$app" path)
path_url=$(ynh_normalize_url_path $(ynh_app_setting_get "$app" path))
dbpass=$(ynh_app_setting_get "$app" mysqlpwd)
admin=$(ynh_app_setting_get "$app" adminusername)
key=$(ynh_app_setting_get "$app" secret_key)
@ -20,13 +20,10 @@ is_public=$(ynh_app_setting_get "$app" is_public)
port=$(ynh_app_setting_get "$app" web_port)
# Backup the current version of the app
if [[ $(ynh_app_setting_get $app disable_backup_before_upgrade) != '1' ]]
then
ynh_backup_before_upgrade
ynh_clean_setup () {
ynh_backup_before_upgrade
ynh_clean_setup () {
ynh_restore_upgradebackup
}
fi
}
# Update settings is_public to new standard
if [ "$is_public" = "Yes" ]; then
@ -78,7 +75,7 @@ ynh_add_systemd_config
config_nginx
# Unprotect root from SSO if public
if [ "$is_public" ]
if [ ! "$is_public" ]
then
ynh_app_setting_set $app unprotected_uris "/"
fi