#!/bin/sh # build.sh — merges v2fly/domain-list-community, Loyalsoldier's overlay, # hydraponique/roscomvpn-geosite, and your own custom data into one geosite.dat # # Run inside the provided Docker image (recommended, no local Go/git needed): # docker build -t geosite-builder . # docker run --rm -v "$(pwd)/output:/work/output" geosite-builder # # Or locally if you already have Go + git installed: # ./build.sh set -eu WORKDIR="$(pwd)/work" OUTDIR="$(pwd)/output" CUSTOM_DIR="$(pwd)/data-custom" echo "==> Preparing workspace" rm -rf "$WORKDIR" mkdir -p "$WORKDIR" "$OUTDIR" cd "$WORKDIR" echo "==> Cloning v2fly/domain-list-community (base compiler + ~1500 stock categories -" echo " already covers openai, anthropic, netflix, whatsapp, discord, signal, paypal," echo " linkedin, reddit, spotify, facebook, instagram, twitter, roblox, binance, bbc," echo " archive, viber, rutracker, speedtest, notion, figma, jetbrains, adobe, intel," echo " autodesk, cursor, vercel, github, google, youtube, telegram, and more)" git clone --depth 1 https://github.com/v2fly/domain-list-community.git v2fly echo "==> Cloning hydraponique/roscomvpn-geosite (RU-specific categories)" git clone --depth 1 https://github.com/hydraponique/roscomvpn-geosite.git roscomvpn-src echo "==> Merging data directories" mkdir -p v2fly/data/roscomvpn v2fly/data/custom cp -r roscomvpn-src/data/. v2fly/data/roscomvpn/ # Only genuinely missing from v2fly stock (verified by testing): replicate, # avast, cointelegraph, snapchat. Everything else is already covered upstream. if [ -d "$CUSTOM_DIR" ]; then cp -r "$CUSTOM_DIR/." v2fly/data/custom/ fi echo "==> Building merged geosite.dat" cd v2fly go run main.go if [ ! -f dlc.dat ]; then echo "ERROR: build did not produce dlc.dat — check output above for errors" exit 1 fi cp dlc.dat "$OUTDIR/geosite.dat" echo "==> Done. Output: $OUTDIR/geosite.dat" ls -lh "$OUTDIR/geosite.dat"