chore: add CONFIGURE.md
This commit is contained in:
parent
45a16a268a
commit
eb9354b46a
1 changed files with 107 additions and 0 deletions
107
CONFIGURE.md
Normal file
107
CONFIGURE.md
Normal 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`.
|
||||
Loading…
Add table
Reference in a new issue