← back to Kamatera Nginx
initial snapshot: post-cleanup kamatera /etc/nginx/
11a371ddeec73803d32f8b96550c412b6c4de17c · 2026-05-21 18:31:41 -0700 · SteveStudio2
Captures the clean state after 2 cleanup rounds today:
1. removed stale .bak duplicates from sites-enabled/ (silenced 8+
conflicting server name warnings on every nginx reload)
2. normalized 15 regular files in sites-enabled/ into symlinks back
to sites-available/
Backups for both cleanup rounds preserved on prod at:
/root/nginx-backups/cleanup-2026-05-21/
/root/nginx-backups/normalize-2026-05-21/
nginx -t is clean. sites-enabled/ is now 100% symlinks (202).
Files touched
A .gitignoreA README.mdA sites-available/1800swallpaper.comA sites-available/1800wallcoverings.com.confA sites-available/1890swallpaper.comA sites-available/1900swallpaper.comA sites-available/1920swallpaper.comA sites-available/1930swallpaper.comA sites-available/1940swallpaper.comA sites-available/1950swallpaper.comA sites-available/1960swallpaper.comA sites-available/1970swallpaper.comA sites-available/1980swallpaper.comA sites-available/4square.agentabrams.comA sites-available/abramsatlas.com.confA sites-available/abramscivic.com.confA sites-available/abramsdirectory.com.confA sites-available/abramsguide.com.confA sites-available/abramsindex.com.confA sites-available/abramsindustries.com.confA sites-available/abramsintel.com.confA sites-available/abramsintelligence.com.confA sites-available/abramslive.com.confA sites-available/abramslocal.com.confA sites-available/abramsmaps.com.confA sites-available/abramsmarkets.com.confA sites-available/abramsos.com.confA sites-available/abramsprotection.com.confA sites-available/abramsreport.agentabrams.com.confA sites-available/abramsspace.com.confA sites-available/abramsterminal.com.confA sites-available/abramsvc.com.confA sites-available/admin.agentabrams.comA sites-available/agedwallpaper.comA sites-available/agentabrams.comA sites-available/animals.agentabrams.comA sites-available/apartmentwallpaper.comA sites-available/app.venturaclaw.comA sites-available/architecturalwallcoverings.comA sites-available/asseeninhotels.com.confA sites-available/asseeninla.com.confA sites-available/asseeninmovies.com.confA sites-available/asseeninshowrooms.com.confA sites-available/auth.agentabrams.comA sites-available/auth.grassclothwallpaper.comA sites-available/barwallpaper.com.confA sites-available/bertha.grassclothwallpaper.comA sites-available/bestwallpaperplace.comA sites-available/blankstocklining.com.confA sites-available/bleachfriendly.com.confA sites-available/bleachresistantfabrics.comA sites-available/blockprintedwallpaper.comA sites-available/bubbe.aiA sites-available/bubbe.ai.backupA sites-available/bubbe.ai.oldA sites-available/bubbesblock.com.confA sites-available/builds.agentabrams.comA sites-available/builds.agentabrams.com.newA sites-available/businessclaw.agentabrams.comA sites-available/businessclaw.agentabrams.com.pre-redirect.bakA sites-available/butlr.agentabrams.comA sites-available/carmelwallpaper.com.confA sites-available/carmelwallpapers.comA sites-available/cfafabrics.com.confA sites-available/chat.designerwallcoverings.comA sites-available/chinoiseriewallpaper.comA sites-available/claimmyaddress.com.confA sites-available/classawallcovering.com.confA sites-available/commercialdesignreps.comA sites-available/commercialsalesreps.com.confA sites-available/commercialwallcovering.com.confA sites-available/contractwallpaper.comA sites-available/corkwallcovering.comA sites-available/costarica.agentabrams.comA sites-available/customdigitalmurals.comA sites-available/cypresawardsA sites-available/cypresawards.comA sites-available/dashboard-ipA sites-available/deadradio.agentabrams.comA sites-available/defaultA sites-available/default.dpkg-distA sites-available/default.saveA sites-available/designerline.agentabrams.comA sites-available/designerlookbooks.comA sites-available/designermagnetics.com.confA sites-available/designerrepresentatives.comA sites-available/designerssalesreps.comA sites-available/designerwallcoverings.aiA sites-available/designtradelive.comA sites-available/dw-admin-authA sites-available/dw.greendomainbrokers.comA sites-available/embroideredwallpaper.comA sites-available/etciemurals.com.confA sites-available/fabricfriday.comA sites-available/fabricfridays.com.confA sites-available/fabricwallpaper.comA sites-available/ffepurchasing.comA sites-available/fireratedwallcovering.com.confA sites-available/flocked.org.confA sites-available/flockedwallpaper.comA sites-available/forza.agentabrams.comA sites-available/glassbeadedwallpaper.comA sites-available/glitterwalls.comA sites-available/glitterwalls.com.bak.1778227778A sites-available/gmail.agentabrams.comA sites-available/goldleafwallpaper.comA sites-available/goodquestion.aiA sites-available/grassclothwallcovering.com.confA sites-available/grassclothwallcoveringsA sites-available/grassclothwallcoverings-redirectA sites-available/grassclothwallcoverings.comA sites-available/grassclothwallpaper.comA sites-available/grassclothwallpaper.com.backupA sites-available/greendomainbrokers.comA sites-available/greendomainbrokers.com.tempA sites-available/greenwallcoverings.comA sites-available/handcraftedwallpaper.comA sites-available/handmadewallcovering.com.confA sites-available/healthcarewallpaper.comA sites-available/hollywoodwallcovering.com.confA sites-available/hollywoodwallcoverings.comA sites-available/hormuzy.agentabrams.comA sites-available/hospitalitydesignreps.comA sites-available/hospitalitysalesagency.com.confA sites-available/hospitalitysalesrepresentatives.comA sites-available/hospitalitywallcoverings.comA sites-available/hospitalitywallpaper.comA sites-available/hotelwallcoverings.comA sites-available/ideas.agentabrams.comA sites-available/jutewallpaper.comA sites-available/lacountyeats.com.confA sites-available/lang.bubbe.aiA sites-available/latino-gardensA sites-available/latinogardensA sites-available/lawyers.agentabrams.comA sites-available/leads.venturaclaw.comA sites-available/letsbegin.greendomainbrokers.comA sites-available/linenwallpaper.comA sites-available/livesiteaudit.agentabrams.comA sites-available/losangelesfabrics.comA sites-available/losgardeners.confA sites-available/madagascarwallpaper.comA sites-available/malibuwallpaper.com.confA sites-available/melanie.grassclothwallpaper.comA sites-available/metallicwallpaper.comA sites-available/micawallpaper.comA sites-available/montereywallpaper.com.confA sites-available/museumwallpaper.comA sites-available/mylarwallpaper.comA sites-available/n8n.confA sites-available/nationalpaperhangers.comA sites-available/naturaltextilewallpaper.comA sites-available/naturalwallcoverings.comA sites-available/naturalwalltextures.com.confA sites-available/novasuedeA sites-available/novasuede.comA sites-available/pairs.designerwallcoverings.comA sites-available/pastelwallpaper.comA sites-available/patterndesignlab.com.confA sites-available/philipperomano.comA sites-available/philliperomano.com.confA sites-available/pitch.sdcc.agentabrams.comA sites-available/pm.greendomainbrokers.comA sites-available/port-viewerA sites-available/printmurals.com.confA sites-available/raffiawallcoverings.comA sites-available/raffiawalls.comA sites-available/recycledwallpaper.comA sites-available/restaurantfabrics.com.confA sites-available/restaurantmurals.com.confA sites-available/restaurantwallpaper.comA sites-available/restorationwallpaper.comA sites-available/retrowalls.comA sites-available/roomsettings.com.confA sites-available/saloonwallpaper.comA sites-available/screenprintedwallpaper.comA sites-available/sdcc.agentabrams.comA sites-available/sdccanalysis.agentabrams.comA sites-available/selfadhesivewallpaper.comA sites-available/sheltermagazines.com.confA sites-available/silkwallcoverings.comA sites-available/silkwallpaper.comA sites-available/silverleafwallpaper.comA sites-available/specifywallpaper.com.confA sites-available/starsofdesign.comA sites-available/stevenabramsphotography.com.confA sites-available/stringwallpaper.comA sites-available/suedewallpaper.comA sites-available/textiletuesday.comA sites-available/textilewallpaper.comA sites-available/thehotelwallpaper.com.confA sites-available/thesetdecorator.comA sites-available/traditionalwhimsy.com.confA sites-available/typo-redirect-1800wallcoverings.comA sites-available/typo-redirect-1800wallpapers.comA sites-available/typo-redirect-800wallpaper.comA sites-available/typo-redirect-designerwallcover.comA sites-available/typo-redirect-designerwallcovering.comA sites-available/unitedstateswallpaper.com.confA sites-available/venturablvd.agentabrams.comA sites-available/venturaclaw.agentabrams.comA sites-available/venturaclaw.comA sites-available/videos.agentabrams.comA sites-available/vinylwallpaper.comA sites-available/wallco.aiA sites-available/wallcovering.net.confA sites-available/wallpapercanada.comA sites-available/wallpapercontractor.comA sites-available/wallpaperdefinitions.comA sites-available/wallpaperdictionary.comA sites-available/wallpaperdistributors.comA sites-available/wallpaperestimator.comA sites-available/wallpaperexports.com.confA sites-available/wallpaperfromthe80s.com.confA sites-available/wallpaperglossary.comA sites-available/wallpaperhistory.comA sites-available/wallpaperny.com.confA sites-available/wallpaperpurchasing.com.confA sites-available/wallpapersback.comA sites-available/wallpaperwednesday.comA sites-available/wallpaperweekly.com.confA sites-available/wallsandfabrics.comA sites-available/wc01wallcoverings.com.confA sites-available/wholivedthere.com.confA sites-available/zendesk-chat-proxyA sites-enabled/1800swallpaper.comA sites-enabled/1800wallcoverings.com.confA sites-enabled/1890swallpaper.comA sites-enabled/1900swallpaper.comA sites-enabled/1920swallpaper.comA sites-enabled/1930swallpaper.comA sites-enabled/1940swallpaper.comA sites-enabled/1950swallpaper.comA sites-enabled/1960swallpaper.comA sites-enabled/1970swallpaper.comA sites-enabled/1980swallpaper.comA sites-enabled/4square.agentabrams.comA sites-enabled/abramsatlas.com.confA sites-enabled/abramscivic.com.confA sites-enabled/abramsdirectory.com.confA sites-enabled/abramsguide.com.confA sites-enabled/abramsindex.com.confA sites-enabled/abramsindustries.com.confA sites-enabled/abramsintel.com.confA sites-enabled/abramsintelligence.com.confA sites-enabled/abramslive.com.confA sites-enabled/abramslocal.com.confA sites-enabled/abramsmaps.com.confA sites-enabled/abramsmarkets.com.confA sites-enabled/abramsos.com.confA sites-enabled/abramsprotection.com.confA sites-enabled/abramsreport.agentabrams.com.confA sites-enabled/abramsspace.com.confA sites-enabled/abramsterminal.com.confA sites-enabled/abramsvc.com.confA sites-enabled/admin.agentabrams.comA sites-enabled/agedwallpaper.comA sites-enabled/agentabrams.comA sites-enabled/animals.agentabrams.comA sites-enabled/apartmentwallpaper.comA sites-enabled/app.venturaclaw.comA sites-enabled/architecturalwallcoverings.comA sites-enabled/asseeninhotels.com.confA sites-enabled/asseeninla.com.confA sites-enabled/asseeninmovies.com.confA sites-enabled/asseeninshowrooms.com.confA sites-enabled/auth.agentabrams.comA sites-enabled/auth.grassclothwallpaper.comA sites-enabled/barwallpaper.com.confA sites-enabled/bertha.grassclothwallpaper.comA sites-enabled/bestwallpaperplace.comA sites-enabled/blankstocklining.com.confA sites-enabled/bleachfriendly.com.confA sites-enabled/bleachresistantfabrics.comA sites-enabled/blockprintedwallpaper.comA sites-enabled/bubbe.aiA sites-enabled/bubbesblock.com.confA sites-enabled/builds.agentabrams.comA sites-enabled/businessclaw.agentabrams.comA sites-enabled/butlr.agentabrams.comA sites-enabled/carmelwallpaper.com.confA sites-enabled/carmelwallpapers.comA sites-enabled/cfafabrics.com.confA sites-enabled/chat.designerwallcoverings.comA sites-enabled/chinoiseriewallpaper.comA sites-enabled/claimmyaddress.com.confA sites-enabled/classawallcovering.com.confA sites-enabled/commercialdesignreps.comA sites-enabled/commercialsalesreps.com.confA sites-enabled/commercialwallcovering.com.confA sites-enabled/contractwallpaper.comA sites-enabled/corkwallcovering.comA sites-enabled/costarica.agentabrams.comA sites-enabled/customdigitalmurals.comA sites-enabled/cypresawards.comA sites-enabled/deadradio.agentabrams.comA sites-enabled/defaultA sites-enabled/designerline.agentabrams.comA sites-enabled/designerlookbooks.comA sites-enabled/designermagnetics.com.confA sites-enabled/designerrepresentatives.comA sites-enabled/designerssalesreps.comA sites-enabled/designerwallcoverings.aiA sites-enabled/designtradelive.comA sites-enabled/dw-admin-authA sites-enabled/dw.greendomainbrokers.comA sites-enabled/embroideredwallpaper.comA sites-enabled/etciemurals.com.confA sites-enabled/fabricfriday.comA sites-enabled/fabricfridays.com.confA sites-enabled/fabricwallpaper.comA sites-enabled/ffepurchasing.comA sites-enabled/fireratedwallcovering.com.confA sites-enabled/flocked.org.confA sites-enabled/flockedwallpaper.comA sites-enabled/forza.agentabrams.comA sites-enabled/glassbeadedwallpaper.comA sites-enabled/glitterwalls.comA sites-enabled/gmail.agentabrams.comA sites-enabled/goldleafwallpaper.comA sites-enabled/goodquestion.aiA sites-enabled/grassclothwallcovering.com.confA sites-enabled/grassclothwallcoverings.comA sites-enabled/grassclothwallpaper.comA sites-enabled/greendomainbrokers.comA sites-enabled/greenwallcoverings.comA sites-enabled/handcraftedwallpaper.comA sites-enabled/handmadewallcovering.com.confA sites-enabled/healthcarewallpaper.comA sites-enabled/hollywoodwallcovering.com.confA sites-enabled/hollywoodwallcoverings.comA sites-enabled/hormuzy.agentabrams.comA sites-enabled/hospitalitydesignreps.comA sites-enabled/hospitalitysalesagency.com.confA sites-enabled/hospitalitysalesrepresentatives.comA sites-enabled/hospitalitywallcoverings.comA sites-enabled/hospitalitywallpaper.comA sites-enabled/hotelwallcoverings.comA sites-enabled/ideas.agentabrams.comA sites-enabled/jutewallpaper.comA sites-enabled/lacountyeats.com.confA sites-enabled/lang.bubbe.aiA sites-enabled/latinogardensA sites-enabled/lawyers.agentabrams.comA sites-enabled/leads.venturaclaw.comA sites-enabled/letsbegin.greendomainbrokers.comA sites-enabled/linenwallpaper.comA sites-enabled/losangelesfabrics.comA sites-enabled/losgardeners.confA sites-enabled/madagascarwallpaper.comA sites-enabled/malibuwallpaper.com.confA sites-enabled/metallicwallpaper.comA sites-enabled/micawallpaper.comA sites-enabled/montereywallpaper.com.confA sites-enabled/museumwallpaper.comA sites-enabled/mylarwallpaper.comA sites-enabled/n8n.confA sites-enabled/nationalpaperhangers.comA sites-enabled/naturaltextilewallpaper.comA sites-enabled/naturalwallcoverings.comA sites-enabled/naturalwalltextures.com.confA sites-enabled/novasuede.comA sites-enabled/pairs.designerwallcoverings.comA sites-enabled/pastelwallpaper.comA sites-enabled/patterndesignlab.com.confA sites-enabled/philipperomano.comA sites-enabled/philliperomano.com.confA sites-enabled/pitch.sdcc.agentabrams.comA sites-enabled/pm.greendomainbrokers.comA sites-enabled/printmurals.com.confA sites-enabled/raffiawallcoverings.comA sites-enabled/raffiawalls.comA sites-enabled/recycledwallpaper.comA sites-enabled/restaurantfabrics.com.confA sites-enabled/restaurantmurals.com.confA sites-enabled/restaurantwallpaper.comA sites-enabled/restorationwallpaper.comA sites-enabled/retrowalls.comA sites-enabled/roomsettings.com.confA sites-enabled/saloonwallpaper.comA sites-enabled/screenprintedwallpaper.comA sites-enabled/sdcc.agentabrams.comA sites-enabled/sdccanalysis.agentabrams.comA sites-enabled/selfadhesivewallpaper.comA sites-enabled/sheltermagazines.com.confA sites-enabled/silkwallcoverings.comA sites-enabled/silkwallpaper.comA sites-enabled/silverleafwallpaper.comA sites-enabled/specifywallpaper.com.confA sites-enabled/starsofdesign.comA sites-enabled/stevenabramsphotography.com.confA sites-enabled/stringwallpaper.comA sites-enabled/suedewallpaper.comA sites-enabled/textiletuesday.comA sites-enabled/textilewallpaper.comA sites-enabled/thehotelwallpaper.com.confA sites-enabled/thesetdecorator.comA sites-enabled/traditionalwhimsy.com.confA sites-enabled/typo-redirect-1800wallpapers.comA sites-enabled/typo-redirect-800wallpaper.comA sites-enabled/typo-redirect-designerwallcover.comA sites-enabled/typo-redirect-designerwallcovering.comA sites-enabled/unitedstateswallpaper.com.confA sites-enabled/venturablvd.agentabrams.comA sites-enabled/venturaclaw.comA sites-enabled/videos.agentabrams.comA sites-enabled/vinylwallpaper.comA sites-enabled/wallco.aiA sites-enabled/wallcovering.net.confA sites-enabled/wallpapercanada.comA sites-enabled/wallpapercontractor.comA sites-enabled/wallpaperdefinitions.comA sites-enabled/wallpaperdictionary.comA sites-enabled/wallpaperdistributors.comA sites-enabled/wallpaperestimator.comA sites-enabled/wallpaperexports.com.confA sites-enabled/wallpaperfromthe80s.com.confA sites-enabled/wallpaperglossary.comA sites-enabled/wallpaperhistory.comA sites-enabled/wallpaperny.com.confA sites-enabled/wallpaperpurchasing.com.confA sites-enabled/wallpapersback.comA sites-enabled/wallpaperwednesday.comA sites-enabled/wallpaperweekly.com.confA sites-enabled/wallsandfabrics.comA sites-enabled/wc01wallcoverings.com.confA sites-enabled/wholivedthere.com.conf
Diff
commit 11a371ddeec73803d32f8b96550c412b6c4de17c
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Thu May 21 18:31:41 2026 -0700
initial snapshot: post-cleanup kamatera /etc/nginx/
Captures the clean state after 2 cleanup rounds today:
1. removed stale .bak duplicates from sites-enabled/ (silenced 8+
conflicting server name warnings on every nginx reload)
2. normalized 15 regular files in sites-enabled/ into symlinks back
to sites-available/
Backups for both cleanup rounds preserved on prod at:
/root/nginx-backups/cleanup-2026-05-21/
/root/nginx-backups/normalize-2026-05-21/
nginx -t is clean. sites-enabled/ is now 100% symlinks (202).
---
.gitignore | 4 +
README.md | 24 ++
sites-available/1800swallpaper.com | 42 +++
sites-available/1800wallcoverings.com.conf | 21 ++
sites-available/1890swallpaper.com | 42 +++
sites-available/1900swallpaper.com | 43 +++
sites-available/1920swallpaper.com | 59 ++++
sites-available/1930swallpaper.com | 60 ++++
sites-available/1940swallpaper.com | 44 +++
sites-available/1950swallpaper.com | 42 +++
sites-available/1960swallpaper.com | 61 ++++
sites-available/1970swallpaper.com | 59 ++++
sites-available/1980swallpaper.com | 61 ++++
sites-available/4square.agentabrams.com | 46 +++
sites-available/abramsatlas.com.conf | 17 +
sites-available/abramscivic.com.conf | 24 ++
sites-available/abramsdirectory.com.conf | 17 +
sites-available/abramsguide.com.conf | 17 +
sites-available/abramsindex.com.conf | 17 +
sites-available/abramsindustries.com.conf | 24 ++
sites-available/abramsintel.com.conf | 24 ++
sites-available/abramsintelligence.com.conf | 8 +
sites-available/abramslive.com.conf | 24 ++
sites-available/abramslocal.com.conf | 17 +
sites-available/abramsmaps.com.conf | 17 +
sites-available/abramsmarkets.com.conf | 17 +
sites-available/abramsos.com.conf | 24 ++
sites-available/abramsprotection.com.conf | 24 ++
sites-available/abramsreport.agentabrams.com.conf | 113 +++++++
sites-available/abramsspace.com.conf | 24 ++
sites-available/abramsterminal.com.conf | 24 ++
sites-available/abramsvc.com.conf | 24 ++
sites-available/admin.agentabrams.com | 37 +++
sites-available/agedwallpaper.com | 41 +++
sites-available/agentabrams.com | 45 +++
sites-available/animals.agentabrams.com | 34 ++
sites-available/apartmentwallpaper.com | 17 +
sites-available/app.venturaclaw.com | 32 ++
sites-available/architecturalwallcoverings.com | 42 +++
sites-available/asseeninhotels.com.conf | 21 ++
sites-available/asseeninla.com.conf | 21 ++
sites-available/asseeninmovies.com.conf | 21 ++
sites-available/asseeninshowrooms.com.conf | 21 ++
sites-available/auth.agentabrams.com | 42 +++
sites-available/auth.grassclothwallpaper.com | 50 +++
sites-available/barwallpaper.com.conf | 21 ++
sites-available/bertha.grassclothwallpaper.com | 40 +++
sites-available/bestwallpaperplace.com | 39 +++
sites-available/blankstocklining.com.conf | 21 ++
sites-available/bleachfriendly.com.conf | 21 ++
sites-available/bleachresistantfabrics.com | 15 +
sites-available/blockprintedwallpaper.com | 17 +
sites-available/bubbe.ai | 96 ++++++
sites-available/bubbe.ai.backup | 68 ++++
sites-available/bubbe.ai.old | 96 ++++++
sites-available/bubbesblock.com.conf | 46 +++
sites-available/builds.agentabrams.com | 156 ++++++++++
sites-available/builds.agentabrams.com.new | 24 ++
sites-available/businessclaw.agentabrams.com | 32 ++
.../businessclaw.agentabrams.com.pre-redirect.bak | 41 +++
sites-available/butlr.agentabrams.com | 48 +++
sites-available/carmelwallpaper.com.conf | 21 ++
sites-available/carmelwallpapers.com | 45 +++
sites-available/cfafabrics.com.conf | 21 ++
sites-available/chat.designerwallcoverings.com | 47 +++
sites-available/chinoiseriewallpaper.com | 45 +++
sites-available/claimmyaddress.com.conf | 46 +++
sites-available/classawallcovering.com.conf | 21 ++
sites-available/commercialdesignreps.com | 19 ++
sites-available/commercialsalesreps.com.conf | 21 ++
sites-available/commercialwallcovering.com.conf | 21 ++
sites-available/contractwallpaper.com | 62 ++++
sites-available/corkwallcovering.com | 60 ++++
sites-available/costarica.agentabrams.com | 44 +++
sites-available/customdigitalmurals.com | 45 +++
sites-available/cypresawards | 33 ++
sites-available/cypresawards.com | 131 ++++++++
sites-available/dashboard-ip | 16 +
sites-available/deadradio.agentabrams.com | 31 ++
sites-available/default | 170 ++++++++++
sites-available/default.dpkg-dist | 91 ++++++
sites-available/default.save | 96 ++++++
sites-available/designerline.agentabrams.com | 47 +++
sites-available/designerlookbooks.com | 24 ++
sites-available/designermagnetics.com.conf | 21 ++
sites-available/designerrepresentatives.com | 22 ++
sites-available/designerssalesreps.com | 10 +
sites-available/designerwallcoverings.ai | 27 ++
sites-available/designtradelive.com | 19 ++
sites-available/dw-admin-auth | 195 ++++++++++++
sites-available/dw.greendomainbrokers.com | 342 +++++++++++++++++++++
sites-available/embroideredwallpaper.com | 36 +++
sites-available/etciemurals.com.conf | 21 ++
sites-available/fabricfriday.com | 77 +++++
sites-available/fabricfridays.com.conf | 21 ++
sites-available/fabricwallpaper.com | 62 ++++
sites-available/ffepurchasing.com | 42 +++
sites-available/fireratedwallcovering.com.conf | 21 ++
sites-available/flocked.org.conf | 21 ++
sites-available/flockedwallpaper.com | 100 ++++++
sites-available/forza.agentabrams.com | 55 ++++
sites-available/glassbeadedwallpaper.com | 100 ++++++
sites-available/glitterwalls.com | 42 +++
sites-available/glitterwalls.com.bak.1778227778 | 41 +++
sites-available/gmail.agentabrams.com | 75 +++++
sites-available/goldleafwallpaper.com | 74 +++++
sites-available/goodquestion.ai | 86 ++++++
sites-available/grassclothwallcovering.com.conf | 21 ++
sites-available/grassclothwallcoverings | 17 +
sites-available/grassclothwallcoverings-redirect | 8 +
sites-available/grassclothwallcoverings.com | 175 +++++++++++
sites-available/grassclothwallpaper.com | 118 +++++++
sites-available/grassclothwallpaper.com.backup | 100 ++++++
sites-available/greendomainbrokers.com | 43 +++
sites-available/greendomainbrokers.com.temp | 13 +
sites-available/greenwallcoverings.com | 42 +++
sites-available/handcraftedwallpaper.com | 42 +++
sites-available/handmadewallcovering.com.conf | 21 ++
sites-available/healthcarewallpaper.com | 43 +++
sites-available/hollywoodwallcovering.com.conf | 21 ++
sites-available/hollywoodwallcoverings.com | 62 ++++
sites-available/hormuzy.agentabrams.com | 30 ++
sites-available/hospitalitydesignreps.com | 19 ++
sites-available/hospitalitysalesagency.com.conf | 21 ++
.../hospitalitysalesrepresentatives.com | 18 ++
sites-available/hospitalitywallcoverings.com | 42 +++
sites-available/hospitalitywallpaper.com | 42 +++
sites-available/hotelwallcoverings.com | 61 ++++
sites-available/ideas.agentabrams.com | 49 +++
sites-available/jutewallpaper.com | 44 +++
sites-available/lacountyeats.com.conf | 117 +++++++
sites-available/lang.bubbe.ai | 66 ++++
sites-available/latino-gardens | 19 ++
sites-available/latinogardens | 19 ++
sites-available/lawyers.agentabrams.com | 18 ++
sites-available/leads.venturaclaw.com | 34 ++
sites-available/letsbegin.greendomainbrokers.com | 28 ++
sites-available/linenwallpaper.com | 61 ++++
sites-available/livesiteaudit.agentabrams.com | 51 +++
sites-available/losangelesfabrics.com | 63 ++++
sites-available/losgardeners.conf | 60 ++++
sites-available/madagascarwallpaper.com | 43 +++
sites-available/malibuwallpaper.com.conf | 21 ++
sites-available/melanie.grassclothwallpaper.com | 82 +++++
sites-available/metallicwallpaper.com | 42 +++
sites-available/micawallpaper.com | 43 +++
sites-available/montereywallpaper.com.conf | 21 ++
sites-available/museumwallpaper.com | 41 +++
sites-available/mylarwallpaper.com | 41 +++
sites-available/n8n.conf | 60 ++++
sites-available/nationalpaperhangers.com | 46 +++
sites-available/naturaltextilewallpaper.com | 45 +++
sites-available/naturalwallcoverings.com | 42 +++
sites-available/naturalwalltextures.com.conf | 21 ++
sites-available/novasuede | 100 ++++++
sites-available/novasuede.com | 134 ++++++++
sites-available/pairs.designerwallcoverings.com | 42 +++
sites-available/pastelwallpaper.com | 42 +++
sites-available/patterndesignlab.com.conf | 21 ++
sites-available/philipperomano.com | 63 ++++
sites-available/philliperomano.com.conf | 21 ++
sites-available/pitch.sdcc.agentabrams.com | 26 ++
sites-available/pm.greendomainbrokers.com | 61 ++++
sites-available/port-viewer | 17 +
sites-available/printmurals.com.conf | 21 ++
sites-available/raffiawallcoverings.com | 60 ++++
sites-available/raffiawalls.com | 41 +++
sites-available/recycledwallpaper.com | 36 +++
sites-available/restaurantfabrics.com.conf | 21 ++
sites-available/restaurantmurals.com.conf | 21 ++
sites-available/restaurantwallpaper.com | 35 +++
sites-available/restorationwallpaper.com | 42 +++
sites-available/retrowalls.com | 81 +++++
sites-available/roomsettings.com.conf | 21 ++
sites-available/saloonwallpaper.com | 42 +++
sites-available/screenprintedwallpaper.com | 17 +
sites-available/sdcc.agentabrams.com | 38 +++
sites-available/sdccanalysis.agentabrams.com | 43 +++
sites-available/selfadhesivewallpaper.com | 17 +
sites-available/sheltermagazines.com.conf | 21 ++
sites-available/silkwallcoverings.com | 42 +++
sites-available/silkwallpaper.com | 61 ++++
sites-available/silverleafwallpaper.com | 45 +++
sites-available/specifywallpaper.com.conf | 21 ++
sites-available/starsofdesign.com | 49 +++
sites-available/stevenabramsphotography.com.conf | 21 ++
sites-available/stringwallpaper.com | 37 +++
sites-available/suedewallpaper.com | 41 +++
sites-available/textiletuesday.com | 77 +++++
sites-available/textilewallpaper.com | 42 +++
sites-available/thehotelwallpaper.com.conf | 21 ++
sites-available/thesetdecorator.com | 62 ++++
sites-available/traditionalwhimsy.com.conf | 21 ++
.../typo-redirect-1800wallcoverings.com | 34 ++
sites-available/typo-redirect-1800wallpapers.com | 34 ++
sites-available/typo-redirect-800wallpaper.com | 34 ++
.../typo-redirect-designerwallcover.com | 34 ++
.../typo-redirect-designerwallcovering.com | 34 ++
sites-available/unitedstateswallpaper.com.conf | 21 ++
sites-available/venturablvd.agentabrams.com | 25 ++
sites-available/venturaclaw.agentabrams.com | 32 ++
sites-available/venturaclaw.com | 71 +++++
sites-available/videos.agentabrams.com | 48 +++
sites-available/vinylwallpaper.com | 42 +++
sites-available/wallco.ai | 87 ++++++
sites-available/wallcovering.net.conf | 21 ++
sites-available/wallpapercanada.com | 42 +++
sites-available/wallpapercontractor.com | 22 ++
sites-available/wallpaperdefinitions.com | 65 ++++
sites-available/wallpaperdictionary.com | 65 ++++
sites-available/wallpaperdistributors.com | 22 ++
sites-available/wallpaperestimator.com | 38 +++
sites-available/wallpaperexports.com.conf | 21 ++
sites-available/wallpaperfromthe80s.com.conf | 21 ++
sites-available/wallpaperglossary.com | 65 ++++
sites-available/wallpaperhistory.com | 65 ++++
sites-available/wallpaperny.com.conf | 21 ++
sites-available/wallpaperpurchasing.com.conf | 21 ++
sites-available/wallpapersback.com | 59 ++++
sites-available/wallpaperwednesday.com | 77 +++++
sites-available/wallpaperweekly.com.conf | 21 ++
sites-available/wallsandfabrics.com | 23 ++
sites-available/wc01wallcoverings.com.conf | 21 ++
sites-available/wholivedthere.com.conf | 46 +++
sites-available/zendesk-chat-proxy | 20 ++
sites-enabled/1800swallpaper.com | 1 +
sites-enabled/1800wallcoverings.com.conf | 1 +
sites-enabled/1890swallpaper.com | 1 +
sites-enabled/1900swallpaper.com | 1 +
sites-enabled/1920swallpaper.com | 1 +
sites-enabled/1930swallpaper.com | 1 +
sites-enabled/1940swallpaper.com | 1 +
sites-enabled/1950swallpaper.com | 1 +
sites-enabled/1960swallpaper.com | 1 +
sites-enabled/1970swallpaper.com | 1 +
sites-enabled/1980swallpaper.com | 1 +
sites-enabled/4square.agentabrams.com | 1 +
sites-enabled/abramsatlas.com.conf | 1 +
sites-enabled/abramscivic.com.conf | 1 +
sites-enabled/abramsdirectory.com.conf | 1 +
sites-enabled/abramsguide.com.conf | 1 +
sites-enabled/abramsindex.com.conf | 1 +
sites-enabled/abramsindustries.com.conf | 1 +
sites-enabled/abramsintel.com.conf | 1 +
sites-enabled/abramsintelligence.com.conf | 1 +
sites-enabled/abramslive.com.conf | 1 +
sites-enabled/abramslocal.com.conf | 1 +
sites-enabled/abramsmaps.com.conf | 1 +
sites-enabled/abramsmarkets.com.conf | 1 +
sites-enabled/abramsos.com.conf | 1 +
sites-enabled/abramsprotection.com.conf | 1 +
sites-enabled/abramsreport.agentabrams.com.conf | 1 +
sites-enabled/abramsspace.com.conf | 1 +
sites-enabled/abramsterminal.com.conf | 1 +
sites-enabled/abramsvc.com.conf | 1 +
sites-enabled/admin.agentabrams.com | 1 +
sites-enabled/agedwallpaper.com | 1 +
sites-enabled/agentabrams.com | 1 +
sites-enabled/animals.agentabrams.com | 1 +
sites-enabled/apartmentwallpaper.com | 1 +
sites-enabled/app.venturaclaw.com | 1 +
sites-enabled/architecturalwallcoverings.com | 1 +
sites-enabled/asseeninhotels.com.conf | 1 +
sites-enabled/asseeninla.com.conf | 1 +
sites-enabled/asseeninmovies.com.conf | 1 +
sites-enabled/asseeninshowrooms.com.conf | 1 +
sites-enabled/auth.agentabrams.com | 1 +
sites-enabled/auth.grassclothwallpaper.com | 1 +
sites-enabled/barwallpaper.com.conf | 1 +
sites-enabled/bertha.grassclothwallpaper.com | 1 +
sites-enabled/bestwallpaperplace.com | 1 +
sites-enabled/blankstocklining.com.conf | 1 +
sites-enabled/bleachfriendly.com.conf | 1 +
sites-enabled/bleachresistantfabrics.com | 1 +
sites-enabled/blockprintedwallpaper.com | 1 +
sites-enabled/bubbe.ai | 1 +
sites-enabled/bubbesblock.com.conf | 1 +
sites-enabled/builds.agentabrams.com | 1 +
sites-enabled/businessclaw.agentabrams.com | 1 +
sites-enabled/butlr.agentabrams.com | 1 +
sites-enabled/carmelwallpaper.com.conf | 1 +
sites-enabled/carmelwallpapers.com | 1 +
sites-enabled/cfafabrics.com.conf | 1 +
sites-enabled/chat.designerwallcoverings.com | 1 +
sites-enabled/chinoiseriewallpaper.com | 1 +
sites-enabled/claimmyaddress.com.conf | 1 +
sites-enabled/classawallcovering.com.conf | 1 +
sites-enabled/commercialdesignreps.com | 1 +
sites-enabled/commercialsalesreps.com.conf | 1 +
sites-enabled/commercialwallcovering.com.conf | 1 +
sites-enabled/contractwallpaper.com | 1 +
sites-enabled/corkwallcovering.com | 1 +
sites-enabled/costarica.agentabrams.com | 1 +
sites-enabled/customdigitalmurals.com | 1 +
sites-enabled/cypresawards.com | 1 +
sites-enabled/deadradio.agentabrams.com | 1 +
sites-enabled/default | 1 +
sites-enabled/designerline.agentabrams.com | 1 +
sites-enabled/designerlookbooks.com | 1 +
sites-enabled/designermagnetics.com.conf | 1 +
sites-enabled/designerrepresentatives.com | 1 +
sites-enabled/designerssalesreps.com | 1 +
sites-enabled/designerwallcoverings.ai | 1 +
sites-enabled/designtradelive.com | 1 +
sites-enabled/dw-admin-auth | 1 +
sites-enabled/dw.greendomainbrokers.com | 1 +
sites-enabled/embroideredwallpaper.com | 1 +
sites-enabled/etciemurals.com.conf | 1 +
sites-enabled/fabricfriday.com | 1 +
sites-enabled/fabricfridays.com.conf | 1 +
sites-enabled/fabricwallpaper.com | 1 +
sites-enabled/ffepurchasing.com | 1 +
sites-enabled/fireratedwallcovering.com.conf | 1 +
sites-enabled/flocked.org.conf | 1 +
sites-enabled/flockedwallpaper.com | 1 +
sites-enabled/forza.agentabrams.com | 1 +
sites-enabled/glassbeadedwallpaper.com | 1 +
sites-enabled/glitterwalls.com | 1 +
sites-enabled/gmail.agentabrams.com | 1 +
sites-enabled/goldleafwallpaper.com | 1 +
sites-enabled/goodquestion.ai | 1 +
sites-enabled/grassclothwallcovering.com.conf | 1 +
sites-enabled/grassclothwallcoverings.com | 1 +
sites-enabled/grassclothwallpaper.com | 1 +
sites-enabled/greendomainbrokers.com | 1 +
sites-enabled/greenwallcoverings.com | 1 +
sites-enabled/handcraftedwallpaper.com | 1 +
sites-enabled/handmadewallcovering.com.conf | 1 +
sites-enabled/healthcarewallpaper.com | 1 +
sites-enabled/hollywoodwallcovering.com.conf | 1 +
sites-enabled/hollywoodwallcoverings.com | 1 +
sites-enabled/hormuzy.agentabrams.com | 1 +
sites-enabled/hospitalitydesignreps.com | 1 +
sites-enabled/hospitalitysalesagency.com.conf | 1 +
sites-enabled/hospitalitysalesrepresentatives.com | 1 +
sites-enabled/hospitalitywallcoverings.com | 1 +
sites-enabled/hospitalitywallpaper.com | 1 +
sites-enabled/hotelwallcoverings.com | 1 +
sites-enabled/ideas.agentabrams.com | 1 +
sites-enabled/jutewallpaper.com | 1 +
sites-enabled/lacountyeats.com.conf | 1 +
sites-enabled/lang.bubbe.ai | 1 +
sites-enabled/latinogardens | 1 +
sites-enabled/lawyers.agentabrams.com | 1 +
sites-enabled/leads.venturaclaw.com | 1 +
sites-enabled/letsbegin.greendomainbrokers.com | 1 +
sites-enabled/linenwallpaper.com | 1 +
sites-enabled/losangelesfabrics.com | 1 +
sites-enabled/losgardeners.conf | 1 +
sites-enabled/madagascarwallpaper.com | 1 +
sites-enabled/malibuwallpaper.com.conf | 1 +
sites-enabled/metallicwallpaper.com | 1 +
sites-enabled/micawallpaper.com | 1 +
sites-enabled/montereywallpaper.com.conf | 1 +
sites-enabled/museumwallpaper.com | 1 +
sites-enabled/mylarwallpaper.com | 1 +
sites-enabled/n8n.conf | 1 +
sites-enabled/nationalpaperhangers.com | 1 +
sites-enabled/naturaltextilewallpaper.com | 1 +
sites-enabled/naturalwallcoverings.com | 1 +
sites-enabled/naturalwalltextures.com.conf | 1 +
sites-enabled/novasuede.com | 1 +
sites-enabled/pairs.designerwallcoverings.com | 1 +
sites-enabled/pastelwallpaper.com | 1 +
sites-enabled/patterndesignlab.com.conf | 1 +
sites-enabled/philipperomano.com | 1 +
sites-enabled/philliperomano.com.conf | 1 +
sites-enabled/pitch.sdcc.agentabrams.com | 1 +
sites-enabled/pm.greendomainbrokers.com | 1 +
sites-enabled/printmurals.com.conf | 1 +
sites-enabled/raffiawallcoverings.com | 1 +
sites-enabled/raffiawalls.com | 1 +
sites-enabled/recycledwallpaper.com | 1 +
sites-enabled/restaurantfabrics.com.conf | 1 +
sites-enabled/restaurantmurals.com.conf | 1 +
sites-enabled/restaurantwallpaper.com | 1 +
sites-enabled/restorationwallpaper.com | 1 +
sites-enabled/retrowalls.com | 1 +
sites-enabled/roomsettings.com.conf | 1 +
sites-enabled/saloonwallpaper.com | 1 +
sites-enabled/screenprintedwallpaper.com | 1 +
sites-enabled/sdcc.agentabrams.com | 1 +
sites-enabled/sdccanalysis.agentabrams.com | 1 +
sites-enabled/selfadhesivewallpaper.com | 1 +
sites-enabled/sheltermagazines.com.conf | 1 +
sites-enabled/silkwallcoverings.com | 1 +
sites-enabled/silkwallpaper.com | 1 +
sites-enabled/silverleafwallpaper.com | 1 +
sites-enabled/specifywallpaper.com.conf | 1 +
sites-enabled/starsofdesign.com | 1 +
sites-enabled/stevenabramsphotography.com.conf | 1 +
sites-enabled/stringwallpaper.com | 1 +
sites-enabled/suedewallpaper.com | 1 +
sites-enabled/textiletuesday.com | 1 +
sites-enabled/textilewallpaper.com | 1 +
sites-enabled/thehotelwallpaper.com.conf | 1 +
sites-enabled/thesetdecorator.com | 1 +
sites-enabled/traditionalwhimsy.com.conf | 1 +
sites-enabled/typo-redirect-1800wallpapers.com | 1 +
sites-enabled/typo-redirect-800wallpaper.com | 1 +
sites-enabled/typo-redirect-designerwallcover.com | 1 +
.../typo-redirect-designerwallcovering.com | 1 +
sites-enabled/unitedstateswallpaper.com.conf | 1 +
sites-enabled/venturablvd.agentabrams.com | 1 +
sites-enabled/venturaclaw.com | 1 +
sites-enabled/videos.agentabrams.com | 1 +
sites-enabled/vinylwallpaper.com | 1 +
sites-enabled/wallco.ai | 1 +
sites-enabled/wallcovering.net.conf | 1 +
sites-enabled/wallpapercanada.com | 1 +
sites-enabled/wallpapercontractor.com | 1 +
sites-enabled/wallpaperdefinitions.com | 1 +
sites-enabled/wallpaperdictionary.com | 1 +
sites-enabled/wallpaperdistributors.com | 1 +
sites-enabled/wallpaperestimator.com | 1 +
sites-enabled/wallpaperexports.com.conf | 1 +
sites-enabled/wallpaperfromthe80s.com.conf | 1 +
sites-enabled/wallpaperglossary.com | 1 +
sites-enabled/wallpaperhistory.com | 1 +
sites-enabled/wallpaperny.com.conf | 1 +
sites-enabled/wallpaperpurchasing.com.conf | 1 +
sites-enabled/wallpapersback.com | 1 +
sites-enabled/wallpaperwednesday.com | 1 +
sites-enabled/wallpaperweekly.com.conf | 1 +
sites-enabled/wallsandfabrics.com | 1 +
sites-enabled/wc01wallcoverings.com.conf | 1 +
sites-enabled/wholivedthere.com.conf | 1 +
427 files changed, 10150 insertions(+)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2ef1911
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+# Don't track backups or unrelated dotfiles
+.DS_Store
+*.swp
+*.swo
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0054892
--- /dev/null
+++ b/README.md
@@ -0,0 +1,24 @@
+# kamatera-nginx
+
+Source-of-truth snapshot of `/etc/nginx/` on the Kamatera prod box (45.61.58.125
+/ Tailscale 100.107.67.67 / ssh alias `my-server`).
+
+## Layout
+
+- `sites-available/` — canonical per-host server blocks
+- `sites-enabled/` — symlinks back into sites-available/
+
+## Sync to prod
+
+```bash
+rsync -azv --delete \
+ sites-available/ my-server:/etc/nginx/sites-available/
+ssh my-server 'nginx -t && nginx -s reload'
+```
+
+Symlinks in `sites-enabled/` are recreated on prod manually (or via a
+helper script — TODO).
+
+## Backups on prod
+
+`/root/nginx-backups/` holds dated tarballs of pre-change state.
diff --git a/sites-available/1800swallpaper.com b/sites-available/1800swallpaper.com
new file mode 100644
index 0000000..deabc19
--- /dev/null
+++ b/sites-available/1800swallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name 1800swallpaper.com www.1800swallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9856;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1800swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1800swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.1800swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1800swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name 1800swallpaper.com www.1800swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/1800wallcoverings.com.conf b/sites-available/1800wallcoverings.com.conf
new file mode 100644
index 0000000..8aa381e
--- /dev/null
+++ b/sites-available/1800wallcoverings.com.conf
@@ -0,0 +1,21 @@
+# 1800wallcoverings.com — dwf-1800wallcoverings :10001
+server {
+ listen 80;
+ listen [::]:80;
+ server_name 1800wallcoverings.com www.1800wallcoverings.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10001;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/1890swallpaper.com b/sites-available/1890swallpaper.com
new file mode 100644
index 0000000..996d757
--- /dev/null
+++ b/sites-available/1890swallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name 1890swallpaper.com www.1890swallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9857;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1890swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1890swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.1890swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1890swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name 1890swallpaper.com www.1890swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/1900swallpaper.com b/sites-available/1900swallpaper.com
new file mode 100644
index 0000000..2f6ba93
--- /dev/null
+++ b/sites-available/1900swallpaper.com
@@ -0,0 +1,43 @@
+server {
+ server_name 1900swallpaper.com www.1900swallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9858;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1900swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1900swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.1900swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1900swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name 1900swallpaper.com www.1900swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/1920swallpaper.com b/sites-available/1920swallpaper.com
new file mode 100644
index 0000000..74a8035
--- /dev/null
+++ b/sites-available/1920swallpaper.com
@@ -0,0 +1,59 @@
+server {
+ server_name 1920swallpaper.com www.1920swallpaper.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9836;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1920swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1920swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.1920swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1920swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name 1920swallpaper.com www.1920swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/1930swallpaper.com b/sites-available/1930swallpaper.com
new file mode 100644
index 0000000..6512f0b
--- /dev/null
+++ b/sites-available/1930swallpaper.com
@@ -0,0 +1,60 @@
+server {
+ server_name 1930swallpaper.com www.1930swallpaper.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9837;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1930swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1930swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.1930swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1930swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name 1930swallpaper.com www.1930swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/1940swallpaper.com b/sites-available/1940swallpaper.com
new file mode 100644
index 0000000..3838a9c
--- /dev/null
+++ b/sites-available/1940swallpaper.com
@@ -0,0 +1,44 @@
+server {
+ server_name 1940swallpaper.com www.1940swallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9838;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1940swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1940swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.1940swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1940swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name 1940swallpaper.com www.1940swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/1950swallpaper.com b/sites-available/1950swallpaper.com
new file mode 100644
index 0000000..1e8f454
--- /dev/null
+++ b/sites-available/1950swallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name 1950swallpaper.com www.1950swallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9874;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1950swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1950swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.1950swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1950swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name 1950swallpaper.com www.1950swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/1960swallpaper.com b/sites-available/1960swallpaper.com
new file mode 100644
index 0000000..19fe1ce
--- /dev/null
+++ b/sites-available/1960swallpaper.com
@@ -0,0 +1,61 @@
+server {
+ server_name 1960swallpaper.com www.1960swallpaper.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9839;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1960swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1960swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.1960swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1960swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name 1960swallpaper.com www.1960swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/1970swallpaper.com b/sites-available/1970swallpaper.com
new file mode 100644
index 0000000..c81eca8
--- /dev/null
+++ b/sites-available/1970swallpaper.com
@@ -0,0 +1,59 @@
+server {
+ server_name 1970swallpaper.com www.1970swallpaper.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9834;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1970swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1970swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.1970swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1970swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name 1970swallpaper.com www.1970swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/1980swallpaper.com b/sites-available/1980swallpaper.com
new file mode 100644
index 0000000..fc48396
--- /dev/null
+++ b/sites-available/1980swallpaper.com
@@ -0,0 +1,61 @@
+server {
+ server_name 1980swallpaper.com www.1980swallpaper.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9840;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1980swallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1980swallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.1980swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1980swallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name 1980swallpaper.com www.1980swallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/4square.agentabrams.com b/sites-available/4square.agentabrams.com
new file mode 100644
index 0000000..4132b78
--- /dev/null
+++ b/sites-available/4square.agentabrams.com
@@ -0,0 +1,46 @@
+server {
+ server_name 4square.agentabrams.com;
+
+ access_log /var/log/nginx/4square.access.log;
+ error_log /var/log/nginx/4square.error.log;
+
+ add_header Cache-Control "no-store, must-revalidate" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+
+ location / {
+ proxy_pass http://127.0.0.1:9702;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Authorization $http_authorization;
+ proxy_pass_header Authorization;
+ proxy_read_timeout 60s;
+ proxy_send_timeout 60s;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/4square.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/4square.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = 4square.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name 4square.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/abramsatlas.com.conf b/sites-available/abramsatlas.com.conf
new file mode 100644
index 0000000..b2bc1e3
--- /dev/null
+++ b/sites-available/abramsatlas.com.conf
@@ -0,0 +1,17 @@
+# abramsatlas.com — 301 → agentabrams.com (defensive cluster, path A)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsatlas.com www.abramsatlas.com;
+
+ # ACME challenge passthrough (needed pre-SSL)
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ return 301 https://agentabrams.com$request_uri;
+ }
+}
+# HTTPS block added by certbot after zone delegates to CF + SSL issued
diff --git a/sites-available/abramscivic.com.conf b/sites-available/abramscivic.com.conf
new file mode 100644
index 0000000..5a38c30
--- /dev/null
+++ b/sites-available/abramscivic.com.conf
@@ -0,0 +1,24 @@
+# abramscivic.com — thin landing page (path B)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramscivic.com www.abramscivic.com;
+
+ root /var/www/abramscivic.com;
+ index index.html;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/abramscivic.com.access.log;
+ error_log /var/log/nginx/abramscivic.com.error.log;
+}
diff --git a/sites-available/abramsdirectory.com.conf b/sites-available/abramsdirectory.com.conf
new file mode 100644
index 0000000..1294584
--- /dev/null
+++ b/sites-available/abramsdirectory.com.conf
@@ -0,0 +1,17 @@
+# abramsdirectory.com — 301 → agentabrams.com (defensive cluster, path A)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsdirectory.com www.abramsdirectory.com;
+
+ # ACME challenge passthrough (needed pre-SSL)
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ return 301 https://agentabrams.com$request_uri;
+ }
+}
+# HTTPS block added by certbot after zone delegates to CF + SSL issued
diff --git a/sites-available/abramsguide.com.conf b/sites-available/abramsguide.com.conf
new file mode 100644
index 0000000..9689919
--- /dev/null
+++ b/sites-available/abramsguide.com.conf
@@ -0,0 +1,17 @@
+# abramsguide.com — 301 → agentabrams.com (defensive cluster, path A)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsguide.com www.abramsguide.com;
+
+ # ACME challenge passthrough (needed pre-SSL)
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ return 301 https://agentabrams.com$request_uri;
+ }
+}
+# HTTPS block added by certbot after zone delegates to CF + SSL issued
diff --git a/sites-available/abramsindex.com.conf b/sites-available/abramsindex.com.conf
new file mode 100644
index 0000000..d0fc14d
--- /dev/null
+++ b/sites-available/abramsindex.com.conf
@@ -0,0 +1,17 @@
+# abramsindex.com — 301 → agentabrams.com (defensive cluster, path A)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsindex.com www.abramsindex.com;
+
+ # ACME challenge passthrough (needed pre-SSL)
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ return 301 https://agentabrams.com$request_uri;
+ }
+}
+# HTTPS block added by certbot after zone delegates to CF + SSL issued
diff --git a/sites-available/abramsindustries.com.conf b/sites-available/abramsindustries.com.conf
new file mode 100644
index 0000000..079a8ee
--- /dev/null
+++ b/sites-available/abramsindustries.com.conf
@@ -0,0 +1,24 @@
+# abramsindustries.com — thin landing page (path B)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsindustries.com www.abramsindustries.com;
+
+ root /var/www/abramsindustries.com;
+ index index.html;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/abramsindustries.com.access.log;
+ error_log /var/log/nginx/abramsindustries.com.error.log;
+}
diff --git a/sites-available/abramsintel.com.conf b/sites-available/abramsintel.com.conf
new file mode 100644
index 0000000..54b5bf9
--- /dev/null
+++ b/sites-available/abramsintel.com.conf
@@ -0,0 +1,24 @@
+# abramsintel.com — thin landing page (path B)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsintel.com www.abramsintel.com;
+
+ root /var/www/abramsintel.com;
+ index index.html;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/abramsintel.com.access.log;
+ error_log /var/log/nginx/abramsintel.com.error.log;
+}
diff --git a/sites-available/abramsintelligence.com.conf b/sites-available/abramsintelligence.com.conf
new file mode 100644
index 0000000..cc56034
--- /dev/null
+++ b/sites-available/abramsintelligence.com.conf
@@ -0,0 +1,8 @@
+# abramsintelligence.com — 301 → abramsintel.com (canonical intel brand)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsintelligence.com www.abramsintelligence.com;
+ location /.well-known/acme-challenge/ { root /var/www/letsencrypt; try_files $uri =404; }
+ location / { return 301 https://abramsintel.com$request_uri; }
+}
diff --git a/sites-available/abramslive.com.conf b/sites-available/abramslive.com.conf
new file mode 100644
index 0000000..d72db7e
--- /dev/null
+++ b/sites-available/abramslive.com.conf
@@ -0,0 +1,24 @@
+# abramslive.com — thin landing page (path B)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramslive.com www.abramslive.com;
+
+ root /var/www/abramslive.com;
+ index index.html;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/abramslive.com.access.log;
+ error_log /var/log/nginx/abramslive.com.error.log;
+}
diff --git a/sites-available/abramslocal.com.conf b/sites-available/abramslocal.com.conf
new file mode 100644
index 0000000..1470968
--- /dev/null
+++ b/sites-available/abramslocal.com.conf
@@ -0,0 +1,17 @@
+# abramslocal.com — 301 → agentabrams.com (defensive cluster, path A)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramslocal.com www.abramslocal.com;
+
+ # ACME challenge passthrough (needed pre-SSL)
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ return 301 https://agentabrams.com$request_uri;
+ }
+}
+# HTTPS block added by certbot after zone delegates to CF + SSL issued
diff --git a/sites-available/abramsmaps.com.conf b/sites-available/abramsmaps.com.conf
new file mode 100644
index 0000000..487cf7e
--- /dev/null
+++ b/sites-available/abramsmaps.com.conf
@@ -0,0 +1,17 @@
+# abramsmaps.com — 301 → agentabrams.com (defensive cluster, path A)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsmaps.com www.abramsmaps.com;
+
+ # ACME challenge passthrough (needed pre-SSL)
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ return 301 https://agentabrams.com$request_uri;
+ }
+}
+# HTTPS block added by certbot after zone delegates to CF + SSL issued
diff --git a/sites-available/abramsmarkets.com.conf b/sites-available/abramsmarkets.com.conf
new file mode 100644
index 0000000..dc2318f
--- /dev/null
+++ b/sites-available/abramsmarkets.com.conf
@@ -0,0 +1,17 @@
+# abramsmarkets.com — 301 → agentabrams.com (defensive cluster, path A)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsmarkets.com www.abramsmarkets.com;
+
+ # ACME challenge passthrough (needed pre-SSL)
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ return 301 https://agentabrams.com$request_uri;
+ }
+}
+# HTTPS block added by certbot after zone delegates to CF + SSL issued
diff --git a/sites-available/abramsos.com.conf b/sites-available/abramsos.com.conf
new file mode 100644
index 0000000..7af87c7
--- /dev/null
+++ b/sites-available/abramsos.com.conf
@@ -0,0 +1,24 @@
+# abramsos.com — thin landing page (path B)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsos.com www.abramsos.com;
+
+ root /var/www/abramsos.com;
+ index index.html;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/abramsos.com.access.log;
+ error_log /var/log/nginx/abramsos.com.error.log;
+}
diff --git a/sites-available/abramsprotection.com.conf b/sites-available/abramsprotection.com.conf
new file mode 100644
index 0000000..0274a30
--- /dev/null
+++ b/sites-available/abramsprotection.com.conf
@@ -0,0 +1,24 @@
+# abramsprotection.com — thin landing page (path B)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsprotection.com www.abramsprotection.com;
+
+ root /var/www/abramsprotection.com;
+ index index.html;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/abramsprotection.com.access.log;
+ error_log /var/log/nginx/abramsprotection.com.error.log;
+}
diff --git a/sites-available/abramsreport.agentabrams.com.conf b/sites-available/abramsreport.agentabrams.com.conf
new file mode 100644
index 0000000..6282a39
--- /dev/null
+++ b/sites-available/abramsreport.agentabrams.com.conf
@@ -0,0 +1,113 @@
+# abramsreport.agentabrams.com — Nginx vhost
+# Based on novasuede.com template with CF real-ip block
+
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsreport.agentabrams.com;
+
+ # Cloudflare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ set_real_ip_from 2400:cb00::/32;
+ set_real_ip_from 2606:4700::/32;
+ set_real_ip_from 2803:f800::/32;
+ set_real_ip_from 2405:b500::/32;
+ set_real_ip_from 2405:8100::/32;
+ set_real_ip_from 2a06:98c0::/29;
+ set_real_ip_from 2c0f:f248::/32;
+ real_ip_header CF-Connecting-IP;
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ # Redirect HTTP to HTTPS
+ location / {
+ return 301 https://$host$request_uri;
+ }
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name abramsreport.agentabrams.com;
+
+ ssl_certificate /etc/letsencrypt/live/abramsreport.agentabrams.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/abramsreport.agentabrams.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ # Cloudflare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ set_real_ip_from 2400:cb00::/32;
+ set_real_ip_from 2606:4700::/32;
+ set_real_ip_from 2803:f800::/32;
+ set_real_ip_from 2405:b500::/32;
+ set_real_ip_from 2405:8100::/32;
+ set_real_ip_from 2a06:98c0::/29;
+ set_real_ip_from 2c0f:f248::/32;
+ real_ip_header CF-Connecting-IP;
+
+ # Cache-Control no-store on HTML (memory rule)
+ location ~* \.(html|htm)$ {
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_pass http://localhost:9779;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ # Root path — also no-store
+ location = / {
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_pass http://localhost:9779;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location / {
+ proxy_pass http://localhost:9779;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/abramsspace.com.conf b/sites-available/abramsspace.com.conf
new file mode 100644
index 0000000..70cb8bd
--- /dev/null
+++ b/sites-available/abramsspace.com.conf
@@ -0,0 +1,24 @@
+# abramsspace.com — thin landing page (path B)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsspace.com www.abramsspace.com;
+
+ root /var/www/abramsspace.com;
+ index index.html;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/abramsspace.com.access.log;
+ error_log /var/log/nginx/abramsspace.com.error.log;
+}
diff --git a/sites-available/abramsterminal.com.conf b/sites-available/abramsterminal.com.conf
new file mode 100644
index 0000000..6b98a1f
--- /dev/null
+++ b/sites-available/abramsterminal.com.conf
@@ -0,0 +1,24 @@
+# abramsterminal.com — thin landing page (path B)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsterminal.com www.abramsterminal.com;
+
+ root /var/www/abramsterminal.com;
+ index index.html;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/abramsterminal.com.access.log;
+ error_log /var/log/nginx/abramsterminal.com.error.log;
+}
diff --git a/sites-available/abramsvc.com.conf b/sites-available/abramsvc.com.conf
new file mode 100644
index 0000000..a997a25
--- /dev/null
+++ b/sites-available/abramsvc.com.conf
@@ -0,0 +1,24 @@
+# abramsvc.com — thin landing page (path B)
+server {
+ listen 80;
+ listen [::]:80;
+ server_name abramsvc.com www.abramsvc.com;
+
+ root /var/www/abramsvc.com;
+ index index.html;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ try_files $uri =404;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/abramsvc.com.access.log;
+ error_log /var/log/nginx/abramsvc.com.error.log;
+}
diff --git a/sites-available/admin.agentabrams.com b/sites-available/admin.agentabrams.com
new file mode 100644
index 0000000..e760751
--- /dev/null
+++ b/sites-available/admin.agentabrams.com
@@ -0,0 +1,37 @@
+# admin.agentabrams.com — central console for all Steve sites
+server {
+ server_name admin.agentabrams.com;
+
+ auth_basic "admin.agentabrams.com — admin only";
+ auth_basic_user_file /etc/nginx/.htpasswd-builds;
+
+ location / {
+ proxy_pass http://localhost:9766;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/admin.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/admin.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+
+server {
+ if ($host = admin.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name admin.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/agedwallpaper.com b/sites-available/agedwallpaper.com
new file mode 100644
index 0000000..d4adff3
--- /dev/null
+++ b/sites-available/agedwallpaper.com
@@ -0,0 +1,41 @@
+server {
+ server_name agedwallpaper.com www.agedwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9868;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/agedwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/agedwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.agedwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = agedwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name agedwallpaper.com www.agedwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/agentabrams.com b/sites-available/agentabrams.com
new file mode 100644
index 0000000..2491eae
--- /dev/null
+++ b/sites-available/agentabrams.com
@@ -0,0 +1,45 @@
+# agentabrams.com — Steve's personal "Field notes, broadcasts, and dispatches"
+# Static index linking to active subdomains. Basic-auth gated as of 2026-05-06.
+
+server {
+ server_name agentabrams.com www.agentabrams.com;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+ add_header X-Robots-Tag "noindex, nofollow, noarchive" always;
+
+ auth_basic "agentabrams.com — admin only";
+ auth_basic_user_file /etc/nginx/.htpasswd-builds;
+
+ root /var/www/agentabrams.com;
+ index index.html;
+
+ location /.well-known/acme-challenge/ {
+ auth_basic off;
+ root /var/www/agentabrams.com;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ access_log /var/log/nginx/agentabrams.com.access.log;
+ error_log /var/log/nginx/agentabrams.com.error.log;
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+}
+
+server {
+ if ($host = www.agentabrams.com) { return 301 https://$host$request_uri; }
+ if ($host = agentabrams.com) { return 301 https://$host$request_uri; }
+ listen 80;
+ listen [::]:80;
+ server_name agentabrams.com www.agentabrams.com;
+ return 404;
+}
diff --git a/sites-available/animals.agentabrams.com b/sites-available/animals.agentabrams.com
new file mode 100644
index 0000000..cedc96c
--- /dev/null
+++ b/sites-available/animals.agentabrams.com
@@ -0,0 +1,34 @@
+server {
+ listen 80;
+ server_name animals.agentabrams.com;
+ return 301 https://$host$request_uri;
+}
+
+server {
+ listen 443 ssl http2;
+ server_name animals.agentabrams.com;
+
+ ssl_certificate /etc/letsencrypt/live/animals.agentabrams.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/animals.agentabrams.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ access_log /var/log/nginx/animals.agentabrams.com.access.log;
+ error_log /var/log/nginx/animals.agentabrams.com.error.log;
+
+ client_max_body_size 50M;
+
+ location / {
+ proxy_pass http://100.65.187.120:9720;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Authorization $http_authorization;
+ proxy_pass_header Authorization;
+ proxy_connect_timeout 8s;
+ proxy_read_timeout 60s;
+ proxy_send_timeout 60s;
+ }
+}
diff --git a/sites-available/apartmentwallpaper.com b/sites-available/apartmentwallpaper.com
new file mode 100644
index 0000000..c22611c
--- /dev/null
+++ b/sites-available/apartmentwallpaper.com
@@ -0,0 +1,17 @@
+server {
+ listen 80; listen [::]:80;
+ server_name apartmentwallpaper.com www.apartmentwallpaper.com;
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / { return 302 https://wallpapersback.com$request_uri; }
+}
+server {
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl;
+ listen [::]:443 ssl;
+ server_name apartmentwallpaper.com www.apartmentwallpaper.com;
+ ssl_certificate /etc/letsencrypt/live/apartmentwallpaper.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/apartmentwallpaper.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+ location / { return 302 https://wallpapersback.com$request_uri; }
+}
diff --git a/sites-available/app.venturaclaw.com b/sites-available/app.venturaclaw.com
new file mode 100644
index 0000000..f928291
--- /dev/null
+++ b/sites-available/app.venturaclaw.com
@@ -0,0 +1,32 @@
+server {
+ server_name app.venturaclaw.com;
+ location / {
+ proxy_pass http://127.0.0.1:9788;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 60s;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/app.venturaclaw.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/app.venturaclaw.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = app.venturaclaw.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name app.venturaclaw.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/architecturalwallcoverings.com b/sites-available/architecturalwallcoverings.com
new file mode 100644
index 0000000..7c8d0b5
--- /dev/null
+++ b/sites-available/architecturalwallcoverings.com
@@ -0,0 +1,42 @@
+server {
+ server_name architecturalwallcoverings.com www.architecturalwallcoverings.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9879;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/architecturalwallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/architecturalwallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.architecturalwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = architecturalwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name architecturalwallcoverings.com www.architecturalwallcoverings.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/asseeninhotels.com.conf b/sites-available/asseeninhotels.com.conf
new file mode 100644
index 0000000..639e938
--- /dev/null
+++ b/sites-available/asseeninhotels.com.conf
@@ -0,0 +1,21 @@
+# asseeninhotels.com — dwf-asseeninhotels :10002
+server {
+ listen 80;
+ listen [::]:80;
+ server_name asseeninhotels.com www.asseeninhotels.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10002;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/asseeninla.com.conf b/sites-available/asseeninla.com.conf
new file mode 100644
index 0000000..f6dee51
--- /dev/null
+++ b/sites-available/asseeninla.com.conf
@@ -0,0 +1,21 @@
+# asseeninla.com — dwf-asseeninla :10003
+server {
+ listen 80;
+ listen [::]:80;
+ server_name asseeninla.com www.asseeninla.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10003;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/asseeninmovies.com.conf b/sites-available/asseeninmovies.com.conf
new file mode 100644
index 0000000..c41f867
--- /dev/null
+++ b/sites-available/asseeninmovies.com.conf
@@ -0,0 +1,21 @@
+# asseeninmovies.com — dwf-asseeninmovies :10004
+server {
+ listen 80;
+ listen [::]:80;
+ server_name asseeninmovies.com www.asseeninmovies.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10004;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/asseeninshowrooms.com.conf b/sites-available/asseeninshowrooms.com.conf
new file mode 100644
index 0000000..ed83117
--- /dev/null
+++ b/sites-available/asseeninshowrooms.com.conf
@@ -0,0 +1,21 @@
+# asseeninshowrooms.com — dwf-asseeninshowrooms :10005
+server {
+ listen 80;
+ listen [::]:80;
+ server_name asseeninshowrooms.com www.asseeninshowrooms.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10005;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/auth.agentabrams.com b/sites-available/auth.agentabrams.com
new file mode 100644
index 0000000..e65d651
--- /dev/null
+++ b/sites-available/auth.agentabrams.com
@@ -0,0 +1,42 @@
+# auth.agentabrams.com — magic-link auth microservice (PUBLIC, no Basic Auth)
+server {
+ server_name auth.agentabrams.com;
+ location ~* \\.(html|htm)$ {
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_pass http://localhost:9768;
+ proxy_http_version 1.1;
+ proxy_set_header Host \$host;
+ proxy_set_header X-Real-IP \$remote_addr;
+ proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto \$scheme;
+ }
+
+ location / {
+ proxy_pass http://localhost:9768;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/auth.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/auth.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+
+server {
+ if ($host = auth.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name auth.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/auth.grassclothwallpaper.com b/sites-available/auth.grassclothwallpaper.com
new file mode 100644
index 0000000..d7d6183
--- /dev/null
+++ b/sites-available/auth.grassclothwallpaper.com
@@ -0,0 +1,50 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name auth.grassclothwallpaper.com;
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ # Redirect to HTTPS
+ return 301 https://$server_name$request_uri;
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name auth.grassclothwallpaper.com;
+
+ # SSL certificates
+ ssl_certificate /etc/letsencrypt/live/auth.grassclothwallpaper.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/auth.grassclothwallpaper.com/privkey.pem;
+
+ # SSL configuration
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ # Proxy to auth server on port 9999
+ location / {
+ proxy_pass http://localhost:9999;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ }
+
+ # Logging
+ access_log /var/log/nginx/auth.grassclothwallpaper.com.access.log;
+ error_log /var/log/nginx/auth.grassclothwallpaper.com.error.log;
+}
diff --git a/sites-available/barwallpaper.com.conf b/sites-available/barwallpaper.com.conf
new file mode 100644
index 0000000..6e63bec
--- /dev/null
+++ b/sites-available/barwallpaper.com.conf
@@ -0,0 +1,21 @@
+# barwallpaper.com — dwf-barwallpaper :10006
+server {
+ listen 80;
+ listen [::]:80;
+ server_name barwallpaper.com www.barwallpaper.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10006;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/bertha.grassclothwallpaper.com b/sites-available/bertha.grassclothwallpaper.com
new file mode 100644
index 0000000..300c888
--- /dev/null
+++ b/sites-available/bertha.grassclothwallpaper.com
@@ -0,0 +1,40 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name bertha.grassclothwallpaper.com;
+
+ # Cloudflare Real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+
+ location / {
+ proxy_pass http://127.0.0.1:7809;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/bestwallpaperplace.com b/sites-available/bestwallpaperplace.com
new file mode 100644
index 0000000..84ef9b3
--- /dev/null
+++ b/sites-available/bestwallpaperplace.com
@@ -0,0 +1,39 @@
+# bestwallpaperplace.com — phase: build_only (DNS not yet flipped)
+# :80 only, no TLS until DNS points here. CF proxy + certbot come in a later wave.
+server {
+ listen 80;
+ listen [::]:80;
+ server_name bestwallpaperplace.com www.bestwallpaperplace.com;
+
+ # Cloudflare real IP (per Steve standing rule, even pre-flip — CF will be added later)
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location / {
+ proxy_pass http://localhost:9920;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/blankstocklining.com.conf b/sites-available/blankstocklining.com.conf
new file mode 100644
index 0000000..9af771e
--- /dev/null
+++ b/sites-available/blankstocklining.com.conf
@@ -0,0 +1,21 @@
+# blankstocklining.com — dwf-blankstocklining :10007
+server {
+ listen 80;
+ listen [::]:80;
+ server_name blankstocklining.com www.blankstocklining.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10007;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/bleachfriendly.com.conf b/sites-available/bleachfriendly.com.conf
new file mode 100644
index 0000000..505b791
--- /dev/null
+++ b/sites-available/bleachfriendly.com.conf
@@ -0,0 +1,21 @@
+# bleachfriendly.com — dwf-bleachfriendly :10008
+server {
+ listen 80;
+ listen [::]:80;
+ server_name bleachfriendly.com www.bleachfriendly.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10008;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/bleachresistantfabrics.com b/sites-available/bleachresistantfabrics.com
new file mode 100644
index 0000000..08bfdb5
--- /dev/null
+++ b/sites-available/bleachresistantfabrics.com
@@ -0,0 +1,15 @@
+# bleachresistantfabrics.com — staged 2026-05-10 by onboard-build task
+# HTTP-only initially. Once DNS flips from GoDaddy to Cloudflare→Kamatera,
+# run: certbot --nginx -d bleachresistantfabrics.com -d www.bleachresistantfabrics.com --non-interactive --agree-tos -m steve@designerwallcoverings.com
+server {
+ listen 80;
+ server_name bleachresistantfabrics.com www.bleachresistantfabrics.com;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ location / {
+ proxy_pass http://127.0.0.1:9921;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/blockprintedwallpaper.com b/sites-available/blockprintedwallpaper.com
new file mode 100644
index 0000000..e165e15
--- /dev/null
+++ b/sites-available/blockprintedwallpaper.com
@@ -0,0 +1,17 @@
+server {
+ listen 80; listen [::]:80;
+ server_name blockprintedwallpaper.com www.blockprintedwallpaper.com;
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / { return 302 https://handcraftedwallpaper.com$request_uri; }
+}
+server {
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl;
+ listen [::]:443 ssl;
+ server_name blockprintedwallpaper.com www.blockprintedwallpaper.com;
+ ssl_certificate /etc/letsencrypt/live/blockprintedwallpaper.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/blockprintedwallpaper.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+ location / { return 302 https://handcraftedwallpaper.com$request_uri; }
+}
diff --git a/sites-available/bubbe.ai b/sites-available/bubbe.ai
new file mode 100644
index 0000000..ac18b13
--- /dev/null
+++ b/sites-available/bubbe.ai
@@ -0,0 +1,96 @@
+# HTTP - Redirect to HTTPS
+server {
+ listen 80;
+ listen [::]:80;
+ server_name bubbe.ai www.bubbe.ai;
+
+ # Let's Encrypt verification
+ location ^~ /.well-known/acme-challenge/ {
+ root /var/www/html;
+ default_type "text/plain";
+ try_files $uri =404;
+ }
+
+ # Redirect all HTTP to HTTPS
+ location / {
+ return 301 https://$server_name$request_uri;
+ }
+}
+
+# HTTPS - Redirect non-www to www
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name bubbe.ai;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/bubbe.ai/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/bubbe.ai/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Redirect to www
+ return 301 https://www.bubbe.ai$request_uri;
+}
+
+# HTTPS - Main site (www)
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name www.bubbe.ai;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/bubbe.ai/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/bubbe.ai/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Cloudflare Real IP Restoration
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Security Headers
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+
+ # Proxy API requests to backend
+ location /api/ {
+ proxy_pass http://[::1]:3011/api/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ # Proxy to Bubbe chat app
+ location / {
+ proxy_pass http://[::1]:3011;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ }
+}
\ No newline at end of file
diff --git a/sites-available/bubbe.ai.backup b/sites-available/bubbe.ai.backup
new file mode 100644
index 0000000..f5424a9
--- /dev/null
+++ b/sites-available/bubbe.ai.backup
@@ -0,0 +1,68 @@
+# HTTP - Redirect to HTTPS
+server {
+ listen 80;
+ listen [::]:80;
+ server_name bubbe.ai www.bubbe.ai;
+
+ # Let's Encrypt verification
+ location ^~ /.well-known/acme-challenge/ {
+ root /var/www/html;
+ default_type "text/plain";
+ try_files $uri =404;
+ }
+
+ # Redirect all HTTP to HTTPS
+ location / {
+ return 301 https://$server_name$request_uri;
+ }
+}
+
+# HTTPS - Redirect non-www to www
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name bubbe.ai;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/bubbe.ai/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/bubbe.ai/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Redirect to www
+ return 301 https://www.bubbe.ai$request_uri;
+}
+
+# HTTPS - Main site (www)
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name www.bubbe.ai;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/bubbe.ai/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/bubbe.ai/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Security Headers
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+
+ # Proxy to Bubbe chat app
+ location / {
+ proxy_pass http://localhost:3011;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/bubbe.ai.old b/sites-available/bubbe.ai.old
new file mode 100644
index 0000000..cb65f19
--- /dev/null
+++ b/sites-available/bubbe.ai.old
@@ -0,0 +1,96 @@
+# HTTP - Redirect to HTTPS
+server {
+ listen 80;
+ listen [::]:80;
+ server_name bubbe.ai www.bubbe.ai;
+
+ # Let's Encrypt verification
+ location ^~ /.well-known/acme-challenge/ {
+ root /var/www/html;
+ default_type "text/plain";
+ try_files $uri =404;
+ }
+
+ # Redirect all HTTP to HTTPS
+ location / {
+ return 301 https://$server_name$request_uri;
+ }
+}
+
+# HTTPS - Redirect non-www to www
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name bubbe.ai;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/bubbe.ai/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/bubbe.ai/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Redirect to www
+ return 301 https://www.bubbe.ai$request_uri;
+}
+
+# HTTPS - Main site (www)
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name www.bubbe.ai;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/bubbe.ai/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/bubbe.ai/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Cloudflare Real IP Restoration
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Security Headers
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+
+ # Proxy API requests to backend
+ location /api/ {
+ proxy_pass http://localhost:3011/api/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ # Proxy to Bubbe chat app
+ location / {
+ proxy_pass http://localhost:3011;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/bubbesblock.com.conf b/sites-available/bubbesblock.com.conf
new file mode 100644
index 0000000..b7e86fc
--- /dev/null
+++ b/sites-available/bubbesblock.com.conf
@@ -0,0 +1,46 @@
+# HTTP → HTTPS redirect
+server {
+ listen 80;
+ server_name bubbesblock.com www.bubbesblock.com;
+ return 301 https://$host$request_uri;
+}
+
+# HTTPS → Next.js
+server {
+ listen 443 ssl http2;
+ server_name bubbesblock.com www.bubbesblock.com;
+
+ ssl_certificate /etc/letsencrypt/live/bubbesblock.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/bubbesblock.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ # Security headers
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+ add_header Permissions-Policy "geolocation=(self), microphone=(), camera=()" always;
+
+ # Site Factory routes (Stripe + auth + health + webhook + claim) → SF port 3002
+ location ~ ^/api/(auth|checkout|health|webhook)(/|$) {
+ proxy_pass http://127.0.0.1:3002;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ # Stripe webhook sig verify needs raw body
+ proxy_request_buffering off;
+ }
+
+ # Everything else → pastdoor (port 9821)
+ location / {
+ proxy_pass http://127.0.0.1:3002;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ }
+}
diff --git a/sites-available/builds.agentabrams.com b/sites-available/builds.agentabrams.com
new file mode 100644
index 0000000..3ed6644
--- /dev/null
+++ b/sites-available/builds.agentabrams.com
@@ -0,0 +1,156 @@
+# builds.agentabrams.com — Steve's session-builds viewer + Website Analysis app
+#
+# - Static MP4 viewer at /var/www/builds.agentabrams.com (existing)
+# - Reverse-proxy to Mac Studio 2 over tailnet (100.65.187.120:9760) for the
+# Website Analysis app routes: /website-analysis, /wa/*, /api/website-analysis,
+# /api/wa/* — Mac is the source of truth, Kamatera just terminates SSL.
+#
+# Basic auth (admin and user, same password) gates everything.
+
+server {
+ server_name builds.agentabrams.com;
+
+ access_log /var/log/nginx/builds.agentabrams.com.access.log;
+ error_log /var/log/nginx/builds.agentabrams.com.error.log;
+
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+
+ auth_basic "builds.agentabrams.com — admin only";
+ auth_basic_user_file /etc/nginx/.htpasswd-builds;
+
+ # ---------- Builds Index ----------
+ location = /builds {
+ proxy_pass http://100.65.187.120:9760$request_uri;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 30s;
+ proxy_read_timeout 60s;
+ }
+
+ # ---------- Website Analysis app (Mac via tailnet) ----------
+ # Mac is offline-tolerant: 30s connect timeout + nice 502 message.
+ location = /website-analysis {
+ proxy_pass http://100.65.187.120:9760$request_uri;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 30s;
+ proxy_read_timeout 60s;
+ }
+ location ^~ /wa/ {
+ proxy_pass http://100.65.187.120:9760$request_uri;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 30s;
+ proxy_read_timeout 60s;
+ }
+ location ^~ /api/website-analysis {
+ proxy_pass http://100.65.187.120:9760$request_uri;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 30s;
+ proxy_read_timeout 60s;
+ }
+ location ^~ /api/wa/ {
+ proxy_pass http://100.65.187.120:9760$request_uri;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 30s;
+ proxy_read_timeout 60s;
+ }
+ # Ship-this-rebuild lands on /biz/:slug/edit — proxy the editor + its API +
+ # webcam uploads through too, gated by the same basic auth.
+ location ^~ /biz/ {
+ proxy_pass http://100.65.187.120:9760$request_uri;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ client_max_body_size 12m;
+ proxy_connect_timeout 30s;
+ proxy_read_timeout 120s;
+ }
+ location ^~ /api/biz/ {
+ proxy_pass http://100.65.187.120:9760$request_uri;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ client_max_body_size 12m;
+ proxy_connect_timeout 30s;
+ proxy_read_timeout 120s;
+ }
+ location ^~ /uploads/ {
+ proxy_pass http://100.65.187.120:9760$request_uri;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ }
+
+ # ---------- existing builds viewer (static MP4s) ----------
+ root /var/www/builds.agentabrams.com;
+ index index.html;
+ autoindex off;
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ location ~* \.mp4$ {
+ auth_basic "builds.agentabrams.com — admin only";
+ auth_basic_user_file /etc/nginx/.htpasswd-builds;
+ add_header Accept-Ranges bytes;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/builds.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/builds.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+ location /proxy {
+ proxy_pass http://localhost:9764;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_buffering off;
+ proxy_read_timeout 30s;
+ }
+ location /shopify-oauth/ {
+ auth_basic off;
+ proxy_pass http://100.65.187.120:9914/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-Proto https;
+ proxy_read_timeout 30s;
+ }
+ location /sister-sites/ {
+ proxy_pass http://localhost:9764/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ add_header Pragma "no-cache" always;
+ expires off;
+ }
+
+}
+
+server {
+ if ($host = builds.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+ listen 80;
+ server_name builds.agentabrams.com;
+ return 404; # managed by Certbot
+}
diff --git a/sites-available/builds.agentabrams.com.new b/sites-available/builds.agentabrams.com.new
new file mode 100644
index 0000000..328445c
--- /dev/null
+++ b/sites-available/builds.agentabrams.com.new
@@ -0,0 +1,24 @@
+server {
+ listen 80; listen [::]:80;
+ server_name builds.agentabrams.com;
+ return 301 https://\$host\$request_uri;
+}
+server {
+ listen 443 ssl http2; listen [::]:443 ssl http2;
+ server_name builds.agentabrams.com;
+ ssl_certificate /etc/letsencrypt/live/builds.agentabrams.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/builds.agentabrams.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+ auth_basic 'agentabrams · admin'; auth_basic_user_file /etc/nginx/.htpasswd-agentabrams;
+ add_header Accept-Ranges bytes;
+ location /sister-sites/ {
+ auth_basic 'agentabrams · admin'; auth_basic_user_file /etc/nginx/.htpasswd-agentabrams;
+ proxy_pass http://localhost:9764/;
+ proxy_http_version 1.1;
+ proxy_set_header Host \$host;
+ proxy_set_header X-Real-IP \$remote_addr;
+ }
+ root /var/www/builds.agentabrams.com;
+ index index.html;
+}
diff --git a/sites-available/businessclaw.agentabrams.com b/sites-available/businessclaw.agentabrams.com
new file mode 100644
index 0000000..94eb822
--- /dev/null
+++ b/sites-available/businessclaw.agentabrams.com
@@ -0,0 +1,32 @@
+server {
+ listen 80;
+ server_name businessclaw.agentabrams.com;
+ if ($host = businessclaw.agentabrams.com) { return 301 https://venturaclaw.com$request_uri; }
+ return 404;
+}
+server {
+ listen 443 ssl;
+ server_name businessclaw.agentabrams.com;
+ ssl_certificate /etc/letsencrypt/live/businessclaw.agentabrams.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/businessclaw.agentabrams.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ # OAuth callback URLs registered in provider consoles still resolve here.
+ location /oauth/ {
+ proxy_pass http://127.0.0.1:9788;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 60s;
+ }
+ location = /healthz {
+ proxy_pass http://127.0.0.1:9788;
+ proxy_set_header Host $host;
+ }
+ location / {
+ return 301 https://venturaclaw.com$request_uri;
+ }
+}
diff --git a/sites-available/businessclaw.agentabrams.com.pre-redirect.bak b/sites-available/businessclaw.agentabrams.com.pre-redirect.bak
new file mode 100644
index 0000000..42072bf
--- /dev/null
+++ b/sites-available/businessclaw.agentabrams.com.pre-redirect.bak
@@ -0,0 +1,41 @@
+server {
+ server_name businessclaw.agentabrams.com;
+ location /api/demo-classify {
+ proxy_pass http://127.0.0.1:9788;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 90s;
+ proxy_send_timeout 90s;
+ }
+ location / {
+ proxy_pass http://127.0.0.1:9788;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 60s;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/businessclaw.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/businessclaw.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = businessclaw.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name businessclaw.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/butlr.agentabrams.com b/sites-available/butlr.agentabrams.com
new file mode 100644
index 0000000..00356c6
--- /dev/null
+++ b/sites-available/butlr.agentabrams.com
@@ -0,0 +1,48 @@
+server {
+ server_name butlr.agentabrams.com;
+
+ access_log /var/log/nginx/butlr.access.log;
+ error_log /var/log/nginx/butlr.error.log;
+
+ add_header Cache-Control "no-store, must-revalidate" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+
+ location / {
+ proxy_pass http://127.0.0.1:9935;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_read_timeout 600s;
+ proxy_send_timeout 600s;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/butlr.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/butlr.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = butlr.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name butlr.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/carmelwallpaper.com.conf b/sites-available/carmelwallpaper.com.conf
new file mode 100644
index 0000000..7bf7d47
--- /dev/null
+++ b/sites-available/carmelwallpaper.com.conf
@@ -0,0 +1,21 @@
+# carmelwallpaper.com — dwf-carmelwallpaper :10009
+server {
+ listen 80;
+ listen [::]:80;
+ server_name carmelwallpaper.com www.carmelwallpaper.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10009;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/carmelwallpapers.com b/sites-available/carmelwallpapers.com
new file mode 100644
index 0000000..37ebdb9
--- /dev/null
+++ b/sites-available/carmelwallpapers.com
@@ -0,0 +1,45 @@
+server {
+ server_name carmelwallpapers.com www.carmelwallpapers.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9861;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/carmelwallpapers.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/carmelwallpapers.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.carmelwallpapers.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = carmelwallpapers.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name carmelwallpapers.com www.carmelwallpapers.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/cfafabrics.com.conf b/sites-available/cfafabrics.com.conf
new file mode 100644
index 0000000..453e3e1
--- /dev/null
+++ b/sites-available/cfafabrics.com.conf
@@ -0,0 +1,21 @@
+# cfafabrics.com — dwf-cfafabrics :10010
+server {
+ listen 80;
+ listen [::]:80;
+ server_name cfafabrics.com www.cfafabrics.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10010;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/chat.designerwallcoverings.com b/sites-available/chat.designerwallcoverings.com
new file mode 100644
index 0000000..94451a4
--- /dev/null
+++ b/sites-available/chat.designerwallcoverings.com
@@ -0,0 +1,47 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name chat.designerwallcoverings.com;
+ # Allow LE renewal challenges + redirect everything else to HTTPS.
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / { return 301 https://$host$request_uri; }
+}
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name chat.designerwallcoverings.com;
+
+ ssl_certificate /etc/letsencrypt/live/chat.designerwallcoverings.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/chat.designerwallcoverings.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ # Cloudflare real IP passthrough
+ set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22; set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14; set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17; set_real_ip_from 2400:cb00::/32;
+ set_real_ip_from 2606:4700::/32;
+ real_ip_header CF-Connecting-IP;
+
+ # CORS — widget.js is embedded cross-origin on 61 DW sites
+ add_header Access-Control-Allow-Origin '*' always;
+ add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always;
+ add_header Access-Control-Allow-Headers 'Content-Type, Authorization' always;
+
+ location / {
+ proxy_pass http://127.0.0.1:9936;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 300s;
+ }
+}
diff --git a/sites-available/chinoiseriewallpaper.com b/sites-available/chinoiseriewallpaper.com
new file mode 100644
index 0000000..89ec656
--- /dev/null
+++ b/sites-available/chinoiseriewallpaper.com
@@ -0,0 +1,45 @@
+server {
+ server_name chinoiseriewallpaper.com www.chinoiseriewallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://127.0.0.1:9853;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/chinoiseriewallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/chinoiseriewallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.chinoiseriewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = chinoiseriewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name chinoiseriewallpaper.com www.chinoiseriewallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/claimmyaddress.com.conf b/sites-available/claimmyaddress.com.conf
new file mode 100644
index 0000000..3598e60
--- /dev/null
+++ b/sites-available/claimmyaddress.com.conf
@@ -0,0 +1,46 @@
+# HTTP → HTTPS redirect
+server {
+ listen 80;
+ server_name claimmyaddress.com www.claimmyaddress.com;
+ return 301 https://$host$request_uri;
+}
+
+# HTTPS → Next.js
+server {
+ listen 443 ssl http2;
+ server_name claimmyaddress.com www.claimmyaddress.com;
+
+ ssl_certificate /etc/letsencrypt/live/claimmyaddress.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/claimmyaddress.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ # Security headers
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+ add_header Permissions-Policy "geolocation=(self), microphone=(), camera=()" always;
+
+ # Site Factory routes (Stripe + auth + health + webhook + claim) → SF port 3003
+ location ~ ^/api/(auth|checkout|health|webhook|claim)(/|$) {
+ proxy_pass http://127.0.0.1:3003;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ # Stripe webhook sig verify needs raw body
+ proxy_request_buffering off;
+ }
+
+ # Everything else → pastdoor (port 9821)
+ location / {
+ proxy_pass http://127.0.0.1:9821;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ }
+}
diff --git a/sites-available/classawallcovering.com.conf b/sites-available/classawallcovering.com.conf
new file mode 100644
index 0000000..93a8167
--- /dev/null
+++ b/sites-available/classawallcovering.com.conf
@@ -0,0 +1,21 @@
+# classawallcovering.com — dwf-classawallcovering :10011
+server {
+ listen 80;
+ listen [::]:80;
+ server_name classawallcovering.com www.classawallcovering.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10011;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/commercialdesignreps.com b/sites-available/commercialdesignreps.com
new file mode 100644
index 0000000..c8dda90
--- /dev/null
+++ b/sites-available/commercialdesignreps.com
@@ -0,0 +1,19 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name commercialdesignreps.com www.commercialdesignreps.com;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location / {
+ proxy_pass http://localhost:9922;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/commercialsalesreps.com.conf b/sites-available/commercialsalesreps.com.conf
new file mode 100644
index 0000000..015535d
--- /dev/null
+++ b/sites-available/commercialsalesreps.com.conf
@@ -0,0 +1,21 @@
+# commercialsalesreps.com — dwf-commercialsalesreps :10012
+server {
+ listen 80;
+ listen [::]:80;
+ server_name commercialsalesreps.com www.commercialsalesreps.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10012;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/commercialwallcovering.com.conf b/sites-available/commercialwallcovering.com.conf
new file mode 100644
index 0000000..fb15be4
--- /dev/null
+++ b/sites-available/commercialwallcovering.com.conf
@@ -0,0 +1,21 @@
+# commercialwallcovering.com — dwf-commercialwallcovering :10013
+server {
+ listen 80;
+ listen [::]:80;
+ server_name commercialwallcovering.com www.commercialwallcovering.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10013;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/contractwallpaper.com b/sites-available/contractwallpaper.com
new file mode 100644
index 0000000..2a8600a
--- /dev/null
+++ b/sites-available/contractwallpaper.com
@@ -0,0 +1,62 @@
+server {
+ server_name contractwallpaper.com www.contractwallpaper.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9849;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/contractwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/contractwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.contractwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = contractwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name contractwallpaper.com www.contractwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/corkwallcovering.com b/sites-available/corkwallcovering.com
new file mode 100644
index 0000000..5359021
--- /dev/null
+++ b/sites-available/corkwallcovering.com
@@ -0,0 +1,60 @@
+server {
+ server_name corkwallcovering.com www.corkwallcovering.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9848;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/corkwallcovering.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/corkwallcovering.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.corkwallcovering.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = corkwallcovering.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name corkwallcovering.com www.corkwallcovering.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/costarica.agentabrams.com b/sites-available/costarica.agentabrams.com
new file mode 100644
index 0000000..95b3637
--- /dev/null
+++ b/sites-available/costarica.agentabrams.com
@@ -0,0 +1,44 @@
+server {
+ server_name costarica.agentabrams.com;
+
+ # Cloudflare HTML caching guard
+ location ~* \.html$ {
+ add_header Cache-Control 'no-store, must-revalidate' always;
+ proxy_pass http://127.0.0.1:9791;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location / {
+ add_header Cache-Control 'no-store, must-revalidate' always;
+ proxy_pass http://127.0.0.1:9791;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "";
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/costarica.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/costarica.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = costarica.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name costarica.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/customdigitalmurals.com b/sites-available/customdigitalmurals.com
new file mode 100644
index 0000000..bf03442
--- /dev/null
+++ b/sites-available/customdigitalmurals.com
@@ -0,0 +1,45 @@
+server {
+ server_name customdigitalmurals.com www.customdigitalmurals.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9896;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/customdigitalmurals.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/customdigitalmurals.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.customdigitalmurals.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = customdigitalmurals.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name customdigitalmurals.com www.customdigitalmurals.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/cypresawards b/sites-available/cypresawards
new file mode 100644
index 0000000..b3b13c9
--- /dev/null
+++ b/sites-available/cypresawards
@@ -0,0 +1,33 @@
+server {
+ listen 80;
+ server_name 45.61.58.125;
+
+ # Frontend - serve static files
+ location / {
+ proxy_pass http://localhost:9850;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+ }
+
+ # API - proxy to backend
+ location /api {
+ proxy_pass http://localhost:3010/api;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+
+ # CORS headers
+ add_header 'Access-Control-Allow-Origin' '*' always;
+ add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
+ add_header 'Access-Control-Allow-Headers' 'Content-Type, Accept' always;
+
+ if ($request_method = 'OPTIONS') {
+ return 204;
+ }
+ }
+}
diff --git a/sites-available/cypresawards.com b/sites-available/cypresawards.com
new file mode 100644
index 0000000..15c247d
--- /dev/null
+++ b/sites-available/cypresawards.com
@@ -0,0 +1,131 @@
+server {
+ if ($host = www.cypresawards.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = cypresawards.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name cypresawards.com www.cypresawards.com;
+
+ # Redirect HTTP to HTTPS
+ return 301 https://$server_name$request_uri;
+
+
+
+
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name cypresawards.com www.cypresawards.com;
+
+ # SSL configuration - Cloudflare will handle the certificate
+ # These are placeholder paths - Cloudflare Origin Certificates should be used
+ ssl_certificate /etc/letsencrypt/live/cypresawards.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/cypresawards.com/privkey.pem; # managed by Certbot
+
+ # SSL protocols and ciphers
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
+ ssl_prefer_server_ciphers off;
+ ssl_session_cache shared:SSL:10m;
+ ssl_session_timeout 10m;
+
+ # Security headers
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+
+ # Cloudflare real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ set_real_ip_from 2400:cb00::/32;
+ set_real_ip_from 2606:4700::/32;
+ set_real_ip_from 2803:f800::/32;
+ set_real_ip_from 2405:b500::/32;
+ set_real_ip_from 2405:8100::/32;
+ set_real_ip_from 2a06:98c0::/29;
+ set_real_ip_from 2c0f:f248::/32;
+ real_ip_header CF-Connecting-IP;
+
+ # Gzip compression
+ gzip on;
+ gzip_vary on;
+ gzip_min_length 1024;
+ gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/json application/javascript;
+
+ # Cache control for static assets
+ location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
+ proxy_pass http://localhost:7121;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+
+ expires 1y;
+ add_header Cache-Control "public, immutable";
+ }
+
+ # Proxy all requests to Node.js backend on port 3010
+ location / {
+ proxy_pass http://localhost:7121;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+
+ # Timeouts
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+ }
+
+ # Health check endpoint
+ location /health {
+ proxy_pass http://localhost:3010/health;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ access_log off;
+ }
+
+ # Error pages
+ error_page 502 503 504 /50x.html;
+ location = /50x.html {
+ root /usr/share/nginx/html;
+ }
+
+ # Logging
+ access_log /var/log/nginx/cypresawards.com.access.log;
+ error_log /var/log/nginx/cypresawards.com.error.log;
+
+
+}
diff --git a/sites-available/dashboard-ip b/sites-available/dashboard-ip
new file mode 100644
index 0000000..6e5898f
--- /dev/null
+++ b/sites-available/dashboard-ip
@@ -0,0 +1,16 @@
+server {
+ listen 80;
+ server_name 45.61.58.125 _;
+
+ location / {
+ proxy_pass http://127.0.0.1:9850;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/deadradio.agentabrams.com b/sites-available/deadradio.agentabrams.com
new file mode 100644
index 0000000..dd1572c
--- /dev/null
+++ b/sites-available/deadradio.agentabrams.com
@@ -0,0 +1,31 @@
+server {
+ server_name deadradio.agentabrams.com;
+ root /var/www/deadradio.agentabrams.com;
+ index index.html;
+ location / {
+ try_files $uri $uri/ =404;
+ }
+ access_log /var/log/nginx/deadradio.access.log;
+ error_log /var/log/nginx/deadradio.error.log;
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/deadradio.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/deadradio.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = deadradio.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name deadradio.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/default b/sites-available/default
new file mode 100644
index 0000000..bab9e86
--- /dev/null
+++ b/sites-available/default
@@ -0,0 +1,170 @@
+##
+# You should look at the following URL's in order to grasp a solid understanding
+# of Nginx configuration files in order to fully unleash the power of Nginx.
+# https://www.nginx.com/resources/wiki/start/
+# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
+# https://wiki.debian.org/Nginx/DirectoryStructure
+#
+# In most cases, administrators will remove this file from sites-enabled/ and
+# leave it as reference inside of sites-available where it will continue to be
+# updated by the nginx packaging team.
+#
+# This file will automatically load configuration files provided by other
+# applications, such as Drupal or Wordpress. These applications will be made
+# available underneath a path with that package name, such as /drupal8.
+#
+# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
+##
+
+# Default server configuration for static files and reverse proxy
+server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+
+ server_name _;
+
+ root /var/www/html;
+ index index.html index.htm index.nginx-debian.html;
+
+ # Enable gzip compression
+ gzip on;
+ gzip_vary on;
+ gzip_min_length 1024;
+ gzip_proxied any;
+ gzip_comp_level 6;
+ gzip_types
+ text/plain
+ text/css
+ text/xml
+ text/javascript
+ application/json
+ application/javascript
+ application/xml+rss
+ application/atom+xml
+ image/svg+xml;
+
+ # Security headers
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+ add_header Referrer-Policy "no-referrer-when-downgrade" always;
+
+ # Static files - serve directly from /var/www/html
+ location / {
+ try_files $uri $uri/ @fallback;
+
+ # Cache static assets
+ location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
+ expires 1y;
+ add_header Cache-Control "public, immutable";
+ }
+ }
+
+ # Fallback for non-existent files - try to serve index.html
+ location @fallback {
+ try_files /index.html =404;
+ }
+
+ # Reverse proxy for ImportNewSkufromURL
+ location /import/ {
+ proxy_pass http://127.0.0.1:9830/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_buffering off;
+ proxy_cache_bypass $http_upgrade;
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+ }
+
+ # Reverse proxy for vendor test dashboard (port 9831)
+ location /vendor-test/ {
+ proxy_pass http://127.0.0.1:9831/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_buffering off;
+ proxy_cache_bypass $http_upgrade;
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+ }
+
+ # Reverse proxy for vendor dashboard v2 (port 9832)
+ location /vendor-dashboard/ {
+ proxy_pass http://127.0.0.1:9832/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_buffering off;
+ proxy_cache_bypass $http_upgrade;
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+ }
+
+ # Room settings images
+ location /room-settings/ {
+ alias /root/Projects/Designer-Wallcoverings/room-settings/;
+ expires 30d;
+ add_header Cache-Control "public";
+ add_header Access-Control-Allow-Origin "*";
+ }
+
+ # DW Central — Agent Fleet Command (port 7240)
+ location /central/ {
+ proxy_pass http://127.0.0.1:7240/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_buffering off;
+ proxy_cache_bypass $http_upgrade;
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+ }
+
+ # Agent avatar images
+ location /agent-avatars/ {
+ alias /root/DW-Agents/agent-avatars/;
+ expires 30d;
+ add_header Cache-Control "public";
+ add_header Access-Control-Allow-Origin "*";
+ }
+
+ # Health check endpoint
+ location /nginx-health {
+ access_log off;
+ return 200 "healthy\n";
+ add_header Content-Type text/plain;
+ }
+
+ # Deny access to hidden files
+ location ~ /\. {
+ deny all;
+ access_log off;
+ log_not_found off;
+ }
+
+ # Deny access to backup files
+ location ~ ~$ {
+ deny all;
+ access_log off;
+ log_not_found off;
+ }
+}
+
+# Upstream definitions for load balancing (future use)
+upstream dw_agents {
+ least_conn;
+ server 127.0.0.1:9800; # Master Hub
+ server 127.0.0.1:9801; # Legal Team
+ server 127.0.0.1:9802; # Marketing
+ server 127.0.0.1:9803; # Accounting
+}
+
diff --git a/sites-available/default.dpkg-dist b/sites-available/default.dpkg-dist
new file mode 100644
index 0000000..c5af914
--- /dev/null
+++ b/sites-available/default.dpkg-dist
@@ -0,0 +1,91 @@
+##
+# You should look at the following URL's in order to grasp a solid understanding
+# of Nginx configuration files in order to fully unleash the power of Nginx.
+# https://www.nginx.com/resources/wiki/start/
+# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
+# https://wiki.debian.org/Nginx/DirectoryStructure
+#
+# In most cases, administrators will remove this file from sites-enabled/ and
+# leave it as reference inside of sites-available where it will continue to be
+# updated by the nginx packaging team.
+#
+# This file will automatically load configuration files provided by other
+# applications, such as Drupal or Wordpress. These applications will be made
+# available underneath a path with that package name, such as /drupal8.
+#
+# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
+##
+
+# Default server configuration
+#
+server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+
+ # SSL configuration
+ #
+ # listen 443 ssl default_server;
+ # listen [::]:443 ssl default_server;
+ #
+ # Note: You should disable gzip for SSL traffic.
+ # See: https://bugs.debian.org/773332
+ #
+ # Read up on ssl_ciphers to ensure a secure configuration.
+ # See: https://bugs.debian.org/765782
+ #
+ # Self signed certs generated by the ssl-cert package
+ # Don't use them in a production server!
+ #
+ # include snippets/snakeoil.conf;
+
+ root /var/www/html;
+
+ # Add index.php to the list if you are using PHP
+ index index.html index.htm index.nginx-debian.html;
+
+ server_name _;
+
+ location / {
+ # First attempt to serve request as file, then
+ # as directory, then fall back to displaying a 404.
+ try_files $uri $uri/ =404;
+ }
+
+ # pass PHP scripts to FastCGI server
+ #
+ #location ~ \.php$ {
+ # include snippets/fastcgi-php.conf;
+ #
+ # # With php-fpm (or other unix sockets):
+ # fastcgi_pass unix:/run/php/php7.4-fpm.sock;
+ # # With php-cgi (or other tcp sockets):
+ # fastcgi_pass 127.0.0.1:9000;
+ #}
+
+ # deny access to .htaccess files, if Apache's document root
+ # concurs with nginx's one
+ #
+ #location ~ /\.ht {
+ # deny all;
+ #}
+}
+
+
+# Virtual Host configuration for example.com
+#
+# You can move that to a different file under sites-available/ and symlink that
+# to sites-enabled/ to enable it.
+#
+#server {
+# listen 80;
+# listen [::]:80;
+#
+# server_name example.com;
+#
+# root /var/www/example.com;
+# index index.html;
+#
+# location / {
+# try_files $uri $uri/ =404;
+# }
+#}
diff --git a/sites-available/default.save b/sites-available/default.save
new file mode 100644
index 0000000..fd48d7e
--- /dev/null
+++ b/sites-available/default.save
@@ -0,0 +1,96 @@
+##
+# You should look at the following URL's in order to grasp a solid understanding
+# of Nginx configuration files in order to fully unleash the power of Nginx.
+# https://www.nginx.com/resources/wiki/start/
+# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
+# https://wiki.debian.org/Nginx/DirectoryStructure
+#
+# In most cases, administrators will remove this file from sites-enabled/ and
+# leave it as reference inside of sites-available where it will continue to be
+# updated by the nginx packaging team.
+#
+# This file will automatically load configuration files provided by other
+# applications, such as Drupal or Wordpress. These applications will be made
+# available underneath a path with that package name, such as /drupal8.
+#
+# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
+##
+
+# Default server configuration
+#
+server {
+ listen 80;
+ server_name losgardeners.com www.losgardeners.com;
+
+ # SSL configuration
+ #
+ # listen 443 ssl default_server;
+ # listen [::]:443 ssl default_server;
+ #
+ # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332
+ #
+ # Read up on ssl_ciphers to ensure a secure configuration.
+ # See: https://bugs.debian.org/765782
+ #
+ # Self signed certs generated by the ssl-cert package
+ # Don't use them in a production server!
+ #
+ # include snippets/snakeoil.conf;
+
+ root /var/www/html;
+
+ # Add index.php to the list if you are using PHP
+ index index.html index.htm index.nginx-debian.html;
+
+ server_name _;
+
+ location / {
+ proxy_pass http://localhost:3000;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+
+ # First attempt to serve request as file, then
+ # as directory, then fall back to displaying a 404.
+ try_files $uri $uri/ =404
+ }
+
+ # pass PHP scripts to FastCGI server
+ #
+ #location ~ \.php$ {
+ # include snippets/fastcgi-php.conf;
+ #
+ # # With php-fpm (or other unix sockets):
+ # fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
+ # # With php-cgi (or other tcp sockets):
+ # fastcgi_pass 127.0.0.1:9000;
+ #}
+
+ # deny access to .htaccess files, if Apache's document root
+ # concurs with nginx's one
+ #
+ #location ~ /\.ht {
+ # deny all;
+ #}
+}
+
+}
+# Virtual Host configuration for example.com
+#
+# You can move that to a different file under sites-available/ and symlink that
+# to sites-enabled/ to enable it.
+#
+#server {
+# listen 80;
+# listen [::]:80;
+#
+# server_name example.com;
+#
+# root /var/www/example.com;
+# index index.html;
+#
+# location / {
+# try_files $uri $uri/ =404;
+# }
+#}
diff --git a/sites-available/designerline.agentabrams.com b/sites-available/designerline.agentabrams.com
new file mode 100644
index 0000000..0ab3f7c
--- /dev/null
+++ b/sites-available/designerline.agentabrams.com
@@ -0,0 +1,47 @@
+server {
+ server_name designerline.agentabrams.com;
+
+ access_log /var/log/nginx/designerline.agentabrams.com.access.log;
+ error_log /var/log/nginx/designerline.agentabrams.com.error.log;
+
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+ add_header Cache-Control "no-store, must-revalidate" always;
+
+ auth_basic "designerline beta — trade designers only";
+ auth_basic_user_file /etc/nginx/.htpasswd-builds;
+
+ # certbot challenges should be unauthed
+ location ^~ /.well-known/acme-challenge/ {
+ auth_basic off;
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://127.0.0.1:9781;
+ proxy_set_header Host $host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 10s;
+ proxy_read_timeout 30s;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/designerline.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/designerline.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = designerline.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name designerline.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/designerlookbooks.com b/sites-available/designerlookbooks.com
new file mode 100644
index 0000000..245c325
--- /dev/null
+++ b/sites-available/designerlookbooks.com
@@ -0,0 +1,24 @@
+# designerlookbooks.com — pre-DNS-flip vhost (port 80 only).
+# TLS + CF proxy added in a later wave once NS is swapped to Cloudflare.
+server {
+ listen 80;
+ listen [::]:80;
+ server_name designerlookbooks.com www.designerlookbooks.com;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+
+ # ACME challenge path so certbot can issue once DNS flips.
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ # CF caches HTML otherwise (Steve's standing rule).
+ add_header Cache-Control "no-store, must-revalidate" always;
+
+ location / {
+ proxy_pass http://127.0.0.1:9923;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/designermagnetics.com.conf b/sites-available/designermagnetics.com.conf
new file mode 100644
index 0000000..d8631c9
--- /dev/null
+++ b/sites-available/designermagnetics.com.conf
@@ -0,0 +1,21 @@
+# designermagnetics.com — dwf-designermagnetics :10014
+server {
+ listen 80;
+ listen [::]:80;
+ server_name designermagnetics.com www.designermagnetics.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10014;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/designerrepresentatives.com b/sites-available/designerrepresentatives.com
new file mode 100644
index 0000000..52bf1b6
--- /dev/null
+++ b/sites-available/designerrepresentatives.com
@@ -0,0 +1,22 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name designerrepresentatives.com www.designerrepresentatives.com;
+
+ access_log /var/log/nginx/designerrepresentatives.access.log;
+ error_log /var/log/nginx/designerrepresentatives.error.log;
+
+ add_header Cache-Control "no-store, must-revalidate" always;
+
+ location / {
+ proxy_pass http://127.0.0.1:9924;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_read_timeout 60s;
+ }
+}
diff --git a/sites-available/designerssalesreps.com b/sites-available/designerssalesreps.com
new file mode 100644
index 0000000..11b0a5f
--- /dev/null
+++ b/sites-available/designerssalesreps.com
@@ -0,0 +1,10 @@
+# 301 redirect: designerssalesreps.com -> designerrepresentatives.com
+# Listen :80 only — TLS comes after DNS flip.
+server {
+ listen 80;
+ listen [::]:80;
+ server_name designerssalesreps.com www.designerssalesreps.com;
+
+ add_header Cache-Control "no-store, must-revalidate" always;
+ return 301 https://designerrepresentatives.com$request_uri;
+}
diff --git a/sites-available/designerwallcoverings.ai b/sites-available/designerwallcoverings.ai
new file mode 100644
index 0000000..14fd897
--- /dev/null
+++ b/sites-available/designerwallcoverings.ai
@@ -0,0 +1,27 @@
+# designerwallcoverings.ai — pre-DNS-flip vhost (port 80 only).
+# TLS + CF proxy added later once NS swap completes.
+server {
+ listen 80;
+ listen [::]:80;
+ server_name designerwallcoverings.ai www.designerwallcoverings.ai;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+
+ # ACME challenge path so certbot can issue once DNS flips.
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ # Steve's standing rule: no-store on HTML so CF doesn't cache.
+ add_header Cache-Control "no-store, must-revalidate" always;
+
+ client_max_body_size 16m;
+
+ location / {
+ proxy_pass http://127.0.0.1:9925;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 90s;
+ }
+}
diff --git a/sites-available/designtradelive.com b/sites-available/designtradelive.com
new file mode 100644
index 0000000..201e97b
--- /dev/null
+++ b/sites-available/designtradelive.com
@@ -0,0 +1,19 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name designtradelive.com www.designtradelive.com;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location / {
+ proxy_pass http://localhost:9926;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/dw-admin-auth b/sites-available/dw-admin-auth
new file mode 100644
index 0000000..2990e8e
--- /dev/null
+++ b/sites-available/dw-admin-auth
@@ -0,0 +1,195 @@
+# DW-Agents Protected Admin Services
+# Simple basic_auth protection for internal admin tools
+# Credentials: admin / DW2025Secure!
+
+# Define trusted IPs that bypass auth
+geo $auth_bypass {
+ default 0;
+ 127.0.0.1 1;
+ ::1 1;
+ 45.61.58.125 1;
+}
+
+server {
+ listen 9001;
+ listen [::]:9001;
+ server_name 45.61.58.125;
+
+ # Security headers
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+
+ # Proxy settings
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+
+ # ============================================
+ # ADMIN TOOLS (Protected with basic_auth)
+ # ============================================
+
+ # Product Importer (3002)
+ location /import/ {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+
+ proxy_pass http://127.0.0.1:3002/;
+ }
+
+ # Dashboard Monitor (9990)
+ location /dashboard/ {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+
+ proxy_pass http://127.0.0.1:9990/;
+ }
+
+ # Master Hub (9893)
+ location /hub/ {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+
+ proxy_pass http://127.0.0.1:9893/;
+ }
+
+ # Screenshot Upload (7577)
+ location /screenshot/ {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+
+ proxy_pass http://127.0.0.1:7577/;
+ client_max_body_size 50M;
+ }
+
+ # Vendor Dashboard (9832)
+ location /vendor/ {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+
+ proxy_pass http://127.0.0.1:9832/;
+ }
+
+ # ============================================
+ # EXECUTIVE DASHBOARDS (Protected)
+ # ============================================
+
+ location /exec/purchasing/ {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+ proxy_pass http://127.0.0.1:7120/;
+ }
+
+ location /exec/marketing/ {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+ proxy_pass http://127.0.0.1:7121/;
+ }
+
+ # ============================================
+ # DW-AGENTS (Protected)
+ # ============================================
+
+ location /agent/legal/ {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+ proxy_pass http://127.0.0.1:9879/;
+ }
+
+ location /agent/accounting/ {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+ proxy_pass http://127.0.0.1:9886/;
+ }
+
+ # ============================================
+ # HEALTH CHECK (No Auth)
+ # ============================================
+ location /health {
+ access_log off;
+ return 200 'DW Admin Portal OK';
+ add_header Content-Type text/plain;
+ }
+
+ # ============================================
+ # ROOT - Simple landing page
+ # ============================================
+ location / {
+ satisfy any;
+ allow 127.0.0.1;
+ allow 45.61.58.125;
+ deny all;
+ auth_basic "DW Admin";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+
+ return 200 '<!DOCTYPE html>
+<html>
+<head><title>DW Admin Portal</title>
+<style>
+body { font-family: Arial; background: #1a1a2e; color: white; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; }
+.container { text-align: center; padding: 40px; }
+h1 { color: #667eea; }
+.links { margin-top: 30px; }
+.links a { display: inline-block; margin: 10px; padding: 15px 30px; background: #667eea; color: white; text-decoration: none; border-radius: 8px; }
+.links a:hover { background: #764ba2; }
+</style>
+</head>
+<body>
+<div class="container">
+<h1>DW Admin Portal</h1>
+<p>Protected admin services</p>
+<div class="links">
+<a href="/dashboard/">Dashboard</a>
+<a href="/hub/">Master Hub</a>
+<a href="/import/">Product Import</a>
+<a href="/vendor/">Vendor Dashboard</a>
+</div>
+</div>
+</body>
+</html>';
+ add_header Content-Type text/html;
+ }
+}
diff --git a/sites-available/dw.greendomainbrokers.com b/sites-available/dw.greendomainbrokers.com
new file mode 100644
index 0000000..db25f85
--- /dev/null
+++ b/sites-available/dw.greendomainbrokers.com
@@ -0,0 +1,342 @@
+# DW.greendomainbrokers.com - Designer Wallcoverings Central Portal
+# All DW-Agents, admin tools, and services accessible from one place
+# Cloudflare real IP detection is handled globally in /etc/nginx/conf.d/cloudflare-real-ip.conf
+# Note: Run certbot after DNS is configured: sudo certbot --nginx -d dw.greendomainbrokers.com
+
+# HTTP server (will be upgraded to HTTPS by certbot)
+server {
+ server_name dw.greendomainbrokers.com tools.greendomainbrokers.com;
+
+ # Security headers
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+
+ # Basic auth for all protected routes
+ auth_basic "DW Admin Portal";
+ auth_basic_user_file /etc/nginx/.htpasswd;
+
+ # Proxy settings
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+
+ # ============================================
+ # LANDING PAGE (Root) - DW Central Portal (port 7400)
+ # App has its own authentication, so disable basic auth here
+ # ============================================
+ location / {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:7240;
+ }
+
+ # Next.js static assets for DW Central
+ location /_next/ {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:7240;
+ }
+
+ # API routes for DW Central auth
+ location /api/auth/ {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:7240;
+ }
+
+ # Login page for DW Central
+ location /login {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:7240;
+ }
+
+ # ============================================
+ # APPS - LETSBEGIN PRD & Ralphy Boy Automation (port 7300)
+ # ============================================
+ location /apps/letsbegin {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:7300;
+ }
+
+ # ============================================
+ # CORE SYSTEMS
+ # ============================================
+
+ location /hub/ {
+ proxy_pass http://127.0.0.1:9893/;
+ }
+
+ location /dashboard/ {
+ proxy_pass http://127.0.0.1:9990/;
+ }
+
+ location /import/ {
+ auth_basic off; # Uses DW Central SSO
+ proxy_pass http://127.0.0.1:3002/;
+ }
+
+ location /vendor/ {
+ proxy_pass http://127.0.0.1:9832/;
+ }
+
+ # ============================================
+ # EXECUTIVE DASHBOARDS
+ # ============================================
+
+ location /exec/ceo/ {
+ proxy_pass http://127.0.0.1:7120/;
+ }
+
+ location /exec/cfo/ {
+ proxy_pass http://127.0.0.1:7121/;
+ }
+
+ location /exec/coo/ {
+ proxy_pass http://127.0.0.1:7122/;
+ }
+
+ location /exec/vp-ops/ {
+ proxy_pass http://127.0.0.1:7125/;
+ }
+
+ # ============================================
+ # BUSINESS AGENTS
+ # ============================================
+
+ location /agent/security/ {
+ proxy_pass http://127.0.0.1:9892/;
+ }
+
+ location /agent/sku/ {
+ proxy_pass http://127.0.0.1:9877/;
+ }
+
+ location /agent/skills/ {
+ proxy_pass http://127.0.0.1:9894/;
+ }
+
+ location /agent/bigquery/ {
+ proxy_pass http://127.0.0.1:7677/;
+ }
+
+ location /agent/crash-resolver/ {
+ proxy_pass http://127.0.0.1:9895/;
+ }
+
+ location /agent/uptime/ {
+ proxy_pass http://127.0.0.1:9882/;
+ }
+
+ location /agent/purchasing/ {
+ proxy_pass http://127.0.0.1:9880/;
+ }
+
+ location /agent/marketing/ {
+ proxy_pass http://127.0.0.1:9881/;
+ }
+
+ location /agent/accounting/ {
+ proxy_pass http://127.0.0.1:9885/;
+ }
+
+ location /agent/legal/ {
+ proxy_pass http://127.0.0.1:9878/;
+ }
+
+ location /agent/zendesk/ {
+ proxy_pass http://127.0.0.1:9884/;
+ }
+
+ location /agent/trends/ {
+ proxy_pass http://127.0.0.1:9883/;
+ }
+
+ location /agent/samples/ {
+ proxy_pass http://127.0.0.1:9879/;
+ }
+
+ location /agent/shopify/ {
+ proxy_pass http://127.0.0.1:7238/;
+ }
+
+ # ============================================
+ # MONITORING & LOGS
+ # ============================================
+
+ location /logs/ {
+ proxy_pass http://127.0.0.1:7239/;
+ }
+
+ location /ui-manager/ {
+ proxy_pass http://127.0.0.1:7240/;
+ }
+
+ location /attention/ {
+ proxy_pass http://127.0.0.1:9886/;
+ }
+
+ # ============================================
+ # BOARDROOM SERVICES
+ # ============================================
+
+ # Boardroom Agent V1 — port 9815 (has own auth)
+ location /boardroom/ {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:9815/;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ }
+
+ # Governance Engine Frontend — port 4030 (has own auth)
+ location /governance/ {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:4030/;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ }
+
+ # Governance API direct — port 4020 (has own auth)
+ location /governance-api/ {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:4020/;
+ }
+
+ # Governance WebSocket — port 4020
+ location /governance/ws {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:4020/ws;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_read_timeout 86400;
+ }
+
+ # Boardroom V2 Frontend (Lincoln) — port 4050 (has own auth)
+ location /brv2/ {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:4050/;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ }
+
+ # V2 API direct — port 4040 (has own auth)
+ location /brv2-api/ {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:4040/;
+ }
+
+ # V2 WebSocket — port 4040
+ location /brv2/ws {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:4040/ws;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_read_timeout 86400;
+ }
+
+ # 3D War Room — port 7680/7681 (has own auth)
+ location /warroom/ {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:7680/;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ }
+
+ location /warroom/ws {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:7680/ws;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_read_timeout 86400;
+ }
+
+ # ============================================
+ # TOOLS & UTILITIES
+ # ============================================
+
+ # Legacy /ralph/ path redirects to Letsbegin subdomain
+ location /ralph/ {
+ return 301 https://letsbegin.greendomainbrokers.com/;
+ }
+
+ location /portfolio/ {
+ proxy_pass http://127.0.0.1:7899/;
+ }
+
+ location /room-setting {
+ auth_basic off; # Uses DW Central SSO
+ proxy_pass http://127.0.0.1:3075;
+ }
+
+ location /150dpi/ {
+ proxy_pass http://127.0.0.1:3150/;
+ }
+
+ location /system/ {
+ proxy_pass http://127.0.0.1:8888/;
+ }
+
+ # ============================================
+ # ART PRINT SHOP API (port 9875) — called from Shopify storefront
+ # No auth — public API for Shopify page integration
+ # ============================================
+ location /art-api/ {
+ auth_basic off;
+ proxy_pass http://127.0.0.1:9875/api/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+
+ # CORS for Shopify cross-origin requests
+ add_header Access-Control-Allow-Origin '*' always;
+ add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always;
+ add_header Access-Control-Allow-Headers 'Content-Type' always;
+
+ if ($request_method = 'OPTIONS') {
+ return 204;
+ }
+ }
+
+ # ============================================
+ # HEALTH CHECK (No Auth)
+ # ============================================
+ location /health {
+ auth_basic off;
+ return 200 'DW Central OK';
+ add_header Content-Type text/plain;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/dw.greendomainbrokers.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/dw.greendomainbrokers.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+
+server {
+ if ($host = dw.greendomainbrokers.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name dw.greendomainbrokers.com tools.greendomainbrokers.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/embroideredwallpaper.com b/sites-available/embroideredwallpaper.com
new file mode 100644
index 0000000..de639c4
--- /dev/null
+++ b/sites-available/embroideredwallpaper.com
@@ -0,0 +1,36 @@
+server {
+ server_name embroideredwallpaper.com www.embroideredwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ return 301 https://fabricwallpaper.com$request_uri;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/embroideredwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/embroideredwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.embroideredwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = embroideredwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name embroideredwallpaper.com www.embroideredwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/etciemurals.com.conf b/sites-available/etciemurals.com.conf
new file mode 100644
index 0000000..c23d24c
--- /dev/null
+++ b/sites-available/etciemurals.com.conf
@@ -0,0 +1,21 @@
+# etciemurals.com — dwf-etciemurals :10015
+server {
+ listen 80;
+ listen [::]:80;
+ server_name etciemurals.com www.etciemurals.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10015;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/fabricfriday.com b/sites-available/fabricfriday.com
new file mode 100644
index 0000000..f91ac6e
--- /dev/null
+++ b/sites-available/fabricfriday.com
@@ -0,0 +1,77 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name fabricfriday.com www.fabricfriday.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / { return 301 https://$host$request_uri; }
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name fabricfriday.com www.fabricfriday.com;
+
+ ssl_certificate /etc/letsencrypt/live/fabricfriday.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/fabricfriday.com/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_prefer_server_ciphers off;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location ~* \.(html|htm)$ {
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_pass http://localhost:9898;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location / {
+ proxy_pass http://localhost:9898;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/fabricfridays.com.conf b/sites-available/fabricfridays.com.conf
new file mode 100644
index 0000000..983faa6
--- /dev/null
+++ b/sites-available/fabricfridays.com.conf
@@ -0,0 +1,21 @@
+# fabricfridays.com — dwf-fabricfridays :10016
+server {
+ listen 80;
+ listen [::]:80;
+ server_name fabricfridays.com www.fabricfridays.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10016;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/fabricwallpaper.com b/sites-available/fabricwallpaper.com
new file mode 100644
index 0000000..d171453
--- /dev/null
+++ b/sites-available/fabricwallpaper.com
@@ -0,0 +1,62 @@
+server {
+ server_name fabricwallpaper.com www.fabricwallpaper.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9846;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/fabricwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/fabricwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.fabricwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = fabricwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name fabricwallpaper.com www.fabricwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/ffepurchasing.com b/sites-available/ffepurchasing.com
new file mode 100644
index 0000000..3dedfd3
--- /dev/null
+++ b/sites-available/ffepurchasing.com
@@ -0,0 +1,42 @@
+# ffepurchasing.com — staged 2026-05-10 by gtag-rollout work
+# HTTP-only initially. Once DNS flips from GoDaddy to Cloudflare→Kamatera,
+# run: certbot --nginx -d ffepurchasing.com -d www.ffepurchasing.com --non-interactive --agree-tos -m steve@designerwallcoverings.com
+server {
+ server_name ffepurchasing.com www.ffepurchasing.com;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ location / {
+ proxy_pass http://127.0.0.1:9907;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/ffepurchasing.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/ffepurchasing.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+
+server {
+ if ($host = www.ffepurchasing.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = ffepurchasing.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name ffepurchasing.com www.ffepurchasing.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/fireratedwallcovering.com.conf b/sites-available/fireratedwallcovering.com.conf
new file mode 100644
index 0000000..eea9def
--- /dev/null
+++ b/sites-available/fireratedwallcovering.com.conf
@@ -0,0 +1,21 @@
+# fireratedwallcovering.com — dwf-fireratedwallcovering :10017
+server {
+ listen 80;
+ listen [::]:80;
+ server_name fireratedwallcovering.com www.fireratedwallcovering.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10017;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/flocked.org.conf b/sites-available/flocked.org.conf
new file mode 100644
index 0000000..7cf8843
--- /dev/null
+++ b/sites-available/flocked.org.conf
@@ -0,0 +1,21 @@
+# flocked.org — dwf-flocked :10018
+server {
+ listen 80;
+ listen [::]:80;
+ server_name flocked.org www.flocked.org;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10018;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/flockedwallpaper.com b/sites-available/flockedwallpaper.com
new file mode 100644
index 0000000..dbf03d4
--- /dev/null
+++ b/sites-available/flockedwallpaper.com
@@ -0,0 +1,100 @@
+# HTTP - Proxy to local Node.js service
+server {
+ listen 80;
+ listen [::]:80;
+ server_name flockedwallpaper.com www.flockedwallpaper.com;
+
+ # CloudFlare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://localhost:3200;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
+
+# HTTPS - Proxy to local Node.js service
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name flockedwallpaper.com www.flockedwallpaper.com;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/flockedwallpaper.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/flockedwallpaper.com/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # CloudFlare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://localhost:3200;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/forza.agentabrams.com b/sites-available/forza.agentabrams.com
new file mode 100644
index 0000000..df3cf5c
--- /dev/null
+++ b/sites-available/forza.agentabrams.com
@@ -0,0 +1,55 @@
+# forza.agentabrams.com — FORZA law firm website mockups
+# Static site · deployed from /root/git/Forza.git via post-receive hook
+
+server {
+ server_name forza.agentabrams.com;
+
+ root /var/www/forza.agentabrams.com;
+ index index.html;
+
+ access_log /var/log/nginx/forza.agentabrams.com.access.log;
+ error_log /var/log/nginx/forza.agentabrams.com.error.log;
+
+ # Security headers
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+
+ # Gzip
+ gzip on;
+ gzip_types text/plain text/css text/javascript application/javascript application/json image/svg+xml;
+ gzip_min_length 1024;
+
+ # Serve static files; fall back to directory index then 404
+ location / {
+ try_files $uri $uri/ $uri/index.html =404;
+ }
+
+ # Cache static assets aggressively
+ location ~* \.(css|js|png|jpg|jpeg|gif|svg|woff|woff2|ico)$ {
+ expires 7d;
+ add_header Cache-Control "public, immutable";
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/forza.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/forza.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+
+
+server {
+ if ($host = forza.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name forza.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/glassbeadedwallpaper.com b/sites-available/glassbeadedwallpaper.com
new file mode 100644
index 0000000..8b6196d
--- /dev/null
+++ b/sites-available/glassbeadedwallpaper.com
@@ -0,0 +1,100 @@
+# HTTP - Proxy to local Node.js service
+server {
+ listen 80;
+ listen [::]:80;
+ server_name glassbeadedwallpaper.com www.glassbeadedwallpaper.com;
+
+ # CloudFlare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://localhost:9888;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
+
+# HTTPS - Proxy to local Node.js service
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name glassbeadedwallpaper.com www.glassbeadedwallpaper.com;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/glassbeadedwallpaper.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/glassbeadedwallpaper.com/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # CloudFlare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://localhost:9888;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/glitterwalls.com b/sites-available/glitterwalls.com
new file mode 100644
index 0000000..600294d
--- /dev/null
+++ b/sites-available/glitterwalls.com
@@ -0,0 +1,42 @@
+server {
+ server_name glitterwalls.com www.glitterwalls.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9884;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+ include snippets/dw-frame-allow.conf;
+ include snippets/cloudflare.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/glitterwalls.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/glitterwalls.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.glitterwalls.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = glitterwalls.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name glitterwalls.com www.glitterwalls.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/glitterwalls.com.bak.1778227778 b/sites-available/glitterwalls.com.bak.1778227778
new file mode 100644
index 0000000..43902b4
--- /dev/null
+++ b/sites-available/glitterwalls.com.bak.1778227778
@@ -0,0 +1,41 @@
+server {
+ server_name glitterwalls.com www.glitterwalls.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9884;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/glitterwalls.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/glitterwalls.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.glitterwalls.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = glitterwalls.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name glitterwalls.com www.glitterwalls.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/gmail.agentabrams.com b/sites-available/gmail.agentabrams.com
new file mode 100644
index 0000000..03f8865
--- /dev/null
+++ b/sites-available/gmail.agentabrams.com
@@ -0,0 +1,75 @@
+# Gmail.AgentAbrams.com - Gmail Cleanup Tool
+# Reverse proxy to local Gmail API server on port 8002
+# OAuth authentication handled by application
+
+server {
+ server_name gmail.agentabrams.com;
+ auth_basic "gmail.agentabrams.com — admin only";
+ auth_basic_user_file /etc/nginx/.htpasswd-builds;
+
+
+ # Security headers
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+
+ # Proxy settings
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+ proxy_cache_bypass $http_upgrade;
+
+ # Main application - proxy to Gmail API server
+ location / {
+ proxy_pass http://127.0.0.1:8002;
+ }
+
+ # API endpoints
+ location /delete {
+ proxy_pass http://127.0.0.1:8002;
+ }
+
+ location /archive {
+ proxy_pass http://127.0.0.1:8002;
+ }
+
+ location /extract {
+ proxy_pass http://127.0.0.1:8002;
+ }
+
+ # JSON data endpoints
+ location /gmail_data.json {
+ proxy_pass http://127.0.0.1:8002;
+ }
+
+ location /gmail_user_profile.json {
+ proxy_pass http://127.0.0.1:8002;
+ }
+
+ # Access logs
+ access_log /var/log/nginx/gmail.agentabrams.com.access.log;
+ error_log /var/log/nginx/gmail.agentabrams.com.error.log;
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/gmail.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/gmail.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+}
+
+server {
+ if ($host = gmail.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+ listen 80;
+ server_name gmail.agentabrams.com;
+ return 404; # managed by Certbot
+}
diff --git a/sites-available/goldleafwallpaper.com b/sites-available/goldleafwallpaper.com
new file mode 100644
index 0000000..8d7ad05
--- /dev/null
+++ b/sites-available/goldleafwallpaper.com
@@ -0,0 +1,74 @@
+# HTTP - Proxy to local Node.js service (port 9890)
+server {
+ server_name goldleafwallpaper.com www.goldleafwallpaper.com;
+
+ # CloudFlare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://localhost:9890;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/goldleafwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/goldleafwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+
+server {
+ if ($host = www.goldleafwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = goldleafwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name goldleafwallpaper.com www.goldleafwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/goodquestion.ai b/sites-available/goodquestion.ai
new file mode 100644
index 0000000..30523fa
--- /dev/null
+++ b/sites-available/goodquestion.ai
@@ -0,0 +1,86 @@
+# Rate limiting zone — 10 requests/sec per IP
+limit_req_zone $binary_remote_addr zone=goodquestion:10m rate=10r/s;
+
+# HTTP → HTTPS redirect
+server {
+ listen 80;
+ server_name goodquestion.ai www.goodquestion.ai;
+ return 301 https://goodquestion.ai$request_uri;
+}
+
+# www → apex redirect
+server {
+ listen 443 ssl http2;
+ server_name www.goodquestion.ai;
+
+ ssl_certificate /etc/ssl/certs/goodquestion.crt;
+ ssl_certificate_key /etc/ssl/private/goodquestion.key;
+
+ return 301 https://goodquestion.ai$request_uri;
+}
+
+# Main server block
+server {
+ listen 443 ssl http2;
+ server_name goodquestion.ai;
+
+ # SSL
+ ssl_certificate /etc/ssl/certs/goodquestion.crt;
+ ssl_certificate_key /etc/ssl/private/goodquestion.key;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+ ssl_session_cache shared:SSL:10m;
+ ssl_session_timeout 10m;
+
+ # Security headers
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; frame-src https://www.youtube.com https://youtube.com; font-src 'self' data:; connect-src 'self';" always;
+
+ # Rate limiting (burst allows short spikes)
+ limit_req zone=goodquestion burst=20 nodelay;
+ limit_req_status 429;
+
+ # Gzip compression
+ gzip on;
+ gzip_vary on;
+ gzip_min_length 1024;
+ gzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml image/svg+xml;
+
+ # Static asset caching
+ location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
+ proxy_pass http://127.0.0.1:9883;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ expires 7d;
+ add_header Cache-Control "public, immutable";
+ add_header X-Content-Type-Options "nosniff" always;
+ }
+
+ # Block common exploit paths
+ location ~* (\.php|\.asp|\.aspx|\.jsp|\.cgi|wp-admin|wp-login|\.env|\.git) {
+ return 444;
+ }
+
+ # Main proxy
+ location / {
+ proxy_pass http://127.0.0.1:9883;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+
+ # Timeouts
+ proxy_connect_timeout 10s;
+ proxy_send_timeout 30s;
+ proxy_read_timeout 30s;
+ }
+}
diff --git a/sites-available/grassclothwallcovering.com.conf b/sites-available/grassclothwallcovering.com.conf
new file mode 100644
index 0000000..05c75a0
--- /dev/null
+++ b/sites-available/grassclothwallcovering.com.conf
@@ -0,0 +1,21 @@
+# grassclothwallcovering.com — dwf-grassclothwallcovering :10019
+server {
+ listen 80;
+ listen [::]:80;
+ server_name grassclothwallcovering.com www.grassclothwallcovering.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10019;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/grassclothwallcoverings b/sites-available/grassclothwallcoverings
new file mode 100644
index 0000000..e74361e
--- /dev/null
+++ b/sites-available/grassclothwallcoverings
@@ -0,0 +1,17 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name grassclothwallcoverings.com www.grassclothwallcoverings.com;
+
+ location / {
+ proxy_pass http://localhost:8082;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
\ No newline at end of file
diff --git a/sites-available/grassclothwallcoverings-redirect b/sites-available/grassclothwallcoverings-redirect
new file mode 100644
index 0000000..e50b3e3
--- /dev/null
+++ b/sites-available/grassclothwallcoverings-redirect
@@ -0,0 +1,8 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name grassclothwallcoverings.com www.grassclothwallcoverings.com;
+
+ # Redirect all traffic to port 8082
+ return 301 http://$host:8082$request_uri;
+}
\ No newline at end of file
diff --git a/sites-available/grassclothwallcoverings.com b/sites-available/grassclothwallcoverings.com
new file mode 100644
index 0000000..55c0809
--- /dev/null
+++ b/sites-available/grassclothwallcoverings.com
@@ -0,0 +1,175 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name grassclothwallcoverings.com www.grassclothwallcoverings.com;
+
+ # CloudFlare real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/12;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # Color API proxy (public read-only for Shopify embed)
+ location /color-api/ {
+ proxy_pass http://localhost:9876/api/public/color/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+
+ # CORS for Shopify storefront
+ add_header Access-Control-Allow-Origin "https://www.designerwallcoverings.com" always;
+ add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
+ add_header Access-Control-Allow-Headers "Content-Type" always;
+ add_header Access-Control-Max-Age 86400 always;
+
+ if ($request_method = OPTIONS) {
+ return 204;
+ }
+
+ # Rate limit: 30 req/min per IP
+ limit_req zone=colorapi burst=10 nodelay;
+ }
+
+ # Color swatches proxy (paint chip images)
+ location /color-swatches/ {
+ proxy_pass http://localhost:9876/swatches/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+ add_header Access-Control-Allow-Origin "https://www.designerwallcoverings.com" always;
+ add_header Cache-Control "public, max-age=86400" always;
+ }
+
+ # Trade Program API proxy
+ location /api/trade/ {
+ proxy_pass http://127.0.0.1:9887/api/trade/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ add_header Access-Control-Allow-Origin "*" always;
+ add_header Access-Control-Allow-Methods "POST, GET, OPTIONS" always;
+ add_header Access-Control-Allow-Headers "Content-Type" always;
+ if ($request_method = OPTIONS) { return 204; }
+ }
+
+ # Proxy to local GrassclothWallcoverings app
+ location / {
+ proxy_pass http://localhost:9080;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header CF-Connecting-IP $http_cf_connecting_ip;
+ }
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name grassclothwallcoverings.com www.grassclothwallcoverings.com;
+
+ ssl_certificate /etc/letsencrypt/live/grassclothwallcoverings.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/grassclothwallcoverings.com/privkey.pem;
+
+ # CloudFlare real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/12;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # Color API proxy (public read-only for Shopify embed)
+ location /color-api/ {
+ proxy_pass http://localhost:9876/api/public/color/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+
+ add_header Access-Control-Allow-Origin "https://www.designerwallcoverings.com" always;
+ add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
+ add_header Access-Control-Allow-Headers "Content-Type" always;
+ add_header Access-Control-Max-Age 86400 always;
+
+ if ($request_method = OPTIONS) {
+ return 204;
+ }
+
+ limit_req zone=colorapi burst=10 nodelay;
+ }
+
+ # Color swatches proxy
+ location /color-swatches/ {
+ proxy_pass http://localhost:9876/swatches/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ add_header Access-Control-Allow-Origin "https://www.designerwallcoverings.com" always;
+ add_header Cache-Control "public, max-age=86400" always;
+ }
+
+ # Trade Program API proxy
+ location /api/trade/ {
+ proxy_pass http://127.0.0.1:9887/api/trade/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ add_header Access-Control-Allow-Origin "*" always;
+ add_header Access-Control-Allow-Methods "POST, GET, OPTIONS" always;
+ add_header Access-Control-Allow-Headers "Content-Type" always;
+ if ($request_method = OPTIONS) { return 204; }
+ }
+
+ # Proxy to local GrassclothWallcoverings app
+ location / {
+ proxy_pass http://localhost:9080;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header CF-Connecting-IP $http_cf_connecting_ip;
+ }
+}
diff --git a/sites-available/grassclothwallpaper.com b/sites-available/grassclothwallpaper.com
new file mode 100644
index 0000000..2e75557
--- /dev/null
+++ b/sites-available/grassclothwallpaper.com
@@ -0,0 +1,118 @@
+# HTTP - Proxy to local Node.js service
+server {
+ listen 80;
+ listen [::]:80;
+ server_name grassclothwallpaper.com www.grassclothwallpaper.com;
+
+ # CloudFlare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # DW API proxy — Full Monte Express enrichment for Shopify storefront
+ location /dw-api/ {
+ add_header Access-Control-Allow-Origin "*" always;
+ add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
+ add_header Access-Control-Allow-Headers "Content-Type" always;
+ if ($request_method = OPTIONS) { return 204; }
+ add_header Retry-After 3600 always; return 503;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location / {
+ proxy_pass http://localhost:8123;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
+
+# HTTPS - Proxy to local Node.js service
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name grassclothwallpaper.com www.grassclothwallpaper.com;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/grassclothwallpaper.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/grassclothwallpaper.com/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # CloudFlare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # DW API proxy — Full Monte Express enrichment for Shopify storefront
+ location /dw-api/ {
+ add_header Access-Control-Allow-Origin "*" always;
+ add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
+ add_header Access-Control-Allow-Headers "Content-Type" always;
+ if ($request_method = OPTIONS) { return 204; }
+ add_header Retry-After 3600 always; return 503;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location / {
+ proxy_pass http://localhost:8123;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/grassclothwallpaper.com.backup b/sites-available/grassclothwallpaper.com.backup
new file mode 100644
index 0000000..49d3923
--- /dev/null
+++ b/sites-available/grassclothwallpaper.com.backup
@@ -0,0 +1,100 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name grassclothwallcoverings.com www.grassclothwallcoverings.com;
+
+ # CloudFlare real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/12;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Cache static assets
+ location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
+ proxy_pass http://localhost:9080;
+ proxy_cache_valid 200 30d;
+ expires 30d;
+ add_header Cache-Control "public, immutable";
+ add_header Access-Control-Allow-Origin "*";
+ add_header Access-Control-Allow-Methods "GET, OPTIONS";
+ add_header Access-Control-Allow-Headers "Content-Type";
+ }
+
+ location / {
+ proxy_pass https://designer-laboratory-sandbox.myshopify.com;
+ proxy_http_version 1.1;
+ proxy_ssl_server_name on;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host designer-laboratory-sandbox.myshopify.com;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header CF-Connecting-IP $http_cf_connecting_ip;
+ proxy_set_header X-Forwarded-Host $host;
+ }
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name grassclothwallcoverings.com www.grassclothwallcoverings.com;
+
+ ssl_certificate /etc/letsencrypt/live/grassclothwallcoverings.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/grassclothwallcoverings.com/privkey.pem;
+
+ # CloudFlare real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/12;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Cache static assets
+ location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
+ proxy_pass http://localhost:9080;
+ proxy_cache_valid 200 30d;
+ expires 30d;
+ add_header Cache-Control "public, immutable";
+ add_header Access-Control-Allow-Origin "*";
+ add_header Access-Control-Allow-Methods "GET, OPTIONS";
+ add_header Access-Control-Allow-Headers "Content-Type";
+ }
+
+ location / {
+ proxy_pass https://designer-laboratory-sandbox.myshopify.com;
+ proxy_http_version 1.1;
+ proxy_ssl_server_name on;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host designer-laboratory-sandbox.myshopify.com;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header CF-Connecting-IP $http_cf_connecting_ip;
+ proxy_set_header X-Forwarded-Host $host;
+ }
+}
\ No newline at end of file
diff --git a/sites-available/greendomainbrokers.com b/sites-available/greendomainbrokers.com
new file mode 100644
index 0000000..3bbd3c9
--- /dev/null
+++ b/sites-available/greendomainbrokers.com
@@ -0,0 +1,43 @@
+server {
+ listen 80;
+ server_name greendomainbrokers.com www.greendomainbrokers.com;
+
+ # Redirect all HTTP traffic to HTTPS
+ return 301 https://$server_name$request_uri;
+}
+
+server {
+ listen 443 ssl http2;
+ server_name greendomainbrokers.com www.greendomainbrokers.com;
+
+ # SSL certificates (will be added by certbot)
+ ssl_certificate /etc/letsencrypt/live/greendomainbrokers.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/greendomainbrokers.com/privkey.pem;
+
+ # SSL configuration
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Proxy to Node.js auth server on port 9999
+ location / {
+ proxy_pass http://localhost:9900;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+
+ # Timeouts
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+ }
+
+ # Logging
+ access_log /var/log/nginx/greendomainbrokers.com.access.log;
+ error_log /var/log/nginx/greendomainbrokers.com.error.log;
+}
diff --git a/sites-available/greendomainbrokers.com.temp b/sites-available/greendomainbrokers.com.temp
new file mode 100644
index 0000000..8b41e71
--- /dev/null
+++ b/sites-available/greendomainbrokers.com.temp
@@ -0,0 +1,13 @@
+server {
+ listen 80;
+ server_name greendomainbrokers.com www.greendomainbrokers.com;
+
+ # Temporary config for certbot validation
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ return 301 https://$server_name$request_uri;
+ }
+}
diff --git a/sites-available/greenwallcoverings.com b/sites-available/greenwallcoverings.com
new file mode 100644
index 0000000..8e12c57
--- /dev/null
+++ b/sites-available/greenwallcoverings.com
@@ -0,0 +1,42 @@
+server {
+ server_name greenwallcoverings.com www.greenwallcoverings.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9885;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/greenwallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/greenwallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.greenwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = greenwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name greenwallcoverings.com www.greenwallcoverings.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/handcraftedwallpaper.com b/sites-available/handcraftedwallpaper.com
new file mode 100644
index 0000000..3b6b44c
--- /dev/null
+++ b/sites-available/handcraftedwallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name handcraftedwallpaper.com www.handcraftedwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9895;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/handcraftedwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/handcraftedwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.handcraftedwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = handcraftedwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name handcraftedwallpaper.com www.handcraftedwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/handmadewallcovering.com.conf b/sites-available/handmadewallcovering.com.conf
new file mode 100644
index 0000000..6909f2a
--- /dev/null
+++ b/sites-available/handmadewallcovering.com.conf
@@ -0,0 +1,21 @@
+# handmadewallcovering.com — dwf-handmadewallcovering :10020
+server {
+ listen 80;
+ listen [::]:80;
+ server_name handmadewallcovering.com www.handmadewallcovering.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10020;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/healthcarewallpaper.com b/sites-available/healthcarewallpaper.com
new file mode 100644
index 0000000..afc9a30
--- /dev/null
+++ b/sites-available/healthcarewallpaper.com
@@ -0,0 +1,43 @@
+server {
+ server_name healthcarewallpaper.com www.healthcarewallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9859;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/healthcarewallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/healthcarewallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.healthcarewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = healthcarewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name healthcarewallpaper.com www.healthcarewallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/hollywoodwallcovering.com.conf b/sites-available/hollywoodwallcovering.com.conf
new file mode 100644
index 0000000..1c52c58
--- /dev/null
+++ b/sites-available/hollywoodwallcovering.com.conf
@@ -0,0 +1,21 @@
+# hollywoodwallcovering.com — dwf-hollywoodwallcovering :10021
+server {
+ listen 80;
+ listen [::]:80;
+ server_name hollywoodwallcovering.com www.hollywoodwallcovering.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10021;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/hollywoodwallcoverings.com b/sites-available/hollywoodwallcoverings.com
new file mode 100644
index 0000000..b9e5055
--- /dev/null
+++ b/sites-available/hollywoodwallcoverings.com
@@ -0,0 +1,62 @@
+server {
+ server_name hollywoodwallcoverings.com www.hollywoodwallcoverings.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location / {
+ proxy_pass http://127.0.0.1:9832;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/hollywoodwallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/hollywoodwallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.hollywoodwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = hollywoodwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name hollywoodwallcoverings.com www.hollywoodwallcoverings.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/hormuzy.agentabrams.com b/sites-available/hormuzy.agentabrams.com
new file mode 100644
index 0000000..f5fd04c
--- /dev/null
+++ b/sites-available/hormuzy.agentabrams.com
@@ -0,0 +1,30 @@
+server {
+ server_name hormuzy.agentabrams.com;
+ root /var/www/hormuzy.agentabrams.com;
+ index index.html;
+ auth_basic "Hormuz Mockups";
+ auth_basic_user_file /etc/nginx/.htpasswd-hormuzy;
+ access_log /var/log/nginx/hormuzy.agentabrams.com.access.log;
+ error_log /var/log/nginx/hormuzy.agentabrams.com.error.log;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ location / { try_files $uri $uri/ $uri/index.html =404; }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/hormuzy.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/hormuzy.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = hormuzy.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name hormuzy.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/hospitalitydesignreps.com b/sites-available/hospitalitydesignreps.com
new file mode 100644
index 0000000..0eddd53
--- /dev/null
+++ b/sites-available/hospitalitydesignreps.com
@@ -0,0 +1,19 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name hospitalitydesignreps.com www.hospitalitydesignreps.com;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location / {
+ proxy_pass http://localhost:9927;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/hospitalitysalesagency.com.conf b/sites-available/hospitalitysalesagency.com.conf
new file mode 100644
index 0000000..46af5aa
--- /dev/null
+++ b/sites-available/hospitalitysalesagency.com.conf
@@ -0,0 +1,21 @@
+# hospitalitysalesagency.com — dwf-hospitalitysalesagency :10022
+server {
+ listen 80;
+ listen [::]:80;
+ server_name hospitalitysalesagency.com www.hospitalitysalesagency.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10022;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/hospitalitysalesrepresentatives.com b/sites-available/hospitalitysalesrepresentatives.com
new file mode 100644
index 0000000..cb108eb
--- /dev/null
+++ b/sites-available/hospitalitysalesrepresentatives.com
@@ -0,0 +1,18 @@
+# 301 redirect: hospitalitysalesrepresentatives.com -> hospitalitydesignreps.com
+# Build-only phase (DNS not yet flipped); :80 only, no TLS until later wave.
+server {
+ listen 80;
+ listen [::]:80;
+ server_name hospitalitysalesrepresentatives.com www.hospitalitysalesrepresentatives.com;
+
+ location ^~ /.well-known/acme-challenge/ {
+ root /var/www/html;
+ default_type "text/plain";
+ try_files $uri =404;
+ }
+
+ location / {
+ add_header Cache-Control "no-store, must-revalidate" always;
+ return 301 https://hospitalitydesignreps.com$request_uri;
+ }
+}
diff --git a/sites-available/hospitalitywallcoverings.com b/sites-available/hospitalitywallcoverings.com
new file mode 100644
index 0000000..ca4c4c9
--- /dev/null
+++ b/sites-available/hospitalitywallcoverings.com
@@ -0,0 +1,42 @@
+# hospitalitywallcoverings.com — staged 2026-05-10 by gtag-rollout work
+# HTTP-only initially. Once DNS flips from GoDaddy to Cloudflare→Kamatera,
+# run: certbot --nginx -d hospitalitywallcoverings.com -d www.hospitalitywallcoverings.com --non-interactive --agree-tos -m steve@designerwallcoverings.com
+server {
+ server_name hospitalitywallcoverings.com www.hospitalitywallcoverings.com;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ location / {
+ proxy_pass http://127.0.0.1:9866;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/hospitalitywallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/hospitalitywallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+
+server {
+ if ($host = www.hospitalitywallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = hospitalitywallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name hospitalitywallcoverings.com www.hospitalitywallcoverings.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/hospitalitywallpaper.com b/sites-available/hospitalitywallpaper.com
new file mode 100644
index 0000000..967845b
--- /dev/null
+++ b/sites-available/hospitalitywallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name hospitalitywallpaper.com www.hospitalitywallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9855;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/hospitalitywallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/hospitalitywallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.hospitalitywallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = hospitalitywallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name hospitalitywallpaper.com www.hospitalitywallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/hotelwallcoverings.com b/sites-available/hotelwallcoverings.com
new file mode 100644
index 0000000..b7916bc
--- /dev/null
+++ b/sites-available/hotelwallcoverings.com
@@ -0,0 +1,61 @@
+server {
+ server_name hotelwallcoverings.com www.hotelwallcoverings.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9851;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/hotelwallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/hotelwallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.hotelwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = hotelwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name hotelwallcoverings.com www.hotelwallcoverings.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/ideas.agentabrams.com b/sites-available/ideas.agentabrams.com
new file mode 100644
index 0000000..1e4f56f
--- /dev/null
+++ b/sites-available/ideas.agentabrams.com
@@ -0,0 +1,49 @@
+# ideas.agentabrams.com — Contact Mailer ideas viewer (yolo loop)
+# Reverse proxy to local pm2 ideas-agentabrams on 127.0.0.1:9773
+# Data files at /root/Projects/contact-mailer-ideas/data/ synced from Mac2
+
+server {
+ server_name ideas.agentabrams.com;
+
+ access_log /var/log/nginx/ideas.agentabrams.com.access.log;
+ error_log /var/log/nginx/ideas.agentabrams.com.error.log;
+
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+ add_header Cache-Control "no-store, must-revalidate" always;
+
+ auth_basic "ideas.agentabrams.com — admin only";
+ auth_basic_user_file /etc/nginx/.htpasswd-ideas;
+
+ location / {
+ proxy_pass http://127.0.0.1:9773;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 10s;
+ proxy_read_timeout 30s;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/ideas.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/ideas.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+
+
+server {
+ if ($host = ideas.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name ideas.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/jutewallpaper.com b/sites-available/jutewallpaper.com
new file mode 100644
index 0000000..a6e8a2b
--- /dev/null
+++ b/sites-available/jutewallpaper.com
@@ -0,0 +1,44 @@
+server {
+ server_name jutewallpaper.com www.jutewallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9843;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/jutewallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/jutewallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.jutewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = jutewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name jutewallpaper.com www.jutewallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/lacountyeats.com.conf b/sites-available/lacountyeats.com.conf
new file mode 100644
index 0000000..e14faf2
--- /dev/null
+++ b/sites-available/lacountyeats.com.conf
@@ -0,0 +1,117 @@
+# lacountyeats.com — static coming-soon
+# Day-1: direct A → Kamatera (no Cloudflare proxy)
+# CF IP blocks included so vhost is CF-ready when proxy is added later
+
+# HTTP — redirect all traffic to HTTPS apex
+server {
+ listen 80;
+ listen [::]:80;
+ server_name lacountyeats.com www.lacountyeats.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ {
+ # proxied to lacountyeats Express on :9744
+ }
+
+ location / { proxy_pass http://127.0.0.1:9744; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https;
+ return 301 https://lacountyeats.com$request_uri;
+ }
+}
+
+# HTTPS — www → apex 301
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name www.lacountyeats.com;
+
+ ssl_certificate /etc/letsencrypt/live/lacountyeats.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/lacountyeats.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ return 301 https://lacountyeats.com$request_uri;
+}
+
+# HTTPS — apex, serves static coming-soon
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name lacountyeats.com;
+
+ ssl_certificate /etc/letsencrypt/live/lacountyeats.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/lacountyeats.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ # Security headers + HSTS
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ location /.well-known/acme-challenge/ {
+ # proxied to lacountyeats Express on :9744
+ }
+
+ # proxied to lacountyeats Express on :9744
+
+
+ location / { proxy_pass http://127.0.0.1:9744; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https;
+
+ }
+}
diff --git a/sites-available/lang.bubbe.ai b/sites-available/lang.bubbe.ai
new file mode 100644
index 0000000..8b51355
--- /dev/null
+++ b/sites-available/lang.bubbe.ai
@@ -0,0 +1,66 @@
+# HTTP - Redirect to HTTPS
+server {
+ listen 80;
+ listen [::]:80;
+ server_name lang.bubbe.ai;
+
+ # Let's Encrypt verification
+ location ^~ /.well-known/acme-challenge/ {
+ root /var/www/html;
+ default_type "text/plain";
+ try_files $uri =404;
+ }
+
+ # Redirect all HTTP to HTTPS
+ location / {
+ return 301 https://$server_name$request_uri;
+ }
+}
+
+# HTTPS - Language API Service
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name lang.bubbe.ai;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/lang.bubbe.ai/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/lang.bubbe.ai/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Security Headers
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+
+ # CORS headers for API
+ add_header Access-Control-Allow-Origin "*" always;
+ add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
+ add_header Access-Control-Allow-Headers "Content-Type, Authorization" always;
+
+ # Proxy to language service on port 8000
+ location / {
+ # Handle OPTIONS for CORS preflight
+ if ($request_method = OPTIONS) {
+ add_header Access-Control-Allow-Origin "*";
+ add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
+ add_header Access-Control-Allow-Headers "Content-Type, Authorization";
+ add_header Content-Length 0;
+ add_header Content-Type text/plain;
+ return 204;
+ }
+
+ proxy_pass http://localhost:9894;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/latino-gardens b/sites-available/latino-gardens
new file mode 100644
index 0000000..2be8ad2
--- /dev/null
+++ b/sites-available/latino-gardens
@@ -0,0 +1,19 @@
+server {
+ listen 80;
+ server_name losgardeners.com www.losgardeners.com latinogardens.greendomainbrokers.com;
+
+ location / {
+ proxy_pass http://127.0.0.1:3000;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+ }
+}
diff --git a/sites-available/latinogardens b/sites-available/latinogardens
new file mode 100644
index 0000000..a26c6b1
--- /dev/null
+++ b/sites-available/latinogardens
@@ -0,0 +1,19 @@
+server {
+ listen 80;
+ server_name latinogardens.greendomainbrokers.com;
+
+ location / {
+ proxy_pass http://localhost:3000;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/latinogardens.greendomainbrokers.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/latinogardens.greendomainbrokers.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
diff --git a/sites-available/lawyers.agentabrams.com b/sites-available/lawyers.agentabrams.com
new file mode 100644
index 0000000..a6b1560
--- /dev/null
+++ b/sites-available/lawyers.agentabrams.com
@@ -0,0 +1,18 @@
+# Site taken private 2026-05-04 — directory data made local-only per operator decision.
+# Returns 410 Gone so search engines de-index, not 503 (which suggests temporary outage).
+server {
+ listen 80;
+ listen 443 ssl http2;
+ server_name lawyers.agentabrams.com;
+
+ ssl_certificate /etc/letsencrypt/live/lawyers.agentabrams.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/lawyers.agentabrams.com/privkey.pem;
+
+ add_header X-Robots-Tag 'noindex, nofollow, noarchive' always;
+ add_header Cache-Control 'no-store' always;
+
+ location / {
+ return 410 'This directory is no longer publicly available.\n';
+ default_type text/plain;
+ }
+}
diff --git a/sites-available/leads.venturaclaw.com b/sites-available/leads.venturaclaw.com
new file mode 100644
index 0000000..155ae8d
--- /dev/null
+++ b/sites-available/leads.venturaclaw.com
@@ -0,0 +1,34 @@
+server {
+ server_name leads.venturaclaw.com;
+
+ location / {
+ proxy_pass http://127.0.0.1:9789;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 60s;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/leads.venturaclaw.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/leads.venturaclaw.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = leads.venturaclaw.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name leads.venturaclaw.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/letsbegin.greendomainbrokers.com b/sites-available/letsbegin.greendomainbrokers.com
new file mode 100644
index 0000000..e924dbd
--- /dev/null
+++ b/sites-available/letsbegin.greendomainbrokers.com
@@ -0,0 +1,28 @@
+# letsbegin.greendomainbrokers.com - PRD Generator & Ralphy Boy Automation
+server {
+ server_name letsbegin.greendomainbrokers.com;
+
+ # Security headers
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+
+ # Proxy settings
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 60s;
+ proxy_read_timeout 60s;
+
+ location / {
+ proxy_pass http://127.0.0.1:7300;
+ }
+
+ listen 80;
+ listen [::]:80;
+}
diff --git a/sites-available/linenwallpaper.com b/sites-available/linenwallpaper.com
new file mode 100644
index 0000000..a05c104
--- /dev/null
+++ b/sites-available/linenwallpaper.com
@@ -0,0 +1,61 @@
+server {
+ server_name linenwallpaper.com www.linenwallpaper.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9842;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/linenwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/linenwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.linenwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = linenwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name linenwallpaper.com www.linenwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/livesiteaudit.agentabrams.com b/sites-available/livesiteaudit.agentabrams.com
new file mode 100644
index 0000000..51a7fa6
--- /dev/null
+++ b/sites-available/livesiteaudit.agentabrams.com
@@ -0,0 +1,51 @@
+# livesiteaudit.agentabrams.com — consumer-facing Website Analysis tool
+# No auth gate — public access to /website-analysis and all app routes.
+# Proxies entirely to smb-builder (Mac2 via tailnet 100.65.187.120:9760).
+# Express uses X-Forwarded-Host to distinguish this public host from
+# builds.agentabrams.com (admin) and serve only /website-analysis surface.
+
+server {
+ server_name livesiteaudit.agentabrams.com;
+
+ access_log /var/log/nginx/livesiteaudit.agentabrams.com.access.log;
+ error_log /var/log/nginx/livesiteaudit.agentabrams.com.error.log;
+
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+
+ # Proxy all traffic to smb-builder on Mac2 via tailnet.
+ # Express reads X-Forwarded-Host to identify this as the public host
+ # and block admin routes (/builds, /api/builds/*, etc.).
+ location / {
+ proxy_pass http://100.65.187.120:9760;
+ proxy_set_header Host livesiteaudit.agentabrams.com;
+ proxy_set_header X-Forwarded-Host livesiteaudit.agentabrams.com;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 30s;
+ proxy_read_timeout 30s;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/livesiteaudit.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/livesiteaudit.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+
+
+server {
+ if ($host = livesiteaudit.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ server_name livesiteaudit.agentabrams.com;
+
+ listen 80;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/losangelesfabrics.com b/sites-available/losangelesfabrics.com
new file mode 100644
index 0000000..9d0acb4
--- /dev/null
+++ b/sites-available/losangelesfabrics.com
@@ -0,0 +1,63 @@
+server {
+ server_name losangelesfabrics.com www.losangelesfabrics.com;
+
+ # Cloudflare-aware (kept for future CF migration)
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/letsencrypt;
+ }
+
+ location / {
+ proxy_pass http://127.0.0.1:9882;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/losangelesfabrics.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/losangelesfabrics.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.losangelesfabrics.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = losangelesfabrics.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ server_name losangelesfabrics.com www.losangelesfabrics.com;
+ listen 80;
+ listen [::]:80;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/losgardeners.conf b/sites-available/losgardeners.conf
new file mode 100644
index 0000000..ca8281e
--- /dev/null
+++ b/sites-available/losgardeners.conf
@@ -0,0 +1,60 @@
+server {
+ listen 80;
+ server_name losgardeners.com www.losgardeners.com;
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ return 301 https://losgardeners.com$request_uri;
+ }
+}
+
+server {
+ listen 443 ssl http2;
+ server_name losgardeners.com www.losgardeners.com;
+ ssl_certificate /etc/letsencrypt/live/losgardeners.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/losgardeners.com/privkey.pem; # managed by Certbot
+
+ # Serve static files from the latino-gardens-la/public directory
+ root /opt/WebsitesMisc/latino-gardens-la/public;
+ index index.html;
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ # Handle main page and static files
+ location / {
+ try_files $uri $uri/ /index.html;
+ }
+
+ # Proxy API requests to Node.js backend
+ location /api/ {
+ proxy_pass http://localhost:3000;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ }
+
+ # Proxy OAuth routes to Node.js backend
+ location /auth/ {
+ proxy_pass http://localhost:3000;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/madagascarwallpaper.com b/sites-available/madagascarwallpaper.com
new file mode 100644
index 0000000..be33d02
--- /dev/null
+++ b/sites-available/madagascarwallpaper.com
@@ -0,0 +1,43 @@
+server {
+ server_name madagascarwallpaper.com www.madagascarwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9865;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/madagascarwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/madagascarwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.madagascarwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = madagascarwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name madagascarwallpaper.com www.madagascarwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/malibuwallpaper.com.conf b/sites-available/malibuwallpaper.com.conf
new file mode 100644
index 0000000..4205807
--- /dev/null
+++ b/sites-available/malibuwallpaper.com.conf
@@ -0,0 +1,21 @@
+# malibuwallpaper.com — dwf-malibuwallpaper :10023
+server {
+ listen 80;
+ listen [::]:80;
+ server_name malibuwallpaper.com www.malibuwallpaper.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10023;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/melanie.grassclothwallpaper.com b/sites-available/melanie.grassclothwallpaper.com
new file mode 100644
index 0000000..664a16e
--- /dev/null
+++ b/sites-available/melanie.grassclothwallpaper.com
@@ -0,0 +1,82 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name melanie.grassclothwallpaper.com;
+
+ # Redirect HTTP to HTTPS
+ return 301 https://$server_name$request_uri;
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name melanie.grassclothwallpaper.com;
+
+ # Cloudflare Origin Certificate
+ ssl_certificate /etc/ssl/cloudflare/melanie.grassclothwallpaper.com.pem;
+ ssl_certificate_key /etc/ssl/cloudflare/melanie.grassclothwallpaper.com.key;
+
+ # SSL Configuration
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Cloudflare Real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Logs
+ access_log /var/log/nginx/melanie.access.log;
+ error_log /var/log/nginx/melanie.error.log;
+
+ # Proxy to Node.js app on port 9876
+ location / {
+ proxy_pass https://localhost:9876;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+
+ # Increase timeouts for AI processing
+ proxy_connect_timeout 300s;
+ proxy_send_timeout 300s;
+ proxy_read_timeout 300s;
+
+ # Allow large file uploads
+ client_max_body_size 50M;
+
+ # Disable SSL verification for self-signed cert
+ proxy_ssl_verify off;
+ }
+
+ # WebSocket support for agent dashboard
+ location /ws {
+ proxy_pass https://localhost:9876;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_ssl_verify off;
+ }
+}
diff --git a/sites-available/metallicwallpaper.com b/sites-available/metallicwallpaper.com
new file mode 100644
index 0000000..909d2df
--- /dev/null
+++ b/sites-available/metallicwallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name metallicwallpaper.com www.metallicwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9847;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/metallicwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/metallicwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.metallicwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = metallicwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name metallicwallpaper.com www.metallicwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/micawallpaper.com b/sites-available/micawallpaper.com
new file mode 100644
index 0000000..9663d4f
--- /dev/null
+++ b/sites-available/micawallpaper.com
@@ -0,0 +1,43 @@
+server {
+ server_name micawallpaper.com www.micawallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9864;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/micawallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/micawallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.micawallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = micawallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name micawallpaper.com www.micawallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/montereywallpaper.com.conf b/sites-available/montereywallpaper.com.conf
new file mode 100644
index 0000000..97e5629
--- /dev/null
+++ b/sites-available/montereywallpaper.com.conf
@@ -0,0 +1,21 @@
+# montereywallpaper.com — dwf-montereywallpaper :10024
+server {
+ listen 80;
+ listen [::]:80;
+ server_name montereywallpaper.com www.montereywallpaper.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10024;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/museumwallpaper.com b/sites-available/museumwallpaper.com
new file mode 100644
index 0000000..d25493b
--- /dev/null
+++ b/sites-available/museumwallpaper.com
@@ -0,0 +1,41 @@
+server {
+ server_name museumwallpaper.com www.museumwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9881;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/museumwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/museumwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.museumwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = museumwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name museumwallpaper.com www.museumwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/mylarwallpaper.com b/sites-available/mylarwallpaper.com
new file mode 100644
index 0000000..b45fe42
--- /dev/null
+++ b/sites-available/mylarwallpaper.com
@@ -0,0 +1,41 @@
+server {
+ server_name mylarwallpaper.com www.mylarwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9878;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/mylarwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/mylarwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.mylarwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = mylarwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name mylarwallpaper.com www.mylarwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/n8n.conf b/sites-available/n8n.conf
new file mode 100644
index 0000000..10969a6
--- /dev/null
+++ b/sites-available/n8n.conf
@@ -0,0 +1,60 @@
+server {
+ listen 80;
+ server_name n8n.greendomainbrokers.com;
+ location /.well-known/acme-challenge/ { root /var/www/letsencrypt; }
+ location / { return 301 https://$host$request_uri; }
+}
+
+server {
+ listen 443 ssl http2;
+ server_name n8n.greendomainbrokers.com;
+
+ ssl_certificate /etc/letsencrypt/live/n8n.greendomainbrokers.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/n8n.greendomainbrokers.com/privkey.pem;
+
+ # Handle REST API endpoints
+ location /rest/ {
+ proxy_pass http://45.61.58.125:5679/rest/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ proxy_buffering off;
+ }
+
+ # Handle webhook endpoints
+ location /webhook/ {
+ proxy_pass http://45.61.58.125:5679/webhook/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ proxy_buffering off;
+ }
+
+ # Handle webhook-test endpoints
+ location /webhook-test/ {
+ proxy_pass http://45.61.58.125:5679/webhook-test/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ proxy_buffering off;
+ }
+
+ # Default location for everything else
+ location / {
+ proxy_pass http://45.61.58.125:5679;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_buffering off;
+ }
+}
diff --git a/sites-available/nationalpaperhangers.com b/sites-available/nationalpaperhangers.com
new file mode 100644
index 0000000..afe376f
--- /dev/null
+++ b/sites-available/nationalpaperhangers.com
@@ -0,0 +1,46 @@
+server {
+ server_name nationalpaperhangers.com www.nationalpaperhangers.com;
+ location /.well-known/acme-challenge/ { root /var/www/letsencrypt; }
+ location /uploads/ {
+ alias /root/Projects/NationalPaperHangers/public/uploads/;
+ access_log off; expires 30d;
+ add_header Cache-Control "public, immutable";
+ }
+ location / {
+ proxy_pass http://127.0.0.1:9765;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ client_max_body_size 12m;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/nationalpaperhangers.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/nationalpaperhangers.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.nationalpaperhangers.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = nationalpaperhangers.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name nationalpaperhangers.com www.nationalpaperhangers.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/naturaltextilewallpaper.com b/sites-available/naturaltextilewallpaper.com
new file mode 100644
index 0000000..03dfac0
--- /dev/null
+++ b/sites-available/naturaltextilewallpaper.com
@@ -0,0 +1,45 @@
+server {
+ server_name naturaltextilewallpaper.com www.naturaltextilewallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9897;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/naturaltextilewallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/naturaltextilewallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.naturaltextilewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = naturaltextilewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name naturaltextilewallpaper.com www.naturaltextilewallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/naturalwallcoverings.com b/sites-available/naturalwallcoverings.com
new file mode 100644
index 0000000..0bf6536
--- /dev/null
+++ b/sites-available/naturalwallcoverings.com
@@ -0,0 +1,42 @@
+server {
+ server_name naturalwallcoverings.com www.naturalwallcoverings.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9871;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/naturalwallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/naturalwallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.naturalwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = naturalwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name naturalwallcoverings.com www.naturalwallcoverings.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/naturalwalltextures.com.conf b/sites-available/naturalwalltextures.com.conf
new file mode 100644
index 0000000..161529c
--- /dev/null
+++ b/sites-available/naturalwalltextures.com.conf
@@ -0,0 +1,21 @@
+# naturalwalltextures.com — dwf-naturalwalltextures :10025
+server {
+ listen 80;
+ listen [::]:80;
+ server_name naturalwalltextures.com www.naturalwalltextures.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10025;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/novasuede b/sites-available/novasuede
new file mode 100644
index 0000000..b01ce56
--- /dev/null
+++ b/sites-available/novasuede
@@ -0,0 +1,100 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name novasuede www.novasuede;
+
+ # CloudFlare real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/12;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Cache static assets
+ location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
+ proxy_pass http://localhost:9080;
+ proxy_cache_valid 200 30d;
+ expires 30d;
+ add_header Cache-Control "public, immutable";
+ add_header Access-Control-Allow-Origin "*";
+ add_header Access-Control-Allow-Methods "GET, OPTIONS";
+ add_header Access-Control-Allow-Headers "Content-Type";
+ }
+
+ location / {
+ proxy_pass https://designer-laboratory-sandbox.myshopify.com;
+ proxy_http_version 1.1;
+ proxy_ssl_server_name on;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host designer-laboratory-sandbox.myshopify.com;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header CF-Connecting-IP $http_cf_connecting_ip;
+ proxy_set_header X-Forwarded-Host $host;
+ }
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name novasuede www.novasuede;
+
+ ssl_certificate /etc/letsencrypt/live/novasuede/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/novasuede/privkey.pem;
+
+ # CloudFlare real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/12;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Cache static assets
+ location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
+ proxy_pass http://localhost:9080;
+ proxy_cache_valid 200 30d;
+ expires 30d;
+ add_header Cache-Control "public, immutable";
+ add_header Access-Control-Allow-Origin "*";
+ add_header Access-Control-Allow-Methods "GET, OPTIONS";
+ add_header Access-Control-Allow-Headers "Content-Type";
+ }
+
+ location / {
+ proxy_pass https://designer-laboratory-sandbox.myshopify.com;
+ proxy_http_version 1.1;
+ proxy_ssl_server_name on;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host designer-laboratory-sandbox.myshopify.com;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header CF-Connecting-IP $http_cf_connecting_ip;
+ proxy_set_header X-Forwarded-Host $host;
+ }
+}
\ No newline at end of file
diff --git a/sites-available/novasuede.com b/sites-available/novasuede.com
new file mode 100644
index 0000000..b559772
--- /dev/null
+++ b/sites-available/novasuede.com
@@ -0,0 +1,134 @@
+# HTTP - Proxy to local Node.js service
+server {
+ listen 80;
+ listen [::]:80;
+ server_name novasuede.com www.novasuede.com;
+
+ # CloudFlare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location ~* \.(html|htm)$ {
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_pass http://localhost:8100;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location / {
+ proxy_pass http://localhost:8100;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
+
+# HTTPS - Main configuration
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name novasuede.com www.novasuede.com;
+
+ # SSL Configuration
+ ssl_certificate /etc/letsencrypt/live/novasuede.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/novasuede.com/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+
+ # Security Headers
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+
+ # CloudFlare IP Detection
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ set_real_ip_from 2400:cb00::/32;
+ set_real_ip_from 2606:4700::/32;
+ set_real_ip_from 2803:f800::/32;
+ set_real_ip_from 2405:b500::/32;
+ set_real_ip_from 2405:8100::/32;
+ set_real_ip_from 2a06:98c0::/29;
+ set_real_ip_from 2c0f:f248::/32;
+ real_ip_header CF-Connecting-IP;
+
+ # Block CopyrightAgent crawlers
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ # Let's Encrypt ACME challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location ~* \.(html|htm)$ {
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_pass http://localhost:8100;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location / {
+ proxy_pass http://localhost:8100;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/pairs.designerwallcoverings.com b/sites-available/pairs.designerwallcoverings.com
new file mode 100644
index 0000000..cbf3910
--- /dev/null
+++ b/sites-available/pairs.designerwallcoverings.com
@@ -0,0 +1,42 @@
+server {
+ server_name pairs.designerwallcoverings.com;
+
+ # HTTP is left open here ONLY long enough for certbot's HTTP-01 challenge.
+ # Certbot will rewrite this file to redirect → HTTPS after issuance.
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location / {
+ proxy_pass http://127.0.0.1:9813;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 5s;
+ proxy_read_timeout 30s;
+ }
+
+ access_log /var/log/nginx/pairs.designerwallcoverings.com.access.log;
+ error_log /var/log/nginx/pairs.designerwallcoverings.com.error.log;
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/pairs.designerwallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/pairs.designerwallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = pairs.designerwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name pairs.designerwallcoverings.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/pastelwallpaper.com b/sites-available/pastelwallpaper.com
new file mode 100644
index 0000000..95deee8
--- /dev/null
+++ b/sites-available/pastelwallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name pastelwallpaper.com www.pastelwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9893;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/pastelwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/pastelwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.pastelwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = pastelwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name pastelwallpaper.com www.pastelwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/patterndesignlab.com.conf b/sites-available/patterndesignlab.com.conf
new file mode 100644
index 0000000..b08e007
--- /dev/null
+++ b/sites-available/patterndesignlab.com.conf
@@ -0,0 +1,21 @@
+# patterndesignlab.com — dwf-patterndesignlab :10026
+server {
+ listen 80;
+ listen [::]:80;
+ server_name patterndesignlab.com www.patterndesignlab.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10026;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/philipperomano.com b/sites-available/philipperomano.com
new file mode 100644
index 0000000..c4f863c
--- /dev/null
+++ b/sites-available/philipperomano.com
@@ -0,0 +1,63 @@
+server {
+ server_name philipperomano.com www.philipperomano.com;
+
+ # CloudFlare IP ranges
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location / {
+ proxy_pass http://127.0.0.1:9831;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl ipv6only=on; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/philipperomano.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/philipperomano.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.philipperomano.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = philipperomano.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name philipperomano.com www.philipperomano.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/philliperomano.com.conf b/sites-available/philliperomano.com.conf
new file mode 100644
index 0000000..dfa30f0
--- /dev/null
+++ b/sites-available/philliperomano.com.conf
@@ -0,0 +1,21 @@
+# philliperomano.com — dwf-philliperomano :10027
+server {
+ listen 80;
+ listen [::]:80;
+ server_name philliperomano.com www.philliperomano.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10027;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/pitch.sdcc.agentabrams.com b/sites-available/pitch.sdcc.agentabrams.com
new file mode 100644
index 0000000..9e22bb6
--- /dev/null
+++ b/sites-available/pitch.sdcc.agentabrams.com
@@ -0,0 +1,26 @@
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name pitch.sdcc.agentabrams.com;
+
+ ssl_certificate /etc/letsencrypt/live/pitch.sdcc.agentabrams.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/pitch.sdcc.agentabrams.com/privkey.pem;
+
+ location / {
+ proxy_pass http://127.0.0.1:9720;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ }
+}
+
+server {
+ listen 80;
+ listen [::]:80;
+ server_name pitch.sdcc.agentabrams.com;
+ return 301 https://$host$request_uri;
+}
diff --git a/sites-available/pm.greendomainbrokers.com b/sites-available/pm.greendomainbrokers.com
new file mode 100644
index 0000000..0e0eba1
--- /dev/null
+++ b/sites-available/pm.greendomainbrokers.com
@@ -0,0 +1,61 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name pm.greendomainbrokers.com;
+
+ location ^~ /.well-known/acme-challenge/ {
+ root /var/www/html;
+ default_type "text/plain";
+ try_files $uri =404;
+ }
+
+ location / {
+ return 301 https://$server_name$request_uri;
+ }
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name pm.greendomainbrokers.com;
+
+ ssl_certificate /etc/letsencrypt/live/dw.greendomainbrokers.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/dw.greendomainbrokers.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ # Cloudflare Real IP
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header X-XSS-Protection "1; mode=block" always;
+
+ location / {
+ proxy_pass http://127.0.0.1:7809;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/port-viewer b/sites-available/port-viewer
new file mode 100644
index 0000000..52c46fd
--- /dev/null
+++ b/sites-available/port-viewer
@@ -0,0 +1,17 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name 45.61.58.125;
+
+ location / {
+ proxy_pass http://localhost:8888;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/printmurals.com.conf b/sites-available/printmurals.com.conf
new file mode 100644
index 0000000..c2a8368
--- /dev/null
+++ b/sites-available/printmurals.com.conf
@@ -0,0 +1,21 @@
+# printmurals.com — dwf-printmurals :10028
+server {
+ listen 80;
+ listen [::]:80;
+ server_name printmurals.com www.printmurals.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10028;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/raffiawallcoverings.com b/sites-available/raffiawallcoverings.com
new file mode 100644
index 0000000..a555c5f
--- /dev/null
+++ b/sites-available/raffiawallcoverings.com
@@ -0,0 +1,60 @@
+server {
+ server_name raffiawallcoverings.com www.raffiawallcoverings.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9845;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/raffiawallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/raffiawallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.raffiawallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = raffiawallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name raffiawallcoverings.com www.raffiawallcoverings.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/raffiawalls.com b/sites-available/raffiawalls.com
new file mode 100644
index 0000000..ad692d6
--- /dev/null
+++ b/sites-available/raffiawalls.com
@@ -0,0 +1,41 @@
+server {
+ server_name raffiawalls.com www.raffiawalls.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9887;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/raffiawalls.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/raffiawalls.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.raffiawalls.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = raffiawalls.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name raffiawalls.com www.raffiawalls.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/recycledwallpaper.com b/sites-available/recycledwallpaper.com
new file mode 100644
index 0000000..e2e63ec
--- /dev/null
+++ b/sites-available/recycledwallpaper.com
@@ -0,0 +1,36 @@
+server {
+ server_name recycledwallpaper.com www.recycledwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ return 301 https://naturalwallcoverings.com$request_uri;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/recycledwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/recycledwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.recycledwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = recycledwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name recycledwallpaper.com www.recycledwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/restaurantfabrics.com.conf b/sites-available/restaurantfabrics.com.conf
new file mode 100644
index 0000000..dc85f6a
--- /dev/null
+++ b/sites-available/restaurantfabrics.com.conf
@@ -0,0 +1,21 @@
+# restaurantfabrics.com — dwf-restaurantfabrics :10029
+server {
+ listen 80;
+ listen [::]:80;
+ server_name restaurantfabrics.com www.restaurantfabrics.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10029;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/restaurantmurals.com.conf b/sites-available/restaurantmurals.com.conf
new file mode 100644
index 0000000..6c0d31d
--- /dev/null
+++ b/sites-available/restaurantmurals.com.conf
@@ -0,0 +1,21 @@
+# restaurantmurals.com — dwf-restaurantmurals :10030
+server {
+ listen 80;
+ listen [::]:80;
+ server_name restaurantmurals.com www.restaurantmurals.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10030;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/restaurantwallpaper.com b/sites-available/restaurantwallpaper.com
new file mode 100644
index 0000000..bfae9da
--- /dev/null
+++ b/sites-available/restaurantwallpaper.com
@@ -0,0 +1,35 @@
+server {
+ server_name restaurantwallpaper.com www.restaurantwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9854;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/restaurantwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/restaurantwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = restaurantwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name restaurantwallpaper.com www.restaurantwallpaper.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/restorationwallpaper.com b/sites-available/restorationwallpaper.com
new file mode 100644
index 0000000..448b15b
--- /dev/null
+++ b/sites-available/restorationwallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name restorationwallpaper.com www.restorationwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9892;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/restorationwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/restorationwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.restorationwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = restorationwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name restorationwallpaper.com www.restorationwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/retrowalls.com b/sites-available/retrowalls.com
new file mode 100644
index 0000000..c33e717
--- /dev/null
+++ b/sites-available/retrowalls.com
@@ -0,0 +1,81 @@
+# HTTP only — certbot will inject 443 + redirect after LE issuance
+server {
+ server_name retrowalls.com www.retrowalls.com;
+
+ # CloudFlare IP detection (matches goldleaf pattern)
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") {
+ return 403;
+ }
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location = /universe { return 301 /universe/; }
+ location /universe/ {
+ proxy_pass http://localhost:9466/;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+ location / {
+ proxy_pass http://localhost:9833;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/retrowalls.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/retrowalls.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+
+server {
+ if ($host = www.retrowalls.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = retrowalls.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name retrowalls.com www.retrowalls.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/roomsettings.com.conf b/sites-available/roomsettings.com.conf
new file mode 100644
index 0000000..3eb5475
--- /dev/null
+++ b/sites-available/roomsettings.com.conf
@@ -0,0 +1,21 @@
+# roomsettings.com — dwf-roomsettings :10031
+server {
+ listen 80;
+ listen [::]:80;
+ server_name roomsettings.com www.roomsettings.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10031;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/saloonwallpaper.com b/sites-available/saloonwallpaper.com
new file mode 100644
index 0000000..a4c163b
--- /dev/null
+++ b/sites-available/saloonwallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name saloonwallpaper.com www.saloonwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9889;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/saloonwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/saloonwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.saloonwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = saloonwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name saloonwallpaper.com www.saloonwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/screenprintedwallpaper.com b/sites-available/screenprintedwallpaper.com
new file mode 100644
index 0000000..6489732
--- /dev/null
+++ b/sites-available/screenprintedwallpaper.com
@@ -0,0 +1,17 @@
+server {
+ listen 80; listen [::]:80;
+ server_name screenprintedwallpaper.com www.screenprintedwallpaper.com;
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / { return 302 https://blockprintedwallpaper.com$request_uri; }
+}
+server {
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl;
+ listen [::]:443 ssl;
+ server_name screenprintedwallpaper.com www.screenprintedwallpaper.com;
+ ssl_certificate /etc/letsencrypt/live/screenprintedwallpaper.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/screenprintedwallpaper.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+ location / { return 302 https://blockprintedwallpaper.com$request_uri; }
+}
diff --git a/sites-available/sdcc.agentabrams.com b/sites-available/sdcc.agentabrams.com
new file mode 100644
index 0000000..f989fa3
--- /dev/null
+++ b/sites-available/sdcc.agentabrams.com
@@ -0,0 +1,38 @@
+server {
+ server_name sdcc.agentabrams.com;
+ access_log /var/log/nginx/sdcc-pitch.access.log;
+ error_log /var/log/nginx/sdcc-pitch.error.log;
+
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+
+ location / {
+ proxy_pass http://127.0.0.1:7400;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 60s;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/sdcc.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/sdcc.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+server {
+ if ($host = sdcc.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name sdcc.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/sdccanalysis.agentabrams.com b/sites-available/sdccanalysis.agentabrams.com
new file mode 100644
index 0000000..ba9ab52
--- /dev/null
+++ b/sites-available/sdccanalysis.agentabrams.com
@@ -0,0 +1,43 @@
+# sdccanalysis.agentabrams.com — Steve's audit report for studentdebtcrisis.org (private)
+server {
+ server_name sdccanalysis.agentabrams.com;
+
+ access_log /var/log/nginx/sdccanalysis.agentabrams.com.access.log;
+ error_log /var/log/nginx/sdccanalysis.agentabrams.com.error.log;
+
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+ add_header X-Robots-Tag "noindex, nofollow, noarchive" always;
+
+ auth_basic "sdccanalysis.agentabrams.com — admin only";
+ auth_basic_user_file /etc/nginx/.htpasswd-sdccanalysis;
+
+ root /var/www/sdccanalysis.agentabrams.com;
+ index index.html;
+ autoindex off;
+
+ location / {
+ try_files $uri $uri/ $uri.html =404;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/sdccanalysis.agentabrams.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/sdccanalysis.agentabrams.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+}
+
+server {
+ if ($host = sdccanalysis.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name sdccanalysis.agentabrams.com;
+ return 404; # managed by Certbot
+
+
+}
\ No newline at end of file
diff --git a/sites-available/selfadhesivewallpaper.com b/sites-available/selfadhesivewallpaper.com
new file mode 100644
index 0000000..0967c7f
--- /dev/null
+++ b/sites-available/selfadhesivewallpaper.com
@@ -0,0 +1,17 @@
+server {
+ listen 80; listen [::]:80;
+ server_name selfadhesivewallpaper.com www.selfadhesivewallpaper.com;
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / { return 302 https://apartmentwallpaper.com$request_uri; }
+}
+server {
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl;
+ listen [::]:443 ssl;
+ server_name selfadhesivewallpaper.com www.selfadhesivewallpaper.com;
+ ssl_certificate /etc/letsencrypt/live/selfadhesivewallpaper.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/selfadhesivewallpaper.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+ location / { return 302 https://apartmentwallpaper.com$request_uri; }
+}
diff --git a/sites-available/sheltermagazines.com.conf b/sites-available/sheltermagazines.com.conf
new file mode 100644
index 0000000..2729c01
--- /dev/null
+++ b/sites-available/sheltermagazines.com.conf
@@ -0,0 +1,21 @@
+# sheltermagazines.com — dwf-sheltermagazines :10032
+server {
+ listen 80;
+ listen [::]:80;
+ server_name sheltermagazines.com www.sheltermagazines.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10032;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/silkwallcoverings.com b/sites-available/silkwallcoverings.com
new file mode 100644
index 0000000..016250b
--- /dev/null
+++ b/sites-available/silkwallcoverings.com
@@ -0,0 +1,42 @@
+server {
+ server_name silkwallcoverings.com www.silkwallcoverings.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9894;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/silkwallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/silkwallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.silkwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = silkwallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name silkwallcoverings.com www.silkwallcoverings.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/silkwallpaper.com b/sites-available/silkwallpaper.com
new file mode 100644
index 0000000..89ba627
--- /dev/null
+++ b/sites-available/silkwallpaper.com
@@ -0,0 +1,61 @@
+server {
+ server_name silkwallpaper.com www.silkwallpaper.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9841;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/silkwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/silkwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.silkwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = silkwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name silkwallpaper.com www.silkwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/silverleafwallpaper.com b/sites-available/silverleafwallpaper.com
new file mode 100644
index 0000000..ac55b91
--- /dev/null
+++ b/sites-available/silverleafwallpaper.com
@@ -0,0 +1,45 @@
+server {
+ server_name silverleafwallpaper.com www.silverleafwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9852;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/silverleafwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/silverleafwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+
+
+}
+server {
+ if ($host = www.silverleafwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = silverleafwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name silverleafwallpaper.com www.silverleafwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/specifywallpaper.com.conf b/sites-available/specifywallpaper.com.conf
new file mode 100644
index 0000000..8334aed
--- /dev/null
+++ b/sites-available/specifywallpaper.com.conf
@@ -0,0 +1,21 @@
+# specifywallpaper.com — dwf-specifywallpaper :10033
+server {
+ listen 80;
+ listen [::]:80;
+ server_name specifywallpaper.com www.specifywallpaper.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10033;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/starsofdesign.com b/sites-available/starsofdesign.com
new file mode 100644
index 0000000..3f00072
--- /dev/null
+++ b/sites-available/starsofdesign.com
@@ -0,0 +1,49 @@
+server {
+ server_name starsofdesign.com www.starsofdesign.com;
+
+ access_log /var/log/nginx/starsofdesign.access.log;
+ error_log /var/log/nginx/starsofdesign.error.log;
+
+ add_header Cache-Control "no-store, must-revalidate" always;
+
+ location / {
+ proxy_pass http://127.0.0.1:9928;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_read_timeout 60s;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/starsofdesign.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/starsofdesign.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.starsofdesign.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = starsofdesign.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name starsofdesign.com www.starsofdesign.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/stevenabramsphotography.com.conf b/sites-available/stevenabramsphotography.com.conf
new file mode 100644
index 0000000..e15a5f9
--- /dev/null
+++ b/sites-available/stevenabramsphotography.com.conf
@@ -0,0 +1,21 @@
+# stevenabramsphotography.com — dwf-stevenabramsphotography :10034
+server {
+ listen 80;
+ listen [::]:80;
+ server_name stevenabramsphotography.com www.stevenabramsphotography.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10034;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/stringwallpaper.com b/sites-available/stringwallpaper.com
new file mode 100644
index 0000000..c37152d
--- /dev/null
+++ b/sites-available/stringwallpaper.com
@@ -0,0 +1,37 @@
+server {
+ server_name stringwallpaper.com www.stringwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ return 301 https://linenwallpaper.com$request_uri;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/stringwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/stringwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.stringwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = stringwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name stringwallpaper.com www.stringwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/suedewallpaper.com b/sites-available/suedewallpaper.com
new file mode 100644
index 0000000..092acba
--- /dev/null
+++ b/sites-available/suedewallpaper.com
@@ -0,0 +1,41 @@
+server {
+ server_name suedewallpaper.com www.suedewallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9872;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/suedewallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/suedewallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.suedewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = suedewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name suedewallpaper.com www.suedewallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/textiletuesday.com b/sites-available/textiletuesday.com
new file mode 100644
index 0000000..60ca272
--- /dev/null
+++ b/sites-available/textiletuesday.com
@@ -0,0 +1,77 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name textiletuesday.com www.textiletuesday.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / { return 301 https://$host$request_uri; }
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name textiletuesday.com www.textiletuesday.com;
+
+ ssl_certificate /etc/letsencrypt/live/textiletuesday.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/textiletuesday.com/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_prefer_server_ciphers off;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location ~* \.(html|htm)$ {
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_pass http://localhost:9899;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location / {
+ proxy_pass http://localhost:9899;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/textilewallpaper.com b/sites-available/textilewallpaper.com
new file mode 100644
index 0000000..fe18c83
--- /dev/null
+++ b/sites-available/textilewallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name textilewallpaper.com www.textilewallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9869;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/textilewallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/textilewallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.textilewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = textilewallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name textilewallpaper.com www.textilewallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/thehotelwallpaper.com.conf b/sites-available/thehotelwallpaper.com.conf
new file mode 100644
index 0000000..74ba127
--- /dev/null
+++ b/sites-available/thehotelwallpaper.com.conf
@@ -0,0 +1,21 @@
+# thehotelwallpaper.com — dwf-thehotelwallpaper :10035
+server {
+ listen 80;
+ listen [::]:80;
+ server_name thehotelwallpaper.com www.thehotelwallpaper.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10035;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/thesetdecorator.com b/sites-available/thesetdecorator.com
new file mode 100644
index 0000000..2b264b1
--- /dev/null
+++ b/sites-available/thesetdecorator.com
@@ -0,0 +1,62 @@
+server {
+ server_name thesetdecorator.com www.thesetdecorator.com;
+ access_log /var/log/nginx/thesetdecorator.com.access.log;
+ error_log /var/log/nginx/thesetdecorator.com.error.log;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+ add_header Cache-Control "no-store, must-revalidate" always;
+
+ location ^~ /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ # Proxy /api/art-archive/photos/* over tailnet to Mac2 where the 4.2 GB
+ # of original JPEGs live. Keeps the heavy image bytes off Kamatera disk.
+ location /api/art-archive/photos/ {
+ proxy_pass http://100.65.187.120:9716;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_buffering off;
+ proxy_read_timeout 60s;
+ client_max_body_size 50m;
+ }
+
+ location / {
+ proxy_pass http://127.0.0.1:9716;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 10s;
+ proxy_read_timeout 60s;
+ client_max_body_size 25m;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/thesetdecorator.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/thesetdecorator.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.thesetdecorator.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = thesetdecorator.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name thesetdecorator.com www.thesetdecorator.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
diff --git a/sites-available/traditionalwhimsy.com.conf b/sites-available/traditionalwhimsy.com.conf
new file mode 100644
index 0000000..8cad207
--- /dev/null
+++ b/sites-available/traditionalwhimsy.com.conf
@@ -0,0 +1,21 @@
+# traditionalwhimsy.com — dwf-traditionalwhimsy :10036
+server {
+ listen 80;
+ listen [::]:80;
+ server_name traditionalwhimsy.com www.traditionalwhimsy.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10036;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/typo-redirect-1800wallcoverings.com b/sites-available/typo-redirect-1800wallcoverings.com
new file mode 100644
index 0000000..6f5f6ee
--- /dev/null
+++ b/sites-available/typo-redirect-1800wallcoverings.com
@@ -0,0 +1,34 @@
+server {
+ server_name 1800wallcoverings.com www.1800wallcoverings.com;
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ return 301 https://www.designerwallcoverings.com$request_uri;
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1800wallcoverings.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1800wallcoverings.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.1800wallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1800wallcoverings.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name 1800wallcoverings.com www.1800wallcoverings.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/typo-redirect-1800wallpapers.com b/sites-available/typo-redirect-1800wallpapers.com
new file mode 100644
index 0000000..5dd03d0
--- /dev/null
+++ b/sites-available/typo-redirect-1800wallpapers.com
@@ -0,0 +1,34 @@
+server {
+ server_name 1800wallpapers.com www.1800wallpapers.com;
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ return 301 https://www.designerwallcoverings.com$request_uri;
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/1800wallpapers.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/1800wallpapers.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.1800wallpapers.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 1800wallpapers.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name 1800wallpapers.com www.1800wallpapers.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/typo-redirect-800wallpaper.com b/sites-available/typo-redirect-800wallpaper.com
new file mode 100644
index 0000000..fc154f0
--- /dev/null
+++ b/sites-available/typo-redirect-800wallpaper.com
@@ -0,0 +1,34 @@
+server {
+ server_name 800wallpaper.com www.800wallpaper.com;
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ return 301 https://www.designerwallcoverings.com$request_uri;
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/800wallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/800wallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.800wallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = 800wallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name 800wallpaper.com www.800wallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/typo-redirect-designerwallcover.com b/sites-available/typo-redirect-designerwallcover.com
new file mode 100644
index 0000000..f72d214
--- /dev/null
+++ b/sites-available/typo-redirect-designerwallcover.com
@@ -0,0 +1,34 @@
+server {
+ server_name designerwallcover.com www.designerwallcover.com;
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ return 301 https://www.designerwallcoverings.com$request_uri;
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/designerwallcover.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/designerwallcover.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.designerwallcover.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = designerwallcover.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name designerwallcover.com www.designerwallcover.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/typo-redirect-designerwallcovering.com b/sites-available/typo-redirect-designerwallcovering.com
new file mode 100644
index 0000000..788ac14
--- /dev/null
+++ b/sites-available/typo-redirect-designerwallcovering.com
@@ -0,0 +1,34 @@
+server {
+ server_name designerwallcovering.com www.designerwallcovering.com;
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ return 301 https://www.designerwallcoverings.com$request_uri;
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/designerwallcovering.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/designerwallcovering.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.designerwallcovering.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = designerwallcovering.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name designerwallcovering.com www.designerwallcovering.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/unitedstateswallpaper.com.conf b/sites-available/unitedstateswallpaper.com.conf
new file mode 100644
index 0000000..0db2c2a
--- /dev/null
+++ b/sites-available/unitedstateswallpaper.com.conf
@@ -0,0 +1,21 @@
+# unitedstateswallpaper.com — dwf-unitedstateswallpaper :10037
+server {
+ listen 80;
+ listen [::]:80;
+ server_name unitedstateswallpaper.com www.unitedstateswallpaper.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10037;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/venturablvd.agentabrams.com b/sites-available/venturablvd.agentabrams.com
new file mode 100644
index 0000000..c45accf
--- /dev/null
+++ b/sites-available/venturablvd.agentabrams.com
@@ -0,0 +1,25 @@
+# venturablvd.agentabrams.com — Ventura corridor public deploy
+# Authorized 2026-05-05 (deploy-intent: 'deploy ventura-corridor public')
+server {
+ listen 80;
+ server_name venturablvd.agentabrams.com;
+ location /.well-known/acme-challenge/ { root /var/www/letsencrypt; }
+ location / { return 301 https://$host$request_uri; }
+}
+server {
+ listen 443 ssl http2;
+ server_name venturablvd.agentabrams.com;
+ ssl_certificate /etc/letsencrypt/live/venturablvd.agentabrams.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/venturablvd.agentabrams.com/privkey.pem;
+ client_max_body_size 5m;
+ add_header X-Content-Type-Options 'nosniff' always;
+ add_header Referrer-Policy 'strict-origin-when-cross-origin' always;
+ location / {
+ proxy_pass http://127.0.0.1:9780;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 60s;
+ }
+}
diff --git a/sites-available/venturaclaw.agentabrams.com b/sites-available/venturaclaw.agentabrams.com
new file mode 100644
index 0000000..ac4d0a1
--- /dev/null
+++ b/sites-available/venturaclaw.agentabrams.com
@@ -0,0 +1,32 @@
+server {
+ listen 80;
+ server_name venturaclaw.agentabrams.com;
+ if ($host = venturaclaw.agentabrams.com) { return 301 https://venturaclaw.com$request_uri; }
+ return 404;
+}
+server {
+ listen 443 ssl;
+ server_name venturaclaw.agentabrams.com;
+ ssl_certificate /etc/letsencrypt/live/venturaclaw.agentabrams.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/venturaclaw.agentabrams.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ # OAuth callback URLs registered in provider consoles still resolve here.
+ location /oauth/ {
+ proxy_pass http://127.0.0.1:9788;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 60s;
+ }
+ location = /healthz {
+ proxy_pass http://127.0.0.1:9788;
+ proxy_set_header Host $host;
+ }
+ location / {
+ return 301 https://venturaclaw.com$request_uri;
+ }
+}
diff --git a/sites-available/venturaclaw.com b/sites-available/venturaclaw.com
new file mode 100644
index 0000000..ec74cf7
--- /dev/null
+++ b/sites-available/venturaclaw.com
@@ -0,0 +1,71 @@
+# venturaclaw.com — coming-soon page + read-only /services hub.
+# / = static teaser landing
+# /services, /legal-notice, /api/services-chat, /static/* = proxied to ventura-claw :9788
+# Everything else (login, admin, chat) stays gated.
+
+server {
+ listen 80;
+ listen [::]:80;
+ server_name venturaclaw.com www.venturaclaw.com;
+ return 301 https://$host$request_uri;
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl;
+ server_name venturaclaw.com www.venturaclaw.com;
+
+ ssl_certificate /etc/letsencrypt/live/venturaclaw.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/venturaclaw.com/privkey.pem;
+ ssl_session_cache shared:SSL:10m;
+ ssl_session_timeout 1d;
+ ssl_protocols TLSv1.2 TLSv1.3;
+
+ root /var/www/venturaclaw-comingsoon;
+ index index.html;
+
+ # ---- Public services hub: /services, /legal-notice, /api/services-chat ----
+ # These three paths and their static deps proxy to the ventura-claw Express app on :9788.
+ location = /services { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /legal-notice { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /privacy { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /terms { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /faq { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /docs { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /about { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /how-it-works { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location ~ ^/connectors(/|$) { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /pricing { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /sitemap.xml { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /robots.txt { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /changelog { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /feed { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /api/public/services { proxy_pass http://127.0.0.1:9788; include /etc/nginx/proxy_params; proxy_set_header Host $host; }
+ location = /api/services-demo/domain-email {
+ proxy_pass http://127.0.0.1:9788;
+ include /etc/nginx/proxy_params;
+ proxy_set_header Host $host;
+ proxy_read_timeout 30s;
+ }
+ location = /api/services-lead {
+ proxy_pass http://127.0.0.1:9788;
+ include /etc/nginx/proxy_params;
+ proxy_set_header Host $host;
+ proxy_read_timeout 30s;
+ }
+ location = /api/services-chat {
+ proxy_pass http://127.0.0.1:9788;
+ include /etc/nginx/proxy_params;
+ proxy_set_header Host $host;
+ proxy_read_timeout 90s;
+ }
+
+ # / = static teaser
+ location / {
+ try_files /index.html =404;
+ add_header Cache-Control "public, max-age=300";
+ }
+
+ # Block any other /api/* path (login, admin, etc.) — gated to hidden door later.
+ location /api/ { return 404; }
+}
diff --git a/sites-available/videos.agentabrams.com b/sites-available/videos.agentabrams.com
new file mode 100644
index 0000000..d32eec1
--- /dev/null
+++ b/sites-available/videos.agentabrams.com
@@ -0,0 +1,48 @@
+server {
+ server_name videos.agentabrams.com;
+
+ access_log /var/log/nginx/videos.agentabrams.com.access.log;
+ error_log /var/log/nginx/videos.agentabrams.com.error.log;
+
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+
+ auth_basic "videos.agentabrams.com — admin only";
+ auth_basic_user_file /etc/nginx/.htpasswd-builds;
+
+ root /var/www/videos.agentabrams.com;
+ index index.html;
+ autoindex off;
+
+ location ^~ /api/ {
+ proxy_pass http://127.0.0.1:9783;
+ proxy_set_header Host $host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_connect_timeout 10s;
+ proxy_read_timeout 30s;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+
+ location ~* \.mp4$ {
+ add_header Accept-Ranges bytes;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/videos.agentabrams.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/videos.agentabrams.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+}
+
+server {
+ if ($host = videos.agentabrams.com) {
+ return 301 https://$host$request_uri;
+ }
+ listen 80;
+ server_name videos.agentabrams.com;
+ return 404;
+}
diff --git a/sites-available/vinylwallpaper.com b/sites-available/vinylwallpaper.com
new file mode 100644
index 0000000..5e60c88
--- /dev/null
+++ b/sites-available/vinylwallpaper.com
@@ -0,0 +1,42 @@
+server {
+ server_name vinylwallpaper.com www.vinylwallpaper.com;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9863;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ include snippets/dw-frame-allow.conf;
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/vinylwallpaper.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/vinylwallpaper.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.vinylwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = vinylwallpaper.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80; listen [::]:80;
+ server_name vinylwallpaper.com www.vinylwallpaper.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/wallco.ai b/sites-available/wallco.ai
new file mode 100644
index 0000000..33c8668
--- /dev/null
+++ b/sites-available/wallco.ai
@@ -0,0 +1,87 @@
+server {
+ server_name wallco.ai www.wallco.ai;
+ client_max_body_size 30M;
+
+ # Cloudflare real IP passthrough (per feedback_cloudflare_html_caching.md)
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 131.0.72.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 2400:cb00::/32;
+ set_real_ip_from 2606:4700::/32;
+ set_real_ip_from 2803:f800::/32;
+ set_real_ip_from 2405:b500::/32;
+ set_real_ip_from 2405:8100::/32;
+ set_real_ip_from 2a06:98c0::/29;
+ set_real_ip_from 2c0f:f248::/32;
+ real_ip_header CF-Connecting-IP;
+
+ # certbot challenge
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://127.0.0.1:9905;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection keep-alive;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+
+ # Cache-Control: no-store on HTML (per feedback_cloudflare_html_caching.md)
+ add_header Cache-Control "no-store, must-revalidate" always;
+
+ # Security headers
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/wallco.ai/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/wallco.ai/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.wallco.ai) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = wallco.ai) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name wallco.ai www.wallco.ai;
+ client_max_body_size 30M;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/wallcovering.net.conf b/sites-available/wallcovering.net.conf
new file mode 100644
index 0000000..7d5c0ed
--- /dev/null
+++ b/sites-available/wallcovering.net.conf
@@ -0,0 +1,21 @@
+# wallcovering.net — dwf-wallcovering :10038
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallcovering.net www.wallcovering.net;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10038;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/wallpapercanada.com b/sites-available/wallpapercanada.com
new file mode 100644
index 0000000..1729748
--- /dev/null
+++ b/sites-available/wallpapercanada.com
@@ -0,0 +1,42 @@
+# wallpapercanada.com — staged 2026-05-10 by gtag-rollout work
+# HTTP-only initially. Once DNS flips from GoDaddy to Cloudflare→Kamatera,
+# run: certbot --nginx -d wallpapercanada.com -d www.wallpapercanada.com --non-interactive --agree-tos -m steve@designerwallcoverings.com
+server {
+ server_name wallpapercanada.com www.wallpapercanada.com;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ location / {
+ proxy_pass http://127.0.0.1:9873;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/wallpapercanada.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/wallpapercanada.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+
+server {
+ if ($host = www.wallpapercanada.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = wallpapercanada.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ server_name wallpapercanada.com www.wallpapercanada.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/wallpapercontractor.com b/sites-available/wallpapercontractor.com
new file mode 100644
index 0000000..655d89f
--- /dev/null
+++ b/sites-available/wallpapercontractor.com
@@ -0,0 +1,22 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallpapercontractor.com www.wallpapercontractor.com;
+
+ access_log /var/log/nginx/wallpapercontractor.access.log;
+ error_log /var/log/nginx/wallpapercontractor.error.log;
+
+ location / {
+ proxy_pass http://127.0.0.1:9930;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_read_timeout 60s;
+ }
+
+ add_header Cache-Control "no-store, must-revalidate" always;
+}
diff --git a/sites-available/wallpaperdefinitions.com b/sites-available/wallpaperdefinitions.com
new file mode 100644
index 0000000..409992f
--- /dev/null
+++ b/sites-available/wallpaperdefinitions.com
@@ -0,0 +1,65 @@
+server {
+ server_name wallpaperdefinitions.com www.wallpaperdefinitions.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://localhost:9901;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/wallpaperdefinitions.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/wallpaperdefinitions.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.wallpaperdefinitions.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = wallpaperdefinitions.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperdefinitions.com www.wallpaperdefinitions.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/wallpaperdictionary.com b/sites-available/wallpaperdictionary.com
new file mode 100644
index 0000000..7c59951
--- /dev/null
+++ b/sites-available/wallpaperdictionary.com
@@ -0,0 +1,65 @@
+server {
+ server_name wallpaperdictionary.com www.wallpaperdictionary.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://localhost:9904;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/wallpaperdictionary.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/wallpaperdictionary.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.wallpaperdictionary.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = wallpaperdictionary.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperdictionary.com www.wallpaperdictionary.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/wallpaperdistributors.com b/sites-available/wallpaperdistributors.com
new file mode 100644
index 0000000..b028907
--- /dev/null
+++ b/sites-available/wallpaperdistributors.com
@@ -0,0 +1,22 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperdistributors.com www.wallpaperdistributors.com;
+
+ access_log /var/log/nginx/wallpaperdistributors.access.log;
+ error_log /var/log/nginx/wallpaperdistributors.error.log;
+
+ location / {
+ proxy_pass http://127.0.0.1:9932;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_read_timeout 60s;
+ }
+
+ add_header Cache-Control "no-store, must-revalidate" always;
+}
diff --git a/sites-available/wallpaperestimator.com b/sites-available/wallpaperestimator.com
new file mode 100644
index 0000000..57b4562
--- /dev/null
+++ b/sites-available/wallpaperestimator.com
@@ -0,0 +1,38 @@
+# wallpaperestimator.com — phase: build_only (DNS not yet flipped)
+# :80 only, no TLS until DNS points here. CF proxy + certbot come in a later wave.
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperestimator.com www.wallpaperestimator.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location / {
+ proxy_pass http://localhost:9933;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/wallpaperexports.com.conf b/sites-available/wallpaperexports.com.conf
new file mode 100644
index 0000000..b0768bb
--- /dev/null
+++ b/sites-available/wallpaperexports.com.conf
@@ -0,0 +1,21 @@
+# wallpaperexports.com — dwf-wallpaperexports :10039
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperexports.com www.wallpaperexports.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10039;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/wallpaperfromthe80s.com.conf b/sites-available/wallpaperfromthe80s.com.conf
new file mode 100644
index 0000000..afbbfa1
--- /dev/null
+++ b/sites-available/wallpaperfromthe80s.com.conf
@@ -0,0 +1,21 @@
+# wallpaperfromthe80s.com — dwf-wallpaperfromthe80s :10040
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperfromthe80s.com www.wallpaperfromthe80s.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10040;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/wallpaperglossary.com b/sites-available/wallpaperglossary.com
new file mode 100644
index 0000000..2f5a89a
--- /dev/null
+++ b/sites-available/wallpaperglossary.com
@@ -0,0 +1,65 @@
+server {
+ server_name wallpaperglossary.com www.wallpaperglossary.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://localhost:9902;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/wallpaperglossary.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/wallpaperglossary.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.wallpaperglossary.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = wallpaperglossary.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperglossary.com www.wallpaperglossary.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/wallpaperhistory.com b/sites-available/wallpaperhistory.com
new file mode 100644
index 0000000..04442dd
--- /dev/null
+++ b/sites-available/wallpaperhistory.com
@@ -0,0 +1,65 @@
+server {
+ server_name wallpaperhistory.com www.wallpaperhistory.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ {
+ root /var/www/html;
+ }
+
+ location / {
+ proxy_pass http://localhost:9903;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+
+ listen [::]:443 ssl; # managed by Certbot
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/wallpaperhistory.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/wallpaperhistory.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.wallpaperhistory.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = wallpaperhistory.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperhistory.com www.wallpaperhistory.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/wallpaperny.com.conf b/sites-available/wallpaperny.com.conf
new file mode 100644
index 0000000..6d5a228
--- /dev/null
+++ b/sites-available/wallpaperny.com.conf
@@ -0,0 +1,21 @@
+# wallpaperny.com — dwf-wallpaperny :10041
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperny.com www.wallpaperny.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10041;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/wallpaperpurchasing.com.conf b/sites-available/wallpaperpurchasing.com.conf
new file mode 100644
index 0000000..8667138
--- /dev/null
+++ b/sites-available/wallpaperpurchasing.com.conf
@@ -0,0 +1,21 @@
+# wallpaperpurchasing.com — dwf-wallpaperpurchasing :10042
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperpurchasing.com www.wallpaperpurchasing.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10042;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/wallpapersback.com b/sites-available/wallpapersback.com
new file mode 100644
index 0000000..4045426
--- /dev/null
+++ b/sites-available/wallpapersback.com
@@ -0,0 +1,59 @@
+server {
+ server_name wallpapersback.com www.wallpapersback.com;
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+ if ($http_user_agent ~* "copyrightagent|copyrightbot") { return 403; }
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / {
+ proxy_pass http://localhost:9835;
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ listen 443 ssl; # managed by Certbot
+ listen [::]:443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/wallpapersback.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/wallpapersback.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+
+}
+server {
+ if ($host = www.wallpapersback.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ if ($host = wallpapersback.com) {
+ return 301 https://$host$request_uri;
+ } # managed by Certbot
+
+
+ listen 80;
+ listen [::]:80;
+ server_name wallpapersback.com www.wallpapersback.com;
+ return 404; # managed by Certbot
+
+
+
+
+}
\ No newline at end of file
diff --git a/sites-available/wallpaperwednesday.com b/sites-available/wallpaperwednesday.com
new file mode 100644
index 0000000..be14fcb
--- /dev/null
+++ b/sites-available/wallpaperwednesday.com
@@ -0,0 +1,77 @@
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperwednesday.com www.wallpaperwednesday.com;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+ location / { return 301 https://$host$request_uri; }
+}
+
+server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+ server_name wallpaperwednesday.com www.wallpaperwednesday.com;
+
+ ssl_certificate /etc/letsencrypt/live/wallpaperwednesday.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/wallpaperwednesday.com/privkey.pem;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_prefer_server_ciphers off;
+
+ set_real_ip_from 173.245.48.0/20;
+ set_real_ip_from 103.21.244.0/22;
+ set_real_ip_from 103.22.200.0/22;
+ set_real_ip_from 103.31.4.0/22;
+ set_real_ip_from 141.101.64.0/18;
+ set_real_ip_from 108.162.192.0/18;
+ set_real_ip_from 190.93.240.0/20;
+ set_real_ip_from 188.114.96.0/20;
+ set_real_ip_from 197.234.240.0/22;
+ set_real_ip_from 198.41.128.0/17;
+ set_real_ip_from 162.158.0.0/15;
+ set_real_ip_from 104.16.0.0/13;
+ set_real_ip_from 104.24.0.0/14;
+ set_real_ip_from 172.64.0.0/13;
+ set_real_ip_from 131.0.72.0/22;
+ real_ip_header CF-Connecting-IP;
+
+ location /.well-known/acme-challenge/ { root /var/www/html; }
+
+ location ~* \.(html|htm)$ {
+ add_header Cache-Control "no-store, must-revalidate" always;
+ proxy_pass http://localhost:9900;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location / {
+ proxy_pass http://localhost:9900;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
diff --git a/sites-available/wallpaperweekly.com.conf b/sites-available/wallpaperweekly.com.conf
new file mode 100644
index 0000000..9823c48
--- /dev/null
+++ b/sites-available/wallpaperweekly.com.conf
@@ -0,0 +1,21 @@
+# wallpaperweekly.com — dwf-wallpaperweekly :10043
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallpaperweekly.com www.wallpaperweekly.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10043;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/wallsandfabrics.com b/sites-available/wallsandfabrics.com
new file mode 100644
index 0000000..af33104
--- /dev/null
+++ b/sites-available/wallsandfabrics.com
@@ -0,0 +1,23 @@
+# wallsandfabrics.com — DW combo storefront (build_only phase, :80 only)
+# DNS not yet flipped — TLS comes after DNS cutover.
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wallsandfabrics.com www.wallsandfabrics.com;
+
+ access_log /var/log/nginx/wallsandfabrics.access.log;
+ error_log /var/log/nginx/wallsandfabrics.error.log;
+
+ location / {
+ proxy_pass http://127.0.0.1:9934;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_read_timeout 30s;
+
+ # CF caches HTML by default — opt out for the dynamic pages.
+ add_header Cache-Control "no-store, must-revalidate" always;
+ }
+}
diff --git a/sites-available/wc01wallcoverings.com.conf b/sites-available/wc01wallcoverings.com.conf
new file mode 100644
index 0000000..5216070
--- /dev/null
+++ b/sites-available/wc01wallcoverings.com.conf
@@ -0,0 +1,21 @@
+# wc01wallcoverings.com — dwf-wc01wallcoverings :10044
+server {
+ listen 80;
+ listen [::]:80;
+ server_name wc01wallcoverings.com www.wc01wallcoverings.com;
+
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options SAMEORIGIN always;
+ add_header X-Content-Type-Options nosniff always;
+ add_header Referrer-Policy strict-origin-when-cross-origin always;
+ add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
+ add_header Cross-Origin-Opener-Policy same-origin always;
+ location / {
+ proxy_pass http://127.0.0.1:10044;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
diff --git a/sites-available/wholivedthere.com.conf b/sites-available/wholivedthere.com.conf
new file mode 100644
index 0000000..f0f70bc
--- /dev/null
+++ b/sites-available/wholivedthere.com.conf
@@ -0,0 +1,46 @@
+# HTTP → HTTPS redirect
+server {
+ listen 80;
+ server_name wholivedthere.com www.wholivedthere.com;
+ return 301 https://$host$request_uri;
+}
+
+# HTTPS → Next.js
+server {
+ listen 443 ssl http2;
+ server_name wholivedthere.com www.wholivedthere.com;
+
+ ssl_certificate /etc/letsencrypt/live/wholivedthere.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/wholivedthere.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ # Security headers
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
+ add_header X-Frame-Options "SAMEORIGIN" always;
+ add_header X-Content-Type-Options "nosniff" always;
+ add_header Referrer-Policy "strict-origin-when-cross-origin" always;
+ add_header Permissions-Policy "geolocation=(self), microphone=(), camera=()" always;
+
+ # Site Factory routes (Stripe + auth + health + webhook + claim) → SF port 3091
+ location ~ ^/api/(auth|checkout|health|webhook)(/|$) {
+ proxy_pass http://127.0.0.1:3091;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ # Stripe webhook sig verify needs raw body
+ proxy_request_buffering off;
+ }
+
+ # Everything else → pastdoor (port 9821)
+ location / {
+ proxy_pass http://127.0.0.1:9821;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_http_version 1.1;
+ }
+}
diff --git a/sites-available/zendesk-chat-proxy b/sites-available/zendesk-chat-proxy
new file mode 100644
index 0000000..92af1c8
--- /dev/null
+++ b/sites-available/zendesk-chat-proxy
@@ -0,0 +1,20 @@
+server {
+ listen 80;
+ server_name 45.61.58.125;
+
+ location /zendesk-chat {
+ proxy_pass http://localhost:9886;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_cache_bypass $http_upgrade;
+
+ # Remove /zendesk-chat prefix when forwarding
+ rewrite ^/zendesk-chat/(.*) /$1 break;
+ rewrite ^/zendesk-chat$ / break;
+ }
+}
diff --git a/sites-enabled/1800swallpaper.com b/sites-enabled/1800swallpaper.com
new file mode 120000
index 0000000..2c102d0
--- /dev/null
+++ b/sites-enabled/1800swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1800swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/1800wallcoverings.com.conf b/sites-enabled/1800wallcoverings.com.conf
new file mode 120000
index 0000000..78b5d3e
--- /dev/null
+++ b/sites-enabled/1800wallcoverings.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1800wallcoverings.com.conf
\ No newline at end of file
diff --git a/sites-enabled/1890swallpaper.com b/sites-enabled/1890swallpaper.com
new file mode 120000
index 0000000..04ef6e1
--- /dev/null
+++ b/sites-enabled/1890swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1890swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/1900swallpaper.com b/sites-enabled/1900swallpaper.com
new file mode 120000
index 0000000..f2e4f9d
--- /dev/null
+++ b/sites-enabled/1900swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1900swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/1920swallpaper.com b/sites-enabled/1920swallpaper.com
new file mode 120000
index 0000000..b971bcf
--- /dev/null
+++ b/sites-enabled/1920swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1920swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/1930swallpaper.com b/sites-enabled/1930swallpaper.com
new file mode 120000
index 0000000..47ebad6
--- /dev/null
+++ b/sites-enabled/1930swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1930swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/1940swallpaper.com b/sites-enabled/1940swallpaper.com
new file mode 120000
index 0000000..1448640
--- /dev/null
+++ b/sites-enabled/1940swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1940swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/1950swallpaper.com b/sites-enabled/1950swallpaper.com
new file mode 120000
index 0000000..3041095
--- /dev/null
+++ b/sites-enabled/1950swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1950swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/1960swallpaper.com b/sites-enabled/1960swallpaper.com
new file mode 120000
index 0000000..605a0f4
--- /dev/null
+++ b/sites-enabled/1960swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1960swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/1970swallpaper.com b/sites-enabled/1970swallpaper.com
new file mode 120000
index 0000000..8aa47ff
--- /dev/null
+++ b/sites-enabled/1970swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1970swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/1980swallpaper.com b/sites-enabled/1980swallpaper.com
new file mode 120000
index 0000000..d4c5923
--- /dev/null
+++ b/sites-enabled/1980swallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/1980swallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/4square.agentabrams.com b/sites-enabled/4square.agentabrams.com
new file mode 120000
index 0000000..1c1c1ca
--- /dev/null
+++ b/sites-enabled/4square.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/4square.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/abramsatlas.com.conf b/sites-enabled/abramsatlas.com.conf
new file mode 120000
index 0000000..30e5d1d
--- /dev/null
+++ b/sites-enabled/abramsatlas.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsatlas.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramscivic.com.conf b/sites-enabled/abramscivic.com.conf
new file mode 120000
index 0000000..26b276c
--- /dev/null
+++ b/sites-enabled/abramscivic.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramscivic.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsdirectory.com.conf b/sites-enabled/abramsdirectory.com.conf
new file mode 120000
index 0000000..e1eb111
--- /dev/null
+++ b/sites-enabled/abramsdirectory.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsdirectory.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsguide.com.conf b/sites-enabled/abramsguide.com.conf
new file mode 120000
index 0000000..267d293
--- /dev/null
+++ b/sites-enabled/abramsguide.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsguide.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsindex.com.conf b/sites-enabled/abramsindex.com.conf
new file mode 120000
index 0000000..09ff6a9
--- /dev/null
+++ b/sites-enabled/abramsindex.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsindex.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsindustries.com.conf b/sites-enabled/abramsindustries.com.conf
new file mode 120000
index 0000000..ae9bc2d
--- /dev/null
+++ b/sites-enabled/abramsindustries.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsindustries.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsintel.com.conf b/sites-enabled/abramsintel.com.conf
new file mode 120000
index 0000000..a12fb4c
--- /dev/null
+++ b/sites-enabled/abramsintel.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsintel.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsintelligence.com.conf b/sites-enabled/abramsintelligence.com.conf
new file mode 120000
index 0000000..95ac5e7
--- /dev/null
+++ b/sites-enabled/abramsintelligence.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsintelligence.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramslive.com.conf b/sites-enabled/abramslive.com.conf
new file mode 120000
index 0000000..f17dc52
--- /dev/null
+++ b/sites-enabled/abramslive.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramslive.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramslocal.com.conf b/sites-enabled/abramslocal.com.conf
new file mode 120000
index 0000000..43d086f
--- /dev/null
+++ b/sites-enabled/abramslocal.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramslocal.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsmaps.com.conf b/sites-enabled/abramsmaps.com.conf
new file mode 120000
index 0000000..252fa1d
--- /dev/null
+++ b/sites-enabled/abramsmaps.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsmaps.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsmarkets.com.conf b/sites-enabled/abramsmarkets.com.conf
new file mode 120000
index 0000000..336d433
--- /dev/null
+++ b/sites-enabled/abramsmarkets.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsmarkets.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsos.com.conf b/sites-enabled/abramsos.com.conf
new file mode 120000
index 0000000..a62491a
--- /dev/null
+++ b/sites-enabled/abramsos.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsos.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsprotection.com.conf b/sites-enabled/abramsprotection.com.conf
new file mode 120000
index 0000000..771486a
--- /dev/null
+++ b/sites-enabled/abramsprotection.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsprotection.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsreport.agentabrams.com.conf b/sites-enabled/abramsreport.agentabrams.com.conf
new file mode 120000
index 0000000..32b0505
--- /dev/null
+++ b/sites-enabled/abramsreport.agentabrams.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsreport.agentabrams.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsspace.com.conf b/sites-enabled/abramsspace.com.conf
new file mode 120000
index 0000000..0f3f16f
--- /dev/null
+++ b/sites-enabled/abramsspace.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsspace.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsterminal.com.conf b/sites-enabled/abramsterminal.com.conf
new file mode 120000
index 0000000..39c1403
--- /dev/null
+++ b/sites-enabled/abramsterminal.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsterminal.com.conf
\ No newline at end of file
diff --git a/sites-enabled/abramsvc.com.conf b/sites-enabled/abramsvc.com.conf
new file mode 120000
index 0000000..3768c54
--- /dev/null
+++ b/sites-enabled/abramsvc.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/abramsvc.com.conf
\ No newline at end of file
diff --git a/sites-enabled/admin.agentabrams.com b/sites-enabled/admin.agentabrams.com
new file mode 120000
index 0000000..1af72e0
--- /dev/null
+++ b/sites-enabled/admin.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/admin.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/agedwallpaper.com b/sites-enabled/agedwallpaper.com
new file mode 120000
index 0000000..bdad41b
--- /dev/null
+++ b/sites-enabled/agedwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/agedwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/agentabrams.com b/sites-enabled/agentabrams.com
new file mode 120000
index 0000000..307a604
--- /dev/null
+++ b/sites-enabled/agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/animals.agentabrams.com b/sites-enabled/animals.agentabrams.com
new file mode 120000
index 0000000..cc96e9d
--- /dev/null
+++ b/sites-enabled/animals.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/animals.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/apartmentwallpaper.com b/sites-enabled/apartmentwallpaper.com
new file mode 120000
index 0000000..9e8bb49
--- /dev/null
+++ b/sites-enabled/apartmentwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/apartmentwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/app.venturaclaw.com b/sites-enabled/app.venturaclaw.com
new file mode 120000
index 0000000..6d45947
--- /dev/null
+++ b/sites-enabled/app.venturaclaw.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/app.venturaclaw.com
\ No newline at end of file
diff --git a/sites-enabled/architecturalwallcoverings.com b/sites-enabled/architecturalwallcoverings.com
new file mode 120000
index 0000000..90cffb5
--- /dev/null
+++ b/sites-enabled/architecturalwallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/architecturalwallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/asseeninhotels.com.conf b/sites-enabled/asseeninhotels.com.conf
new file mode 120000
index 0000000..417c2e2
--- /dev/null
+++ b/sites-enabled/asseeninhotels.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/asseeninhotels.com.conf
\ No newline at end of file
diff --git a/sites-enabled/asseeninla.com.conf b/sites-enabled/asseeninla.com.conf
new file mode 120000
index 0000000..b9cf1c0
--- /dev/null
+++ b/sites-enabled/asseeninla.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/asseeninla.com.conf
\ No newline at end of file
diff --git a/sites-enabled/asseeninmovies.com.conf b/sites-enabled/asseeninmovies.com.conf
new file mode 120000
index 0000000..65fe180
--- /dev/null
+++ b/sites-enabled/asseeninmovies.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/asseeninmovies.com.conf
\ No newline at end of file
diff --git a/sites-enabled/asseeninshowrooms.com.conf b/sites-enabled/asseeninshowrooms.com.conf
new file mode 120000
index 0000000..4fc447e
--- /dev/null
+++ b/sites-enabled/asseeninshowrooms.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/asseeninshowrooms.com.conf
\ No newline at end of file
diff --git a/sites-enabled/auth.agentabrams.com b/sites-enabled/auth.agentabrams.com
new file mode 120000
index 0000000..8ceade5
--- /dev/null
+++ b/sites-enabled/auth.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/auth.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/auth.grassclothwallpaper.com b/sites-enabled/auth.grassclothwallpaper.com
new file mode 120000
index 0000000..61b602e
--- /dev/null
+++ b/sites-enabled/auth.grassclothwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/auth.grassclothwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/barwallpaper.com.conf b/sites-enabled/barwallpaper.com.conf
new file mode 120000
index 0000000..efa6065
--- /dev/null
+++ b/sites-enabled/barwallpaper.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/barwallpaper.com.conf
\ No newline at end of file
diff --git a/sites-enabled/bertha.grassclothwallpaper.com b/sites-enabled/bertha.grassclothwallpaper.com
new file mode 120000
index 0000000..d12072b
--- /dev/null
+++ b/sites-enabled/bertha.grassclothwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/bertha.grassclothwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/bestwallpaperplace.com b/sites-enabled/bestwallpaperplace.com
new file mode 120000
index 0000000..9ecc087
--- /dev/null
+++ b/sites-enabled/bestwallpaperplace.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/bestwallpaperplace.com
\ No newline at end of file
diff --git a/sites-enabled/blankstocklining.com.conf b/sites-enabled/blankstocklining.com.conf
new file mode 120000
index 0000000..bf652aa
--- /dev/null
+++ b/sites-enabled/blankstocklining.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/blankstocklining.com.conf
\ No newline at end of file
diff --git a/sites-enabled/bleachfriendly.com.conf b/sites-enabled/bleachfriendly.com.conf
new file mode 120000
index 0000000..9f835d3
--- /dev/null
+++ b/sites-enabled/bleachfriendly.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/bleachfriendly.com.conf
\ No newline at end of file
diff --git a/sites-enabled/bleachresistantfabrics.com b/sites-enabled/bleachresistantfabrics.com
new file mode 120000
index 0000000..6d38c7f
--- /dev/null
+++ b/sites-enabled/bleachresistantfabrics.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/bleachresistantfabrics.com
\ No newline at end of file
diff --git a/sites-enabled/blockprintedwallpaper.com b/sites-enabled/blockprintedwallpaper.com
new file mode 120000
index 0000000..7ba17cc
--- /dev/null
+++ b/sites-enabled/blockprintedwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/blockprintedwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/bubbe.ai b/sites-enabled/bubbe.ai
new file mode 120000
index 0000000..405f5d9
--- /dev/null
+++ b/sites-enabled/bubbe.ai
@@ -0,0 +1 @@
+/etc/nginx/sites-available/bubbe.ai
\ No newline at end of file
diff --git a/sites-enabled/bubbesblock.com.conf b/sites-enabled/bubbesblock.com.conf
new file mode 120000
index 0000000..4d4aea3
--- /dev/null
+++ b/sites-enabled/bubbesblock.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/bubbesblock.com.conf
\ No newline at end of file
diff --git a/sites-enabled/builds.agentabrams.com b/sites-enabled/builds.agentabrams.com
new file mode 120000
index 0000000..cfecdf2
--- /dev/null
+++ b/sites-enabled/builds.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/builds.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/businessclaw.agentabrams.com b/sites-enabled/businessclaw.agentabrams.com
new file mode 120000
index 0000000..f95205b
--- /dev/null
+++ b/sites-enabled/businessclaw.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/businessclaw.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/butlr.agentabrams.com b/sites-enabled/butlr.agentabrams.com
new file mode 120000
index 0000000..bbefc71
--- /dev/null
+++ b/sites-enabled/butlr.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/butlr.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/carmelwallpaper.com.conf b/sites-enabled/carmelwallpaper.com.conf
new file mode 120000
index 0000000..f0ac810
--- /dev/null
+++ b/sites-enabled/carmelwallpaper.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/carmelwallpaper.com.conf
\ No newline at end of file
diff --git a/sites-enabled/carmelwallpapers.com b/sites-enabled/carmelwallpapers.com
new file mode 120000
index 0000000..6f47ef9
--- /dev/null
+++ b/sites-enabled/carmelwallpapers.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/carmelwallpapers.com
\ No newline at end of file
diff --git a/sites-enabled/cfafabrics.com.conf b/sites-enabled/cfafabrics.com.conf
new file mode 120000
index 0000000..ac3fa31
--- /dev/null
+++ b/sites-enabled/cfafabrics.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/cfafabrics.com.conf
\ No newline at end of file
diff --git a/sites-enabled/chat.designerwallcoverings.com b/sites-enabled/chat.designerwallcoverings.com
new file mode 120000
index 0000000..7dcd10e
--- /dev/null
+++ b/sites-enabled/chat.designerwallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/chat.designerwallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/chinoiseriewallpaper.com b/sites-enabled/chinoiseriewallpaper.com
new file mode 120000
index 0000000..aff8e42
--- /dev/null
+++ b/sites-enabled/chinoiseriewallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/chinoiseriewallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/claimmyaddress.com.conf b/sites-enabled/claimmyaddress.com.conf
new file mode 120000
index 0000000..f898f25
--- /dev/null
+++ b/sites-enabled/claimmyaddress.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/claimmyaddress.com.conf
\ No newline at end of file
diff --git a/sites-enabled/classawallcovering.com.conf b/sites-enabled/classawallcovering.com.conf
new file mode 120000
index 0000000..b127a1c
--- /dev/null
+++ b/sites-enabled/classawallcovering.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/classawallcovering.com.conf
\ No newline at end of file
diff --git a/sites-enabled/commercialdesignreps.com b/sites-enabled/commercialdesignreps.com
new file mode 120000
index 0000000..da3cbc3
--- /dev/null
+++ b/sites-enabled/commercialdesignreps.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/commercialdesignreps.com
\ No newline at end of file
diff --git a/sites-enabled/commercialsalesreps.com.conf b/sites-enabled/commercialsalesreps.com.conf
new file mode 120000
index 0000000..e50347d
--- /dev/null
+++ b/sites-enabled/commercialsalesreps.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/commercialsalesreps.com.conf
\ No newline at end of file
diff --git a/sites-enabled/commercialwallcovering.com.conf b/sites-enabled/commercialwallcovering.com.conf
new file mode 120000
index 0000000..ac11068
--- /dev/null
+++ b/sites-enabled/commercialwallcovering.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/commercialwallcovering.com.conf
\ No newline at end of file
diff --git a/sites-enabled/contractwallpaper.com b/sites-enabled/contractwallpaper.com
new file mode 120000
index 0000000..f862f06
--- /dev/null
+++ b/sites-enabled/contractwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/contractwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/corkwallcovering.com b/sites-enabled/corkwallcovering.com
new file mode 120000
index 0000000..8258123
--- /dev/null
+++ b/sites-enabled/corkwallcovering.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/corkwallcovering.com
\ No newline at end of file
diff --git a/sites-enabled/costarica.agentabrams.com b/sites-enabled/costarica.agentabrams.com
new file mode 120000
index 0000000..f9ac97b
--- /dev/null
+++ b/sites-enabled/costarica.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/costarica.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/customdigitalmurals.com b/sites-enabled/customdigitalmurals.com
new file mode 120000
index 0000000..aaa2b3e
--- /dev/null
+++ b/sites-enabled/customdigitalmurals.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/customdigitalmurals.com
\ No newline at end of file
diff --git a/sites-enabled/cypresawards.com b/sites-enabled/cypresawards.com
new file mode 120000
index 0000000..133b565
--- /dev/null
+++ b/sites-enabled/cypresawards.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/cypresawards.com
\ No newline at end of file
diff --git a/sites-enabled/deadradio.agentabrams.com b/sites-enabled/deadradio.agentabrams.com
new file mode 120000
index 0000000..eecc29c
--- /dev/null
+++ b/sites-enabled/deadradio.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/deadradio.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/default b/sites-enabled/default
new file mode 120000
index 0000000..ad35b83
--- /dev/null
+++ b/sites-enabled/default
@@ -0,0 +1 @@
+/etc/nginx/sites-available/default
\ No newline at end of file
diff --git a/sites-enabled/designerline.agentabrams.com b/sites-enabled/designerline.agentabrams.com
new file mode 120000
index 0000000..ccaf38f
--- /dev/null
+++ b/sites-enabled/designerline.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/designerline.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/designerlookbooks.com b/sites-enabled/designerlookbooks.com
new file mode 120000
index 0000000..b7ae33b
--- /dev/null
+++ b/sites-enabled/designerlookbooks.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/designerlookbooks.com
\ No newline at end of file
diff --git a/sites-enabled/designermagnetics.com.conf b/sites-enabled/designermagnetics.com.conf
new file mode 120000
index 0000000..c86a1f8
--- /dev/null
+++ b/sites-enabled/designermagnetics.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/designermagnetics.com.conf
\ No newline at end of file
diff --git a/sites-enabled/designerrepresentatives.com b/sites-enabled/designerrepresentatives.com
new file mode 120000
index 0000000..c33f08e
--- /dev/null
+++ b/sites-enabled/designerrepresentatives.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/designerrepresentatives.com
\ No newline at end of file
diff --git a/sites-enabled/designerssalesreps.com b/sites-enabled/designerssalesreps.com
new file mode 120000
index 0000000..d24601d
--- /dev/null
+++ b/sites-enabled/designerssalesreps.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/designerssalesreps.com
\ No newline at end of file
diff --git a/sites-enabled/designerwallcoverings.ai b/sites-enabled/designerwallcoverings.ai
new file mode 120000
index 0000000..a9e8f52
--- /dev/null
+++ b/sites-enabled/designerwallcoverings.ai
@@ -0,0 +1 @@
+/etc/nginx/sites-available/designerwallcoverings.ai
\ No newline at end of file
diff --git a/sites-enabled/designtradelive.com b/sites-enabled/designtradelive.com
new file mode 120000
index 0000000..2d52d44
--- /dev/null
+++ b/sites-enabled/designtradelive.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/designtradelive.com
\ No newline at end of file
diff --git a/sites-enabled/dw-admin-auth b/sites-enabled/dw-admin-auth
new file mode 120000
index 0000000..929c95f
--- /dev/null
+++ b/sites-enabled/dw-admin-auth
@@ -0,0 +1 @@
+/etc/nginx/sites-available/dw-admin-auth
\ No newline at end of file
diff --git a/sites-enabled/dw.greendomainbrokers.com b/sites-enabled/dw.greendomainbrokers.com
new file mode 120000
index 0000000..8c896bd
--- /dev/null
+++ b/sites-enabled/dw.greendomainbrokers.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/dw.greendomainbrokers.com
\ No newline at end of file
diff --git a/sites-enabled/embroideredwallpaper.com b/sites-enabled/embroideredwallpaper.com
new file mode 120000
index 0000000..c2164e4
--- /dev/null
+++ b/sites-enabled/embroideredwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/embroideredwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/etciemurals.com.conf b/sites-enabled/etciemurals.com.conf
new file mode 120000
index 0000000..90e0171
--- /dev/null
+++ b/sites-enabled/etciemurals.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/etciemurals.com.conf
\ No newline at end of file
diff --git a/sites-enabled/fabricfriday.com b/sites-enabled/fabricfriday.com
new file mode 120000
index 0000000..4fd44bb
--- /dev/null
+++ b/sites-enabled/fabricfriday.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/fabricfriday.com
\ No newline at end of file
diff --git a/sites-enabled/fabricfridays.com.conf b/sites-enabled/fabricfridays.com.conf
new file mode 120000
index 0000000..75eee9a
--- /dev/null
+++ b/sites-enabled/fabricfridays.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/fabricfridays.com.conf
\ No newline at end of file
diff --git a/sites-enabled/fabricwallpaper.com b/sites-enabled/fabricwallpaper.com
new file mode 120000
index 0000000..d5444b0
--- /dev/null
+++ b/sites-enabled/fabricwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/fabricwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/ffepurchasing.com b/sites-enabled/ffepurchasing.com
new file mode 120000
index 0000000..e900b64
--- /dev/null
+++ b/sites-enabled/ffepurchasing.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/ffepurchasing.com
\ No newline at end of file
diff --git a/sites-enabled/fireratedwallcovering.com.conf b/sites-enabled/fireratedwallcovering.com.conf
new file mode 120000
index 0000000..154957e
--- /dev/null
+++ b/sites-enabled/fireratedwallcovering.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/fireratedwallcovering.com.conf
\ No newline at end of file
diff --git a/sites-enabled/flocked.org.conf b/sites-enabled/flocked.org.conf
new file mode 120000
index 0000000..3fba224
--- /dev/null
+++ b/sites-enabled/flocked.org.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/flocked.org.conf
\ No newline at end of file
diff --git a/sites-enabled/flockedwallpaper.com b/sites-enabled/flockedwallpaper.com
new file mode 120000
index 0000000..4409b1a
--- /dev/null
+++ b/sites-enabled/flockedwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/flockedwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/forza.agentabrams.com b/sites-enabled/forza.agentabrams.com
new file mode 120000
index 0000000..dea310a
--- /dev/null
+++ b/sites-enabled/forza.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/forza.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/glassbeadedwallpaper.com b/sites-enabled/glassbeadedwallpaper.com
new file mode 120000
index 0000000..c2a8d9a
--- /dev/null
+++ b/sites-enabled/glassbeadedwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/glassbeadedwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/glitterwalls.com b/sites-enabled/glitterwalls.com
new file mode 120000
index 0000000..951866b
--- /dev/null
+++ b/sites-enabled/glitterwalls.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/glitterwalls.com
\ No newline at end of file
diff --git a/sites-enabled/gmail.agentabrams.com b/sites-enabled/gmail.agentabrams.com
new file mode 120000
index 0000000..df66e15
--- /dev/null
+++ b/sites-enabled/gmail.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/gmail.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/goldleafwallpaper.com b/sites-enabled/goldleafwallpaper.com
new file mode 120000
index 0000000..7726661
--- /dev/null
+++ b/sites-enabled/goldleafwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/goldleafwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/goodquestion.ai b/sites-enabled/goodquestion.ai
new file mode 120000
index 0000000..0b43898
--- /dev/null
+++ b/sites-enabled/goodquestion.ai
@@ -0,0 +1 @@
+/etc/nginx/sites-available/goodquestion.ai
\ No newline at end of file
diff --git a/sites-enabled/grassclothwallcovering.com.conf b/sites-enabled/grassclothwallcovering.com.conf
new file mode 120000
index 0000000..8008bb4
--- /dev/null
+++ b/sites-enabled/grassclothwallcovering.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/grassclothwallcovering.com.conf
\ No newline at end of file
diff --git a/sites-enabled/grassclothwallcoverings.com b/sites-enabled/grassclothwallcoverings.com
new file mode 120000
index 0000000..c4e6260
--- /dev/null
+++ b/sites-enabled/grassclothwallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/grassclothwallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/grassclothwallpaper.com b/sites-enabled/grassclothwallpaper.com
new file mode 120000
index 0000000..92ea8cf
--- /dev/null
+++ b/sites-enabled/grassclothwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/grassclothwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/greendomainbrokers.com b/sites-enabled/greendomainbrokers.com
new file mode 120000
index 0000000..350ddb4
--- /dev/null
+++ b/sites-enabled/greendomainbrokers.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/greendomainbrokers.com.temp
\ No newline at end of file
diff --git a/sites-enabled/greenwallcoverings.com b/sites-enabled/greenwallcoverings.com
new file mode 120000
index 0000000..4db0283
--- /dev/null
+++ b/sites-enabled/greenwallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/greenwallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/handcraftedwallpaper.com b/sites-enabled/handcraftedwallpaper.com
new file mode 120000
index 0000000..a0b6c66
--- /dev/null
+++ b/sites-enabled/handcraftedwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/handcraftedwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/handmadewallcovering.com.conf b/sites-enabled/handmadewallcovering.com.conf
new file mode 120000
index 0000000..f606213
--- /dev/null
+++ b/sites-enabled/handmadewallcovering.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/handmadewallcovering.com.conf
\ No newline at end of file
diff --git a/sites-enabled/healthcarewallpaper.com b/sites-enabled/healthcarewallpaper.com
new file mode 120000
index 0000000..0a03d3a
--- /dev/null
+++ b/sites-enabled/healthcarewallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/healthcarewallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/hollywoodwallcovering.com.conf b/sites-enabled/hollywoodwallcovering.com.conf
new file mode 120000
index 0000000..1626c6a
--- /dev/null
+++ b/sites-enabled/hollywoodwallcovering.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/hollywoodwallcovering.com.conf
\ No newline at end of file
diff --git a/sites-enabled/hollywoodwallcoverings.com b/sites-enabled/hollywoodwallcoverings.com
new file mode 120000
index 0000000..4292d54
--- /dev/null
+++ b/sites-enabled/hollywoodwallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/hollywoodwallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/hormuzy.agentabrams.com b/sites-enabled/hormuzy.agentabrams.com
new file mode 120000
index 0000000..1172c99
--- /dev/null
+++ b/sites-enabled/hormuzy.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/hormuzy.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/hospitalitydesignreps.com b/sites-enabled/hospitalitydesignreps.com
new file mode 120000
index 0000000..35e2b66
--- /dev/null
+++ b/sites-enabled/hospitalitydesignreps.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/hospitalitydesignreps.com
\ No newline at end of file
diff --git a/sites-enabled/hospitalitysalesagency.com.conf b/sites-enabled/hospitalitysalesagency.com.conf
new file mode 120000
index 0000000..2210d9d
--- /dev/null
+++ b/sites-enabled/hospitalitysalesagency.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/hospitalitysalesagency.com.conf
\ No newline at end of file
diff --git a/sites-enabled/hospitalitysalesrepresentatives.com b/sites-enabled/hospitalitysalesrepresentatives.com
new file mode 120000
index 0000000..d4ef221
--- /dev/null
+++ b/sites-enabled/hospitalitysalesrepresentatives.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/hospitalitysalesrepresentatives.com
\ No newline at end of file
diff --git a/sites-enabled/hospitalitywallcoverings.com b/sites-enabled/hospitalitywallcoverings.com
new file mode 120000
index 0000000..d03f0cd
--- /dev/null
+++ b/sites-enabled/hospitalitywallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/hospitalitywallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/hospitalitywallpaper.com b/sites-enabled/hospitalitywallpaper.com
new file mode 120000
index 0000000..75141c5
--- /dev/null
+++ b/sites-enabled/hospitalitywallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/hospitalitywallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/hotelwallcoverings.com b/sites-enabled/hotelwallcoverings.com
new file mode 120000
index 0000000..86e4537
--- /dev/null
+++ b/sites-enabled/hotelwallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/hotelwallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/ideas.agentabrams.com b/sites-enabled/ideas.agentabrams.com
new file mode 120000
index 0000000..80a5ce9
--- /dev/null
+++ b/sites-enabled/ideas.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/ideas.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/jutewallpaper.com b/sites-enabled/jutewallpaper.com
new file mode 120000
index 0000000..0e1f3f5
--- /dev/null
+++ b/sites-enabled/jutewallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/jutewallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/lacountyeats.com.conf b/sites-enabled/lacountyeats.com.conf
new file mode 120000
index 0000000..c89f06c
--- /dev/null
+++ b/sites-enabled/lacountyeats.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/lacountyeats.com.conf
\ No newline at end of file
diff --git a/sites-enabled/lang.bubbe.ai b/sites-enabled/lang.bubbe.ai
new file mode 120000
index 0000000..b854463
--- /dev/null
+++ b/sites-enabled/lang.bubbe.ai
@@ -0,0 +1 @@
+/etc/nginx/sites-available/lang.bubbe.ai
\ No newline at end of file
diff --git a/sites-enabled/latinogardens b/sites-enabled/latinogardens
new file mode 120000
index 0000000..799ea0f
--- /dev/null
+++ b/sites-enabled/latinogardens
@@ -0,0 +1 @@
+/etc/nginx/sites-available/latinogardens
\ No newline at end of file
diff --git a/sites-enabled/lawyers.agentabrams.com b/sites-enabled/lawyers.agentabrams.com
new file mode 120000
index 0000000..1adec85
--- /dev/null
+++ b/sites-enabled/lawyers.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/lawyers.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/leads.venturaclaw.com b/sites-enabled/leads.venturaclaw.com
new file mode 120000
index 0000000..f75a50b
--- /dev/null
+++ b/sites-enabled/leads.venturaclaw.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/leads.venturaclaw.com
\ No newline at end of file
diff --git a/sites-enabled/letsbegin.greendomainbrokers.com b/sites-enabled/letsbegin.greendomainbrokers.com
new file mode 120000
index 0000000..9b21348
--- /dev/null
+++ b/sites-enabled/letsbegin.greendomainbrokers.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/letsbegin.greendomainbrokers.com
\ No newline at end of file
diff --git a/sites-enabled/linenwallpaper.com b/sites-enabled/linenwallpaper.com
new file mode 120000
index 0000000..987d2a3
--- /dev/null
+++ b/sites-enabled/linenwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/linenwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/losangelesfabrics.com b/sites-enabled/losangelesfabrics.com
new file mode 120000
index 0000000..860b089
--- /dev/null
+++ b/sites-enabled/losangelesfabrics.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/losangelesfabrics.com
\ No newline at end of file
diff --git a/sites-enabled/losgardeners.conf b/sites-enabled/losgardeners.conf
new file mode 120000
index 0000000..19eeee0
--- /dev/null
+++ b/sites-enabled/losgardeners.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/losgardeners.conf
\ No newline at end of file
diff --git a/sites-enabled/madagascarwallpaper.com b/sites-enabled/madagascarwallpaper.com
new file mode 120000
index 0000000..ff34f76
--- /dev/null
+++ b/sites-enabled/madagascarwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/madagascarwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/malibuwallpaper.com.conf b/sites-enabled/malibuwallpaper.com.conf
new file mode 120000
index 0000000..31655c5
--- /dev/null
+++ b/sites-enabled/malibuwallpaper.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/malibuwallpaper.com.conf
\ No newline at end of file
diff --git a/sites-enabled/metallicwallpaper.com b/sites-enabled/metallicwallpaper.com
new file mode 120000
index 0000000..b0b4bfc
--- /dev/null
+++ b/sites-enabled/metallicwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/metallicwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/micawallpaper.com b/sites-enabled/micawallpaper.com
new file mode 120000
index 0000000..4d915d7
--- /dev/null
+++ b/sites-enabled/micawallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/micawallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/montereywallpaper.com.conf b/sites-enabled/montereywallpaper.com.conf
new file mode 120000
index 0000000..adee6c3
--- /dev/null
+++ b/sites-enabled/montereywallpaper.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/montereywallpaper.com.conf
\ No newline at end of file
diff --git a/sites-enabled/museumwallpaper.com b/sites-enabled/museumwallpaper.com
new file mode 120000
index 0000000..2846812
--- /dev/null
+++ b/sites-enabled/museumwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/museumwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/mylarwallpaper.com b/sites-enabled/mylarwallpaper.com
new file mode 120000
index 0000000..f9225b5
--- /dev/null
+++ b/sites-enabled/mylarwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/mylarwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/n8n.conf b/sites-enabled/n8n.conf
new file mode 120000
index 0000000..8871d1a
--- /dev/null
+++ b/sites-enabled/n8n.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/n8n.conf
\ No newline at end of file
diff --git a/sites-enabled/nationalpaperhangers.com b/sites-enabled/nationalpaperhangers.com
new file mode 120000
index 0000000..5ca0cfe
--- /dev/null
+++ b/sites-enabled/nationalpaperhangers.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/nationalpaperhangers.com
\ No newline at end of file
diff --git a/sites-enabled/naturaltextilewallpaper.com b/sites-enabled/naturaltextilewallpaper.com
new file mode 120000
index 0000000..b1e6cec
--- /dev/null
+++ b/sites-enabled/naturaltextilewallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/naturaltextilewallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/naturalwallcoverings.com b/sites-enabled/naturalwallcoverings.com
new file mode 120000
index 0000000..35954bc
--- /dev/null
+++ b/sites-enabled/naturalwallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/naturalwallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/naturalwalltextures.com.conf b/sites-enabled/naturalwalltextures.com.conf
new file mode 120000
index 0000000..40389f2
--- /dev/null
+++ b/sites-enabled/naturalwalltextures.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/naturalwalltextures.com.conf
\ No newline at end of file
diff --git a/sites-enabled/novasuede.com b/sites-enabled/novasuede.com
new file mode 120000
index 0000000..a820c92
--- /dev/null
+++ b/sites-enabled/novasuede.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/novasuede.com
\ No newline at end of file
diff --git a/sites-enabled/pairs.designerwallcoverings.com b/sites-enabled/pairs.designerwallcoverings.com
new file mode 120000
index 0000000..2c28858
--- /dev/null
+++ b/sites-enabled/pairs.designerwallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/pairs.designerwallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/pastelwallpaper.com b/sites-enabled/pastelwallpaper.com
new file mode 120000
index 0000000..2663822
--- /dev/null
+++ b/sites-enabled/pastelwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/pastelwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/patterndesignlab.com.conf b/sites-enabled/patterndesignlab.com.conf
new file mode 120000
index 0000000..bb7cfcf
--- /dev/null
+++ b/sites-enabled/patterndesignlab.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/patterndesignlab.com.conf
\ No newline at end of file
diff --git a/sites-enabled/philipperomano.com b/sites-enabled/philipperomano.com
new file mode 120000
index 0000000..6a0d1bc
--- /dev/null
+++ b/sites-enabled/philipperomano.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/philipperomano.com
\ No newline at end of file
diff --git a/sites-enabled/philliperomano.com.conf b/sites-enabled/philliperomano.com.conf
new file mode 120000
index 0000000..b983268
--- /dev/null
+++ b/sites-enabled/philliperomano.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/philliperomano.com.conf
\ No newline at end of file
diff --git a/sites-enabled/pitch.sdcc.agentabrams.com b/sites-enabled/pitch.sdcc.agentabrams.com
new file mode 120000
index 0000000..77f1037
--- /dev/null
+++ b/sites-enabled/pitch.sdcc.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/pitch.sdcc.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/pm.greendomainbrokers.com b/sites-enabled/pm.greendomainbrokers.com
new file mode 120000
index 0000000..03866f3
--- /dev/null
+++ b/sites-enabled/pm.greendomainbrokers.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/pm.greendomainbrokers.com
\ No newline at end of file
diff --git a/sites-enabled/printmurals.com.conf b/sites-enabled/printmurals.com.conf
new file mode 120000
index 0000000..abad7af
--- /dev/null
+++ b/sites-enabled/printmurals.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/printmurals.com.conf
\ No newline at end of file
diff --git a/sites-enabled/raffiawallcoverings.com b/sites-enabled/raffiawallcoverings.com
new file mode 120000
index 0000000..5434807
--- /dev/null
+++ b/sites-enabled/raffiawallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/raffiawallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/raffiawalls.com b/sites-enabled/raffiawalls.com
new file mode 120000
index 0000000..20d666c
--- /dev/null
+++ b/sites-enabled/raffiawalls.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/raffiawalls.com
\ No newline at end of file
diff --git a/sites-enabled/recycledwallpaper.com b/sites-enabled/recycledwallpaper.com
new file mode 120000
index 0000000..ad59a45
--- /dev/null
+++ b/sites-enabled/recycledwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/recycledwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/restaurantfabrics.com.conf b/sites-enabled/restaurantfabrics.com.conf
new file mode 120000
index 0000000..0584349
--- /dev/null
+++ b/sites-enabled/restaurantfabrics.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/restaurantfabrics.com.conf
\ No newline at end of file
diff --git a/sites-enabled/restaurantmurals.com.conf b/sites-enabled/restaurantmurals.com.conf
new file mode 120000
index 0000000..7d4e7a8
--- /dev/null
+++ b/sites-enabled/restaurantmurals.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/restaurantmurals.com.conf
\ No newline at end of file
diff --git a/sites-enabled/restaurantwallpaper.com b/sites-enabled/restaurantwallpaper.com
new file mode 120000
index 0000000..3b688fc
--- /dev/null
+++ b/sites-enabled/restaurantwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/restaurantwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/restorationwallpaper.com b/sites-enabled/restorationwallpaper.com
new file mode 120000
index 0000000..677c5e3
--- /dev/null
+++ b/sites-enabled/restorationwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/restorationwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/retrowalls.com b/sites-enabled/retrowalls.com
new file mode 120000
index 0000000..d1d043f
--- /dev/null
+++ b/sites-enabled/retrowalls.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/retrowalls.com
\ No newline at end of file
diff --git a/sites-enabled/roomsettings.com.conf b/sites-enabled/roomsettings.com.conf
new file mode 120000
index 0000000..5500193
--- /dev/null
+++ b/sites-enabled/roomsettings.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/roomsettings.com.conf
\ No newline at end of file
diff --git a/sites-enabled/saloonwallpaper.com b/sites-enabled/saloonwallpaper.com
new file mode 120000
index 0000000..33a6721
--- /dev/null
+++ b/sites-enabled/saloonwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/saloonwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/screenprintedwallpaper.com b/sites-enabled/screenprintedwallpaper.com
new file mode 120000
index 0000000..44334b9
--- /dev/null
+++ b/sites-enabled/screenprintedwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/screenprintedwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/sdcc.agentabrams.com b/sites-enabled/sdcc.agentabrams.com
new file mode 120000
index 0000000..443cf4d
--- /dev/null
+++ b/sites-enabled/sdcc.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/sdcc.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/sdccanalysis.agentabrams.com b/sites-enabled/sdccanalysis.agentabrams.com
new file mode 120000
index 0000000..c116eb4
--- /dev/null
+++ b/sites-enabled/sdccanalysis.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/sdccanalysis.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/selfadhesivewallpaper.com b/sites-enabled/selfadhesivewallpaper.com
new file mode 120000
index 0000000..63fc41e
--- /dev/null
+++ b/sites-enabled/selfadhesivewallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/selfadhesivewallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/sheltermagazines.com.conf b/sites-enabled/sheltermagazines.com.conf
new file mode 120000
index 0000000..1c3e50c
--- /dev/null
+++ b/sites-enabled/sheltermagazines.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/sheltermagazines.com.conf
\ No newline at end of file
diff --git a/sites-enabled/silkwallcoverings.com b/sites-enabled/silkwallcoverings.com
new file mode 120000
index 0000000..b1af613
--- /dev/null
+++ b/sites-enabled/silkwallcoverings.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/silkwallcoverings.com
\ No newline at end of file
diff --git a/sites-enabled/silkwallpaper.com b/sites-enabled/silkwallpaper.com
new file mode 120000
index 0000000..b2ee900
--- /dev/null
+++ b/sites-enabled/silkwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/silkwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/silverleafwallpaper.com b/sites-enabled/silverleafwallpaper.com
new file mode 120000
index 0000000..1838df8
--- /dev/null
+++ b/sites-enabled/silverleafwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/silverleafwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/specifywallpaper.com.conf b/sites-enabled/specifywallpaper.com.conf
new file mode 120000
index 0000000..f4075e6
--- /dev/null
+++ b/sites-enabled/specifywallpaper.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/specifywallpaper.com.conf
\ No newline at end of file
diff --git a/sites-enabled/starsofdesign.com b/sites-enabled/starsofdesign.com
new file mode 120000
index 0000000..22c8286
--- /dev/null
+++ b/sites-enabled/starsofdesign.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/starsofdesign.com
\ No newline at end of file
diff --git a/sites-enabled/stevenabramsphotography.com.conf b/sites-enabled/stevenabramsphotography.com.conf
new file mode 120000
index 0000000..a762276
--- /dev/null
+++ b/sites-enabled/stevenabramsphotography.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/stevenabramsphotography.com.conf
\ No newline at end of file
diff --git a/sites-enabled/stringwallpaper.com b/sites-enabled/stringwallpaper.com
new file mode 120000
index 0000000..027b15c
--- /dev/null
+++ b/sites-enabled/stringwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/stringwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/suedewallpaper.com b/sites-enabled/suedewallpaper.com
new file mode 120000
index 0000000..a725c0c
--- /dev/null
+++ b/sites-enabled/suedewallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/suedewallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/textiletuesday.com b/sites-enabled/textiletuesday.com
new file mode 120000
index 0000000..95fc7f2
--- /dev/null
+++ b/sites-enabled/textiletuesday.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/textiletuesday.com
\ No newline at end of file
diff --git a/sites-enabled/textilewallpaper.com b/sites-enabled/textilewallpaper.com
new file mode 120000
index 0000000..b68455a
--- /dev/null
+++ b/sites-enabled/textilewallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/textilewallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/thehotelwallpaper.com.conf b/sites-enabled/thehotelwallpaper.com.conf
new file mode 120000
index 0000000..e3519e6
--- /dev/null
+++ b/sites-enabled/thehotelwallpaper.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/thehotelwallpaper.com.conf
\ No newline at end of file
diff --git a/sites-enabled/thesetdecorator.com b/sites-enabled/thesetdecorator.com
new file mode 120000
index 0000000..f8307b6
--- /dev/null
+++ b/sites-enabled/thesetdecorator.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/thesetdecorator.com
\ No newline at end of file
diff --git a/sites-enabled/traditionalwhimsy.com.conf b/sites-enabled/traditionalwhimsy.com.conf
new file mode 120000
index 0000000..8f71731
--- /dev/null
+++ b/sites-enabled/traditionalwhimsy.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/traditionalwhimsy.com.conf
\ No newline at end of file
diff --git a/sites-enabled/typo-redirect-1800wallpapers.com b/sites-enabled/typo-redirect-1800wallpapers.com
new file mode 120000
index 0000000..fc56357
--- /dev/null
+++ b/sites-enabled/typo-redirect-1800wallpapers.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/typo-redirect-1800wallpapers.com
\ No newline at end of file
diff --git a/sites-enabled/typo-redirect-800wallpaper.com b/sites-enabled/typo-redirect-800wallpaper.com
new file mode 120000
index 0000000..4b7cef4
--- /dev/null
+++ b/sites-enabled/typo-redirect-800wallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/typo-redirect-800wallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/typo-redirect-designerwallcover.com b/sites-enabled/typo-redirect-designerwallcover.com
new file mode 120000
index 0000000..65a4048
--- /dev/null
+++ b/sites-enabled/typo-redirect-designerwallcover.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/typo-redirect-designerwallcover.com
\ No newline at end of file
diff --git a/sites-enabled/typo-redirect-designerwallcovering.com b/sites-enabled/typo-redirect-designerwallcovering.com
new file mode 120000
index 0000000..86030d7
--- /dev/null
+++ b/sites-enabled/typo-redirect-designerwallcovering.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/typo-redirect-designerwallcovering.com
\ No newline at end of file
diff --git a/sites-enabled/unitedstateswallpaper.com.conf b/sites-enabled/unitedstateswallpaper.com.conf
new file mode 120000
index 0000000..ffda021
--- /dev/null
+++ b/sites-enabled/unitedstateswallpaper.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/unitedstateswallpaper.com.conf
\ No newline at end of file
diff --git a/sites-enabled/venturablvd.agentabrams.com b/sites-enabled/venturablvd.agentabrams.com
new file mode 120000
index 0000000..f02a88a
--- /dev/null
+++ b/sites-enabled/venturablvd.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/venturablvd.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/venturaclaw.com b/sites-enabled/venturaclaw.com
new file mode 120000
index 0000000..272d658
--- /dev/null
+++ b/sites-enabled/venturaclaw.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/venturaclaw.com
\ No newline at end of file
diff --git a/sites-enabled/videos.agentabrams.com b/sites-enabled/videos.agentabrams.com
new file mode 120000
index 0000000..419e560
--- /dev/null
+++ b/sites-enabled/videos.agentabrams.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/videos.agentabrams.com
\ No newline at end of file
diff --git a/sites-enabled/vinylwallpaper.com b/sites-enabled/vinylwallpaper.com
new file mode 120000
index 0000000..bca9624
--- /dev/null
+++ b/sites-enabled/vinylwallpaper.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/vinylwallpaper.com
\ No newline at end of file
diff --git a/sites-enabled/wallco.ai b/sites-enabled/wallco.ai
new file mode 120000
index 0000000..1c228c8
--- /dev/null
+++ b/sites-enabled/wallco.ai
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallco.ai
\ No newline at end of file
diff --git a/sites-enabled/wallcovering.net.conf b/sites-enabled/wallcovering.net.conf
new file mode 120000
index 0000000..dbf8006
--- /dev/null
+++ b/sites-enabled/wallcovering.net.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallcovering.net.conf
\ No newline at end of file
diff --git a/sites-enabled/wallpapercanada.com b/sites-enabled/wallpapercanada.com
new file mode 120000
index 0000000..b8ba52d
--- /dev/null
+++ b/sites-enabled/wallpapercanada.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpapercanada.com
\ No newline at end of file
diff --git a/sites-enabled/wallpapercontractor.com b/sites-enabled/wallpapercontractor.com
new file mode 120000
index 0000000..f758afd
--- /dev/null
+++ b/sites-enabled/wallpapercontractor.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpapercontractor.com
\ No newline at end of file
diff --git a/sites-enabled/wallpaperdefinitions.com b/sites-enabled/wallpaperdefinitions.com
new file mode 120000
index 0000000..99f3ee9
--- /dev/null
+++ b/sites-enabled/wallpaperdefinitions.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperdefinitions.com
\ No newline at end of file
diff --git a/sites-enabled/wallpaperdictionary.com b/sites-enabled/wallpaperdictionary.com
new file mode 120000
index 0000000..ccb0006
--- /dev/null
+++ b/sites-enabled/wallpaperdictionary.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperdictionary.com
\ No newline at end of file
diff --git a/sites-enabled/wallpaperdistributors.com b/sites-enabled/wallpaperdistributors.com
new file mode 120000
index 0000000..912e385
--- /dev/null
+++ b/sites-enabled/wallpaperdistributors.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperdistributors.com
\ No newline at end of file
diff --git a/sites-enabled/wallpaperestimator.com b/sites-enabled/wallpaperestimator.com
new file mode 120000
index 0000000..b1fe60c
--- /dev/null
+++ b/sites-enabled/wallpaperestimator.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperestimator.com
\ No newline at end of file
diff --git a/sites-enabled/wallpaperexports.com.conf b/sites-enabled/wallpaperexports.com.conf
new file mode 120000
index 0000000..8fdacd1
--- /dev/null
+++ b/sites-enabled/wallpaperexports.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperexports.com.conf
\ No newline at end of file
diff --git a/sites-enabled/wallpaperfromthe80s.com.conf b/sites-enabled/wallpaperfromthe80s.com.conf
new file mode 120000
index 0000000..f15f86f
--- /dev/null
+++ b/sites-enabled/wallpaperfromthe80s.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperfromthe80s.com.conf
\ No newline at end of file
diff --git a/sites-enabled/wallpaperglossary.com b/sites-enabled/wallpaperglossary.com
new file mode 120000
index 0000000..cee0f54
--- /dev/null
+++ b/sites-enabled/wallpaperglossary.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperglossary.com
\ No newline at end of file
diff --git a/sites-enabled/wallpaperhistory.com b/sites-enabled/wallpaperhistory.com
new file mode 120000
index 0000000..72c1272
--- /dev/null
+++ b/sites-enabled/wallpaperhistory.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperhistory.com
\ No newline at end of file
diff --git a/sites-enabled/wallpaperny.com.conf b/sites-enabled/wallpaperny.com.conf
new file mode 120000
index 0000000..9a1beae
--- /dev/null
+++ b/sites-enabled/wallpaperny.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperny.com.conf
\ No newline at end of file
diff --git a/sites-enabled/wallpaperpurchasing.com.conf b/sites-enabled/wallpaperpurchasing.com.conf
new file mode 120000
index 0000000..eeb1846
--- /dev/null
+++ b/sites-enabled/wallpaperpurchasing.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperpurchasing.com.conf
\ No newline at end of file
diff --git a/sites-enabled/wallpapersback.com b/sites-enabled/wallpapersback.com
new file mode 120000
index 0000000..4cfc335
--- /dev/null
+++ b/sites-enabled/wallpapersback.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpapersback.com
\ No newline at end of file
diff --git a/sites-enabled/wallpaperwednesday.com b/sites-enabled/wallpaperwednesday.com
new file mode 120000
index 0000000..44a9d2a
--- /dev/null
+++ b/sites-enabled/wallpaperwednesday.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperwednesday.com
\ No newline at end of file
diff --git a/sites-enabled/wallpaperweekly.com.conf b/sites-enabled/wallpaperweekly.com.conf
new file mode 120000
index 0000000..2312216
--- /dev/null
+++ b/sites-enabled/wallpaperweekly.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallpaperweekly.com.conf
\ No newline at end of file
diff --git a/sites-enabled/wallsandfabrics.com b/sites-enabled/wallsandfabrics.com
new file mode 120000
index 0000000..ec0593f
--- /dev/null
+++ b/sites-enabled/wallsandfabrics.com
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wallsandfabrics.com
\ No newline at end of file
diff --git a/sites-enabled/wc01wallcoverings.com.conf b/sites-enabled/wc01wallcoverings.com.conf
new file mode 120000
index 0000000..2aae67a
--- /dev/null
+++ b/sites-enabled/wc01wallcoverings.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wc01wallcoverings.com.conf
\ No newline at end of file
diff --git a/sites-enabled/wholivedthere.com.conf b/sites-enabled/wholivedthere.com.conf
new file mode 120000
index 0000000..60ac5f5
--- /dev/null
+++ b/sites-enabled/wholivedthere.com.conf
@@ -0,0 +1 @@
+/etc/nginx/sites-available/wholivedthere.com.conf
\ No newline at end of file
(oldest)
·
back to Kamatera Nginx
·
remove backup nginx config files and tighten .gitignore 6fbe74f →