Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
rt2-het
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
rt2-het
Commits
fd307238
Commit
fd307238
authored
Nov 29, 2019
by
Ahmad Nemati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
init
parent
86bb64cc
Pipeline
#14
canceled with stages
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
156 additions
and
5 deletions
+156
-5
Hetzner.js
Hetzner.js
+89
-0
app.js
app.js
+62
-3
package.json
package.json
+5
-2
No files found.
Hetzner.js
0 → 100644
View file @
fd307238
const
HetznerCloud
=
require
(
'
hcloud-js
'
)
let
client
let
_
=
require
(
'
lodash
'
)
class
Hetzner
{
constructor
(
token
)
{
client
=
new
HetznerCloud
.
Client
(
token
)
}
getAllServers
()
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
client
.
servers
.
list
().
then
(
function
(
res
)
{
// console.log(res)
let
d
=
_
.
values
(
res
.
servers
);
resolve
(
d
)
})
})
}
async
deleteServer
(
id
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
client
.
servers
.
delete
(
id
).
then
(
function
(
res
)
{
resolve
(
res
)
})
})
}
async
removeByIp
(
ip
)
{
try
{
let
servers
=
await
this
.
getAllServers
()
for
(
let
i
=
0
;
i
<
servers
.
length
;
i
++
)
{
if
(
ip
===
servers
[
i
].
publicNet
.
server
.
publicNet
.
ipv4
.
ip
)
await
this
.
deleteServer
(
servers
[
i
].
id
)
}
}
catch
(
e
)
{
}
return
true
}
async
getAllFloatingIps
()
{
}
deleteFloatingIp
(
id
)
{
}
createServer
(
name
)
{
// nuremberg nbg1
//fsn1
return
new
Promise
(
function
(
resolve
,
reject
)
{
client
.
servers
.
build
(
name
)
.
serverType
(
'
cx51-ceph
'
)
.
location
(
'
fsn1
'
)
.
image
(
'
9541194
'
)
.
sshKey
(
'
ffgf
'
)
.
create
()
.
then
(
function
(
response
)
{
resolve
(
response
)
})
.
catch
(
function
(
error
)
{
// Handle error...
})
})
}
}
module
.
exports
=
Hetzner
;
app.js
View file @
fd307238
...
...
@@ -3,7 +3,8 @@ const app = express()
const
port
=
3000
const
shell
=
require
(
'
shelljs
'
)
const
cron
=
require
(
'
node-cron
'
);
const
cronRemover
=
require
(
'
node-cron
'
);
const
fs
=
require
(
'
fs
'
)
app
.
get
(
'
/
'
,
(
req
,
res
)
=>
{
res
.
send
(
'
Hello World!
'
)
...
...
@@ -29,7 +30,7 @@ async function addNewIp(req, res) {
}
async
function
addBaship
(
ip
)
{
return
await
shell
.
exec
(
'
ip addr add
'
+
ip
+
'
dev eth0
'
).
stderr
;
return
await
shell
.
exec
(
'
ip addr add
'
+
ip
+
'
dev eth0
'
).
stderr
;
}
...
...
@@ -38,7 +39,7 @@ app.listen(port, () => console.log(`Example app listening on port ${port}!`))
async
function
run
()
{
let
a
=
await
shell
.
exec
(
'
cd .. && cd mt && sudo ./server1.sh
'
,
{
silent
:
true
}).
stdout
;
// await shell.exec('iptables -A INPUT -s 95.156.255.148 -p ICMP --icmp-type 8 -j ACCEPT && iptables -A INPUT -p ICMP --icmp-type 8 -j DROP', {silent: true}).stdout;
// await shell.exec('iptables -A INPUT -s 95.156.255.148 -p ICMP --icmp-type 8 -j ACCEPT && iptables -A INPUT -p ICMP --icmp-type 8 -j DROP', {silent: true}).stdout;
console
.
log
(
'
Reset Proxy
'
)
}
...
...
@@ -53,3 +54,61 @@ cron.schedule('*/10 * * * * *', () => {
checkProcessWork
()
});
cronRemover
.
schedule
(
'
*/1 * * * *
'
,
()
=>
{
remover
()
addIp
()
});
async
function
remover
()
{
let
work
=
await
getWork
()
if
(
work
===
'
true
'
)
return
true
let
ip
=
getIp
()
var
contents
=
await
fs
.
readFileSync
(
'
./token.txt
'
,
'
utf8
'
);
let
Hetzner
=
require
(
'
./Hetzner
'
)
let
het
=
new
Hetzner
(
contents
)
await
het
.
deleteServer
(
ip
)
}
function
getWork
()
{
const
request
=
require
(
'
request
'
);
let
url
=
'
http://admin.fcfglobal.co:3000/work/
'
return
new
Promise
(
function
(
resolve
,
reject
)
{
request
(
url
,
{
timeout
:
15000
},
function
(
error
,
res
,
body
)
{
resolve
(
body
)
});
});
}
function
addIp
()
{
const
request
=
require
(
'
request
'
);
let
url
=
'
http://admin.fcfglobal.co:3000/add/
'
return
new
Promise
(
function
(
resolve
,
reject
)
{
request
(
url
,
{
timeout
:
15000
},
function
(
error
,
res
,
body
)
{
resolve
(
body
)
});
});
}
function
getIp
()
{
const
request
=
require
(
'
request
'
);
let
url
=
'
http://admin.fcfglobal.co:3000/getIp/
'
return
new
Promise
(
function
(
resolve
,
reject
)
{
request
(
url
,
{
timeout
:
15000
},
function
(
error
,
res
,
body
)
{
resolve
(
body
)
});
});
}
package.json
View file @
fd307238
...
...
@@ -7,7 +7,10 @@
},
"dependencies"
:
{
"
express
"
:
"
~4.16.0
"
,
"
shelljs
"
:
"
^0.8.3
"
,
"
node-cron
"
:
"
^2.0.3
"
"
hcloud-js
"
:
"
^1.2.0
"
,
"
lodash
"
:
"
^4.17.15
"
,
"
node-cron
"
:
"
^2.0.3
"
,
"
request
"
:
"
^2.88.0
"
,
"
shelljs
"
:
"
^0.8.3
"
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment