jeffvli
3 years ago
9 changed files with 55 additions and 127 deletions
@ -1,157 +1,85 @@ |
|||||
<img src=".erb/img/erb-banner.png" width="100%" /> |
<img src="assets/icon.png" alt="sonixd logo" title="sonixd" align="right" height="60px" /> |
||||
|
|
||||
<br> |
# Sonixd |
||||
|
|
||||
<p> |
<a href="https://github.com/jeffvli/sonixd/releases"> |
||||
Electron React Boilerplate uses <a href="https://electron.atom.io/">Electron</a>, <a href="https://facebook.github.io/react/">React</a>, <a href="https://github.com/reactjs/react-router">React Router</a>, <a href="https://webpack.js.org/">Webpack</a> and <a href="https://www.npmjs.com/package/react-refresh">React Fast Refresh</a>. |
<img src="https://img.shields.io/github/v/release/jeffvli/sonixd?style=flat-square&color=red" |
||||
</p> |
alt="Release"> |
||||
|
</a> |
||||
|
|
||||
<br> |
<a href="https://github.com/jeffvli/sonixd/tree/dev"> |
||||
|
<img src="https://img.shields.io/github/commits-since/jeffvli/sonixd/latest/devstyle=flat-square" |
||||
|
alt="Commits"> |
||||
|
</a> |
||||
|
<a href="https://github.com/jeffvli/sonixd/blob/main/LICENSE"> |
||||
|
<img src="https://img.shields.io/github/license/jeffvli/sonixd?style=flat-square&color=blue" |
||||
|
alt="License"> |
||||
|
</a> |
||||
|
|
||||
<div align="center"> |
Sonixd is a cross-platform desktop client built for Subsonic-API compatible music servers. This project was inspired by the many existing clients, but aimed to address a few key issues including <strong>scalability</strong>, <strong>library management</strong>, and <strong>user experience</strong>. |
||||
|
|
||||
[![Build Status][github-actions-status]][github-actions-url] |
## Features |
||||
[![Dependency Status][david-image]][david-url] |
|
||||
[![DevDependency Status][david-dev-image]][david-dev-url] |
|
||||
[![Github Tag][github-tag-image]][github-tag-url] |
|
||||
|
|
||||
[![OpenCollective](https://opencollective.com/electron-react-boilerplate/backers/badge.svg)](#backers) |
- HTML5 audio with crossfading and gapless\* playback |
||||
[![OpenCollective](https://opencollective.com/electron-react-boilerplate/sponsors/badge.svg)](#sponsors) |
- Drag and drop rows with multi-select |
||||
[![Good first issues open][good-first-issue-image]][good-first-issue-url] |
- Modify and save playlists intuitively |
||||
[![StackOverflow][stackoverflow-img]][stackoverflow-url] |
- Handles large playlists and queues |
||||
|
- Global mediakeys support |
||||
|
- Multi-theme support |
||||
|
- Supports all Subsonic API compatible servers targeting v1.15.0 |
||||
|
- Built with Electron, React with the [rsuite](https://github.com/rsuite/rsuite) component library |
||||
|
|
||||
</div> |
<h5>* Gapless playback is artifically created using the crossfading players so it may not be perfect, YMMV.</h5> |
||||
|
|
||||
|
## Screenshots |
||||
|
|
||||
|
<a href="assets/screenshots/dashboard.png"><img src="assets/screenshots/dashboard.png" width="49.5%"/></a> |
||||
|
<a href="assets/screenshots/playlist_list.png"><img src="assets/screenshots/playlist_list.png" width="49.5%"/></a> |
||||
|
<a href="assets/screenshots/favorites.png"><img src="assets/screenshots/favorites.png" width="49.5%"/></a> |
||||
|
<a href="assets/screenshots/contextmenu.png"><img src="assets/screenshots/contextmenu.png" width="49.5%"/></a> |
||||
|
|
||||
## Install |
## Install |
||||
|
|
||||
- **If you have installation or compilation issues with this project, please see [our debugging guide](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/400)** |
You can install sonixd by downloading the [latest release](https://github.com/jeffvli/sonixd/releases) for your specified operating system. |
||||
|
|
||||
|
- Windows: `.exe` |
||||
|
- Linux: `.AppImage` |
||||
|
- MacOS: `.dmg` |
||||
|
|
||||
|
Once installed, run the application and sign in to your music server with the following details. If you are using [airsonic-advanced](https://github.com/airsonic-advanced/), you will need to make sure that you create a `decodable` credential for your login user within the admin control panel. |
||||
|
|
||||
|
- Server - `e.g. http://localhost:4040/` |
||||
|
- User name - `e.g. admin` |
||||
|
- Password - `e.g. supersecret!` |
||||
|
|
||||
|
## Development / Contributing |
||||
|
|
||||
|
This project is built off of [electron-react-boilerplate](https://github.com/electron-react-boilerplate/electron-react-boilerplate) v2.3.0. |
||||
|
If you want to contribute to this project, please first create an [issue](https://github.com/jeffvli/sonixd/issues/new) or [discussion](https://github.com/jeffvli/sonixd/discussions/new) so that we can both discuss the idea and its feasability for integration. |
||||
|
|
||||
First, clone the repo via git and install dependencies: |
First, clone the repo via git and install dependencies: |
||||
|
|
||||
```bash |
```bash |
||||
git clone --depth 1 --single-branch https://github.com/electron-react-boilerplate/electron-react-boilerplate.git your-project-name |
git clone https://github.com/jeffvli/sonixd.git |
||||
cd your-project-name |
yarn install |
||||
yarn |
|
||||
``` |
``` |
||||
|
|
||||
## Starting Development |
|
||||
|
|
||||
Start the app in the `dev` environment: |
Start the app in the `dev` environment: |
||||
|
|
||||
```bash |
```bash |
||||
yarn start |
yarn start |
||||
``` |
``` |
||||
|
|
||||
## Packaging for Production |
|
||||
|
|
||||
To package apps for the local platform: |
To package apps for the local platform: |
||||
|
|
||||
```bash |
```bash |
||||
yarn package |
yarn package |
||||
``` |
``` |
||||
|
|
||||
## Docs |
If you are unable to run via debug in VS Code, check troubleshooting steps [here](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/2757#issuecomment-784200527). |
||||
|
|
||||
See our [docs and guides here](https://electron-react-boilerplate.js.org/docs/installation) |
If your devtools extensions are failing to run/install, check troubleshooting steps [here](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/2788). |
||||
|
|
||||
## Donations |
|
||||
|
|
||||
**Donations will ensure the following:** |
|
||||
|
|
||||
- 🔨 Long term maintenance of the project |
|
||||
- 🛣 Progress on the [roadmap](https://electron-react-boilerplate.js.org/docs/roadmap) |
|
||||
- 🐛 Quick responses to bug reports and help requests |
|
||||
|
|
||||
## Backers |
|
||||
|
|
||||
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/electron-react-boilerplate#backer)] |
|
||||
|
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/0/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/0/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/1/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/1/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/2/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/2/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/3/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/3/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/4/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/4/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/5/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/5/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/6/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/6/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/7/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/7/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/8/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/8/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/9/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/9/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/10/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/10/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/11/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/11/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/12/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/12/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/13/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/13/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/14/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/14/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/15/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/15/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/16/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/16/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/17/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/17/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/18/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/18/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/19/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/19/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/20/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/20/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/21/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/21/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/22/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/22/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/23/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/23/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/24/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/24/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/25/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/25/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/26/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/26/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/27/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/27/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/28/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/28/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/29/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/29/avatar.svg"></a> |
|
||||
|
|
||||
## Sponsors |
|
||||
|
|
||||
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/electron-react-boilerplate-594#sponsor)] |
|
||||
|
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/0/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/0/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/1/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/1/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/2/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/2/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/3/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/3/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/4/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/4/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/5/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/5/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/6/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/6/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/7/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/7/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/8/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/8/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/9/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/9/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/10/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/10/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/11/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/11/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/12/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/12/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/13/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/13/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/14/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/14/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/15/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/15/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/16/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/16/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/17/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/17/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/18/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/18/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/19/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/19/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/20/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/20/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/21/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/21/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/22/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/22/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/23/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/23/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/24/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/24/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/25/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/25/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/26/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/26/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/27/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/27/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/28/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/28/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/29/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/29/avatar.svg"></a> |
|
||||
|
|
||||
## Maintainers |
|
||||
|
|
||||
- [Amila Welihinda](https://github.com/amilajack) |
|
||||
- [John Tran](https://github.com/jooohhn) |
|
||||
- [C. T. Lin](https://github.com/chentsulin) |
|
||||
- [Jhen-Jie Hong](https://github.com/jhen0409) |
|
||||
|
|
||||
## License |
## License |
||||
|
|
||||
MIT © [Electron React Boilerplate](https://github.com/electron-react-boilerplate) |
[GNU General Public License v3.0 ©](https://github.com/jeffvli/sonixd/blob/main/LICENSE) |
||||
|
|
||||
[github-actions-status]: https://github.com/electron-react-boilerplate/electron-react-boilerplate/workflows/Test/badge.svg |
|
||||
[github-actions-url]: https://github.com/electron-react-boilerplate/electron-react-boilerplate/actions |
|
||||
[github-tag-image]: https://img.shields.io/github/tag/electron-react-boilerplate/electron-react-boilerplate.svg?label=version |
|
||||
[github-tag-url]: https://github.com/electron-react-boilerplate/electron-react-boilerplate/releases/latest |
|
||||
[stackoverflow-img]: https://img.shields.io/badge/stackoverflow-electron_react_boilerplate-blue.svg |
|
||||
[stackoverflow-url]: https://stackoverflow.com/questions/tagged/electron-react-boilerplate |
|
||||
[david-image]: https://img.shields.io/david/electron-react-boilerplate/electron-react-boilerplate.svg |
|
||||
[david-url]: https://david-dm.org/electron-react-boilerplate/electron-react-boilerplate |
|
||||
[david-dev-image]: https://img.shields.io/david/dev/electron-react-boilerplate/electron-react-boilerplate.svg?label=devDependencies |
|
||||
[david-dev-url]: https://david-dm.org/electron-react-boilerplate/electron-react-boilerplate?type=dev |
|
||||
[good-first-issue-image]: https://img.shields.io/github/issues/electron-react-boilerplate/electron-react-boilerplate/good%20first%20issue.svg?label=good%20first%20issues |
|
||||
[good-first-issue-url]: https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues?q=is%3Aopen+is%3Aissue+label%3A"good+first+issue" |
|
||||
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 961 KiB |
After Width: | Height: | Size: 155 KiB |
After Width: | Height: | Size: 934 KiB |
After Width: | Height: | Size: 201 KiB |
Loading…
Reference in new issue