https://github.com/chenasraf/nextcloud-jukebox
https://github.com/chenasraf/nextcloud-jukebox
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/chenasraf/nextcloud-jukebox
- Owner: chenasraf
- License: agpl-3.0
- Created: 2025-06-06T14:02:08.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-08-09T01:24:36.000Z (10 months ago)
- Last Synced: 2025-08-09T10:49:30.426Z (10 months ago)
- Language: PHP
- Size: 1 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Jukebox
**Jukebox** is a Nextcloud app for streaming and organizing all your audio content in one place.
It supports music files, podcasts (with gPodder sync), audiobooks, YouTube videos, and online radio.
## Features
- 🎵 Play local music files
- 🎙️ Sync and stream podcasts using [gPodder](https://gpodder.net/)
- 📚 Listen to audiobooks with resume support
- 📺 Embed and play YouTube videos
- 📻 Tune in to online radio streams
## Installation
Download the app from [Nextcloud's App Store](https://apps.nextcloud.com/apps/jukebox) through your
Nextcloud instance.
If you prefer to download manually, you can download the latest version from GitHub and install
directly:
1. Place this app in **nextcloud/apps/** or **nextcloud/custom_apps/**
2. Here is a quick installation script you can use as base. Modify the first variable lines to match
your setup:
```bash
pushd "/path/to/root/of/nextcloud/custom_apps"
APPVER=$(curl -s https://api.github.com/repos/chenasraf/nextcloud-jukebox/releases/latest | grep tag_name | grep -Eo 'v[^"]+') && \
curl -L https://github.com/chenasraf/nextcloud-jukebox/releases/download/${APPVER}/jukebox-${APPVER}.tar.gz -o jukebox.tar.gz && \
tar xfv jukebox.tar.gz && \
rm -rf jukebox.tar.gz
```
3. Then enable the app as you normally would from Nextcloud's Apps page.
## Contributing
I am developing this package on my free time, so any support, whether code, issues, or just stars is
very helpful to sustaining its life. If you are feeling incredibly generous and would like to donate
just a small amount to help sustain this project, I would be very very thankful!
I welcome any issues or pull requests on GitHub. If you find a bug, or would like a new feature,
don't hesitate to open an appropriate issue and I will do my best to reply promptly.
## Development
### Automation
Most development processes are automated:
- **GitHub Actions** run tests, builds, and validations on each push or pull request.
- **Pre-commit formatting** is handled by [lint-staged](https://github.com/okonet/lint-staged),
which automatically formats code before committing:
> 🛠️ The NPM package [husky](https://www.npmjs.com/package/husky) takes care of installing the
> pre-commit hook automatically after `pnpm install`.
---
### Manual Commands
While automation handles most workflows, the following commands are available for local development
and debugging:
#### Build the App
```bash
make
```
Installs dependencies and compiles frontend/backend assets.
#### Run Tests
```bash
make test
```
Runs unit and integration tests (if available).
#### Format & Lint
```bash
make format # Auto-fix code style
make lint # Check code quality
```
#### Generate OpenAPI Docs
```bash
make openapi
```
Output is saved to `build/openapi/openapi.json`.
#### Packaging for Release
```bash
make appstore # Production build for Nextcloud app store
make source # Full source package
make distclean # Clean build artifacts and dependencies
```
#### Sign Releases
After uploading the archive to GitHub:
```bash
make sign
```
Downloads the `.tar.gz` release, verifies it, and prints a SHA-512 signature using your key at
`~/.nextcloud/certificates/jukebox.key`.