Full mirror proxy for darkwebinformer.com — built with Node.js/Express.
Fixes duplicate content & canonical URL issues for Google Search Console indexing.
- Full website mirror — proxies all pages, assets, CSS, JS, images
- SEO canonical fix — rewrites
<link rel="canonical">,og:url,twitter:urlto YOUR domain - Domain rewriting — all internal links, sitemaps, and references point to your mirror domain
- Custom robots.txt — serves your own sitemap URLs
- Redirect handling — follows & rewrites 301/302 redirects
- Cookie domain rewrite — cookies work on your domain
- Compression — gzip output for fast delivery
- Deploy anywhere — Railway, Render, EasyPanel, VPS, Docker
| Variable | Required | Default | Description |
|---|---|---|---|
SOURCE_HOST |
No | darkwebinformer.com |
The origin site to mirror |
MIRROR_HOST |
Yes | (auto-detect) | Your mirror domain, e.g. yourdomain.com |
PORT |
No | 3000 |
Server port |
Important: Set
MIRROR_HOSTto your actual domain for proper canonical URLs.
- Push this repo to GitHub
- Go to railway.app → New Project → Deploy from GitHub
- Set environment variables:
MIRROR_HOST=yourdomain.com PORT=3000 - Add a custom domain in Railway settings
- Done — Railway auto-detects the Dockerfile
- Push this repo to GitHub
- Go to render.com → New Web Service → connect your repo
- Settings:
- Environment: Docker
- Plan: Free or Starter
- Add environment variables:
MIRROR_HOST=yourdomain.com - Add a custom domain in Render settings
- In EasyPanel, create a new App → choose Docker (from Git)
- Connect your GitHub repo
- Set environment variables:
MIRROR_HOST=yourdomain.com PORT=3000 - Configure the domain/proxy in EasyPanel
- Deploy
# Clone the repo
git clone https://github.com/yourusername/DarkwebInfo.git
cd DarkwebInfo
# Build and run
docker build -t darkweb-mirror .
docker run -d \
--name darkweb-mirror \
-p 80:3000 \
-e MIRROR_HOST=yourdomain.com \
--restart unless-stopped \
darkweb-mirrorserver {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1: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;
proxy_buffering off;
}
}# Install Node.js 20+
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
# Clone & install
git clone https://github.com/yourusername/DarkwebInfo.git
cd DarkwebInfo
npm install --omit=dev
# Run with environment variables
MIRROR_HOST=yourdomain.com PORT=3000 node server.js
# Or use PM2 for production
npm install -g pm2
MIRROR_HOST=yourdomain.com PORT=3000 pm2 start server.js --name darkweb-mirror
pm2 save
pm2 startupWhen you mirror a site, Google sees two copies of the same page with different URLs. Google picks one as the "canonical" and ignores the other.
This proxy fixes it by:
- Removing all original
<link rel="canonical">tags that point todarkwebinformer.com - Injecting a new canonical tag pointing to your mirror domain
- Rewriting
og:urlandtwitter:urlmeta tags - Rewriting all internal links, sitemap URLs, and domain references
- Serving a custom
robots.txtwith your sitemap URLs
After deploying, re-submit your sitemap in Google Search Console and request re-indexing.