raveberry / raveberry Goto Github PK
View Code? Open in Web Editor NEWA multi-user music server with a focus on participation
License: GNU Lesser General Public License v3.0
A multi-user music server with a focus on participation
License: GNU Lesser General Public License v3.0
I've installed raveberry and can run the basic version. But am having the following issues:
--No idea where the config file is hiding, so I can't add any local music that way (my main focus will be local music as connectivity is sparse where I plan to deploy)
-- when I run 'raveberry system-install, it does it's thing and says I'm good to go, but I can no longer access the web interface, refuses connections. I looks to have changed my linux host name to 'raveberry' (used to be 'hermes'). Either way my router/dns server gets me there.. I can see other webui's running on the machine. Just not raveberry.
I'm a little stuck... Just checked via lsof, and nothing is running on port 8000
Instead of having to goto /stream to listen to the stream would it be possible to add a switch to the main playlist screen to turn the stream on and off?
[enhancement]Select a (Spotify) Playlist as fallback playlist if there are no votes
So I already have a redis and postgres dedicated server so If it would be possible at some point in the future to break down the manual install into configuration sections. The bash scripts are well written so just the actual documentation into how and what to edit is missing. Absolutely no rush, everything is working and if I dive down into the bash scripts I can extract the steps and write up the documentation myself and post it back here, i'm just too lazy right now.
Hi, I try the hotspot function but doesn't work with me. I have edit raveberry.ini to enable hotspot.
When I'm searching RPI wifi with my phone, I see only the wifi of my router. On the site, nothing happens when I click on Enable Hotspot button.
(Maybe an update function in settings)
Mopidy can play files from the local filesystem, so support a local music library.
Add an option to specify a folder containing the desired music and add it during installation.
Make it modifiable at least via cli, possibly a dedicated script to parse folders.
Songs will be added into the database with their filepath as key.
When I scanned my music folder then searched for a track I noticed it was ignoring folders with special characters in. For instance Guns N' Roses didn't import and couldn't be found in the search as a local file. However, when I manually entered the Guns N' Roses folder it picked up the songs inside.
Currently there is an authentication problem during travis builds when trying to publish to Pypi. Needs to be investigated.
I updated the install on my Pi 3b+ to 0.6.4, using:
pip3 install -U raveberry
raveberry system-install
For some reason the stream stopped working after the update; no sound.
I checked the icecast2 interface, and it only shows the /silence.mp3 mount point.
Not sure how I can fix this.
The /etc/icecast2/icecast.xml looks fine. It includes this section:
<mount>
<mount-name>/stream</mount-name>
<stream-name>MyRaveberry</stream-name>
<stream-description>MyRaveberry</stream-description>
<fallback-mount>/silence.mp3</fallback-mount>
<fallback-override>1</fallback-override>
</mount>
aacgain
takes ages to build…
Since we are using gstreamer
now there might be an easier possibility, maybe even without using replaygain
?
Use CI for testing and publishing releases to PiPy
search_id
and id_from_external_url
have to be changed
I want to enable iframe support for raveberry so I can include it as part of my website and also add the streaming to the same page. I tried mapping the volume and copying the nginx.conf file over to my local storage but it crashed nginx. Guessing you append or change during install. Can you help?
Sort songs with manually_requested == True
above songs with manually_requested == False
If server is running, a click on "Enable hotspot" does not toggle the boolean / has no effect.
I came across Deezloader recently which allows you to download music from Deezer.com without a subscription, you just need a regular free account. I wondered if this could be added as a source along with Spotify and Soundcloud? https://gist.github.com/duttaditya18/f366c7694fe50d7c69f8654579112da5
Currently, all suggestions that are presented to the user come from the local database. Add suggestions from Youtube and Spotify, as they would appear when searching their page.
Hey, very nice project, thanks for sharing!
Unfortunatelly I am struggeling a bit with the installation, although it seems pretty straight froward.
I followed the manual install instructions on a Pi 1 4 with a fresh Raspberry Pi OS (32-bit) Lite Minimal image based on Debian Buster (Version: May 2020, Release date: 2020-05-27, Kernel version: 4.19), no problems during installation.
***** Configuring Webserver *****
nginx...
daphne...
gunicorn...
***** Finished *****
Raveberry was installed on this system!
You can now visit http://raveberry/
A reboot might be necessary for all features to be active.
After finishing, I did the recommended restart.
I can reach the server, but it only shows
500 Internal Server Error
Exception inside application.
Daphne
I checked all the suggested status and logs from the debugging section, but it all seems to be up and running without errors. Are there any other suggestions where I could look for problems?
Thanks and best regards,
CC
my raveberry will not chage rom debug server, or atleast think so, cuz i keep getting that message everytime i starrt it. and i cant figure out how to get cava working either.
might just be me being stupid xD
youtube-dl
does not always provide filesize.
Spotify
doesn't do it either → use duration of songs
When changing the volume on the web page both the audio output and the volume for cava (animation) are changed.
Thus the effects of cava are influenced by the volume settings.
I'm in the process of provisioning my Pi3 with raveberry
, and the installation is a little mundane. Is there a plan to host a raveberry
image?
After restarting the raveberry-server the songs starts to play from the beginning.
After some time the song skips to the position where it was stopped.
This could be fixed by setting the volume to 0 until seeking to the correct position.
[enhancement]TV Mode that is designed to look good on your computer, notebook, TV, or projector. With nginx. Fan art of each playing artist from Fanart.TV
Something like Festify
Once connected to /stream it will randomly disconnect and will have to hit refresh and play to start stream again. It always happens at the end of a song but not every song. This happens in chrome on PC and phone. I haven't tried other browsers yet. The timer carries on incrementing as if it is still playing but no sound as if its falling back to silence.mp3 but not recovering. I know this is likely an issue with icecast itself and will do some digging but wanted to raise it in case its an easy fix.
So after getting this working on my NAS and managed to get it to stream to a web browser or VLC I have 2 isues which I think are related:
Currently after everysong the stream stops. To start again you have to refresh stream and press play. and it then picks up at the point the song is in within Raveberry
Playing on multiple browsers the music goes out of sync which is made worse if a client pauses and then resumes a song
I am guessing both are related to Icecast and a setting of some sort but I can't currently get on to their website to check it out as it seems to be down and struggling finding an answer elsewhere. Thanks again
Since the recent update we no only get one search result per service - it would be nice to have a setting to choose how many results to show per service ie 4 for Spotify and 1 for YouTube.
Furthermore it'd be useful if when searching you could choose a specific service to search that it then shows say 8 results for.
Original post from REDDIT:
First, congrats on a fantastic app, love this idea, and with all the madness happening right now, I can see this being used a lot for online gatherings. I wonder if you could help me. I am trying to get this running on my NAS using docker-compose. I managed to get Raveberry running and it seems to work fine. I also installed Icecast and I can get to the web interface. When I try to enable streaming in Raveberry it doesn't find Icecast. The 2 are in the same docker-compose.yml file and therefore run in the same network but I think I need to install Icecast as part of the Raveberry install, not separately, however, I'm not sure how to go about this. Any pointers would be much appreciated :)
Response from RAVEBERRY :)
Thank you!
If you want to make streaming work with the docker setup, you probably need to change mopidy's config. The configuration the container uses by default can be found in docker/mopidy.conf. Change the output variable to something like this:
output = lamemp3enc ! shout2send async=false mount=stream ip= port=8000 password=
Then map the config into the mopidy container as described in the compose file. If mopidy is then able to stream to icecast, you probably have to access the stream at :8000/stream, as the nginx container does not yet redirect this url.
If you get it working, please let me know so others can profit from your effort as well!
Also, feel free to move the discussion to Github if you have further questions.
Edit: here is a link to mopidy's documentation about icecast
And maybe some other documentation should be updated
As a feature request
Where can I find the alarm.mp3
sound file? I'd like to use my own custom sound.
Hello! I moved over from reddit so it's easier to track the problem. So from what I see in my logs the problem seems to be related to gstreamer? Here are relevant logs:
This is an unprivileged container.
Icecast2:
[2020-05-03 21:27:58] INFO connection/_handle_source_request Source (/stream) attempted to login with invalid or missing password
[2020-05-03 21:27:58] INFO connection/_handle_source_request Source logging in at mountpoint "/stream" from 127.0.0.1
[2020-05-03 21:27:58] INFO connection/_handle_source_request Source (/stream) attempted to login with invalid or missing password
[2020-05-03 21:33:53] INFO source/source_shutdown Source at "/silence.mp3" exiting
[2020-05-03 21:33:53] INFO main/_server_proc Caught halt request, shutting down...
[2020-05-03 21:33:53] INFO main/main Shutting down
[2020-05-03 21:33:53] INFO fserve/fserve_shutdown file serving stopped
[2020-05-03 21:33:53] INFO slave/_slave_thread shutting down current relays
[2020-05-03 21:33:53] INFO slave/_slave_thread Slave thread shutdown complete
[2020-05-03 21:33:53] INFO auth/auth_shutdown Auth shutdown
[2020-05-03 21:33:53] INFO yp/yp_shutdown YP thread down
[2020-05-03 21:33:54] INFO stats/stats_shutdown stats thread finished
[2020-05-03 21:33:54] INFO auth/auth_run_thread Authenication thread shutting down
[2020-05-03 21:34:04] INFO main/main Icecast 2.4.4 server started
[2020-05-03 21:34:04] INFO connection/get_ssl_certificate No SSL capability
[2020-05-03 21:34:04] INFO yp/yp_update_thread YP update thread started
[2020-05-03 21:34:04] INFO stats/_stats_thread stats thread started
[2020-05-03 21:34:04] INFO auth/auth_run_thread Authentication thread started
[2020-05-03 21:34:04] INFO source/source_fallback_file mountpoint /silence.mp3 is reserved
[2020-05-03 21:34:04] WARN format/format_get_type Unsupported or legacy stream type: "audio/mpeg". Falling back to generic minimal handler for best effort.
[2020-05-03 21:34:04] INFO source/source_main listener count on /silence.mp3 now 0
[2020-05-03 21:34:19] INFO auth/auth_add_listener adding client for authentication
[2020-05-03 21:34:19] INFO auth/queue_auth_client auth on /stream has 1 pending
[2020-05-03 21:34:19] INFO source/source_main listener count on /silence.mp3 now 1
[2020-05-03 21:34:19] INFO auth/auth_add_listener adding client for authentication
[2020-05-03 21:34:19] INFO auth/queue_auth_client auth on /stream has 1 pending
[2020-05-03 21:34:19] INFO source/source_main listener count on /silence.mp3 now 2
[2020-05-03 21:34:20] INFO source/source_main listener count on /silence.mp3 now 1
[2020-05-03 21:34:20] INFO connection/_handle_source_request Source logging in at mountpoint "/stream" from 127.0.0.1
[2020-05-03 21:34:20] INFO connection/_handle_source_request Source (/stream) attempted to login with invalid or missing password
[2020-05-03 21:34:20] INFO connection/_handle_source_request Source logging in at mountpoint "/stream" from 127.0.0.1
[2020-05-03 21:34:20] INFO connection/_handle_source_request Source (/stream) attempted to login with invalid or missing password
[2020-05-03 21:34:20] INFO connection/_handle_source_request Source logging in at mountpoint "/stream" from 127.0.0.1
[2020-05-03 21:34:20] INFO connection/_handle_source_request Source (/stream) attempted to login with invalid or missing password
[2020-05-03 21:35:10] INFO auth/auth_add_listener adding client for authentication
[2020-05-03 21:35:10] INFO auth/queue_auth_client auth on /stream has 1 pending
[2020-05-03 21:40:24] INFO fserve/fserve_client_create checking for file /admin (/usr/share/icecast2/web/admin)
[2020-05-03 21:40:24] WARN fserve/fserve_client_create req for file "/usr/share/icecast2/web/admin" No such file or directory
[2020-05-03 21:40:34] INFO auth/auth_add_listener adding client for authentication
[2020-05-03 21:40:34] INFO auth/queue_auth_client auth on /stream has 1 pending
[2020-05-03 21:40:40] INFO auth/auth_add_listener adding client for authentication
[2020-05-03 21:40:40] INFO auth/queue_auth_client auth on /stream has 1 pending
[2020-05-03 21:40:40] INFO source/source_main listener count on /silence.mp3 now 0
[2020-05-03 21:40:40] INFO source/source_main listener count on /silence.mp3 now 1
[2020-05-03 21:41:27] INFO auth/auth_add_listener adding client for authentication
[2020-05-03 21:41:27] INFO auth/queue_auth_client auth on /stream has 1 pending
[2020-05-03 21:41:27] INFO auth/auth_add_listener adding client for authentication
[2020-05-03 21:41:27] INFO auth/queue_auth_client auth on /stream has 1 pending
Mopidy:
INFO 2020-05-03 21:50:25,969 [754:MainThread] mopidy.__main__
Starting Mopidy 3.0.2
INFO 2020-05-03 21:50:25,994 [754:MainThread] mopidy.config
Loading config from builtin defaults
INFO 2020-05-03 21:50:25,996 [754:MainThread] mopidy.config
Loading config from file:///root/.config/mopidy/mopidy.conf
INFO 2020-05-03 21:50:25,997 [754:MainThread] mopidy.config
Loading config from command line options
INFO 2020-05-03 21:50:26,237 [754:MainThread] mopidy.__main__
Enabled extensions: http, softwaremixer, file, stream, m3u
INFO 2020-05-03 21:50:26,238 [754:MainThread] mopidy.__main__
Disabled extensions: spotify
WARNING 2020-05-03 21:50:26,238 [754:MainThread] mopidy.__main__
Found spotify configuration errors. The extension has been automatically disabled:
WARNING 2020-05-03 21:50:26,238 [754:MainThread] mopidy.__main__
spotify/username must be set.
WARNING 2020-05-03 21:50:26,238 [754:MainThread] mopidy.__main__
spotify/password must be set.
WARNING 2020-05-03 21:50:26,238 [754:MainThread] mopidy.__main__
spotify/client_id must be set.
WARNING 2020-05-03 21:50:26,238 [754:MainThread] mopidy.__main__
spotify/client_secret must be set.
WARNING 2020-05-03 21:50:26,239 [754:MainThread] mopidy.__main__
Please fix the extension configuration errors or disable the extensions to silence these messages.
INFO 2020-05-03 21:50:26,403 [754:MainThread] mopidy.commands
Starting Mopidy mixer: SoftwareMixer
INFO 2020-05-03 21:50:26,405 [754:MainThread] mopidy.commands
Starting Mopidy audio
INFO 2020-05-03 21:50:26,407 [754:MainThread] mopidy.commands
Starting Mopidy backends: FileBackend, M3UBackend, StreamBackend
INFO 2020-05-03 21:50:26,415 [754:Audio-2] mopidy.audio.actor
Audio output set to "autoaudiosink"
INFO 2020-05-03 21:50:26,437 [754:MainThread] mopidy.commands
Starting Mopidy core
INFO 2020-05-03 21:50:26,447 [754:MainThread] mopidy.commands
Starting Mopidy frontends: HttpFrontend
INFO 2020-05-03 21:50:26,449 [754:HttpFrontend-8] mopidy.http.actor
HTTP server running at [::ffff:127.0.0.1]:6680
INFO 2020-05-03 21:50:26,449 [754:MainThread] mopidy.commands
Starting GLib mainloop
AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': Connection refused
WARNING 2020-05-03 21:50:26,713 [754:MainThread] mopidy.audio.gst
GStreamer warning: Failed to connect: Access denied
Daphne:
May 03 21:34:04 raveberry systemd[1]: Started daphne daemon.
May 03 21:34:06 raveberry daphne[159]: 2020-05-03 23:34:06,266 INFO Starting server at tcp:port=9000:interface=0.0.0.0
May 03 21:34:06 raveberry daphne[159]: 2020-05-03 23:34:06,267 INFO HTTP/2 support not enabled (install the http2 and tls Twisted extras)
May 03 21:34:06 raveberry daphne[159]: 2020-05-03 23:34:06,268 INFO Configuring endpoint tcp:port=9000:interface=0.0.0.0
May 03 21:34:06 raveberry daphne[159]: 2020-05-03 23:34:06,269 INFO Listening on TCP address 0.0.0.0:9000
May 03 21:34:09 raveberry daphne[159]: ping: socket: Operation not permitted
May 03 21:34:09 raveberry daphne[159]: 2020-05-03 23:34:09,339 INFO Creating Mopidy Websocket connection...
Deal with yarn changing .yarnrc and .cache in git
I've been patching raveberry and the docker setup bit by bit to make it suitable to run in kubernetes. Some changes are kubernetes specific and some could be easily upstreamed anyway imho. Here is a list of things I changed to get it working in kubernetes:
Since nginx serves the static files, there has to be a shared filesystem between the daphne and nginx containers. Obviously this could be dealt with with shared volumes across kubernetes pods, if that was available. To keep things simple, I added nginx to the daphne pod and created an entrypoint script for the daphne container to copy all static files to an emptyDir volume that was mounted on both the nginx and daphne container. This worked quite well, except for the compressed/cached javascript bundle in CACHE/js/output.gibberish.js
which I couldn't directly figure out how to generate before copying the static files. I ended up enabling static file serving in django and removing the location /static
part from the nginx config. This way I could separate the nginx container from the daphne container. This make scheduling and scaling both containers easier, if need might ever be. I kept the entrypoint file because I think this kind of logic (calling migrate and compiling the CSS) shouldn't be part of how you start the container.
Using the youtube provider, most of the time the EmbedThumbnail
postprocessor failed when I requested songs. I ended up disabling this and this works just fine. Not sure where these thumbnails would've been used anyway, but that said: I've only used the web interface so far.
For using icecast, I removed the docker specific resolving part of the nginx config. I'm no nginx config expert, but perhaps by checking if nginx is running in kubernetes (for instance by checking of the KUBERNETES_SERVICE_HOST
environment variable is set, you could have both solutions in one file for maintenance convenience.
I'm in the process of creating a helm chart for easily deploying raveberry in kubernetes
Let me know if you want any of these changes backported to raveberry!
Hi, i'm using raveberry on raspberry Pi 3 B+, I've connect my bluetooth speaker to my Pi but no sound is emitted currently.
before installing raveberry the bluetooth was working correctly but after installation no sound is transmitted. hoping to get some help.
Mageunic
Create a third party module of Raveberry for the MagicMirror².
Have it display only the current and maybe the next three songs.
https://docs.magicmirror.builders/development/introduction.html
So I've been using Raveberry for a while now without issue. I recently upgraded my NAS and reinstalled it from scratch. When I try and goto to raveberry I get '502 Bad Gateway'. Looking in the logs it looks like its trying to load a module called sass without luck.
daphne_1 | Operations to perform:
daphne_1 | Apply all migrations: admin, auth, contenttypes, core, sessions, watson
daphne_1 | Running migrations:
daphne_1 | Applying contenttypes.0001_initial... OK
daphne_1 | Applying auth.0001_initial... OK
daphne_1 | Applying admin.0001_initial... OK
daphne_1 | Applying admin.0002_logentry_remove_auto_add... OK
daphne_1 | Applying admin.0003_logentry_add_action_flag_choices... OK
daphne_1 | Applying contenttypes.0002_remove_content_type_name... OK
daphne_1 | Applying auth.0002_alter_permission_name_max_length... OK
daphne_1 | Applying auth.0003_alter_user_email_max_length... OK
daphne_1 | Applying auth.0004_alter_user_username_opts... OK
daphne_1 | Applying auth.0005_alter_user_last_login_null... OK
daphne_1 | Applying auth.0006_require_contenttypes_0002... OK
daphne_1 | Applying auth.0007_alter_validators_add_error_messages... OK
daphne_1 | Applying auth.0008_alter_user_username_max_length... OK
daphne_1 | Applying auth.0009_alter_user_last_name_max_length... OK
daphne_1 | Applying auth.0010_alter_group_name_max_length... OK
daphne_1 | Applying auth.0011_update_proxy_permissions... OK
daphne_1 | Applying core.0001_initial... OK
daphne_1 | Applying core.0002_auto_20190909_1707... OK
daphne_1 | Applying core.0003_auto_20190912_2219... OK
daphne_1 | Applying core.0004_archivedplaylist_created... OK
daphne_1 | Applying core.0005_auto_20190913_1730... OK
daphne_1 | Applying core.0006_auto_20200129_2252... OK
daphne_1 | Applying core.0007_remove_playlistentry_song... OK
daphne_1 | Applying core.0008_auto_20200514_1213... OK
daphne_1 | Applying sessions.0001_initial... OK
daphne_1 | Applying watson.0001_initial... OK
daphne_1 | Starting: bash -c DJANGO_MOCK=1 python manage.py compilescss && DJANGO_MOCK=1 python manage.py migrate --noinput && scripts/create_users.sh && /usr/local/bin/daphne --bind 0.0.0.0 --port 9000 main.asgi:application
daphne_1 | Traceback (most recent call last):
daphne_1 | File "manage.py", line 21, in <module>
daphne_1 | main()
daphne_1 | File "manage.py", line 17, in main
daphne_1 | execute_from_command_line(sys.argv)
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
daphne_1 | utility.execute()
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
daphne_1 | self.fetch_command(subcommand).run_from_argv(self.argv)
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 224, in fetch_command
daphne_1 | klass = load_command_class(app_name, subcommand)
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 36, in load_command_class
daphne_1 | module = import_module('%s.management.commands.%s' % (app_name, name))
daphne_1 | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
daphne_1 | return _bootstrap._gcd_import(name[level:], package, level)
daphne_1 | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
daphne_1 | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
daphne_1 | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
daphne_1 | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
daphne_1 | File "<frozen importlib._bootstrap_external>", line 783, in exec_module
daphne_1 | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
daphne_1 | File "/usr/local/lib/python3.8/site-packages/sass_processor/management/commands/compilescss.py", line 5, in <module>
daphne_1 | import sass
daphne_1 | ModuleNotFoundError: No module named 'sass'
daphne_1 | Operations to perform:
daphne_1 | Apply all migrations: admin, auth, contenttypes, core, sessions, watson
daphne_1 | Running migrations:
daphne_1 | No migrations to apply.
daphne_1 | Starting: bash -c DJANGO_MOCK=1 python manage.py compilescss && DJANGO_MOCK=1 python manage.py migrate --noinput && scripts/create_users.sh && /usr/local/bin/daphne --bind 0.0.0.0 --port 9000 main.asgi:application
daphne_1 | Traceback (most recent call last):
daphne_1 | File "manage.py", line 21, in <module>
daphne_1 | main()
daphne_1 | File "manage.py", line 17, in main
daphne_1 | execute_from_command_line(sys.argv)
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
daphne_1 | utility.execute()
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
daphne_1 | self.fetch_command(subcommand).run_from_argv(self.argv)
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 224, in fetch_command
daphne_1 | klass = load_command_class(app_name, subcommand)
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 36, in load_command_class
daphne_1 | module = import_module('%s.management.commands.%s' % (app_name, name))
daphne_1 | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
daphne_1 | return _bootstrap._gcd_import(name[level:], package, level)
daphne_1 | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
daphne_1 | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
daphne_1 | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
daphne_1 | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
daphne_1 | File "<frozen importlib._bootstrap_external>", line 783, in exec_module
daphne_1 | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
daphne_1 | File "/usr/local/lib/python3.8/site-packages/sass_processor/management/commands/compilescss.py", line 5, in <module>
daphne_1 | import sass
daphne_1 | ModuleNotFoundError: No module named 'sass'
daphne_1 | Operations to perform:
daphne_1 | Apply all migrations: admin, auth, contenttypes, core, sessions, watson
daphne_1 | Running migrations:
daphne_1 | No migrations to apply.
daphne_1 | Starting: bash -c DJANGO_MOCK=1 python manage.py compilescss && DJANGO_MOCK=1 python manage.py migrate --noinput && scripts/create_users.sh && /usr/local/bin/daphne --bind 0.0.0.0 --port 9000 main.asgi:application
daphne_1 | Traceback (most recent call last):
daphne_1 | File "manage.py", line 21, in <module>
daphne_1 | main()
daphne_1 | File "manage.py", line 17, in main
daphne_1 | execute_from_command_line(sys.argv)
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
daphne_1 | utility.execute()
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
daphne_1 | self.fetch_command(subcommand).run_from_argv(self.argv)
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 224, in fetch_command
daphne_1 | klass = load_command_class(app_name, subcommand)
daphne_1 | File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 36, in load_command_class
daphne_1 | module = import_module('%s.management.commands.%s' % (app_name, name))
daphne_1 | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
daphne_1 | return _bootstrap._gcd_import(name[level:], package, level)
daphne_1 | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
daphne_1 | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
daphne_1 | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
daphne_1 | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
daphne_1 | File "<frozen importlib._bootstrap_external>", line 783, in exec_module
daphne_1 | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
daphne_1 | File "/usr/local/lib/python3.8/site-packages/sass_processor/management/commands/compilescss.py", line 5, in <module>
daphne_1 | import sass
Mopidy already supports Soundcloud playback, so supporting it should not be too complicated.
Implementation should be similar to Spotify, a mixture between mopidy's provided functionality and custom web-api calls.
I justed installed a fresh instance of waveberry. Every time I open the settings page, the path to the local library is set to / instead of the folder I entered before.
When switching to the light theme the .css
-file has to be loaded and the site is broken for a short time.
After the page was successfully loaded, the file could be pre-cached.
Feature request
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.