diff --git a/.github/workflows/bot.yml b/.github/workflows/bot.yml deleted file mode 100644 index 4c68ceaa2..000000000 --- a/.github/workflows/bot.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Helper - -on: - pull_request: - types: - - closed - -jobs: - instructions: - name: instructions - runs-on: ubuntu-latest - steps: - - run: curl https://notify-api.is-a.dev/pr/merged/${{ github.event.pull_request.number }} - if: github.event.action == 'closed' && github.event.pull_request.merged == true -# - uses: actions/checkout@v2 -# - name: Comment -# if: github.event.action == 'closed' && github.event.pull_request.merged == true -# uses: actions/github-script@v3 -# with: -# github-token: ${{secrets.GITHUB_TOKEN}} -# script: | -# const { hasLabel } = require(`${process.env.GITHUB_WORKSPACE}/scripts/action-utils.js`); -# const { instructions } = require(`${process.env.GITHUB_WORKSPACE}/scripts/reply.js`); -# if (hasLabel(context, 'domain')) -# console.log('Domain'); -# await instructions(context, github); diff --git a/Dockerfile b/Dockerfile index d5a4de6b7..990a6e0b2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,17 +5,18 @@ RUN ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime RUN apt-get -y update RUN apt-get install -y nodejs npm curl wget dnsutils certbot --fix-missing +RUN apt-get install -y unzip -RUN npm i -g n yarn && n 15.11 +RUN bash -c "curl -fsSL https://bun.sh/install | bash -s 'bun-v1.0.15'" -RUN node -v +RUN ~/.bun/bin/bun -v WORKDIR /opt/app -COPY yarn.lock . +COPY bun.lockb . COPY package.json . -RUN yarn install +RUN ~/.bun/bin/bun install CMD ["sh", "-c", "cp -r node_modules code; cd code; tail -f /dev/null"] diff --git a/domains/_discord.jirafey.json b/domains/_discord.jirafey.json new file mode 100644 index 000000000..363a429d5 --- /dev/null +++ b/domains/_discord.jirafey.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "jirafey", + "email": "jirafey@tuta.io" + }, + "record": { + "TXT": "dh=3c80d94ed181b223255b5fbf35f8fda6a402058f" + } +} diff --git a/domains/notify-api.json b/domains/_github-challenge-is-a-dev-org.json similarity index 73% rename from domains/notify-api.json rename to domains/_github-challenge-is-a-dev-org.json index ef2dd2748..db1e677a9 100644 --- a/domains/notify-api.json +++ b/domains/_github-challenge-is-a-dev-org.json @@ -5,6 +5,6 @@ }, "record": { - "CNAME": "dns.beadman-network.com" + "TXT": "2c9dfbe7c8" } } diff --git a/domains/_github-pages-challenge-is-a-dev.team.json b/domains/_github-pages-challenge-is-a-dev.team.json new file mode 100644 index 000000000..d7e139dbd --- /dev/null +++ b/domains/_github-pages-challenge-is-a-dev.team.json @@ -0,0 +1,10 @@ +{ + "owner": { + "username": "is-a-dev", + "email": "phenax5@gmail.com" + }, + + "record": { + "TXT": "c551c059fb167540ec0498d9011556" + } +} diff --git a/domains/a-j.json b/domains/a-j.json new file mode 100644 index 000000000..17469e2f2 --- /dev/null +++ b/domains/a-j.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "alijafari-gd", + "email": "ali.jafari.sn@gmail.com" + }, + "record": { + "URL": "https://alijafari.is-a.dev" + } +} diff --git a/domains/aayank.json b/domains/aayank.json new file mode 100644 index 000000000..269b5017e --- /dev/null +++ b/domains/aayank.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "aayank13", + "email": "aayank1306@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/alijafari.json b/domains/alijafari.json new file mode 100644 index 000000000..e638a8338 --- /dev/null +++ b/domains/alijafari.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "alijafari-gd", + "email": "ali.jafari.sn@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/antoniod.json b/domains/antoniod.json new file mode 100644 index 000000000..3178c5a5f --- /dev/null +++ b/domains/antoniod.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "well-it-wasnt-me", + "email": "dangeloantonio179@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/attafriski.json b/domains/attafriski.json new file mode 100644 index 000000000..0c2d87856 --- /dev/null +++ b/domains/attafriski.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "attaf-riski", + "email": "atafriski27@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/bdays.suki.json b/domains/bdays.suki.json new file mode 100644 index 000000000..2f1cd119d --- /dev/null +++ b/domains/bdays.suki.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "SukiPlayz", + "email": "sukimayoo@outlook.com" + }, + "record": { + "A": ["69.30.249.53"] + } + } diff --git a/domains/blek.json b/domains/blek.json new file mode 100644 index 000000000..df17670cf --- /dev/null +++ b/domains/blek.json @@ -0,0 +1,11 @@ +{ + "description": "blek is a dev", + "owner": { + "username": "b1ek", + "email": "me@blek.codes" + }, + "record": { + "A": [ "185.130.226.115" ], + "AAAA": [ "2a05:b40:0:570:4563:92af:9a56:7fc8" ] + } +} diff --git a/domains/bot.dracx.json b/domains/bot.dracx.json new file mode 100644 index 000000000..68f770565 --- /dev/null +++ b/domains/bot.dracx.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "DarindaDraX", + "email": "123kishanvish@gmail.com" + }, + "record": { + "A": ["69.30.249.53"] + } +} diff --git a/domains/catboy.json b/domains/catboy.json index cd13b4c2b..9a451ccdf 100644 --- a/domains/catboy.json +++ b/domains/catboy.json @@ -1,12 +1,13 @@ -{ - "owner": { - "username": "SlycIsACatboy", - "email": "noahhz942@gmail.com", - "discord": "5.s3" - }, - "record": { - "A": [ - "137.184.119.127" - ] - } - } \ No newline at end of file +{ + "owner": { + "username": "SlycIsACatboy", + "email": "noahhz942@gmail.com" + }, + "record": { + "A": [ + "137.184.119.127" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} diff --git a/domains/college-front.json b/domains/college-front.json new file mode 100644 index 000000000..2dfc9c789 --- /dev/null +++ b/domains/college-front.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "amir-mohammad-HP", + "email": "hamidipour97@gmail.com" + }, + "record": { + "CNAME": "front.collegesaz.ir" + } +} diff --git a/domains/daku.json b/domains/daku.json new file mode 100644 index 000000000..02295d6f4 --- /dev/null +++ b/domains/daku.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "DakUOfficial", + "email": "dominiku718@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/davin.json b/domains/davin.json new file mode 100644 index 000000000..63ee9e5ee --- /dev/null +++ b/domains/davin.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Rage65", + "email": "123thetechguy@gmail.com" + }, + "record": { + "CNAME": "deva65.duckdns.org" + } +} diff --git a/domains/deepankar.json b/domains/deepankar.json new file mode 100644 index 000000000..1ab1be648 --- /dev/null +++ b/domains/deepankar.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "Deepankar-Siddharth", + "email": "deepankarsiddharthoff@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/divyanshu.json b/domains/divyanshu.json new file mode 100644 index 000000000..b774c1d56 --- /dev/null +++ b/domains/divyanshu.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "Divyanshu9822", + "email": "divyanshu9871@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/divyanshuprasad.json b/domains/divyanshuprasad.json new file mode 100644 index 000000000..b774c1d56 --- /dev/null +++ b/domains/divyanshuprasad.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "Divyanshu9822", + "email": "divyanshu9871@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/doraemon.json b/domains/doraemon.json new file mode 100644 index 000000000..d55e38eee --- /dev/null +++ b/domains/doraemon.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "LegendOP1041", + "email": "maillegendop@gmail.com", + "discord": "1056531806763102218" + }, + + "record": { + "A": ["69.30.249.53"] + } + } + \ No newline at end of file diff --git a/domains/droiders.json b/domains/droiders.json new file mode 100644 index 000000000..2c3e62741 --- /dev/null +++ b/domains/droiders.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "abdessattarElyagoubi", + "email": "abdeldroid2@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/floofy.exe.json b/domains/floofy.exe.json new file mode 100644 index 000000000..ea3617d81 --- /dev/null +++ b/domains/floofy.exe.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "floofywork", + "email": "floofywork@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/foreskin.json b/domains/foreskin.json deleted file mode 100644 index c4a2e2065..000000000 --- a/domains/foreskin.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "owner": { - "username": "disguisedfoxx", - "email": "zzaffserverowner@gmail.com" - }, - "record": { - "A": ["217.174.245.249", "51.161.54.161"], - "MX": ["hosts.is-a.dev"], - "TXT": "v=spf1 a mx ip4:217.174.245.249 ~all" - } -} \ No newline at end of file diff --git a/domains/geekysudhir.json b/domains/geekysudhir.json index 79a04053c..1aa160a39 100644 --- a/domains/geekysudhir.json +++ b/domains/geekysudhir.json @@ -1,12 +1,14 @@ { - "owner": { - "username": "GeekySudhir", - "email": "sdhrsingh271@gmail.com", - "discord": "760602820033904641" - }, - - "record": { - "CNAME": "geekysudhir.is-a.dev" - } + "owner": { + "username": "GeekySudhir", + "email": "sdhrsingh271@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "a608d9751f86d011d10a8d58ca5a93" } - \ No newline at end of file +} diff --git a/domains/giocoliere.json b/domains/giocoliere.json new file mode 100644 index 000000000..10770b706 --- /dev/null +++ b/domains/giocoliere.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "giocoliere", + "email": "simcrigjeki@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/heydaristo.json b/domains/heydaristo.json new file mode 100644 index 000000000..6e6f9e1ef --- /dev/null +++ b/domains/heydaristo.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "heydaristo", + "email": "heydaristo@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/huyduc.json b/domains/huyduc.json new file mode 100644 index 000000000..77392e85c --- /dev/null +++ b/domains/huyduc.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "buihuyduc123", + "email": "buihuyduckn@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/johnroylapida.json b/domains/johnroylapida.json new file mode 100644 index 000000000..cef9bb5be --- /dev/null +++ b/domains/johnroylapida.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "SnoopyCodeX", + "email": "johnroy062102calimlim@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/jpstore.json b/domains/jpstore.json new file mode 100644 index 000000000..ea2932833 --- /dev/null +++ b/domains/jpstore.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "JonnycatMeow", + "email": "jonnygomez156@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/kacper.json b/domains/kacper.json new file mode 100644 index 000000000..d8f6a62e6 --- /dev/null +++ b/domains/kacper.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "flink1337", + "email": "haviksior@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/landyn.json b/domains/landyn.json new file mode 100644 index 000000000..2650ecc81 --- /dev/null +++ b/domains/landyn.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "2131guhfgjh", + "email": "themoserhousehold@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/lavalink.trung.json b/domains/lavalink.trung.json new file mode 100644 index 000000000..c372c8070 --- /dev/null +++ b/domains/lavalink.trung.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "vuthanhtrung2010", + "email": "vuthanhtrungsuper@gmail.com" + }, + "record": { + "A": ["69.30.249.53"] + } +} diff --git a/domains/leeiz.json b/domains/leeiz.json new file mode 100644 index 000000000..0f328d30f --- /dev/null +++ b/domains/leeiz.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "Leizreal", + "email": "ridhokur2806@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/leizreal.json b/domains/leizreal.json new file mode 100644 index 000000000..becac851f --- /dev/null +++ b/domains/leizreal.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "Leizreal", + "email": "ridhokur2806@gmail.com" + }, + "record": { + "A": ["217.174.245.249"], + "AAAA": ["2a00:da00:1800:83a4::1"], + "MX": ["hosts.is-a.dev"], + "TXT": "v=spf1 a mx ip4:217.174.245.249 ~all" + } +} \ No newline at end of file diff --git a/domains/lucen.json b/domains/lucen.json new file mode 100644 index 000000000..26aa4ebb9 --- /dev/null +++ b/domains/lucen.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "lucenstuff", + "email": "lucentiniagustin@hotmail.com", + "discord": "202467820225822720" + }, + + "record": { + "CNAME": "lucendev.onrender.com" + } + } + \ No newline at end of file diff --git a/domains/luisandre.json b/domains/luisandre.json new file mode 100644 index 000000000..7dc1ca316 --- /dev/null +++ b/domains/luisandre.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "luis073094", + "email": "luis073094@gmail.com" + }, + "record": { + "URL": "https://portafolio-ctll.onrender.com" + } +} diff --git a/domains/lunar.json b/domains/lunar.json new file mode 100644 index 000000000..67b3b2fb3 --- /dev/null +++ b/domains/lunar.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "Lunarate", + "email": "veershrivastava1011@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/mahi.json b/domains/mahi.json new file mode 100644 index 000000000..d55e38eee --- /dev/null +++ b/domains/mahi.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "LegendOP1041", + "email": "maillegendop@gmail.com", + "discord": "1056531806763102218" + }, + + "record": { + "A": ["69.30.249.53"] + } + } + \ No newline at end of file diff --git a/domains/mail.chiragnahata.json b/domains/mail.chiragnahata.json new file mode 100644 index 000000000..a23664d55 --- /dev/null +++ b/domains/mail.chiragnahata.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "chiragnahata", + "email": "chiragnahata05@gmail.com" + }, + "record": { + "A": ["129.213.151.29"] + } +} diff --git a/domains/mail.teamcodearc.json b/domains/mail.teamcodearc.json new file mode 100644 index 000000000..a23664d55 --- /dev/null +++ b/domains/mail.teamcodearc.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "chiragnahata", + "email": "chiragnahata05@gmail.com" + }, + "record": { + "A": ["129.213.151.29"] + } +} diff --git a/domains/mansi.json b/domains/mansi.json new file mode 100644 index 000000000..d55e38eee --- /dev/null +++ b/domains/mansi.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "LegendOP1041", + "email": "maillegendop@gmail.com", + "discord": "1056531806763102218" + }, + + "record": { + "A": ["69.30.249.53"] + } + } + \ No newline at end of file diff --git a/domains/menard.json b/domains/menard.json new file mode 100644 index 000000000..35c72932a --- /dev/null +++ b/domains/menard.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "DevNanad", + "email": "menardpajares02@gmail.com" + }, + "record": { + "CNAME": "portfolio-fe29.onrender.com" + } +} diff --git a/domains/mhsunny.json b/domains/mhsunny.json new file mode 100644 index 000000000..b1963a898 --- /dev/null +++ b/domains/mhsunny.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "mehedi6800", + "email": "hassainmehedi3@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/nik.json b/domains/nik.json index 36ee7b613..fae6c2cf1 100644 --- a/domains/nik.json +++ b/domains/nik.json @@ -1,6 +1,6 @@ { "owner": { - "username": "Nikhil", + "username": "nikxso", "email": "nikhilsoniya123@gmail.com", "discord": "nikxso#0000" }, diff --git a/domains/ofir.json b/domains/ofir.json new file mode 100644 index 000000000..6e4b8c0a1 --- /dev/null +++ b/domains/ofir.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "OfirApps", + "email": "ijumpitsus@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/owl.json b/domains/owl.json new file mode 100644 index 000000000..608185c25 --- /dev/null +++ b/domains/owl.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "foxsophia", + "email": "cchirrpy@outlook.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/rajuan.json b/domains/rajuan.json new file mode 100644 index 000000000..86487e7e1 --- /dev/null +++ b/domains/rajuan.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "rajuan-r34", + "email": "rajuan.r34.dev@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/raviteja-geddada.json b/domains/raviteja-geddada.json new file mode 100644 index 000000000..12866acbb --- /dev/null +++ b/domains/raviteja-geddada.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "Raviteja77", + "email": "geddadaraviteja612@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/sajan.json b/domains/sajan.json new file mode 100644 index 000000000..d55e38eee --- /dev/null +++ b/domains/sajan.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "LegendOP1041", + "email": "maillegendop@gmail.com", + "discord": "1056531806763102218" + }, + + "record": { + "A": ["69.30.249.53"] + } + } + \ No newline at end of file diff --git a/domains/savar.json b/domains/savar.json new file mode 100644 index 000000000..b95924094 --- /dev/null +++ b/domains/savar.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "savar95x", + "email": "skaar513@gmail.com" + }, + "record": { + "CNAME": "savar95x.github.io" + } +} diff --git a/domains/shinchan.json b/domains/shinchan.json new file mode 100644 index 000000000..d55e38eee --- /dev/null +++ b/domains/shinchan.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "LegendOP1041", + "email": "maillegendop@gmail.com", + "discord": "1056531806763102218" + }, + + "record": { + "A": ["69.30.249.53"] + } + } + \ No newline at end of file diff --git a/domains/siddhant.json b/domains/siddhant.json index 8f704162e..e4890fd6c 100644 --- a/domains/siddhant.json +++ b/domains/siddhant.json @@ -6,6 +6,6 @@ "email": "pandeysiddhant21@gmail.com" }, "record": { - "URL": "https://siddhantt.netlify.app" + "URL": "https://siddhantt.vercel.app/" } } diff --git a/domains/slyc.the.catboy.json b/domains/slyc.the.catboy.json new file mode 100644 index 000000000..3349e502e --- /dev/null +++ b/domains/slyc.the.catboy.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "SlycIsACatboy", + "email": "noahhz942@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/sourav.json b/domains/sourav.json new file mode 100644 index 000000000..d55e38eee --- /dev/null +++ b/domains/sourav.json @@ -0,0 +1,12 @@ +{ + "owner": { + "username": "LegendOP1041", + "email": "maillegendop@gmail.com", + "discord": "1056531806763102218" + }, + + "record": { + "A": ["69.30.249.53"] + } + } + \ No newline at end of file diff --git a/domains/ss.kleb.json b/domains/ss.kleb.json index 1c0c33d68..d60c33257 100644 --- a/domains/ss.kleb.json +++ b/domains/ss.kleb.json @@ -1,9 +1,9 @@ { "owner": { "username": "KrazyKleb", - "email": "krazyklebyt@gmail.com" + "email": "krazykleb@outlook.com" }, "record": { - "CNAME": "proxy.private.danbot.host" + "A": ["69.30.249.53"] } } diff --git a/domains/status.astra.json b/domains/status.astra.json new file mode 100644 index 000000000..ccdd07006 --- /dev/null +++ b/domains/status.astra.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "LilyMusic", + "email": "Lilymusicdiscord@gmail.com" + }, + "record": { + "A": ["69.30.249.53"] + } +} diff --git a/domains/stefdp.json b/domains/stefdp.json index 56c2fc2fd..2882eface 100644 --- a/domains/stefdp.json +++ b/domains/stefdp.json @@ -12,7 +12,7 @@ "mail.is-a.dev" ], "TXT": [ - " v=spf1 mx a:mail.is-a.dev ip4:217.174.245.249 ~all" + "v=spf1 mx a:mail.is-a.dev ip4:217.174.245.249 ~all" ] } } diff --git a/domains/stupidjane.json b/domains/stupidjane.json new file mode 100644 index 000000000..687e587b7 --- /dev/null +++ b/domains/stupidjane.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "stupidjohanna", + "email": "stupidjane@tutanota.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/teamcodearc.json b/domains/teamcodearc.json new file mode 100644 index 000000000..a23664d55 --- /dev/null +++ b/domains/teamcodearc.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "chiragnahata", + "email": "chiragnahata05@gmail.com" + }, + "record": { + "A": ["129.213.151.29"] + } +} diff --git a/domains/the.catboy.json b/domains/the.catboy.json new file mode 100644 index 000000000..2e1941329 --- /dev/null +++ b/domains/the.catboy.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "SlycIsACatboy", + "email": "noahhz942@gmail.com" + }, + "record": { + "A": ["137.184.119.127"] + } +} diff --git a/domains/uptime.trung.json b/domains/uptime.trung.json index f7dd34ceb..c372c8070 100644 --- a/domains/uptime.trung.json +++ b/domains/uptime.trung.json @@ -4,6 +4,6 @@ "email": "vuthanhtrungsuper@gmail.com" }, "record": { - "CNAME": "proxy.private.danbot.host" + "A": ["69.30.249.53"] } } diff --git a/domains/useflame.json b/domains/useflame.json new file mode 100644 index 000000000..7dd69f8e5 --- /dev/null +++ b/domains/useflame.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "useflameclient", + "email": "aimloqrtamar@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/venox.json b/domains/venox.json new file mode 100644 index 000000000..e92356fac --- /dev/null +++ b/domains/venox.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "V-E-N-O-X", + "email": "akd.bd880@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/vikas-mahi.json b/domains/vikas-mahi.json new file mode 100644 index 000000000..20b6ec5dc --- /dev/null +++ b/domains/vikas-mahi.json @@ -0,0 +1,14 @@ +{ + "owner": { + "username": "vikas-mahi", + "email": "1vikasmahi@gmail.com" + }, + "record": { + "A": [ + "217.174.245.249", + "51.161.54.161" + ], + "MX": ["mail.is-a.dev"], + "TXT": "v=spf1 mx a:mail.is-a.dev ~all" + } +} \ No newline at end of file diff --git a/domains/webmail.chiragnahata.json b/domains/webmail.chiragnahata.json new file mode 100644 index 000000000..a23664d55 --- /dev/null +++ b/domains/webmail.chiragnahata.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "chiragnahata", + "email": "chiragnahata05@gmail.com" + }, + "record": { + "A": ["129.213.151.29"] + } +} diff --git a/domains/webmail.teamcodearc.json b/domains/webmail.teamcodearc.json new file mode 100644 index 000000000..a23664d55 --- /dev/null +++ b/domains/webmail.teamcodearc.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "chiragnahata", + "email": "chiragnahata05@gmail.com" + }, + "record": { + "A": ["129.213.151.29"] + } +} diff --git a/scripts/certbot.sh b/scripts/certbot.sh index 2ab0447ae..ee84aa6d7 100755 --- a/scripts/certbot.sh +++ b/scripts/certbot.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -export ENV=production +export NODE_ENV=production DRY_RUN=0 if_dry_run() { [[ $DRY_RUN == 1 ]] && echo "$1" || echo "$2"; } @@ -32,7 +32,7 @@ update_record() { local name="$3"; local address="$4"; local ttl=${5:-"1"}; - echo " + bun -e " const { domainService } = require('./utils/domain-service'); const { ENV, DOMAIN_DOMAIN } = require('./utils/constants'); const method = '$method'; @@ -57,7 +57,7 @@ update_record() { } main().catch(console.error); - " | node - + " } update_acme_txt_record() { @@ -68,6 +68,7 @@ reset_acme() { sleep 1; update_record remove TXT '_acme-challenge' ''; update_record remove TXT '_acme-challenge' ''; + # update_record add CNAME 'www' "is-a-dev.github.io"; } get_acme() { dig +noall +answer _acme-challenge.is-a.dev TXT | awk '{print $5}'; } @@ -84,7 +85,6 @@ esac ### STEPS ### # Run ./scripts/certbot.sh cert -# Run ./scripts/certbot.sh acme_txt "" # cp -r /tmp/is-a-dev-whatever /opt/app/code/is-a-dev-cert # Upload cert.pem and privkey.pem (from config/live/is-a.dev/) contents to SSL > Manage SSL Sites # Run ./scripts/certbot.sh reset diff --git a/scripts/register-domains.js b/scripts/register-domains.js index 370949af6..20670f8af 100644 --- a/scripts/register-domains.js +++ b/scripts/register-domains.js @@ -15,7 +15,7 @@ const toHostList = R.chain(data => { // URL redirection must contain explicit A record // Wildcard A record breaks when used with MX // Ref: https://github.com/is-a-dev/register/issues/2365 - if (data.record.URL && data.record.MX) { + if ((data.record.URL && data.record.MX) || data.name === '@') { data.record.A = [ DOMAIN_HOST_IP ] } diff --git a/tests/cpanel.test.js b/tests/cpanel.test.js index d2fbd35a3..162a9a5d3 100644 --- a/tests/cpanel.test.js +++ b/tests/cpanel.test.js @@ -12,7 +12,7 @@ describe('Cpanel client', () => { describe('fetchzonerecords', () => { it('should make the correct request', async () => { const fetch = mockFetch((url, request) => { - expect(url).toBe('https://example.com:2000/json-api/cpanel?customonly=1&domain=a.b&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone_records&cpanel_jsonapi_apiversion=2'); + expect(url).toBe('https://example.com:2000/json-api/cpanel?customonly=0&domain=a.b&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone_records&cpanel_jsonapi_apiversion=2'); expect(request).toEqual({ headers: { Authorization: 'cpanel boy:boybyebye', @@ -35,7 +35,7 @@ describe('Cpanel client', () => { it('should make the correct request with query', async () => { const fetch = mockFetch((url, request) => { - expect(url).toBe('https://example.com:2000/json-api/cpanel?customonly=1&domain=foobar.boeey&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone_records&cpanel_jsonapi_apiversion=2'); + expect(url).toBe('https://example.com:2000/json-api/cpanel?customonly=0&domain=foobar.boeey&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone_records&cpanel_jsonapi_apiversion=2'); expect(request).toEqual({ headers: { Authorization: 'cpanel boy:boybyebye', diff --git a/tests/domain-service.test.js b/tests/domain-service.test.js index 79ea1d1e2..077aa4ea2 100644 --- a/tests/domain-service.test.js +++ b/tests/domain-service.test.js @@ -263,8 +263,8 @@ describe('Domain service', () => { ]); expect(removeZone).toHaveBeenCalledTimes(2); expect(getRecordCalls(removeZone)).toEqual([ - { line: 2 }, { line: 3 }, + { line: 2 }, ]); }); @@ -277,6 +277,9 @@ describe('Domain service', () => { { line: 5, name: 'c', type: 'MX', address: 'mx1.hello.com', priority: 20 }, { line: 6, name: 'c', type: 'MX', address: 'mx2.hello.com', priority: 21 }, { line: 7, name: 'b', type: 'MX', address: 'foo.bar', priority: 20 }, + { line: 101, name: 'x', type: 'A', address: '1' }, + { line: 99, name: 'y', type: 'A', address: '2' }, + { line: 100, name: 'z', type: 'A', address: '3' }, ]; const redirections = [ { domain: `b.${DOMAIN_DOMAIN}`, destination: 'https://foobar.com' }, @@ -306,8 +309,11 @@ describe('Domain service', () => { { name: 'b', type: 'A', address: '3' }, { name: 'd', type: 'CNAME', address: 'helo.com' }, ]); - expect(removeZone).toHaveBeenCalledTimes(1); + expect(removeZone).toHaveBeenCalledTimes(4); expect(getRecordCalls(removeZone)).toEqual([ + { line: 101 }, + { line: 100 }, + { line: 99 }, { line: 1 }, ]); @@ -317,8 +323,8 @@ describe('Domain service', () => { ]); expect(removeEmail).toHaveBeenCalledTimes(2); expect(getRecordCalls(removeEmail)).toEqual([ - { domain: 'c.is-a.dev', exchanger: 'mx1.hello.com', priority: 20 }, { domain: 'b.is-a.dev', exchanger: 'foo.bar', priority: 20 }, + { domain: 'c.is-a.dev', exchanger: 'mx1.hello.com', priority: 20 }, ]); expect(addRedir).toHaveBeenCalledTimes(3); diff --git a/utils/domain-service.js b/utils/domain-service.js index 81421f7aa..fe75aef04 100644 --- a/utils/domain-service.js +++ b/utils/domain-service.js @@ -1,6 +1,6 @@ const R = require('ramda'); const { cpanel } = require('./lib/cpanel'); -const { DOMAIN_DOMAIN } = require('./constants'); +const { DOMAIN_DOMAIN, VALID_RECORD_TYPES } = require('./constants'); const { then, log, print, lazyTask, batchLazyTasks } = require('./helpers'); const BATCH_SIZE = 1; @@ -23,7 +23,7 @@ const recordToZone = ({ name, type, address, id, priority }) => ({ }); const cleanName = name => - name === DOMAIN_DOMAIN ? '@' : `${name}`.replace(new RegExp(`\\.${DOMAIN_DOMAIN}\\.?$`), '').toLowerCase(); + [DOMAIN_DOMAIN, `${DOMAIN_DOMAIN}.`].includes(name) ? '@' : `${name}`.replace(new RegExp(`\\.${DOMAIN_DOMAIN}\\.?$`), '').toLowerCase(); const zoneToRecord = ({ name, @@ -59,12 +59,14 @@ const recordToEmailMx = ({ name, address, priority }) => ({ const getHostKey = host => `${host.name.toLowerCase()}##${host.type.toLowerCase()}##${host.address.toLowerCase()}`; +const isReserved = (domain) => + domain.name.startsWith('*') || !VALID_RECORD_TYPES.includes(domain.type) + const diffRecords = (oldRecords, newRecords) => { const isMatchingRecord = (a, b) => getHostKey(a) === getHostKey(b); const remove = R.differenceWith(isMatchingRecord, oldRecords, newRecords); - const add = R.differenceWith(isMatchingRecord, newRecords, oldRecords) - .filter(r => !['www'].includes(r.name)); + const add = R.differenceWith(isMatchingRecord, newRecords, oldRecords); return { add, remove }; }; @@ -86,8 +88,15 @@ const executeBatch = (batches) => batches.reduce((promise, batch, index) => { }, Promise.resolve()); const getDomainService = ({ cpanel }) => { - const fetchZoneRecords = R.compose(then(R.map(zoneToRecord)), cpanel.zone.fetch); - const fetchRedirections = R.compose(then(R.map(redirectionToRecord)), cpanel.redirection.fetch); + const fetchZoneRecords = R.compose( + then(R.reject(isReserved)), + then(R.map(zoneToRecord)), + cpanel.zone.fetch + ); + const fetchRedirections = R.compose( + then(R.map(redirectionToRecord)), + cpanel.redirection.fetch + ); const addZoneRecord = lazyTask(R.compose( R.ifElse(R.propEq('type', 'MX'), @@ -120,15 +129,19 @@ const getDomainService = ({ cpanel }) => { const getHosts = () => Promise.all([fetchZoneRecords(), fetchRedirections()]).then(R.flatten); - const addRecords = R.compose(batchLazyTasks(BATCH_SIZE), R.filter(Boolean), R.map(R.cond([ - [R.propEq('name', 'www'), R.always(null)], // Ignore www - [R.propEq('type', 'URL'), addRedirection], - [R.T, addZoneRecord], - ]))); - const removeRecords = R.compose(batchLazyTasks(BATCH_SIZE), R.map(R.cond([ - [R.propEq('type', 'URL'), removeRedirection], - [R.T, removeZoneRecord], - ]))); + const addRecords = R.compose( + batchLazyTasks(BATCH_SIZE), + R.filter(Boolean), + R.map(R.cond([ + [R.propEq('type', 'URL'), addRedirection], + [R.T, addZoneRecord], + ])), + ); + const removeRecords = R.compose( + batchLazyTasks(BATCH_SIZE), + R.map(R.cond([ [ R.propEq('type', 'URL'), removeRedirection ], [ R.T, removeZoneRecord ] ])), + R.sort((a, b) => b.id - a.id) + ); const updateHosts = async hosts => { const remoteHostList = await getHosts(); diff --git a/utils/lib/cpanel.js b/utils/lib/cpanel.js index 5c098f281..e61b15a0f 100644 --- a/utils/lib/cpanel.js +++ b/utils/lib/cpanel.js @@ -37,7 +37,7 @@ const CpanelClient = (options) => { // -> [{ class, ttl, name, line, Line, cname, type, record }] fetch: R.compose( p => p.then(R.pathOr([], ['cpanelresult', 'data'])), - api2('ZoneEdit', 'fetchzone_records', { customonly: 1, domain: options.domain }) + api2('ZoneEdit', 'fetchzone_records', { customonly: 0, domain: options.domain }) ), // { name, type(A|CNAME), cname, address, ttl }