mirror of
https://github.com/YunoHost-Apps/pgadmin_ynh.git
synced 2024-09-03 19:56:38 +02:00
cleanup install
This commit is contained in:
parent
697dd1c305
commit
bbc3f1a0ea
4 changed files with 19 additions and 86 deletions
4
conf/setup.exp
Normal file → Executable file
4
conf/setup.exp
Normal file → Executable file
|
@ -11,11 +11,11 @@ expect "Email address:"
|
|||
send "$user\r";
|
||||
|
||||
expect "Password:"
|
||||
send {__ADMIN_PASSWORD__};
|
||||
send {__PASSWORD__};
|
||||
send "\r";
|
||||
|
||||
expect "Retype password:"
|
||||
send {__ADMIN_PASSWORD__};
|
||||
send {__PASSWORD__};
|
||||
send "\r";
|
||||
|
||||
interact
|
||||
|
|
|
@ -37,7 +37,3 @@ _install_pgadmin_venv() {
|
|||
cp "$YNH_APP_BASEDIR/conf/requirement_$(lsb_release --codename --short).txt" "$install_dir/requirements.txt"
|
||||
ynh_exec_as "$app" "$venvpy" -m pip install --upgrade -r "$install_dir/requirements.txt"
|
||||
}
|
||||
|
||||
config_pgadmin() {
|
||||
ynh_add_config --template="config_local.py" --destination="$install_dir/venv/lib/python$python_version/site-packages/pgadmin4/config_local.py"
|
||||
}
|
||||
|
|
|
@ -1,55 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
from importlib.machinery import SourceFileLoader
|
||||
import sqlite3
|
||||
import sys
|
||||
|
||||
# Import crypto from pgadmin project __PYTHON_VERSION__
|
||||
python_version = str(sys.version_info[0]) + "." + str(sys.version_info[1])
|
||||
crypto = SourceFileLoader('crypto', '/var/www/pgadmin/venv/lib/python' +
|
||||
python_version + '/site-packages/pgadmin4/pgadmin/utils/crypto.py').load_module()
|
||||
|
||||
# Get arguments
|
||||
username = sys.argv[1]
|
||||
password = sys.argv[2]
|
||||
|
||||
# Connect to sqlite3
|
||||
conn = sqlite3.connect('/var/lib/pgadmin/pgadmin4.db')
|
||||
|
||||
# Get encrypte user password from the database
|
||||
cursor = conn.execute('SELECT `password`,1 FROM `user`')
|
||||
user_encrypted_password = cursor.fetchone()[0]
|
||||
|
||||
# Encrypt database password
|
||||
crypted_password = crypto.encrypt(password, user_encrypted_password)
|
||||
|
||||
# Declare database data to put in database
|
||||
data = {'id': 1, 'user_id': 1, 'servergroup_id': 1, 'name': 'Yunohost Server', 'host': 'localhost', 'port': 5432, 'maintenance_db': 'postgres',
|
||||
'username': username, 'comment': '', 'password': crypted_password, 'role': '', 'discovery_id': '',
|
||||
'db_res': '', 'bgcolor': '', 'fgcolor': '', 'service': '',
|
||||
'use_ssh_tunnel': '', 'tunnel_host': '', 'tunnel_port': 22, 'tunnel_username': '', 'tunnel_authentication': '', 'tunnel_identity_file': '', 'tunnel_password': '',
|
||||
'save_password': 1, 'shared': '', 'kerberos_conn': 0, 'cloud_status': 0, 'passexec_cmd': '', 'passexec_expiration': '',
|
||||
'connection_params': '''{"sslmode": "prefer", "connect_timeout": 10, "sslcert": "<STORAGE_DIR>/.postgresql/postgresql.crt", "sslkey": "<STORAGE_DIR>/.postgresql/postgresql.key"}'''}
|
||||
|
||||
# Insert new data in database
|
||||
cursor = conn.cursor()
|
||||
cursor.execute('''
|
||||
INSERT INTO `server` (
|
||||
`id`,`user_id`,`servergroup_id`,`name`,`host`,`port`,`maintenance_db`,
|
||||
`username`,`comment`,`password`,`role`,`discovery_id`,
|
||||
`db_res`,`bgcolor`,`fgcolor`,`service`,
|
||||
`use_ssh_tunnel`,`tunnel_host`,`tunnel_port`,`tunnel_username`,`tunnel_authentication`,`tunnel_identity_file`,`tunnel_password`,
|
||||
`save_password`,`shared`,`kerberos_conn`,`cloud_status`,`passexec_cmd`,`passexec_expiration`,
|
||||
`connection_params`
|
||||
) VALUES (
|
||||
:id,:user_id,:servergroup_id,:name,:host,:port,:maintenance_db,
|
||||
:username,:comment,:password,:role,:discovery_id,
|
||||
:db_res,:bgcolor,:fgcolor,:service,
|
||||
:use_ssh_tunnel,:tunnel_host,:tunnel_port,:tunnel_username,:tunnel_authentication,:tunnel_identity_file,:tunnel_password,
|
||||
:save_password,:shared,:kerberos_conn,:cloud_status,:passexec_cmd,:passexec_expiration,
|
||||
:connection_params
|
||||
);''', data)
|
||||
conn.commit()
|
||||
|
||||
# Close connection
|
||||
conn.close()
|
|
@ -21,43 +21,32 @@ email=$(ynh_user_get_info --username $admin --key 'mail')
|
|||
#=================================================
|
||||
ynh_script_progression --message="Setting up source files..."
|
||||
|
||||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_script_progression --message="Installing sources files..." --weight=10
|
||||
_install_pgadmin_venv
|
||||
|
||||
setup_dir
|
||||
|
||||
_install_pgadmin_venv
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC SETUP
|
||||
# ADD A CONFIGURATION
|
||||
#=================================================
|
||||
# ...
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Configuring application..."
|
||||
ynh_script_progression --message="Adding a configuration file..." --weight=1
|
||||
|
||||
# CONFIGURE PGADMIN
|
||||
config_pgadmin
|
||||
ynh_add_config --template="config_local.py" --destination="$install_dir/venv/lib/python$python_version/site-packages/pgadmin4/config_local.py"
|
||||
|
||||
# Config uwsgi
|
||||
ynh_add_uwsgi_service "python_version"
|
||||
ynh_script_progression --message="Configuring $app..."
|
||||
|
||||
ynh_script_progression --message="Configuring sqlite database..."
|
||||
ynh_add_config --template="setup.exp" --destination="$install_dir/setup.exp"
|
||||
"$install_dir/setup.exp" "$install_dir/venv/bin/python3" "$install_dir/venv/lib/python$python_version/site-packages/pgadmin4/setup.py" "$email"
|
||||
|
||||
# initialisation sqlite database for pgadmin
|
||||
chmod +x ../conf/setup.exp
|
||||
|
||||
ynh_replace_special_string --match_string "__ADMIN_PASSWORD__" --replace_string "$password" --target_file "../conf/setup.exp"
|
||||
../conf/setup.exp "$install_dir/venv/bin/python3" "$install_dir/venv/lib/python$python_version/site-packages/pgadmin4/setup.py" "$email"
|
||||
|
||||
# POPULATE THE DATABASE
|
||||
ynh_script_progression --message="Configuring Postgresql database..."
|
||||
#REMOVEME? ynh_psql_test_if_first_run
|
||||
ynh_psql_execute_as_root \
|
||||
--sql "CREATE USER ${db_user} WITH PASSWORD '${db_pwd}' SUPERUSER CREATEDB CREATEROLE REPLICATION"
|
||||
#=================================================
|
||||
# Postgresql superuser
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring Postgresql superuser..."
|
||||
ynh_psql_execute_as_root --sql "CREATE USER $db_user WITH PASSWORD '$db_pwd' SUPERUSER CREATEDB CREATEROLE REPLICATION"
|
||||
|
||||
# Add Server In PGadmin database
|
||||
$install_dir/venv/bin/python3 config_database.py "$db_user" "$db_pwd"
|
||||
ynh_add_config --template="setup_database.py" --destination "$install_dir/setup_database.py"
|
||||
"$install_dir/venv/bin/python3" "$install_dir/setup_database.py" "$db_user" "$db_pwd"
|
||||
|
||||
# Set permission after initialisation
|
||||
ynh_script_progression --message="Protecting directory"
|
||||
|
@ -71,6 +60,9 @@ ynh_script_progression --message="Adding system configurations related to $app..
|
|||
# Create a dedicated NGINX config
|
||||
ynh_add_nginx_config
|
||||
|
||||
# Config uwsgi
|
||||
ynh_add_uwsgi_service "python_version"
|
||||
|
||||
ynh_use_logrotate --logfile="/var/log/pgadmin"
|
||||
|
||||
#=================================================
|
||||
|
|
Loading…
Reference in a new issue