Migrate the gallery/admin off the static + Supabase setup to a self-hosted full-stack app that runs on the home server behind nginx. - Switch adapter-static -> adapter-node - SQLite via Drizzle (users, sessions, gallery_images); migrations run on startup - Server-side session auth (argon2 hashing, httpOnly cookie, SHA-256 stored token, sliding expiry) wired through hooks.server.ts - Admin: server-side login, route guard, gallery upload/delete via form actions - Public gallery is now SSR from the DB; /uploads/[...path] serves images in dev - scripts/create-admin.js + db:generate/db:migrate/create-admin npm scripts - Remove @supabase/supabase-js and the client-side gallery/admin code - Fix pre-existing imageOnRight boolean prop type in Main.svelte - ADMIN_SETUP.md rewritten for local dev + home-server deploy (systemd, nginx, backups) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| drizzle | ||
| scripts | ||
| src | ||
| static | ||
| .env.example | ||
| .gitignore | ||
| .npmrc | ||
| ADMIN_SETUP.md | ||
| README.md | ||
| drizzle.config.ts | ||
| package-lock.json | ||
| package.json | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
README.md
sv
Everything you need to build a Svelte project, powered by sv.
Creating a project
If you're seeing this, you've probably already done this step. Congrats!
# create a new project in the current directory
npx sv create
# create a new project in my-app
npx sv create my-app
Developing
Once you've created a project and installed dependencies with npm install (or pnpm install or yarn), start a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
Building
To create a production version of your app:
npm run build
You can preview the production build with npm run preview.
To deploy your app, you may need to install an adapter for your target environment.