Anime library manager monorepo.
apps/api- Node.js + Effectapps/web- React frontendpackages/shared- shared transport/types
- runtime and task runner: Node.js +
pnpm - workspace config:
package.jsonworkspaces - dependencies are installed with pnpm
From the repo root:
pnpm dev
pnpm dev:api
pnpm dev:web
pnpm check
pnpm test
pnpm build
pnpm lintAPI checks:
pnpm check:api
pnpm --filter @bakarr/api check
pnpm --filter @bakarr/api testWeb checks:
pnpm check:web
pnpm --filter @bakarr/web build
pnpm --filter @bakarr/web checkThis repo exposes a Node.js-based package and a NixOS module from flake.nix.
Build and run locally:
nix build .#bakarr
nix run .#bakarr-apiInspect flake outputs:
nix flake showImport the module and enable the service:
{
imports = [ inputs.bakarr.nixosModules.bakarr ];
services.bakarr = {
enable = true;
port = 8000;
openFirewall = true;
environment = {
BAKARR_BOOTSTRAP_USERNAME = "admin";
SESSION_COOKIE_SECURE = false;
};
};
}The systemd service stores state under /var/lib/bakarr by default and sets
DATABASE_FILE=/var/lib/bakarr/bakarr.sqlite.
AniDB episode metadata enrichment is configured in the app UI under
Settings -> Automation -> Metadata Providers.
- API uses SQLite/Drizzle migrations under
apps/api/drizzle - frontend talks to the API using contracts from
packages/shared - root
.gitignoreexcludes local env files, build logs, and SQLite artifacts