This repository now runs the NipaPlay official website through Next.js.
The public homepage and docs are still served from the existing HTML files for compatibility, while the server-side APIs and management UI are implemented in Next.js route handlers.
- Legacy-compatible routes for the old PHP endpoints:
cloud_playlist.phplyrics_service.phpsong_id_service.phpsong_detail.phpwatch_progress_sync.phpdanmaku_proxy.phpmusic_library.php
- A web admin console at
/adminfor editing releases, guides, song IDs, lyrics, song details, and cloud playlists. - Filesystem-backed storage so changes are visible immediately.
- Static file routes for cached assets and release binaries that are kept out of Git.
- Node-based official website automation for GitHub release packages, docs, and screenshots/assets.
npm install
npm run devThe app reads mutable content from the repository root by default. In
production, set NIPAPLAY_DATA_ROOT to an external data directory so automatic
Git deploys do not conflict with admin edits.
Required:
ADMIN_PASSWORD=change-this
AUTH_SECRET=change-this-too
NIPAPLAY_DATA_ROOT=/www/nipaplay-data
PORT=3010Optional:
MUSIC_LIBRARY_CODE=irigas
MUSIC_LIBRARY_ROOT=/www/nipaplay-data/music_library_data
NIPAPLAY_RELEASE_REPO=AimesSoft/NipaPlay-Reload
NIPAPLAY_DOCS_REPO=AimesSoft/NipaPlay-Reload
NIPAPLAY_ASSETS_REPO=AimesSoft/NipaPlay-Reload
NIPAPLAY_SOURCE_BRANCH=mainnpm ci
npm run build
npm startThe server should be placed behind Nginx, with Nginx proxying the domain to the Next.js process.
node scripts/sync-official-content.mjs --task=all
node scripts/sync-official-content.mjs --task=releases
node scripts/sync-official-content.mjs --task=docs
node scripts/sync-official-content.mjs --task=assetsThe sync script writes mutable content into NIPAPLAY_DATA_ROOT, keeping the Git
worktree clean for automatic deployments.