Funkwhale server crash

Mon serveur YunoHost

Matériel: Raspberry Pi à la maison avec VPN /
Version de YunoHost: 4.1.7.2
J’ai accès à mon serveur : En SSH | Par la webadmin | En direct avec un clavier/écran | …
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non

Description du problème

Bonjour,
Je voulais tester une installation de Funkwhale sur mon raspberry Pi 4. L’installation semble s’être bien effectuée, mais le service funkwhale-server semble planter, dès que je veux ouvrir l’application j’arrive sur une page 502 Bad Gateway.

Voici les logs du service funkwhale-server qui plante:

-- Logs begin at Sun 2021-02-28 07:30:03 CET, end at Sun 2021-02-28 15:21:01 CET. --
févr. 28 15:20:06 funkwhale-server[28332]:     self.callable = self.load()
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
févr. 28 15:20:06 funkwhale-server[28332]:     return self.load_wsgiapp()
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
févr. 28 15:20:06 funkwhale-server[28332]:     return util.import_app(self.app_uri)
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
févr. 28 15:20:06 funkwhale-server[28332]:     mod = importlib.import_module(module)
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/importlib/__init__.py", line 127, in import_module
févr. 28 15:20:06 funkwhale-server[28332]:     return _bootstrap._gcd_import(name[level:], package, level)
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 983, in _find_and_load
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap_external>", line 728, in exec_module
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/api/config/asgi.py", line 8, in <module>
févr. 28 15:20:06 funkwhale-server[28332]:     django.setup()
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
févr. 28 15:20:06 funkwhale-server[28332]:     apps.populate(settings.INSTALLED_APPS)
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/django/apps/registry.py", line 91, in populate
févr. 28 15:20:06 funkwhale-server[28332]:     app_config = AppConfig.create(entry)
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/django/apps/config.py", line 116, in create
févr. 28 15:20:06 funkwhale-server[28332]:     mod = import_module(mod_path)
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/importlib/__init__.py", line 127, in import_module
févr. 28 15:20:06 funkwhale-server[28332]:     return _bootstrap._gcd_import(name[level:], package, level)
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 983, in _find_and_load
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap_external>", line 728, in exec_module
févr. 28 15:20:06 funkwhale-server[28332]:   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/channels/apps.py", line 6, in <module>
févr. 28 15:20:06 funkwhale-server[28332]:     import daphne.server
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/daphne/server.py", line 20, in <module>
févr. 28 15:20:06 funkwhale-server[28332]:     asyncioreactor.install(twisted_loop)
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/twisted/internet/asyncioreactor.py", line 307, in install
févr. 28 15:20:06 funkwhale-server[28332]:     reactor = AsyncioSelectorReactor(eventloop)
févr. 28 15:20:06 funkwhale-server[28332]:   File "/var/www/funkwhale/code/virtualenv/lib/python3.7/site-packages/twisted/internet/asyncioreactor.py", line 61, in __init__
févr. 28 15:20:06 funkwhale-server[28332]:     "SelectorEventLoop required, instead got: {}".format(_eventloop)
févr. 28 15:20:06 funkwhale-server[28332]: TypeError: SelectorEventLoop required, instead got: <uvloop.Loop running=False closed=False debug=False>
févr. 28 15:20:06 funkwhale-server[28332]: [2021-02-28 14:20:06 +0000] [28353] [INFO] Worker exiting (pid: 28353)
févr. 28 15:20:07 funkwhale-server[28332]: [2021-02-28 15:20:07 +0100] [28332] [INFO] Shutting down: Master
févr. 28 15:20:07 funkwhale-server[28332]: [2021-02-28 15:20:07 +0100] [28332] [INFO] Reason: Worker failed to boot.
févr. 28 15:20:07 systemd[1]: funkwhale-server.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED
févr. 28 15:20:07 systemd[1]: funkwhale-server.service: Failed with result 'exit-code'.
févr. 28 15:21:00 systemd[1]: Started Funkwhale (funkwhale) application server.
févr. 28 15:21:01 funkwhale-server[28611]: [2021-02-28 15:21:01 +0100] [28611] [INFO] Starting gunicorn 20.0.4
févr. 28 15:21:01 funkwhale-server[28611]: [2021-02-28 15:21:01 +0100] [28611] [INFO] Listening at: http://127.0.0.1:5000 (28611)
févr. 28 15:21:01 funkwhale-server[28611]: [2021-02-28 15:21:01 +0100] [28611] [INFO] Using worker: uvicorn.workers.UvicornWorker
févr. 28 15:21:01 funkwhale-server[28611]: [2021-02-28 15:21:01 +0100] [28631] [INFO] Booting worker with pid: 28631

Ici à ma fin, j’ai redémarré le service et le pid est actif, mais en réalité il s’arêtte tout de suite derrière avec les mêmes erreurs…

Peut-être que ce n’est pas une bonne idée sur un raspberry pi 4 ??

Ça n’a rien à voir avec le Raspberry Pi à mon avis (mais je n’en ai pas).
En tout cas ce que je peux dire, c’est que Funkwhale fonctionne sur mon installation, qui est un vieil ordi, mais si j’essaie d’installer une nouvelle instance, j’ai le même bug que toi.
Après quelques recherches sur Internet, il semble que ce soit un problème de twisted qui a été mis à jour et que ça a tout cassé.
À titre d’exemple :

Je vais faire quelques recherches pour voir si c’est résolvable facilement.

1 Like

Je pense en effet avoir résolu le problème, l’installation fonctionne parfaitement chez moi.
Si tu veux tester, tu peux
sudo yunohost app install https://github.com/Thovi98/funkwhale_ynh/tree/testing --debug

Mais le mieux c’est peut-être d’attendre que ma PR soit mergée :slight_smile:

Ok, je teste tout de même ton code. Juste une question, qu’est que veux dire cette phrase dans le README:

CLI IMPORT Remember to source $final_path/venv/bin/activate, then source $final_path/load_env before typinh using manage.py.

Est-ce que je dois exécuter cette commande dans le dossier /var/www/funkwhale ?

J’ai plein de questions du coup pour la mise en place du serveur. D’abord, excellente nouvelle, ça marche !
Le pod est fédéré si public ? il est possible d’ajouter des musiques de YouTube aussi ? Qu’en est-il des droits d’auteurs ? Je peux permettre à des personnes extérieures de s’inscrire ? en gérant un nombre limité ? Je peux faire en sorte que seuls les personnes avec un compte accèdent au pod ?

Déjà, je viens de comprendre qu’il a deux choses, l’interface admin de Django et celle du pod…

Ça c’est si tu veux faire de la ligne de commande, mais j’avoue que je ne m’y suis pas penché, tout est possible directement via l’interface.

YES !

C’est le genre de questions auxquelles je n’ai pas encore de réponse, utilisant surtout en privé, et important des pods des autres.

J’ai cru voir ça, mais de nouveau pas vraiment renseigné. Je viens de voir ceci Impossible to import music - youtube and mp3 · Issue #5 · YunoHost-Apps/funkwhale_ynh · GitHub, mais n’ayant pas le paramètre chez moi, il semblerait que cette fonction ait été enlevée.

Les droits d’auteurs sont sous ta responsabilité. Tu peux configurer effectivement qui a accès à quoi. Quand tu crées une bibliothèque, tu choisis si toi-seul peut y avoir accès, ton instance ou tout le monde. Ensuite il y a moyen de partager ta bibliothèque avec qui tu veux, mais je n’ai pas vraiment testé de nouveau, l’utilisant à titre personnel ou presque.

Effectivement, et en règle générale tu te contenteras de l’interface admin, sauf pour tout paramétrer de fond en comble une fois ou deux, alors Django semble plus puissant.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.