No description
Find a file
Antoine Gersant c2807b60de
Replace rocket with actix-web (#116)
* Adds actix dependency

* Failed attempt at test harness using actix

* Fixed test panic

* Simplified tests

* Run web server in tests

* Send json payloads

* Static file serving

* Default shutdown timeout

* Implement version endpoint

* Implements #[get("/initial_setup")]

* WIP put_settings endpoint

* Adds AdminRights extractor

* Fixed a bug where AdminRights extractor always failed

* Implements collection endpoints

* Re-use system runnner between calls

* Preserve client headers between API calls (tentative)

* Fixed test interferences

* Implemented more endpoints

* Implemented audio file serving

* Fixed sketchy responses

* Implements thumbnail endpoint

* Login endpoint WIP

* Implement login endpoint

* Auth support

* When using HTTP headers to authenticate, response now includes expected cookies

* Tentative fix for server not responding within docker

* Adds logging middleware + browse troubleshooting

* Tentative fix for path decoding issues

* Tentative fix for broken path decoding

* Fix routing issues w/ paths

* Fixed a bug where auth cookies were sent in every response

* More lenient test timeouts

* Fixed a bug where recent/random endpoints required trailing slashes

* Compilation fix for rocket branch

* More useful test matrix

* Signed session cookies (#106)

* Isolate conflicting dependencies between rocket and actix versions

* Removed macOS from test matrix

* Glorious test harness simplification

* Removed RequestBuilder

* Shutdown on ctrl+c

* Pin to stable

* Drop rocket

* Simplify dependencies

* Removed stray rocket dependency

* Better test matrix

* Skip windows build without bundled sqlite

* Offload thumbnail creation to a thread pool

* Compress responses when possible

* Removed unused manage state

* Fixed a bug where large playlists could not be saved

* Return HTTP 401 for last fm requests without authentication

* Web block (#115)

* web::block around DB operations

* web::block during auth utils hitting DB

* Fixed incorrect http response code for missing thumbnail

* Removed unecessary unwrap

* Eliminated unecessary unwrap
2020-12-14 21:18:44 -08:00
.github Replace rocket with actix-web (#116) 2020-12-14 21:18:44 -08:00
.vscode Autoformat 2019-09-02 13:12:48 -07:00
docs One click release (#113) 2020-12-13 19:24:06 -08:00
migrations Removed support for prefix_url 2020-11-25 17:49:18 -08:00
res Support for Github dark theme 2020-12-11 02:54:18 -08:00
src Replace rocket with actix-web (#116) 2020-12-14 21:18:44 -08:00
test-data More accurate teste for web client serving 2020-12-06 02:48:42 -08:00
.codecov.yml Codecov settings 2020-09-24 01:51:29 -07:00
.gitignore App features re-organization (#111) 2020-12-10 03:23:00 -08:00
.rustfmt.toml Rustfmt 2018-10-06 16:30:21 -07:00
Cargo.lock Replace rocket with actix-web (#116) 2020-12-14 21:18:44 -08:00
Cargo.toml Replace rocket with actix-web (#116) 2020-12-14 21:18:44 -08:00
diesel.toml Updated diesel dependency 2018-10-06 18:13:44 -07:00
LICENSE Initial commit 2016-08-14 01:28:45 -07:00
README.md Added license badge 2020-12-12 15:31:41 -08:00
rust-toolchain Replace rocket with actix-web (#116) 2020-12-14 21:18:44 -08:00
update_db_schema.bat Updated diesel dependency 2018-10-06 18:13:44 -07:00

Actions Status codecov.io License: MIT

Polaris is a music streaming application, designed to let you enjoy your music collection from any computer or mobile device. Polaris works by streaming your music directly from your own computer, without uploading it to a third-party. It is free and open-source software, without any kind of premium version. The only requirement is that your computer stays on while it streams music!

Features

  • Optimized for large music collections
  • Can run on Windows, Linux, BSD, or through Docker
  • Listen to your music on the web or using the Polaris Android app
  • Easy to setup and configure via the built-in web UI
  • Support for flac, mp3, mp4, mpc, ogg and opus files
  • Support for album art images
  • Last.fm scrobbling
  • Color themes
  • Restrict access to your music collection with user accounts

Tutorials

Screenshots

Polaris Web UI Polaris Web UI Dark Mode

Documentation

API Documentation

The Polaris server API is documented via Swagger. Please note that this Swagger page does not point to a live Polaris server so the Try it out buttons are not expected to work. Every installation of Polaris also distributes this documentation, with the ability to use the Try it out buttons. To access it, simply open http://localhost:5050/swagger/ in your browser on the machine running Polaris.

Feel free to open Github issues or Pull Requests if clarifications are needed.