Split PostgreSQL into gallery_dev and gallery_prod, add Docker/Gitea deploy tooling, SMB image sync, pgAdmin split script, dev:web on Keenetic :5173, and operator docs. Co-authored-by: Cursor <cursoragent@cursor.com>
66 lines
3.4 KiB
JSON
66 lines
3.4 KiB
JSON
{
|
|
"name": "gallery",
|
|
"version": "1.0.0",
|
|
"description": "",
|
|
"main": "index.js",
|
|
"scripts": {
|
|
"migrate": "node server/migrate.js",
|
|
"migrate:thumbnails": "node -e \"require('./server/db').query(require('fs').readFileSync('./db/migrate-thumbnails.sql','utf8')).then(()=>{console.log('OK');process.exit(0);}).catch(e=>{console.error(e);process.exit(1);})\"",
|
|
"seed": "node scripts/seed-wikipedia.js",
|
|
"fetch-images": "node scripts/fetch-missing-images.js",
|
|
"search-missing-paintings": "node scripts/fetch-missing-images.js",
|
|
"fetch-artist-images": "node scripts/fetch-artist-images.js",
|
|
"fetch-artist-bios": "node scripts/fetch-artist-bios.js",
|
|
"sync-image-paths": "node scripts/sync-image-paths.js",
|
|
"regenerate-thumbnails": "node scripts/regenerate-thumbnails.js",
|
|
"audit-painting-images": "node scripts/audit-painting-images.js",
|
|
"expand-catalog": "node scripts/expand-paintings.js",
|
|
"update-influences": "node scripts/update-influences.js",
|
|
"migrate:influence-sources": "node scripts/migrate-influence-sources.js",
|
|
"migrate:checkup-flags": "node scripts/migrate-checkup-flags.js",
|
|
"migrate:artist-checkup-flags": "node scripts/migrate-artist-checkup-flags.js",
|
|
"migrate:painting-annotations": "node scripts/migrate-painting-annotations.js",
|
|
"migrate:artist-palette": "node scripts/migrate-artist-palette.js",
|
|
"import-painter-palette": "node scripts/import-painter-palette.js",
|
|
"analyze-painter-palette": "node scripts/analyze-painter-palette.js",
|
|
"export-paintings": "node scripts/export-paintings-csv.js",
|
|
"update-painting-annotations": "node scripts/update-painting-annotations.js",
|
|
"find-duplicates": "node scripts/find-duplicate-paintings.js",
|
|
"audit-influence-duplicates": "node scripts/audit-influence-duplicates.js",
|
|
"discover-influences": "node scripts/update-influences.js --discover-only",
|
|
"build": "npm run build --prefix client",
|
|
"start": "node server/index.js",
|
|
"start:prod": "npm run build && node server/index.js",
|
|
"server": "node server/index.js",
|
|
"dev:web": "node scripts/dev-web.js",
|
|
"dev:server": "nodemon server/index.js",
|
|
"dev:client": "npm run dev --prefix client",
|
|
"docker:publish": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/docker/build-push-lan.ps1",
|
|
"docker:publish:push-only": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/docker/build-push-lan.ps1 -SkipBuild",
|
|
"db:split-databases": "node scripts/split-dev-prod-databases.js",
|
|
"db:sync-from-prod": "node scripts/sync-prod-to-dev.js",
|
|
"db:backup": "node scripts/backup-db-data.js",
|
|
"db:backup:prod": "node scripts/backup-db-data.js --prod",
|
|
"db:restore": "node scripts/restore-db-data.js",
|
|
"db:restore:prod": "node scripts/restore-db-data.js --prod",
|
|
"images:sync-to-prod": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/sync-images-to-prod.ps1",
|
|
"images:sync-from-prod": "powershell -NoProfile -ExecutionPolicy Bypass -File infra/scripts/sync-images-from-prod.ps1",
|
|
"dev": "node server/index.js",
|
|
"setup": "node server/migrate.js && node scripts/seed-wikipedia.js"
|
|
},
|
|
"keywords": [],
|
|
"author": "",
|
|
"license": "ISC",
|
|
"type": "commonjs",
|
|
"dependencies": {
|
|
"cors": "^2.8.6",
|
|
"dotenv": "^17.4.2",
|
|
"express": "^5.2.1",
|
|
"pg": "^8.21.0",
|
|
"sharp": "^0.35.1"
|
|
},
|
|
"devDependencies": {
|
|
"nodemon": "^3.1.14"
|
|
}
|
|
}
|