mirror of
https://github.com/YunoHost-Apps/fittrackee_ynh.git
synced 2024-09-03 18:36:16 +02:00
Test
This commit is contained in:
parent
56cc1e8206
commit
90b5917ac7
6 changed files with 103 additions and 39 deletions
|
@ -1,3 +1,49 @@
|
||||||
|
# Custom variables initialisation
|
||||||
|
# (can overwrite variables present in Makefile.config)
|
||||||
|
|
||||||
|
# Application
|
||||||
|
# export FLASK_APP=fittrackee
|
||||||
|
export FLASK_SKIP_DOTENV=1
|
||||||
|
# export HOST=
|
||||||
|
# export PORT=
|
||||||
|
# export APP_SETTINGS=fittrackee.config.ProductionConfig
|
||||||
|
export APP_SECRET_KEY='__KEY__'
|
||||||
|
# export APP_WORKERS=
|
||||||
|
export APP_LOG=fittrackee.log
|
||||||
|
export UPLOAD_FOLDER=/home/yunohost.app/__APP__/data
|
||||||
|
|
||||||
|
# PostgreSQL
|
||||||
|
export DATABASE_URL=postgresql://__DB_USER__:__DB_PWD__@:5432/__DB_NAME__
|
||||||
|
# export DATABASE_DISABLE_POOLING=
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Redis (required for API rate limits and email sending)
|
||||||
|
# export REDIS_URL=redis://127.0.0.1:6379/__REDIS_DB__
|
||||||
|
|
||||||
|
# API rate limits
|
||||||
|
# export API_RATE_LIMITS="300 per 5 minutes"
|
||||||
|
|
||||||
|
# Emails
|
||||||
|
export UI_URL=__DOMAIN__
|
||||||
|
export EMAIL_URL=
|
||||||
|
export SENDER_EMAIL=
|
||||||
|
# export WORKERS_PROCESSES=
|
||||||
|
|
||||||
|
# Workouts
|
||||||
|
# export TILE_SERVER_URL=
|
||||||
|
# export STATICMAP_SUBDOMAINS=
|
||||||
|
# export MAP_ATTRIBUTION=
|
||||||
|
# export DEFAULT_STATICMAP=False
|
||||||
|
|
||||||
|
# Weather
|
||||||
|
# available weather API providers: darksky, visualcrossing
|
||||||
|
# export WEATHER_API_PROVIDER=visualcrossing
|
||||||
|
# export WEATHER_API_KEY=
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# SECURITY WARNING: keep the secret key used in production secret!
|
# SECURITY WARNING: keep the secret key used in production secret!
|
||||||
SECRET_KEY="__KEY__"
|
SECRET_KEY="__KEY__"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
SOURCE_URL=https://codeload.github.com/SamR1/FitTrackee/tar.gz/refs/tags/v0.7.12
|
|
||||||
SOURCE_SUM=8fe1e2768453058792f9f2b9bc9fa411dceeaa8aac2cd5f2096b583b8111de00
|
|
||||||
SOURCE_SUM_PRG=sha256sum
|
|
||||||
SOURCE_FORMAT=tar.gz
|
|
||||||
SOURCE_IN_SUBDIR=true
|
|
|
@ -15,7 +15,7 @@ Group=__APP__
|
||||||
StandardOutput=syslog
|
StandardOutput=syslog
|
||||||
StandardError=syslog
|
StandardError=syslog
|
||||||
SyslogIdentifier=__APP___workers
|
SyslogIdentifier=__APP___workers
|
||||||
Environment="FLASK_APP=__APP__"
|
Environment="FLASK_APP=fittrackee"
|
||||||
Environment="APP_SECRET_KEY="
|
Environment="APP_SECRET_KEY="
|
||||||
Environment="APP_LOG="
|
Environment="APP_LOG="
|
||||||
Environment="UPLOAD_FOLDER="
|
Environment="UPLOAD_FOLDER="
|
||||||
|
@ -26,8 +26,7 @@ Environment="SENDER_EMAIL="
|
||||||
Environment="REDIS_URL="
|
Environment="REDIS_URL="
|
||||||
WorkingDirectory=__INSTALL_DIR__/
|
WorkingDirectory=__INSTALL_DIR__/
|
||||||
EnvironmentFile=__INSTALL_DIR__/.env
|
EnvironmentFile=__INSTALL_DIR__/.env
|
||||||
ExecStart=__INSTALL_DIR__/venv/bin/celery -A celerywyrm worker -l info -Q high_priority,medium_priority,low_priority
|
ExecStart=__INSTALL_DIR__/.venv/bin/flask worker --processes 2
|
||||||
ExecStart=__INSTALL_DIR__/.venv/bin/flask worker --processes 4
|
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
||||||
NoNewPrivileges=yes
|
NoNewPrivileges=yes
|
||||||
|
|
|
@ -36,17 +36,15 @@ ram.runtime = "50M"
|
||||||
type = "group"
|
type = "group"
|
||||||
default = "visitors"
|
default = "visitors"
|
||||||
|
|
||||||
[install.language]
|
|
||||||
ask.en = "Choose the application language"
|
|
||||||
ask.fr = "Choisissez la langue de l'application"
|
|
||||||
type = "string"
|
|
||||||
choices = ["de-de", "en-us", "fr-fr", "it-it", "nl-nl"]
|
|
||||||
default = "fr-fr"
|
|
||||||
|
|
||||||
[install.admin]
|
[install.admin]
|
||||||
# this is a generic question - ask strings are automatically handled by Yunohost's core
|
# this is a generic question - ask strings are automatically handled by Yunohost's core
|
||||||
type = "user"
|
type = "user"
|
||||||
|
|
||||||
|
[install.weather_api_key]
|
||||||
|
ask.en = "visualcrossing api key for the weather data"
|
||||||
|
ask.fr = "Clé API visualcrossing pour les données météos"
|
||||||
|
type = "string"
|
||||||
|
|
||||||
[resources]
|
[resources]
|
||||||
[resources.system_user]
|
[resources.system_user]
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
# COMMON VARIABLES
|
# COMMON VARIABLES
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
|
fittrackee_version="0.7.12"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# PERSONAL HELPERS
|
# PERSONAL HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
|
@ -9,27 +9,54 @@
|
||||||
source _common.sh
|
source _common.sh
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
weather_api_key=$(ynh_string_random --length=32)
|
||||||
|
|
||||||
admin_mail=$(ynh_user_get_info --username=$admin --key=username)
|
#=================================================
|
||||||
key=$(ynh_string_random --length=32)
|
# INSTALL DEPENDENCIES
|
||||||
|
#=================================================
|
||||||
|
ynh_script_progression --message="Installing dependencies..." --weight=23
|
||||||
|
|
||||||
|
ynh_exec_warn_less python3 -m pip install pipenv
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Setting up source files..." --weight=1
|
ynh_script_progression --message="Setting up source files..." --weight=64
|
||||||
|
|
||||||
# Download, check integrity, uncompress and patch the source from app.src
|
|
||||||
ynh_setup_source --dest_dir="$install_dir"
|
|
||||||
|
|
||||||
# Set permissions to app files
|
# Set permissions to app files
|
||||||
chmod -R o-rwx "$install_dir"
|
# mkdir -p "$install_dir/.venv"
|
||||||
chown -R $app:www-data "$install_dir"
|
# chown -R $app:$app "$install_dir"
|
||||||
|
# chmod -R g=u,g-w,o-rwx "$install_dir"
|
||||||
|
# setfacl -nR -m g:$app.main:rx -m d:g:$app.main:rx "$install_dir/.venv"
|
||||||
|
# setfacl -n -m g:$app.main:x "$install_dir"
|
||||||
|
|
||||||
|
# pushd "$install_dir"
|
||||||
|
# sudo -u $app PIPENV_VENV_IN_PROJECT="enabled" PIPENV_SKIP_LOCK=true python3 -m pipenv install jupyterlab==$jupyterlab_version jupyterhub notebook jupyter-server jupyterhub-ldapauthenticator pyzmq sudospawner 2>&1
|
||||||
|
# sudo -u $app python3 -m pipenv run jupyterhub upgrade-db 2>&1
|
||||||
|
# popd
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p "$install_dir"
|
||||||
|
|
||||||
|
pushd $install_dir
|
||||||
|
mkdir -p .venv
|
||||||
|
PIPENV_VENV_IN_PROJECT="enabled" PIPENV_SKIP_LOCK=true ynh_exec_warn_less python3 -m pipenv install fittrackee==$fittrackee_version
|
||||||
|
popd
|
||||||
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CONFIGURE THEN INSTALL SCRIPT AND DEPENDENCIES
|
# CONFIGURE THE INSTALL SCRIPT
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Installing service script..." --weight=1
|
ynh_script_progression --message="Installing service script..." --weight=1
|
||||||
|
|
||||||
|
key=$(ynh_string_random --length=45 | base64)
|
||||||
|
redis_db=$(ynh_redis_get_free_db)
|
||||||
|
|
||||||
|
ynh_app_setting_set --app=$app --key=key --value=$key
|
||||||
|
ynh_app_setting_set --app=$app --key=redis_db --value=$redis_db
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ynh_add_config --template="../conf/.env.production" --destination="$install_dir/.env"
|
ynh_add_config --template="../conf/.env.production" --destination="$install_dir/.env"
|
||||||
chmod 600 $install_dir/.env
|
chmod 600 $install_dir/.env
|
||||||
chown $app:www-data "$install_dir/.env"
|
chown $app:www-data "$install_dir/.env"
|
||||||
|
@ -38,17 +65,16 @@ set -a; source "$install_dir/.env"; set +a
|
||||||
|
|
||||||
mkdir "$install_dir/venv"
|
mkdir "$install_dir/venv"
|
||||||
python3 -m venv "$install_dir/venv"
|
python3 -m venv "$install_dir/venv"
|
||||||
$install_dir/venv/bin/pip3 install -r "$install_dir/requirements.txt"
|
source $install_dir/.env
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# INITIALIZE DATABASE
|
# INITIALIZE DATABASE
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Initializing database..." --weight=1
|
ynh_script_progression --message="Initializing database..." --weight=1
|
||||||
|
|
||||||
$install_dir/venv/bin/python3 "$install_dir/manage.py" migrate
|
ftcli db upgrade
|
||||||
$install_dir/venv/bin/python3 "$install_dir/manage.py" initdb
|
|
||||||
$install_dir/venv/bin/python3 "$install_dir/manage.py" collectstatic --no-input
|
|
||||||
|
|
||||||
|
flask worker --processes 2
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# NGINX CONFIGURATION
|
# NGINX CONFIGURATION
|
||||||
|
@ -58,17 +84,16 @@ ynh_script_progression --message="Configuring NGINX web server..." --weight=1
|
||||||
# Create a dedicated NGINX config
|
# Create a dedicated NGINX config
|
||||||
ynh_add_nginx_config
|
ynh_add_nginx_config
|
||||||
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP SYSTEMD
|
# SETUP SYSTEMD
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Configuring a systemd service..." --weight=1
|
ynh_script_progression --message="Configuring a systemd service..." --weight=1
|
||||||
|
|
||||||
ynh_add_config --template="../conf/${app}.target" --destination="/etc/systemd/system/$app.target"
|
|
||||||
|
|
||||||
# Create a dedicated systemd config
|
# Create a dedicated systemd config
|
||||||
ynh_add_systemd_config --service="${app}-server" --template="${app}-server.service"
|
ynh_add_systemd_config --service="${app}" --template="${app}.service"
|
||||||
ynh_add_systemd_config --service="${app}-worker" --template="${app}-worker.service"
|
ynh_add_systemd_config --service="${app}-workers" --template="${app}-workers.service"
|
||||||
ynh_add_systemd_config --service="${app}-beat" --template="${app}-beat.service"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# GENERIC FINALIZATION
|
# GENERIC FINALIZATION
|
||||||
|
@ -77,9 +102,8 @@ ynh_add_systemd_config --service="${app}-beat" --template="${app}-beat.service
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
|
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
|
||||||
|
|
||||||
yunohost service add "${app}-beat"
|
yunohost service add "${app}"
|
||||||
yunohost service add "${app}-server"
|
yunohost service add "${app}-workers"
|
||||||
yunohost service add "${app}-worker"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# START SYSTEMD SERVICE
|
# START SYSTEMD SERVICE
|
||||||
|
@ -87,9 +111,9 @@ yunohost service add "${app}-worker"
|
||||||
ynh_script_progression --message="Starting a systemd service..." --weight=1
|
ynh_script_progression --message="Starting a systemd service..." --weight=1
|
||||||
|
|
||||||
# Start a systemd service
|
# Start a systemd service
|
||||||
ynh_systemd_action --service_name="${app}-beat" --action="start" --log_path="systemd" --line_match="Started"
|
ynh_systemd_action --service_name="${app}" --action="start" --log_path="systemd" --line_match="Booting worker with pid"
|
||||||
ynh_systemd_action --service_name="${app}-server" --action="start" --log_path="systemd" --line_match="Booting worker with pid"
|
ynh_systemd_action --service_name="${app}-workers" --action="start" --log_path="systemd" --line_match="ready"
|
||||||
ynh_systemd_action --service_name="${app}-worker" --action="start" --log_path="systemd" --line_match="ready"
|
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# END OF SCRIPT
|
# END OF SCRIPT
|
||||||
|
|
Loading…
Add table
Reference in a new issue