Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
118 lines (104 loc) · 5.4 KB
/
Copy path.env.example
File metadata and controls
118 lines (104 loc) · 5.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# EasyInvoiceOCR — environment reference.
#
# Anything prefixed VITE_ is inlined into the browser bundle and is therefore
# PUBLIC. Everything else stays on the server.
#
# .env and .env.* ARE git-ignored (see .gitignore). An earlier version of this
# note claimed the opposite, which was wrong and is corrected here: nothing in
# .env is committed. Even so, prefer setting PAYPAL_CLIENT_SECRET,
# PAYPAL_WEBHOOK_ID and SUPABASE_SERVICE_ROLE_KEY as deployment environment
# variables in the hosting provider rather than in a local file.
# ---------------------------------------------------------------------------
# Supabase
# ---------------------------------------------------------------------------
SUPABASE_URL="https://<project>.supabase.co"
SUPABASE_PUBLISHABLE_KEY="sb_publishable_..."
# Server only. Bypasses row-level security — never expose it to the browser.
SUPABASE_SERVICE_ROLE_KEY="sb_secret_..."
VITE_SUPABASE_URL="https://<project>.supabase.co"
VITE_SUPABASE_PUBLISHABLE_KEY="sb_publishable_..."
# ---------------------------------------------------------------------------
# Application
# ---------------------------------------------------------------------------
# Production HTTPS origin. Used to build the PayPal return/cancel URLs and the
# webhook address registered in the PayPal dashboard.
APP_URL=
# The indexing switch, and the only thing that makes a deployment indexable.
#
# It must be set to EXACTLY https://www.easyinvoiceocr.com on the production
# deployment. Anywhere else — a preview build, a branch deployment, a laptop —
# leave it unset and every page renders "noindex, nofollow" automatically.
#
# This fails closed on purpose: forgetting it means the site is not indexed,
# which is reversible, whereas a preview hostname getting indexed duplicates
# the whole site in search results and is not.
#
# Canonical URLs do NOT depend on this. They always name the production origin,
# so a preview never advertises itself as the real page.
VITE_SITE_URL=
# Search-engine ownership verification, rendered as meta tags on every page.
# Both are optional and render nothing when empty.
#
# Google offers two methods and their tokens are NOT interchangeable. The
# HTML-file method issues a token shaped google<16 hex> and wants a file of
# that name at the site root — public/google5c6318784a4b8677.html is exactly
# that, and is what verifies this property today. The variable below is for
# the OTHER method, the HTML tag, whose token is a long opaque string. A file
# token pasted here is rejected rather than emitted, because a meta tag Google
# reads and refuses leaves the property unverified with nothing to see.
VITE_GOOGLE_SITE_VERIFICATION=
# Bing Webmaster Tools, rendered as msvalidate.01.
VITE_BING_SITE_VERIFICATION=
# ---------------------------------------------------------------------------
# PayPal Subscriptions — server only
# ---------------------------------------------------------------------------
# "live" or "sandbox". Anything that is not exactly "live" resolves to sandbox,
# so a typo can never point real credentials at production by accident.
# Never mix Live and Sandbox values in the same file.
PAYPAL_ENV=
PAYPAL_CLIENT_ID=
# NEVER give this a VITE_ prefix, and never reference it from a component.
PAYPAL_CLIENT_SECRET=
# From the PayPal dashboard, after registering the webhook at
# POST https://<APP_URL>/api/paypal/webhook
PAYPAL_WEBHOOK_ID=
# The four subscription plan ids, from the PayPal Billing Plans API. These must
# belong to the same environment as PAYPAL_ENV.
PAYPAL_PRO_MONTHLY_PLAN_ID=
PAYPAL_PRO_YEARLY_PLAN_ID=
PAYPAL_BUSINESS_MONTHLY_PLAN_ID=
PAYPAL_BUSINESS_YEARLY_PLAN_ID=
# Master switch for real payment windows. Checkout fails closed: it opens only
# when every value above is present AND this is exactly "true". The PayPal
# account owner sets this, after the production domain and webhook are verified.
PAYPAL_LIVE_CHECKOUT_ENABLED=false
# ---------------------------------------------------------------------------
# Google AdSense — public, but keep the flag off until approval
# ---------------------------------------------------------------------------
# Ads never load unless ALL of these hold: the flag is "true", the client id
# starts with ca-pub-, the build is a production build, the route is on the
# eligible list, the visitor consented, and the account is not on a paid plan.
VITE_ADSENSE_ENABLED="false"
VITE_ADSENSE_CLIENT_ID=""
# One id per placement. A slot with no id renders nothing.
VITE_ADSENSE_SLOT_HOME_BELOW_HERO=""
VITE_ADSENSE_SLOT_HOME_MID_CONTENT=""
VITE_ADSENSE_SLOT_PRODUCT_MID_CONTENT=""
VITE_ADSENSE_SLOT_CONVERTER_BELOW_CONTENT=""
VITE_ADSENSE_SLOT_DOCS_IN_ARTICLE=""
VITE_ADSENSE_SLOT_HELP_IN_ARTICLE=""
VITE_ADSENSE_SLOT_BLOG_LIST=""
VITE_ADSENSE_SLOT_BLOG_IN_ARTICLE=""
VITE_ADSENSE_SLOT_RESOURCE_IN_ARTICLE=""
# Leave "false" unless a certified consent platform has established that
# non-personalised ads without consent are lawful in the regions you serve.
VITE_ADSENSE_NPA_WITHOUT_CONSENT="false"
# ---------------------------------------------------------------------------
# Text recognition assets (optional)
# ---------------------------------------------------------------------------
# OCR runs in the visitor's browser. By default the engine and language models
# come from a public CDN. Set these to self-hosted copies to remove that
# third-party request entirely.
VITE_TESSERACT_WORKER_PATH=""
VITE_TESSERACT_CORE_PATH=""
VITE_TESSERACT_LANG_PATH=""