chore: add CONFIGURE.md

This commit is contained in:
notshop 2026-04-26 16:34:56 +00:00
parent 45a16a268a
commit eb9354b46a

107
CONFIGURE.md Normal file
View file

@ -0,0 +1,107 @@
# NoShop Configuration Guide
This guide covers common customizations after forking.
---
## 1. Store name & branding
**`client/src/index.css`** — change the CSS custom properties to match your brand colors:
```css
:root {
--primary: 222 47% 20%; /* main button / link color (HSL format) */
--background: 0 0% 100%; /* page background */
/* ... */
}
```
**`.env` / Replit Secrets**:
```
STORE_NAME=Acme Supplements
STORE_EMAIL_FROM=orders@acmesupplements.com
```
**`client/src/components/layout/Footer.tsx`** — update footer links, tagline.
---
## 2. Payment gateways
### Authorize.net (default)
NoShop uses Authorize.net Accept.js for PCI-compliant checkout — card data never touches your server.
1. Create a sandbox account at [developer.authorize.net](https://developer.authorize.net)
2. Get your API Login ID, Transaction Key, and Public Client Key from the sandbox dashboard
3. Set secrets: `AUTHORIZE_NET_API_LOGIN_ID`, `AUTHORIZE_NET_TRANSACTION_KEY`, `AUTHORIZE_NET_PUBLIC_CLIENT_KEY`
4. Set `AUTHORIZE_NET_SANDBOX=true` while testing, `false` for live
### Stripe (optional)
Set `STRIPE_SECRET_KEY` and `STRIPE_PUBLISHABLE_KEY` in secrets. When both are present, customers see a "Stripe" tab at checkout. Leave them empty to disable Stripe entirely.
---
## 3. Email
NoShop uses [Resend](https://resend.com) for transactional email (magic-link login, order confirmations).
1. Create a free Resend account
2. Verify your sending domain
3. Set `RESEND_API_KEY` and `STORE_EMAIL_FROM`
Edit `server/email.ts` to customize email templates.
---
## 4. Adding products
Products can be added via:
- **Admin panel** — visit `/admin/products`, click "New product"
- **Bulk import** — write a migration script that INSERTs into the `products` table with Drizzle, or use `psql` / pgAdmin directly
The product schema lives in `shared/schema.ts`. Key fields:
- `handle` — URL slug (e.g. `omega-3-fish-oil``/products/omega-3-fish-oil`)
- `images` — array of image URLs (text[])
- `status``active` | `draft` | `archived`
- `hsaFsa` — boolean, shows HSA/FSA badge
---
## 5. Custom domain on Replit
1. In your Replit project, go to **Settings → Custom domain**
2. Add your domain and follow the DNS instructions
3. Replit handles TLS automatically
---
## 6. Database migrations
After editing `shared/schema.ts`, run:
```bash
npm run db:push
```
For a new Replit project with no existing data:
```bash
npm run db:push # applies schema to a fresh DB
npm run db:seed # creates your first admin user
```
---
## 7. Admin credentials
The first admin is created by `npm run db:seed`. Set these secrets before running:
```
ADMIN_EMAIL=you@yourdomain.com
ADMIN_PASSWORD=your-secure-password
```
Additional admin users can be added directly to the `admin_users` table, or you can add an "invite admin" route in `server/routes.ts`.