Build and run the production application with one public port and one persistent data mount:
docker build --tag playlarr .
install -d -o 99 -g 100 -m 0775 /mnt/user/appdata/playlarr
docker run --name playlarr --publish 3000:3000 \
--volume /mnt/user/appdata/playlarr:/data playlarrThe container runs the Next.js frontend and NestJS backend together. Only port
3000 is public; browser API and SSE requests use the same origin under /api.
SQLite state is stored at /data/playlarr.db. The built-in health check and
GET /api/health report application health without depending on optional
external integrations.
The container runs as the Unraid-compatible nobody:users identity (UID 99,
GID 100). A host directory mounted at /data must be writable by that identity.
Application and integration settings are stored as feature-owned documents in a common SQLite settings table. Authentication owns the shape and validation of its single-user settings document. A fresh installation has no authentication settings and remains accessible without credentials. This is distinct from authentication having been explicitly configured as disabled, so a future onboarding flow can identify first-run state.
Authentication configuration and sessions are stored separately. Passwords are stored only as scrypt hashes, and session tokens are stored only as hashes with their expiry timestamps. When authentication is enabled, its Secure session cookie requires HTTPS on the public Playlarr origin.
Onboarding and settings controls for managing authentication settings are not implemented yet.
✨ Your new, shiny Nx workspace is ready ✨.
Learn more about this workspace setup and its capabilities or run npx nx graph to visually explore what was created. Now, let's get you up to speed!
To run the dev server for your app, use:
npx nx dev playlarrTo create a production bundle:
npx nx build playlarrTo see all available targets to run for a project, run:
npx nx show project playlarrThese targets are either inferred automatically or defined in the project.json or package.json files.
More about running tasks in the docs »
While you could add new projects to your workspace manually, you might want to leverage Nx plugins and their code generation feature.
Use the plugin's generator to create new projects.
To generate a new application, use:
npx nx g @nx/next:app demoTo generate a new library, use:
npx nx g @nx/react:lib mylibYou can use npx nx list to get a list of installed plugins. Then, run npx nx list <plugin-name> to learn about more specific capabilities of a particular plugin. Alternatively, install Nx Console to browse plugins and generators in your IDE.
Learn more about Nx plugins » | Browse the plugin registry »
To connect to Nx Cloud, run the following command:
npx nx connectConnecting to Nx Cloud ensures a fast and scalable CI pipeline. It includes features such as:
Use the following command to configure a CI workflow for your workspace:
npx nx g ci-workflowNx Console is an editor extension that enriches your developer experience. It lets you run tasks, generate code, and improves code autocompletion in your IDE. It is available for VSCode and IntelliJ.
Learn more:
- Learn more about this workspace setup
- Learn about Nx on CI
- Releasing Packages with Nx release
- What are Nx plugins?
And join the Nx community: