mirror of
https://github.com/tiennm99/is-a-dev.git
synced 2026-05-29 18:23:25 +00:00
Merge branch 'main' into main
This commit is contained in:
@@ -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);
|
||||
+5
-4
@@ -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"]
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "jirafey",
|
||||
"email": "jirafey@tuta.io"
|
||||
},
|
||||
"record": {
|
||||
"TXT": "dh=3c80d94ed181b223255b5fbf35f8fda6a402058f"
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,6 @@
|
||||
},
|
||||
|
||||
"record": {
|
||||
"CNAME": "dns.beadman-network.com"
|
||||
"TXT": "2c9dfbe7c8"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "is-a-dev",
|
||||
"email": "phenax5@gmail.com"
|
||||
},
|
||||
|
||||
"record": {
|
||||
"TXT": "c551c059fb167540ec0498d9011556"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "alijafari-gd",
|
||||
"email": "ali.jafari.sn@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"URL": "https://alijafari.is-a.dev"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "SukiPlayz",
|
||||
"email": "sukimayoo@outlook.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
@@ -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" ]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "DarindaDraX",
|
||||
"email": "123kishanvish@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
+13
-12
@@ -1,12 +1,13 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "SlycIsACatboy",
|
||||
"email": "noahhz942@gmail.com",
|
||||
"discord": "5.s3"
|
||||
},
|
||||
"record": {
|
||||
"A": [
|
||||
"137.184.119.127"
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "amir-mohammad-HP",
|
||||
"email": "hamidipour97@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"CNAME": "front.collegesaz.ir"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "Rage65",
|
||||
"email": "123thetechguy@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"CNAME": "deva65.duckdns.org"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "LegendOP1041",
|
||||
"email": "maillegendop@gmail.com",
|
||||
"discord": "1056531806763102218"
|
||||
},
|
||||
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
+12
-10
@@ -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"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "vuthanhtrung2010",
|
||||
"email": "vuthanhtrungsuper@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "lucenstuff",
|
||||
"email": "lucentiniagustin@hotmail.com",
|
||||
"discord": "202467820225822720"
|
||||
},
|
||||
|
||||
"record": {
|
||||
"CNAME": "lucendev.onrender.com"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "luis073094",
|
||||
"email": "luis073094@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"URL": "https://portafolio-ctll.onrender.com"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "LegendOP1041",
|
||||
"email": "maillegendop@gmail.com",
|
||||
"discord": "1056531806763102218"
|
||||
},
|
||||
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "chiragnahata",
|
||||
"email": "chiragnahata05@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["129.213.151.29"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "chiragnahata",
|
||||
"email": "chiragnahata05@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["129.213.151.29"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "LegendOP1041",
|
||||
"email": "maillegendop@gmail.com",
|
||||
"discord": "1056531806763102218"
|
||||
},
|
||||
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "DevNanad",
|
||||
"email": "menardpajares02@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"CNAME": "portfolio-fe29.onrender.com"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "Nikhil",
|
||||
"username": "nikxso",
|
||||
"email": "nikhilsoniya123@gmail.com",
|
||||
"discord": "nikxso#0000"
|
||||
},
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "LegendOP1041",
|
||||
"email": "maillegendop@gmail.com",
|
||||
"discord": "1056531806763102218"
|
||||
},
|
||||
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "savar95x",
|
||||
"email": "skaar513@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"CNAME": "savar95x.github.io"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "LegendOP1041",
|
||||
"email": "maillegendop@gmail.com",
|
||||
"discord": "1056531806763102218"
|
||||
},
|
||||
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
"email": "pandeysiddhant21@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"URL": "https://siddhantt.netlify.app"
|
||||
"URL": "https://siddhantt.vercel.app/"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "LegendOP1041",
|
||||
"email": "maillegendop@gmail.com",
|
||||
"discord": "1056531806763102218"
|
||||
},
|
||||
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "LilyMusic",
|
||||
"email": "Lilymusicdiscord@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "chiragnahata",
|
||||
"email": "chiragnahata05@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["129.213.151.29"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "SlycIsACatboy",
|
||||
"email": "noahhz942@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["137.184.119.127"]
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,6 @@
|
||||
"email": "vuthanhtrungsuper@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"CNAME": "proxy.private.danbot.host"
|
||||
"A": ["69.30.249.53"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "chiragnahata",
|
||||
"email": "chiragnahata05@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["129.213.151.29"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"owner": {
|
||||
"username": "chiragnahata",
|
||||
"email": "chiragnahata05@gmail.com"
|
||||
},
|
||||
"record": {
|
||||
"A": ["129.213.151.29"]
|
||||
}
|
||||
}
|
||||
+4
-4
@@ -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 "<key>"
|
||||
# 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
|
||||
|
||||
@@ -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 ]
|
||||
}
|
||||
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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);
|
||||
|
||||
+28
-15
@@ -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();
|
||||
|
||||
+1
-1
@@ -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 }
|
||||
|
||||
Reference in New Issue
Block a user