diff --git a/README.md b/README.md index ff5983f..410335c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # Funkwhale for YunoHost [![Integration level](https://dash.yunohost.org/integration/funkwhale.svg)](https://dash.yunohost.org/appci/app/funkwhale) ![](https://ci-apps.yunohost.org/ci/badges/funkwhale.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/funkwhale.maintain.svg) -[![Install Funkwhale with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=funkwhale) +[![Install Funkwhale with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=funkwhale) + +*[Lire ce readme en français.](./README_fr.md)* > *This package allows you to install Funkwhale quickly and simply on a YunoHost server. If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.* @@ -11,12 +13,18 @@ A modern, convivial and free music server on YunoHost Installation requires a dedicated domain or subdomain. Installing in a subpath is not supported by the upstream project due to dependency requirements. -**Shipped version:** 1.0.1 +**Shipped version:** 1.1 ## Screenshots ![](https://funkwhale.audio/img/desktop.5e79eb16.jpg) +## Demo + +* [Official demo](https://demo.funkwhale.audio) + +**Username:** demo **Password:** demo + ## Admin The admin uses the login you provided at installation. The password is the same you use for YunoHost. @@ -53,7 +61,6 @@ The admin interface is accessible at the address: `your.domain.fr/api/admin` ## Links * Report a bug about this package: https://github.com/YunoHost-Apps/funkwhale_ynh - * Report a bug about Funkwhale itself: https://code.eliotberriot.com/funkwhale/funkwhale/ * App website: https://docs.funkwhale.audio * Upstream app repository: https://dev.funkwhale.audio/funkwhale/funkwhale * YunoHost website: https://yunohost.org/ diff --git a/README_fr.md b/README_fr.md new file mode 100644 index 0000000..0c14ba1 --- /dev/null +++ b/README_fr.md @@ -0,0 +1,81 @@ +# Funkwhale pour YunoHost + +[![Integration level](https://dash.yunohost.org/integration/funkwhale.svg)](https://dash.yunohost.org/appci/app/funkwhale) ![](https://ci-apps.yunohost.org/ci/badges/funkwhale.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/funkwhale.maintain.svg) +[![Install Funkwhale with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=funkwhale) + +*[Read this readme in english.](./README.md)* + +> *Ce package vous permet d'installer Funkwhale rapidement et simplement sur un serveur YunoHost. +Si vous n'avez pas YunoHost, consultez [le guide](https://yunohost.org/#/install) pour apprendre comment l'installer.* + +## Vue d'ensemble +Un serveur de musique moderne, convivial et gratuit sur YunoHost + +L'installation nécessite un domaine ou un sous-domaine dédié. L'installation dans un chemin du domaine n'est pas prise en charge par le projet en amont en raison des exigences de dépendance. + +**Version incluse :** 1.1 + +## Captures d'écran + +![](https://funkwhale.audio/img/desktop.5e79eb16.jpg) + +## Démo + +* [Démo officielle](https://demo.funkwhale.audio) + +**Nom d’utilisateur :** demo **Mot de passe :** demo + +## Admin + +L'administrateur utilise le login que vous avez fourni lors de l'installation. Le mot de passe est le même que celui que vous utilisez pour YunoHost. + +L'interface d'administration est accessible à l'adresse : votre.domaine.fr/api/admin + +# État de ce paquet + +* Les éléments suivants ont été testés avec ce paquet et fonctionnent : + + * [x] installer/supprimer/sauvegarder/supprimer/mettre à jour avec x86_64 + * [x] importation des fichiers avec l’interface web, importations depuis youtube, interraction avec MusicBrainz + * [x] [API Subsonic](https://docs.funkwhale.audio/users/apps.html) + * [x] Tests de [Fédération](https://docs.funkwhale.audio/federation.html) + * [x] [Import CLI](https://docs.funkwhale.audio/importing-music.html#from-music-directory-on-the-server) N'oubliez pas de `source $final_path/venv/bin/activate`, puis `source $final_path/load_env` avant de taper en utilisant manage.py. + +* à ajouter : + * [ ] Stocker les fichiers dans HOME, voir https://github.com/YunoHost-Apps/funkwhale_ynh/issues/15 + +## Documentation + + * Documentation officielle : https://docs.funkwhale.audio + +## Caractéristiques spécifiques YunoHost + +#### Support multi-utilisateur + +* L'authentification LDAP et HTTP est-elle prise en charge ? **OUI** +* L'application peut-elle être utilisée par plusieurs utilisateurs ? **OUI** + +#### Architectures supportées + +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/funkwhale%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/funkwhale/) +* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/funkwhale%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/funkwhale/) + +## Liens + + * Signaler un bug : https://github.com/YunoHost-Apps/funkwhale_ynh + * Site de l’application : https://docs.funkwhale.audio + * Dépôt de l'application principale : https://dev.funkwhale.audio/funkwhale/funkwhale + * Site web YunoHost : https://yunohost.org/ + +--- + +## Informations pour les développeurs + +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/funkwhale_ynh/tree/testing). + +Pour essayer la branche testing, procédez comme suit. +``` +sudo yunohost app install https://github.com/YunoHost-Apps/funkwhale_ynh/tree/testing --debug +or +sudo yunohost app upgrade funkwhale -u https://github.com/YunoHost-Apps/funkwhale_ynh/tree/testing --debug +``` diff --git a/conf/app-frontend.src b/conf/app-frontend.src index 9448940..52d9f61 100644 --- a/conf/app-frontend.src +++ b/conf/app-frontend.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://dev.funkwhale.audio/funkwhale/funkwhale/builds/artifacts/1.0.1/download?job=build_front -SOURCE_SUM=0b77367cb4e8d1b57af59282af90ac41e0915de85cf5337b02f16e6aa0bd0129 +SOURCE_URL=https://dev.funkwhale.audio/funkwhale/funkwhale/builds/artifacts/1.1/download?job=build_front +SOURCE_SUM=cf985340ba0fe477fa5f9b8940102e016c0c75a9941dd8acabb8dc5f77cda000 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=zip SOURCE_IN_SUBDIR=false diff --git a/conf/app.src b/conf/app.src index e1e4b3a..67a52e9 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://dev.funkwhale.audio/funkwhale/funkwhale/-/archive/1.0.1/funkwhale-1.01.tar.gz -SOURCE_SUM=103e45a3c8ae2a1223cb83689ed0a8f35bc7dfa053725a9dfd211e0e0973141b +SOURCE_URL=https://dev.funkwhale.audio/funkwhale/funkwhale/-/archive/1.1/funkwhale-1.1.tar.gz +SOURCE_SUM=924a31ba385c9c52204d78aa89a00b5f53240bf91a13b2c08945fde8f770d345 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.bz2 SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index d3c644d..d5f1259 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Modern, convivial and free music server", "fr": "Serveur de musique moderne, convivial et gratuit" }, - "version": "1.0.1~ynh1", + "version": "1.1~ynh1", "url": "https://funkwhale.audio", "license": "AGPL-3.0-or-later", "maintainer": { @@ -58,4 +58,4 @@ } ] } -} \ No newline at end of file +} diff --git a/scripts/install b/scripts/install index 38d8193..beb1454 100644 --- a/scripts/install +++ b/scripts/install @@ -48,7 +48,6 @@ ynh_script_progression --message="Storing installation settings..." 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=is_public --value="$is_public" ynh_app_setting_set --app="$app" --key=admin --value="$admin" #================================================= @@ -56,7 +55,7 @@ ynh_app_setting_set --app="$app" --key=admin --value="$admin" #================================================= # FIND AND OPEN A PORT #================================================= -ynh_script_progression --message="Configuring firewall..." +ynh_script_progression --message="Finding an available port..." # Find a free port port=$(ynh_find_port --port=5000) @@ -68,7 +67,7 @@ ynh_app_setting_set --app="$app" --key=port --value="$port" #================================================= ynh_script_progression --message="Installing dependencies..." -ynh_install_app_dependencies $pkg_dependencies +ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies #================================================= # CREATE A POSTGRESQL DATABASE @@ -236,14 +235,14 @@ ynh_add_fail2ban_config --logpath="/var/log/nginx/$domain-access.log" --failrege #================================================= # SETUP SSOWAT #================================================= -ynh_script_progression --message="Configuring SSOwat..." +ynh_script_progression --message="Configuring permissions..." # Make app public if necessary or protect it 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" + ynh_permission_update --permission="main" --add="visitors" fi #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index ba53da0..a01b565 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -18,7 +18,6 @@ app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get --app="$app" --key=domain) path_url=$(ynh_app_setting_get --app="$app" --key=path) -is_public=$(ynh_app_setting_get --app="$app" --key=is_public) 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" @@ -52,6 +51,13 @@ if [ ! -d "$final_path/code/" ]; then ynh_app_setting_set --app="$app" --key=code_migration --value=1 fi +# Cleaning legacy permissions +if ynh_legacy_permissions_exists; then + ynh_legacy_permissions_delete_all + + ynh_app_setting_delete --app=$app --key=is_public +fi + #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= diff --git a/sources/extra_files/app/api/requirements/base.txt b/sources/extra_files/app/api/requirements/base.txt index 88f7099..35d71c2 100644 --- a/sources/extra_files/app/api/requirements/base.txt +++ b/sources/extra_files/app/api/requirements/base.txt @@ -1,74 +1,77 @@ django~=3.0.8 setuptools>=49 # Configuration -django-environ~=0.4 +django-environ~=0.4.0 # Images -Pillow~=7.0 +Pillow~=7.0.0 -django-allauth~=0.42 +django-allauth~=0.42.0 -psycopg2-binary~=2.8 +psycopg2-binary~=2.8.0 # Time zones support pytz==2020.1 # Redis support -django-redis~=4.12 -redis~=3.5 -kombu~=4.6 +django-redis~=4.12.0 +redis~=3.5.0 +kombu~=4.6.0 -celery~=4.4 +celery~=4.4.0 # Your custom requirements go here -django-cors-headers~=3.4 +django-cors-headers~=3.4.0 musicbrainzngs~=0.7.1 -djangorestframework~=3.11 -djangorestframework-jwt~=1.11 +djangorestframework~=3.11.0 +djangorestframework-jwt~=1.11.0 arrow~=0.15.5 -persisting-theory~=0.2 -django-versatileimagefield~=2.0 -django-filter~=2.3 -django-rest-auth~=0.9 -ipython~=7.10 -mutagen~=1.45 +persisting-theory~=0.2.0 +django-versatileimagefield~=2.0.0 +django-filter~=2.3.0 +django-rest-auth~=0.9.0 +ipython~=7.10.0 +mutagen~=1.45.0 -pymemoize~=1.0 +pymemoize~=1.0.0 django-dynamic-preferences~=1.10 -raven~=6.10 -python-magic~=0.4 -channels~=2.4 -channels_redis~=3.0 -uvicorn[standard]~=0.12 -gunicorn~=20.0 +raven~=6.10.0 +python-magic~=0.4.0 +channels~=2.4.0 +channels_redis~=3.0.0 +uvicorn[standard]~=0.12.0 +gunicorn~=20.0.0 -cryptography~=2.9 +cryptography~=2.9.0 # requests-http-signature==0.0.3 # clone until the branch is merged and released upstream -git+https://github.com/EliotBerriot/requests-http-signature.git@signature-header-support -django-cleanup~=5.0 -requests~=2.24 -pyOpenSSL~=19.1 +git+https://github.com/agateblue/requests-http-signature.git@signature-header-support +django-cleanup~=5.0.0 +requests~=2.24.0 +pyOpenSSL~=19.1.0 # for LDAP authentication -python-ldap~=3.3 -django-auth-ldap~=2.2 +python-ldap~=3.3.0 +django-auth-ldap~=2.2.0 -pydub~=0.24 -pyld~=1.0 -aiohttp~=3.6 +pydub~=0.24.0 +pyld~=1.0.0 +aiohttp~=3.6.0 -django-oauth-toolkit~=1.3 -django-storages~=1.9 -boto3~=1.14 -unicode-slugify~=0.1 -django-cacheops~=5.0 +django-oauth-toolkit~=1.3.0 +django-storages~=1.9.0 +boto3~=1.14.0 +unicode-slugify~=0.1.0 +django-cacheops~=5.0.0 -click~=7.1 -service_identity~=18.1 -markdown~=3.2 -bleach~=3.1 -feedparser==6.0.0b3 -watchdog~=0.10 \ No newline at end of file +click~=7.1.0 +service_identity~=18.1.0 +markdown~=3.2.0 +bleach~=3.1.0 +feedparser~=6.0.0 +watchdog~=1.0.2 + +## Pin third party dependency to avoid issue with latest version +twisted==20.3.0