- Notifications
You must be signed in to change notification settings - Fork2
Modern user interface forhttps://github.com/airsonic/airsonic – CURRENTLY INACTIVE
License
rrrnld/airsonic-ui
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This repository contains an alternative web frontend forairsonic. The goal is to eventually be able to fully replace the current web interface.
- Login with persisting credentials
- Browse your library by newest / most recently played / starred
- Browse artists alphabetically
- A currently playing queue with next, previous, repeat and shuffle
- Information about the current track with the ability to seek
There are two options:
- You build it yourself by cloning the repository and running
npm run build
- You grab a pre-built version from thegh-pages branch (just click the download button)
The files you receive either way should be identical. There'san article about setting up nginx in the repository wiki.
If you have any questions please ask them in theairsonic matrix channel.
The project is written inClojureScript and usesre-frame for structure and peace of mind. The build tool isshadow-cljs, which offers nice editor integration and interoparibility with the whole JavaScript ecosystem.If you haven't worked with re-frame: I highly recommend it. Good resources are the project'sdocs and apost about its building blocks.
To build the project make sure you have Node.js (v6.0.0), npm and Java 8 installed in your system.
# after cloning the project, first install all dependencies$ npm install# start a continuous build with hot-code-reloading and continuous testing# first build takes a while. open http://localhost:8080$ npm run dev
All other build tasks are defined in thepackage.json
(more below).
Integrating shadow-cljs with your editor helps tremendously with development. After having runnpm run dev
as described above you can connect to the REPL and get features like in-editor code execution and code completion / documentation lookup. For further information seethis part of the shadow-cljs user guide. Recommended editors and plugins are Calva for VSCode and CIDER for Emacs (comes with Spacemacs). Make sure to openlocalhost:8080
in the browser after starting thedev:cljs
task to execute ClojureScript code in a live REPL.
re-frame-10x is a debugger that is bundled with the app in development mode. Once you have the build running, hitCtrl + h
and the re-frame-10x window will show up:
It provides you with tools to inspect the state of the application, undo and replay events, debug performance issues and more.
This project useskarma for tests. There is a check insidekarma.conf.js
to see whether Firefox is installed (viawhich firefox
which probably breaks on Windows 🤷); if that command doesn't fail it will be used as the test runner. Otherwise Chrome will be used. If you have Chromium installed, make sure to set theCHROME_BIN
environment variable to point to Chromium.
# run tests once$ npm test
Note: If you want nice console output in your tests, make sure to(enable-console-print!)
. You can callprintln
afterwards like you're used to.
# build and optimize the code once for production$ npm run build# publishes everything via gh-pages$ npm run deploy
There is continuous deployment set up oncircleci that builds and deploys togh-pages
after a commit to themaster
branch.
Note: If you have a continuous build running and runnpm run build
ornpm run deploy
, it will delete the compiled tests, causing the continuous tests to not run anymore. This can be fixed by runningnpm test
again.
All build artifacts land in/public
. Don't change anything in there as changes will be overwritten.
About
Modern user interface forhttps://github.com/airsonic/airsonic – CURRENTLY INACTIVE