From e1977b291e1d0fd2a50c14b630189b18108c4f88 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sat, 30 Jul 2022 19:31:32 -0700 Subject: [PATCH] Add basic development instructions --- README.md | 131 ++++++------------------------------------------------ 1 file changed, 14 insertions(+), 117 deletions(-) diff --git a/README.md b/README.md index 3a073a92e..3cafca914 100644 --- a/README.md +++ b/README.md @@ -1,129 +1,26 @@ -sonixd logo +# Sonixd (rewrite) -# Sonixd +Repository for the rewrite of [Sonixd](https://github.com/jeffvli/sonixd). - - Release - - - License - - - Downloads - - - Discord - - - Matrix - +## Development -Sonixd is a cross-platform desktop client built for Subsonic-API (and Jellyfin in 0.8.0+) compatible music servers. This project was inspired by the many existing clients, but aimed to address a few key issues including scalability, library management, and user experience. +This project is built off of [electron-react-boilerplate](https://github.com/electron-react-boilerplate/electron-react-boilerplate) v4.6.0. -- [**Usage documentation & FAQ**](https://github.com/jeffvli/sonixd/discussions/15) -- [**Theming documentation**](https://github.com/jeffvli/sonixd/discussions/61) +### Developing with Docker Compose -Sonixd has been tested on the following: [Navidrome](https://github.com/navidrome/navidrome), [Airsonic](https://github.com/airsonic/airsonic), [Airsonic-Advanced](https://github.com/airsonic-advanced/airsonic-advanced), [Gonic](https://github.com/sentriz/gonic), [Astiga](https://asti.ga/), [Jellyfin](https://github.com/jellyfin/jellyfin) +1. Copy and rename the `example.env.dev` to `.env.dev` and make any changes necessary +2. **Run the server**: Use `npm run docker:up` to build and run the dev server + 1. Prisma studio available on `http://localhost:5555` + 2. Server available on `http://localhost:9321` + 3. Default login credentials are `admin/admin` +3. **Run the client**: Use `npm run start` to run the dev Electron client -### [Demo Sonixd using Navidrome](https://github.com/jeffvli/sonixd/discussions/244) - -## Features - -- HTML5 audio with crossfading and gapless\* playback -- Drag and drop rows with multi-select -- Modify and save playlists intuitively -- Handles large playlists and queues -- Global mediakeys (and partial MPRIS) support -- Multi-theme support -- Supports all Subsonic/Jellyfin API compatible servers -- Built with Electron, React with the [rsuite v4](https://github.com/rsuite/rsuite) component library - -
* Gapless playback is artifically created using the crossfading players so it may not be perfect, YMMV.
- -## Screenshots - - - - - - -## Install - -You can install sonixd by downloading the [latest release](https://github.com/jeffvli/sonixd/releases) for your specified operating system. - ---- - -### Windows - -If you prefer not to download the release binary, you can install using `winget`. - -Using your favorite terminal (cmd/pwsh): - -``` -winget install sonixd -``` - ---- - -### Arch Linux - -There is an AUR package of the latest AppImage release available [here](https://aur.archlinux.org/packages/sonixd-appimage). - -To install it you can use your favourite AUR package manager and install the package: `sonixd-appimage` - -For example using `yay`: - -``` -yay -S sonixd-appimage -``` - -If you encounter any problems please comment on the [AUR](https://aur.archlinux.org/packages/sonixd-appimage) or contact the [maintainer](mailto:robin@blckct.io) directly before you open an issue here. - ---- - -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/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!` - -If you have any questions, feel free to check out the [Usage Documentation & FAQ](https://github.com/jeffvli/sonixd/discussions/15). - -## 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 (Windows development now requires additional setup, see [#232](https://github.com/jeffvli/sonixd/issues/232)): +To package the application: ```bash -git clone https://github.com/jeffvli/sonixd.git -yarn install +npm run package ``` -Start the app in the `dev` environment: - -```bash -yarn start -``` - -To package apps for the local platform: - -```bash -yarn package -``` - -If you receive errors while packaging the application, try upgrading/downgrading your Node version (tested on v14.18.0). - -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). - -If your devtools extensions are failing to run/install, check troubleshooting steps [here](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/2788). - ## License -[GNU General Public License v3.0 ©](https://github.com/jeffvli/sonixd/blob/main/LICENSE) +[GNU General Public License v3.0 ©](https://github.com/jeffvli/sonixd-rewrite/blob/dev/LICENSE)