mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2026-03-13 22:12:54 +03:00
* fix(nix): enable sandboxed builds with bun2nix The Nix package was broken on Linux because `bun install` requires network access, which is blocked by Nix sandboxing (enabled by default on Linux). This switches to bun2nix for dependency management: - Add bun2nix flake input to pre-fetch all npm dependencies - Generate bun.nix lockfile for reproducible dependency resolution - Copy bun cache to writable location during build to avoid EACCES errors from bunx writing to the read-only Nix store - Add nanoid as an explicit dependency (was imported directly but only available as a transitive dep, which breaks with isolated linker) - Update CI workflow to perform a full sandboxed build - Add bun2nix to devShell for easy lockfile regeneration Closes #197 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(nix): create writable workdir for database access The app uses process.cwd()/data for the database path, but when running from the Nix store the cwd is read-only. Create a writable working directory with symlinks to app files and a real data directory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
118 lines
4.1 KiB
JSON
118 lines
4.1 KiB
JSON
{
|
|
"name": "gitea-mirror",
|
|
"type": "module",
|
|
"version": "3.9.5",
|
|
"engines": {
|
|
"bun": ">=1.2.9"
|
|
},
|
|
"scripts": {
|
|
"setup": "bun install && bun run manage-db init",
|
|
"dev": "bunx --bun astro dev",
|
|
"dev:clean": "bun run cleanup-db && bun run manage-db init && bunx --bun astro dev",
|
|
"build": "bunx --bun astro build",
|
|
"cleanup-db": "rm -f gitea-mirror.db data/gitea-mirror.db",
|
|
"manage-db": "bun scripts/manage-db.ts",
|
|
"init-db": "bun scripts/manage-db.ts init",
|
|
"check-db": "bun scripts/manage-db.ts check",
|
|
"fix-db": "bun scripts/manage-db.ts fix",
|
|
"reset-users": "bun scripts/manage-db.ts reset-users",
|
|
"reset-password": "bun scripts/manage-db.ts reset-password",
|
|
"db:generate": "bun drizzle-kit generate",
|
|
"db:migrate": "bun drizzle-kit migrate",
|
|
"db:push": "bun drizzle-kit push",
|
|
"db:pull": "bun drizzle-kit pull",
|
|
"db:check": "bun drizzle-kit check",
|
|
"db:studio": "bun drizzle-kit studio",
|
|
"startup-recovery": "bun scripts/startup-recovery.ts",
|
|
"startup-recovery-force": "bun scripts/startup-recovery.ts --force",
|
|
"startup-env-config": "bun scripts/startup-env-config.ts",
|
|
"test-recovery": "bun scripts/test-recovery.ts",
|
|
"test-recovery-cleanup": "bun scripts/test-recovery.ts --cleanup",
|
|
"test-shutdown": "bun scripts/test-graceful-shutdown.ts",
|
|
"test-shutdown-cleanup": "bun scripts/test-graceful-shutdown.ts --cleanup",
|
|
"preview": "bunx --bun astro preview",
|
|
"start": "bun dist/server/entry.mjs",
|
|
"start:fresh": "bun run cleanup-db && bun run manage-db init && bun dist/server/entry.mjs",
|
|
"test": "bun test",
|
|
"test:watch": "bun test --watch",
|
|
"test:coverage": "bun test --coverage",
|
|
"astro": "bunx --bun astro"
|
|
},
|
|
"overrides": {
|
|
"@esbuild-kit/esm-loader": "npm:tsx@^4.21.0",
|
|
"devalue": "^5.5.0"
|
|
},
|
|
"dependencies": {
|
|
"@astrojs/check": "^0.9.6",
|
|
"@astrojs/mdx": "4.3.13",
|
|
"@astrojs/node": "9.5.4",
|
|
"@astrojs/react": "^4.4.2",
|
|
"@better-auth/sso": "1.4.19",
|
|
"@octokit/plugin-throttling": "^11.0.3",
|
|
"@octokit/rest": "^22.0.1",
|
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
"@radix-ui/react-avatar": "^1.1.11",
|
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
"@radix-ui/react-collapsible": "^1.1.12",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
"@radix-ui/react-hover-card": "^1.1.15",
|
|
"@radix-ui/react-label": "^2.1.8",
|
|
"@radix-ui/react-popover": "^1.1.15",
|
|
"@radix-ui/react-progress": "^1.1.8",
|
|
"@radix-ui/react-radio-group": "^1.3.8",
|
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
"@radix-ui/react-select": "^2.2.6",
|
|
"@radix-ui/react-separator": "^1.1.8",
|
|
"@radix-ui/react-slot": "^1.2.4",
|
|
"@radix-ui/react-switch": "^1.2.6",
|
|
"@radix-ui/react-tabs": "^1.1.13",
|
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
"@tailwindcss/vite": "^4.2.1",
|
|
"@tanstack/react-virtual": "^3.13.19",
|
|
"@types/canvas-confetti": "^1.9.0",
|
|
"@types/react": "^19.2.14",
|
|
"@types/react-dom": "^19.2.3",
|
|
"astro": "^5.17.3",
|
|
"bcryptjs": "^3.0.3",
|
|
"better-auth": "1.4.19",
|
|
"buffer": "^6.0.3",
|
|
"canvas-confetti": "^1.9.4",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"dotenv": "^17.3.1",
|
|
"drizzle-orm": "^0.45.1",
|
|
"fuse.js": "^7.1.0",
|
|
"jsonwebtoken": "^9.0.3",
|
|
"lucide-react": "^0.575.0",
|
|
"nanoid": "^3.3.11",
|
|
"next-themes": "^0.4.6",
|
|
"react": "^19.2.4",
|
|
"react-dom": "^19.2.4",
|
|
"react-icons": "^5.5.0",
|
|
"sonner": "^2.0.7",
|
|
"tailwind-merge": "^3.5.0",
|
|
"tailwindcss": "^4.2.1",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^5.9.3",
|
|
"uuid": "^13.0.0",
|
|
"vaul": "^1.1.2",
|
|
"zod": "^4.3.6"
|
|
},
|
|
"devDependencies": {
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@types/bcryptjs": "^3.0.0",
|
|
"@types/bun": "^1.3.9",
|
|
"@types/jsonwebtoken": "^9.0.10",
|
|
"@types/uuid": "^11.0.0",
|
|
"@vitejs/plugin-react": "^5.1.4",
|
|
"drizzle-kit": "^0.31.9",
|
|
"jsdom": "^28.1.0",
|
|
"tsx": "^4.21.0",
|
|
"vitest": "^4.0.18"
|
|
},
|
|
"packageManager": "bun@1.3.3"
|
|
}
|