@@ -73,7 +73,7 @@ export default function SetupGuidePage() {
7373 { label : "Why Self-Host" , id : "why" } ,
7474 { label : "CORS Headers" , id : "cors" } ,
7575 { label : "SSH Tunnel" , id : "ssh-tunnel" } ,
76- { label : "Umbrel" , id : "umbrel" } ,
76+ { label : "Umbrel App " , id : "umbrel" } ,
7777 { label : "Start9" , id : "start9" } ,
7878 { label : "Docker" , id : "docker" } ,
7979 { label : "CORS Proxy" , id : "cors-proxy" } ,
@@ -200,7 +200,71 @@ export default function SetupGuidePage() {
200200 < Terminal size = { 22 } />
201201 Umbrel
202202 </ h2 >
203+
204+ { /* Recommended: Umbrel app */ }
205+ < div className = "bg-card-bg border border-bitcoin/30 rounded-xl p-6 space-y-4" >
206+ < div className = "flex items-center gap-2" >
207+ < span className = "text-[10px] font-bold uppercase tracking-wider text-bitcoin bg-bitcoin/10 px-2 py-0.5 rounded" >
208+ Recommended
209+ </ span >
210+ </ div >
211+ < h3 className = "text-lg font-semibold text-foreground" > Install the Umbrel App</ h3 >
212+ < p className = "text-muted leading-relaxed" >
213+ The easiest way. Install < span className = "text-foreground font-medium" > am-i.exposed</ span > directly
214+ on your Umbrel and it automatically connects to your local mempool instance.
215+ No CORS headers, no SSH tunnel, no configuration needed.
216+ </ p >
217+ < ol className = "space-y-2 text-muted leading-relaxed" >
218+ < li className = "flex gap-2" >
219+ < span className = "text-bitcoin shrink-0 font-bold" > 1.</ span >
220+ < span >
221+ Open your Umbrel dashboard and go to the < strong className = "text-foreground" > App Store</ strong >
222+ </ span >
223+ </ li >
224+ < li className = "flex gap-2" >
225+ < span className = "text-bitcoin shrink-0 font-bold" > 2.</ span >
226+ < span >
227+ Click the < strong className = "text-foreground" > three-dot menu</ strong > (top right)
228+ and select < strong className = "text-foreground" > Community App Stores</ strong >
229+ </ span >
230+ </ li >
231+ < li className = "flex gap-2" >
232+ < span className = "text-bitcoin shrink-0 font-bold" > 3.</ span >
233+ < span >
234+ Paste the store URL and click < strong className = "text-foreground" > Add</ strong > :
235+ </ span >
236+ </ li >
237+ </ ol >
238+ < div className = "relative" >
239+ < pre className = "bg-surface-inset rounded-lg p-3 text-sm font-mono overflow-x-auto text-bitcoin" >
240+ https://github.com/Copexit/copexit-umbrel-app-store
241+ </ pre >
242+ < CopyButton text = "https://github.com/Copexit/copexit-umbrel-app-store" />
243+ </ div >
244+ < ol start = { 4 } className = "space-y-2 text-muted leading-relaxed" >
245+ < li className = "flex gap-2" >
246+ < span className = "text-bitcoin shrink-0 font-bold" > 4.</ span >
247+ < span >
248+ Find < strong className = "text-foreground" > am-i.exposed</ strong > in the store and click < strong className = "text-foreground" > Install</ strong >
249+ </ span >
250+ </ li >
251+ </ ol >
252+ < p className = "text-muted leading-relaxed" >
253+ The app detects your local mempool automatically. All API requests stay on your local network
254+ and Chainalysis lookups are routed through a built-in Tor proxy.
255+ </ p >
256+ </ div >
257+
258+ { /* Alternative: manual setup */ }
203259 < div className = "bg-card-bg border border-card-border rounded-xl p-6 space-y-5" >
260+ < h3 className = "text-lg font-semibold text-foreground" >
261+ Alternative: Use the Website with Your Umbrel Node
262+ </ h3 >
263+ < p className = "text-muted leading-relaxed" >
264+ If you prefer using < span className = "text-foreground font-medium" > am-i.exposed</ span > from the public
265+ website instead of the Umbrel app, you can point it at your Umbrel's mempool instance.
266+ This requires CORS headers and an SSH tunnel.
267+ </ p >
204268 < p className = "text-muted leading-relaxed" >
205269 On Umbrel, the mempool app listens on < span className = "text-foreground font-medium" > port 3006</ span > via
206270 Umbrel's < code className = "text-foreground text-xs" > app_proxy</ code > container.
0 commit comments