initial commit

This commit is contained in:
2026-06-29 22:18:04 +02:00
commit 6d7086b1ee
8 changed files with 97 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
USER=""
PASSWORD=""
DOMAIN_UPDATE=""
+4
View File
@@ -0,0 +1,4 @@
.idea
logs
!logs/.gitkeep
.env
+17
View File
@@ -0,0 +1,17 @@
services:
cron:
image: registry.docker.rhost.ovh/updateip:0.0.2
platform: linux/x86_64
build:
context: .
dockerfile: Dockerfile
restart: on-failure
command: >
bash -c "printenv > /etc/environment && cron -f"
volumes:
- ./project:/var/www/html
- ./logs/cron.log:/var/log/cron.log
environment:
USER: "${USER}"
PASSWORD: "${PASSWORD}"
DOMAIN_UPDATE: "${DOMAIN_UPDATE}"
View File
+5
View File
@@ -0,0 +1,5 @@
<?php
//if (!is_file("/etc/environment")) {
// exec("printenv > /etc/environment");
//}
echo date("Y-m-d H:i:s") . " " . PHP_EOL . $_ENV['USER'] . PHP_EOL . $_ENV['PASS'] . PHP_EOL;
+54
View File
@@ -0,0 +1,54 @@
<?php
die();
//
///////////////////////////////////////
/// its switch off to prevent fackup
echo "_____________________________ \n";
// old
// https://www.duckdns.org/update?domains=rhost.duckdns.org&token=1b4ab267-b818-4407-8351-8800c6f4fd78
$toUpdateString = $_ENV['DOMAIN_UPDATE'];
$user = $_ENV['USER'];
$pass = $_ENV['PASSWORD'];
$dateUpdate = date("Y-m-d H:i:s");
if (!$toUpdateString || !$user || !$pass) {
die("[$dateUpdate] Empty ENV data!!!!!!!!!!!");
}
$toUpdateArray = explode(",", $toUpdateString);
$useragent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://rhostoh.cluster029.hosting.ovh.net/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
$content = curl_exec($ch);
if (curl_errno($ch)) {
echo "[$dateUpdate] Error:" . curl_error($ch);
$serverIp = false;
} else {
$serverIp = $content;
}
curl_close($ch);
if ($serverIp) {
foreach ($toUpdateArray as $toUpdate) {
$toUpdate = trim($toUpdate);
$currentIp = gethostbyname($toUpdate);
if ($currentIp == $serverIp) {
echo "[$dateUpdate] $toUpdate: same (not update)" . PHP_EOL;
continue;
}
$url = "https://dns.eu.ovhapis.com/nic/update?system=dyndns&hostname=$toUpdate&myip=$serverIp";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
$response = curl_exec($ch);
echo "[$dateUpdate] $toUpdate: " . $response . PHP_EOL;
curl_close($ch);
}
} else {
echo "[$dateUpdate] Server Error!!!!!!!!!!!!!" . PHP_EOL;
}
+13
View File
@@ -0,0 +1,13 @@
FROM php:8.2-cli
ENV TZ=Europe/Warsaw
COPY --chown=www-data ./project /var/www/html
#cron
RUN apt-get update && apt-get -y install cron
COPY ./service/crontab /etc/cron.d/maincron
RUN chmod 0644 /etc/cron.d/maincron
RUN crontab /etc/cron.d/maincron
RUN touch /var/log/cron.log
+1
View File
@@ -0,0 +1 @@
* * * * * /usr/local/bin/php /var/www/html/updateip.php >> /var/log/cron.log