# ─── Square API ──────────────────────────────────────────────────────────────── # Get these from https://developer.squareup.com/apps SQUARE_ACCESS_TOKEN=your_square_access_token_here SQUARE_LOCATION_ID=your_square_location_id_here # "sandbox" or "production" SQUARE_ENVIRONMENT=sandbox # These are exposed to the browser — use your Square Application ID (not access token) # and the same location ID as above. NEXT_PUBLIC_SQUARE_APP_ID=sandbox-sq0idb-your_app_id_here NEXT_PUBLIC_SQUARE_LOCATION_ID=your_square_location_id_here # "sandbox" or "production" — controls which Square JS SDK URL is loaded NEXT_PUBLIC_SQUARE_ENVIRONMENT=sandbox # Optional: ID of a Square category (Items > Categories) whose items appear in the shop. # If set, only items in this category are shown. Otherwise falls back to src/config/shop-items.json. SQUARE_SHOP_CATEGORY_ID= # ─── CalDAV (Nextcloud) ──────────────────────────────────────────────────────── # Your Nextcloud CalDAV base URL — include trailing slash CALDAV_URL=https://your-nextcloud.example.com/remote.php/dav/calendars/username/ CALDAV_USERNAME=your_nextcloud_username # Use an app password (Settings > Security > Devices & sessions > App passwords) CALDAV_PASSWORD=your_nextcloud_app_password # Display name of the calendar to check for Busy blocks CALDAV_CALENDAR_NAME=Deliveries # ─── Email (SMTP — your mail server) ────────────────────────────────────────── SMTP_HOST=mail.beachpartyballoons.com SMTP_PORT=587 SMTP_USER=shop@beachpartyballoons.com SMTP_PASS=your_email_password_here # Address that receives new-order & slot-conflict alerts (you/staff) ALERT_EMAIL_TO=you@beachpartyballoons.com # Sender shown on outgoing emails ALERT_EMAIL_FROM=shop@beachpartyballoons.com # ─── Admin panel ─────────────────────────────────────────────────────────────── # Password to access /admin — keep this secret ADMIN_PASSWORD=change_me_to_something_strong # Secret token for the cron cache-refresh endpoint (POST /api/cache/refresh) CACHE_REFRESH_SECRET=change_me_to_something_random # ─── OSRM (self-hosted routing) ──────────────────────────────────────────────── # Leave blank to use the public demo server (unreliable). Self-host for production: # https://hub.docker.com/r/osrm/osrm-backend OSRM_URL=http://localhost:5000 # ─── Site ────────────────────────────────────────────────────────────────────── NEXT_PUBLIC_SITE_URL=http://localhost:3000