Added first blog post, activated taxonomies

Signed-off-by: Ettore <noettore@gmail.com>
This commit is contained in:
2019-05-24 23:14:20 +02:00
parent 8048fe6de8
commit 37fb2ce4c6
3851 changed files with 17781 additions and 12 deletions

8
archetypes/blog.md Normal file
View File

@@ -0,0 +1,8 @@
---
title: "{{ replace .Name "-" " " | title }}"
description: ""
date: {{ .Date }}
author: "Ettore Dreucci"
tags: []
draft: true
---

View File

@@ -10,10 +10,9 @@ author = "Ettore Dreucci"
title = "Ettore Dreucci" title = "Ettore Dreucci"
disqusshortname = "" disqusshortname = ""
pluralizelisttitles = false pluralizelisttitles = false
disableKinds = ["taxonomy", "taxonomyTerm"]
[permalinks] [permalinks]
blog = "blog/:slug/" blog = "blog/:filename/"
[params] [params]
dateform = "2 Jan 2006" dateform = "2 Jan 2006"
@@ -26,6 +25,7 @@ highlightjs = true
progressively = true progressively = true
align_left = false align_left = false
lang = "en" lang = "en"
latestpostcount = 5
github = "noettore" github = "noettore"
#email = "ettore.dreucci@gmail.com" #email = "ettore.dreucci@gmail.com"
linkedin = "ettore-dreucci-403110175" linkedin = "ettore-dreucci-403110175"
@@ -33,3 +33,4 @@ linkedin = "ettore-dreucci-403110175"
social_banner = "img/banner.png" social_banner = "img/banner.png"
posts_navigation = true posts_navigation = true
small_banner_logo = true small_banner_logo = true

View File

@@ -0,0 +1,123 @@
---
title: "ISPConfig Dynamic DNS"
tags: ["ispconfig", "ddns", "dns"]
categories: ["recipe"]
description: "How to create and update a DDNS entry in ISPConfig"
date: 2019-05-22T18:54:00+02:00
draft: false
---
If you manage your DNS server(s) with ISPConfig you may want a *dynamic entry* that gets updated automatically every time the target host changes its IP address.
Doing so in ISPConfig is quite straight forward: we can use the [ISPConfig SOAP API](https://git.ispconfig.org/ispconfig/ispconfig3/tree/master/remoting_client) to update an <u>existing record</u> with a PHP script to be run frequently by the target host.
In this [**recipe**]({{< ref "/categories/recipe" >}}) I will consider **updating an A record**.
1. First we need to create a remote user on the ISPConfig master server to authenticate, and grant it remote access and some functions:
In “System -> Remote User” add a new remote user, enable remote access and **grant**<u>DNS zone functions</u>” and <u>each DNS functions corresponding to the type of record you want to update</u>: **so if you want to update an A record you must grant the generic “DNS zone functions” and the “DNS a functions”**
2. We then have to write a PHP script that will make a SOAP function call to the ISPConfig endpoint. <u>The target host</u>, or the host executing the script <u>must have the [PHP SOAP module](https://www.php.net/manual/en/book.soap.php) installed</u>.
Create the `update.php` script as follow:
```
<?php
require('config.php');
if ($argc<3) {
print "Usage: php ./update.php HOST DOMAIN [IP]\n";
print "If not given, the ip address will be queried from icanhazip.com\n";
die();
}
// First parameter: hostname of DNS entry
$ddns_host = $argv[1];
// Second: domain name of DNS zone
$domain = $argv[2];
// If third parameter is present
if ($argc>3) {
// Third parameter: IP address of target host
$ip = $argv[3];
// Otherwise
} else {
// Figure out the public IP of this host:
$ip = trim(file_get_contents("http://icanhazip.com/"));
if (filter_var($ip, FILTER_VALIDATE_IP) === false) {
die("Unable to retrieve public IP address (icanhazip.com returned $ip)\n");
}
}
print("Setting DDNS host $ddns_host.$domain to IP $ip\n");
// Using the SOAP module initialize a SoapClient
$client = new SoapClient(null,
array('location' => $soap_location,
'uri' => $soap_uri,
'trace' => 1,
'exceptions' => 1));
try {
// Login to SOAP server
$session_id = $client->login($soap_user, $soap_password);
// Grab DNS zone ID
$zone_id = $client->dns_zone_get_id($session_id, $domain);
// Grab DNS zone
$zone = $client->dns_zone_get($session_id, $zone_id);
// Grab DNS records
$records = $client->dns_rr_get_all_by_zone($session_id, $zone_id);
// Find right record: hostname must match and type must be A
$dns_record = null;
foreach ($records as $rec) {
if ($rec['type']=='A' && $rec['name']==$ddns_host) {
$dns_record = $rec;
}
}
// If no record found
if (is_null($dns_record)) {
//Logout from SOAP server
$client->logout($session_id);
die("Unable to find DNS record for host $ddns_host in domain $domain on the server...\n");
}
// If IP stored in record is different from current IP
if ($dns_record['data'] != $ip) {
// Set new IP
$dns_record['data'] = $ip;
// Increment record serial number
$dns_record['serial'] = $dns_record['serial']+1;
// Update modified record in DNS server
$client->dns_a_update($session_id, null, $dns_record['id'], $dns_record);
// Increment zone serial number
$zone['serial'] = $zone['serial'] + 1;
// Update modified zone in DNS server
$client->dns_zone_update($session_id, 0, $zone_id, $zone);
print("Successfully set DNS entry for host $ddns_host in domain $domain to $ip.\n");
// Otherwise
} else {
print("IP address of $ddns_host.$domain already set to $ip.\n");
}
//Logout from SOAP server
$client->logout($session_id);
} catch (SoapFault $e) {
die('SOAP Error: '.$e->getMessage()."\n");
}
?>
```
Create the `config.php` as follow:
```
<?php
$soap_location = 'https://ispconfig.example.com:8080/remote/index.php';
$soap_uri = 'https://ispconfig.example.com:8080/remote/';
$soap_user = 'username';
$soap_password = 'password';
```
3. Schedule the execution of `update.php`
END.

View File

@@ -8,4 +8,4 @@ draft: false
Here you can find some (little) info on me and some post I occasionally write about stuff I like. Here you can find some (little) info on me and some post I occasionally write about stuff I like.
{{< figure src="img/calvin_hobbes/calvinandhobbes1.png" title="copyright Bill Watterson, Andrews McMeel Publishing and Universal Press Syndicate." >}} {{< figure src="img/calvin_hobbes/lastMinutePanic.png" link="https://www.calvinandhobbes.com/" target="_blank" title="copyright by Andrews McMeel Publishing" >}}

View File

@@ -0,0 +1,16 @@
{{ partial "header.html" . }}
<div class="main column">
<div class="container">
<div class="content">
<div class="posts">
<div class="page-heading">{{ .Title }}</div>
<ul>
{{ range $name, $items := .Site.Taxonomies.categories }}
<li><a href="{{ $.Site.BaseURL }}categories/{{ $name | urlize | lower }}">{{ $name }} &nbsp;<span>({{ len $items }})</span></a></li>
{{ end }}
</ul>
</div>
</div>
</div>
</div>
{{ partial "footer.html" . }}

View File

@@ -0,0 +1,16 @@
{{ partial "header.html" . }}
<div class="main column">
<div class="container">
<div class="content">
<div class="posts">
<div class="page-heading">{{ .Title }}</div>
<ul>
{{ range $name, $taxonomy := .Site.Taxonomies.tags }}
<a href="/tags/{{ $name | urlize }}">{{ $name }}</a><br />
{{ end }}
</ul>
</div>
</div>
</div>
</div>
{{ partial "footer.html" . }}

View File

@@ -325,6 +325,9 @@ div.main .content .front-matter .meta {
display: flex; display: flex;
margin-bottom: 32px; margin-bottom: 32px;
} }
div.main .content .front-matter .desc {
display: block;
}
div.main .content .front-matter .date, div.main .content .front-matter .date,
div.main .content .front-matter .author, div.main .content .front-matter .author,
div.main .content .front-matter .tags, div.main .content .front-matter .tags,
@@ -332,6 +335,7 @@ div.main .content .front-matter .word-count,
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
display: none; display: none;
} }
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
font-size: 6px; font-size: 6px;
margin: 0 6px; margin: 0 6px;

View File

@@ -352,6 +352,9 @@ div.main .content .front-matter .meta {
display: flex; display: flex;
margin-bottom: 32px; margin-bottom: 32px;
} }
div.main .content .front-matter .desc {
display: block;
}
div.main .content .front-matter .date, div.main .content .front-matter .date,
div.main .content .front-matter .author, div.main .content .front-matter .author,
div.main .content .front-matter .tags, div.main .content .front-matter .tags,
@@ -359,6 +362,7 @@ div.main .content .front-matter .word-count,
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
display: none; display: none;
} }
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
font-size: 6px; font-size: 6px;
margin: 0 6px; margin: 0 6px;
@@ -1008,6 +1012,12 @@ margin-left: -4%;
<nav> <nav>
<ul> <ul>
<li><a href="https://ettore.dreucci.it/blog/">Blog</a></li>

1163
public/blog/index.html Normal file

File diff suppressed because it is too large Load Diff

27
public/blog/index.xml Normal file
View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Blog on Ettore Dreucci</title>
<link>https://ettore.dreucci.it/blog/</link>
<description>Recent content in Blog on Ettore Dreucci</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Wed, 22 May 2019 18:54:00 +0200</lastBuildDate>
<atom:link href="https://ettore.dreucci.it/blog/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>ISPConfig Dynamic DNS</title>
<link>https://ettore.dreucci.it/blog/ispconfig-ddns/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/blog/ispconfig-ddns/</guid>
<description>If you manage your DNS server(s) with ISPConfig you may want a dynamic entry that gets updated automatically every time the target host changes its IP address.
Doing so in ISPConfig is quite straight forward: we can use the ISPConfig SOAP API to update an existing record with a PHP script to be run frequently by the target host.
In this recipe I will consider updating an A record.
First we need to create a remote user on the ISPConfig master server to authenticate, and grant it remote access and some functions:</description>
</item>
</channel>
</rss>

File diff suppressed because it is too large Load Diff

1147
public/categories/index.html Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -10,5 +10,14 @@
<atom:link href="https://ettore.dreucci.it/categories/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://ettore.dreucci.it/categories/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Recipe</title>
<link>https://ettore.dreucci.it/categories/recipe/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/categories/recipe/</guid>
<description></description>
</item>
</channel> </channel>
</rss> </rss>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Recipe on Ettore Dreucci</title>
<link>https://ettore.dreucci.it/categories/recipe/</link>
<description>Recent content in Recipe on Ettore Dreucci</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Wed, 22 May 2019 18:54:00 +0200</lastBuildDate>
<atom:link href="https://ettore.dreucci.it/categories/recipe/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>ISPConfig Dynamic DNS</title>
<link>https://ettore.dreucci.it/blog/ispconfig-ddns/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/blog/ispconfig-ddns/</guid>
<description>If you manage your DNS server(s) with ISPConfig you may want a dynamic entry that gets updated automatically every time the target host changes its IP address.
Doing so in ISPConfig is quite straight forward: we can use the ISPConfig SOAP API to update an existing record with a PHP script to be run frequently by the target host.
In this recipe I will consider updating an A record.
First we need to create a remote user on the ISPConfig master server to authenticate, and grant it remote access and some functions:</description>
</item>
</channel>
</rss>

View File

@@ -352,6 +352,9 @@ div.main .content .front-matter .meta {
display: flex; display: flex;
margin-bottom: 32px; margin-bottom: 32px;
} }
div.main .content .front-matter .desc {
display: block;
}
div.main .content .front-matter .date, div.main .content .front-matter .date,
div.main .content .front-matter .author, div.main .content .front-matter .author,
div.main .content .front-matter .tags, div.main .content .front-matter .tags,
@@ -359,6 +362,7 @@ div.main .content .front-matter .word-count,
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
display: none; display: none;
} }
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
font-size: 6px; font-size: 6px;
margin: 0 6px; margin: 0 6px;
@@ -1008,6 +1012,12 @@ margin-left: -4%;
<nav> <nav>
<ul> <ul>
<li><a href="https://ettore.dreucci.it/blog/">Blog</a></li>

View File

@@ -352,6 +352,9 @@ div.main .content .front-matter .meta {
display: flex; display: flex;
margin-bottom: 32px; margin-bottom: 32px;
} }
div.main .content .front-matter .desc {
display: block;
}
div.main .content .front-matter .date, div.main .content .front-matter .date,
div.main .content .front-matter .author, div.main .content .front-matter .author,
div.main .content .front-matter .tags, div.main .content .front-matter .tags,
@@ -359,6 +362,7 @@ div.main .content .front-matter .word-count,
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
display: none; display: none;
} }
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
font-size: 6px; font-size: 6px;
margin: 0 6px; margin: 0 6px;
@@ -1008,6 +1012,12 @@ margin-left: -4%;
<nav> <nav>
<ul> <ul>
<li><a href="https://ettore.dreucci.it/blog/">Blog</a></li>
@@ -1046,9 +1056,9 @@ margin-left: -4%;
<p>Here you can find some (little) info on me and some post I occasionally write about stuff I like.</p> <p>Here you can find some (little) info on me and some post I occasionally write about stuff I like.</p>
<figure> <figure><a href="https://www.calvinandhobbes.com/" target="_blank">
<img src="img/calvin_hobbes/calvinandhobbes1.png"/> <figcaption> <img src="img/calvin_hobbes/lastMinutePanic.png"/> </a><figcaption>
<h4>copyright Bill Watterson, Andrews McMeel Publishing and Universal Press Syndicate.</h4> <h4>copyright by Andrews McMeel Publishing</h4>
</figcaption> </figcaption>
</figure> </figure>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

View File

@@ -353,6 +353,9 @@ div.main .content .front-matter .meta {
display: flex; display: flex;
margin-bottom: 32px; margin-bottom: 32px;
} }
div.main .content .front-matter .desc {
display: block;
}
div.main .content .front-matter .date, div.main .content .front-matter .date,
div.main .content .front-matter .author, div.main .content .front-matter .author,
div.main .content .front-matter .tags, div.main .content .front-matter .tags,
@@ -360,6 +363,7 @@ div.main .content .front-matter .word-count,
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
display: none; display: none;
} }
div.main .content .front-matter .middot:before { div.main .content .front-matter .middot:before {
font-size: 6px; font-size: 6px;
margin: 0 6px; margin: 0 6px;
@@ -1011,6 +1015,12 @@ margin-left: -4%;
<nav> <nav>
<ul> <ul>
<li><a href="https://ettore.dreucci.it/blog/">Blog</a></li>
@@ -1038,9 +1048,9 @@ margin-left: -4%;
<p>Here you can find some (little) info on me and some post I occasionally write about stuff I like.</p> <p>Here you can find some (little) info on me and some post I occasionally write about stuff I like.</p>
<figure> <figure><a href="https://www.calvinandhobbes.com/" target="_blank">
<img src="img/calvin_hobbes/calvinandhobbes1.png"/> <figcaption> <img src="img/calvin_hobbes/lastMinutePanic.png"/> </a><figcaption>
<h4>copyright Bill Watterson, Andrews McMeel Publishing and Universal Press Syndicate.</h4> <h4>copyright by Andrews McMeel Publishing</h4>
</figcaption> </figcaption>
</figure> </figure>
@@ -1049,6 +1059,29 @@ margin-left: -4%;
<div class="posts">
<div class="page-heading">Latest posts</div>
<ul>
<li class="groupby">May, 2019</li>
<li class="post-item">
<span class="meta">22 May 2019</span>
<a href="https://ettore.dreucci.it/blog/ispconfig-ddns/"><span>ISPConfig Dynamic DNS</span></a>
</li>
</ul>
</div>
<div class="best-posts"> <div class="best-posts">

View File

@@ -6,11 +6,23 @@
<description>Recent content on Ettore Dreucci</description> <description>Recent content on Ettore Dreucci</description>
<generator>Hugo -- gohugo.io</generator> <generator>Hugo -- gohugo.io</generator>
<language>en-US</language> <language>en-US</language>
<lastBuildDate>Mon, 20 May 2019 01:04:40 +0200</lastBuildDate> <lastBuildDate>Wed, 22 May 2019 18:54:00 +0200</lastBuildDate>
<atom:link href="https://ettore.dreucci.it/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://ettore.dreucci.it/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>ISPConfig Dynamic DNS</title>
<link>https://ettore.dreucci.it/blog/ispconfig-ddns/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/blog/ispconfig-ddns/</guid>
<description>If you manage your DNS server(s) with ISPConfig you may want a dynamic entry that gets updated automatically every time the target host changes its IP address.
Doing so in ISPConfig is quite straight forward: we can use the ISPConfig SOAP API to update an existing record with a PHP script to be run frequently by the target host.
In this recipe I will consider updating an A record.
First we need to create a remote user on the ISPConfig master server to authenticate, and grant it remote access and some functions:</description>
</item>
<item> <item>
<title>Home</title> <title>Home</title>
<link>https://ettore.dreucci.it/home/</link> <link>https://ettore.dreucci.it/home/</link>
@@ -19,7 +31,7 @@
<guid>https://ettore.dreucci.it/home/</guid> <guid>https://ettore.dreucci.it/home/</guid>
<description>Hello there and welcome to my website! <description>Hello there and welcome to my website!
Here you can find some (little) info on me and some post I occasionally write about stuff I like. Here you can find some (little) info on me and some post I occasionally write about stuff I like.
copyright Bill Watterson, Andrews McMeel Publishing and Universal Press Syndicate. </description> copyright by Andrews McMeel Publishing </description>
</item> </item>
<item> <item>

View File

@@ -2,6 +2,11 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"> xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://ettore.dreucci.it/blog/ispconfig-ddns/</loc>
<lastmod>2019-05-22T18:54:00+02:00</lastmod>
</url>
<url> <url>
<loc>https://ettore.dreucci.it/home/</loc> <loc>https://ettore.dreucci.it/home/</loc>
<lastmod>2019-05-20T01:04:40+02:00</lastmod> <lastmod>2019-05-20T01:04:40+02:00</lastmod>
@@ -17,9 +22,50 @@
<lastmod>2018-05-10T02:01:09+02:00</lastmod> <lastmod>2018-05-10T02:01:09+02:00</lastmod>
</url> </url>
<url>
<loc>https://ettore.dreucci.it/blog/</loc>
<lastmod>2019-05-22T18:54:00+02:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://ettore.dreucci.it/categories/</loc>
<priority>0</priority>
</url>
<url>
<loc>https://ettore.dreucci.it/tags/ddns/</loc>
<lastmod>2019-05-22T18:54:00+02:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://ettore.dreucci.it/tags/dns/</loc>
<lastmod>2019-05-22T18:54:00+02:00</lastmod>
<priority>0</priority>
</url>
<url> <url>
<loc>https://ettore.dreucci.it/</loc> <loc>https://ettore.dreucci.it/</loc>
<lastmod>2019-05-20T01:04:40+02:00</lastmod> <lastmod>2019-05-22T18:54:00+02:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://ettore.dreucci.it/tags/ispconfig/</loc>
<lastmod>2019-05-22T18:54:00+02:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://ettore.dreucci.it/categories/recipe/</loc>
<lastmod>2019-05-22T18:54:00+02:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://ettore.dreucci.it/tags/</loc>
<lastmod>2019-05-22T18:54:00+02:00</lastmod>
<priority>0</priority> <priority>0</priority>
</url> </url>

1154
public/tags/ddns/index.html Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Ddns on Ettore Dreucci</title>
<link>https://ettore.dreucci.it/tags/ddns/</link>
<description>Recent content in Ddns on Ettore Dreucci</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Wed, 22 May 2019 18:54:00 +0200</lastBuildDate>
<atom:link href="https://ettore.dreucci.it/tags/ddns/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>ISPConfig Dynamic DNS</title>
<link>https://ettore.dreucci.it/blog/ispconfig-ddns/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/blog/ispconfig-ddns/</guid>
<description>If you manage your DNS server(s) with ISPConfig you may want a dynamic entry that gets updated automatically every time the target host changes its IP address.
Doing so in ISPConfig is quite straight forward: we can use the ISPConfig SOAP API to update an existing record with a PHP script to be run frequently by the target host.
In this recipe I will consider updating an A record.
First we need to create a remote user on the ISPConfig master server to authenticate, and grant it remote access and some functions:</description>
</item>
</channel>
</rss>

1154
public/tags/dns/index.html Normal file

File diff suppressed because it is too large Load Diff

27
public/tags/dns/index.xml Normal file
View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Dns on Ettore Dreucci</title>
<link>https://ettore.dreucci.it/tags/dns/</link>
<description>Recent content in Dns on Ettore Dreucci</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Wed, 22 May 2019 18:54:00 +0200</lastBuildDate>
<atom:link href="https://ettore.dreucci.it/tags/dns/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>ISPConfig Dynamic DNS</title>
<link>https://ettore.dreucci.it/blog/ispconfig-ddns/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/blog/ispconfig-ddns/</guid>
<description>If you manage your DNS server(s) with ISPConfig you may want a dynamic entry that gets updated automatically every time the target host changes its IP address.
Doing so in ISPConfig is quite straight forward: we can use the ISPConfig SOAP API to update an existing record with a PHP script to be run frequently by the target host.
In this recipe I will consider updating an A record.
First we need to create a remote user on the ISPConfig master server to authenticate, and grant it remote access and some functions:</description>
</item>
</channel>
</rss>

1151
public/tags/index.html Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -6,9 +6,37 @@
<description>Recent content in Tags on Ettore Dreucci</description> <description>Recent content in Tags on Ettore Dreucci</description>
<generator>Hugo -- gohugo.io</generator> <generator>Hugo -- gohugo.io</generator>
<language>en-US</language> <language>en-US</language>
<lastBuildDate>Wed, 22 May 2019 18:54:00 +0200</lastBuildDate>
<atom:link href="https://ettore.dreucci.it/tags/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://ettore.dreucci.it/tags/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Ddns</title>
<link>https://ettore.dreucci.it/tags/ddns/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/tags/ddns/</guid>
<description></description>
</item>
<item>
<title>Dns</title>
<link>https://ettore.dreucci.it/tags/dns/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/tags/dns/</guid>
<description></description>
</item>
<item>
<title>Ispconfig</title>
<link>https://ettore.dreucci.it/tags/ispconfig/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/tags/ispconfig/</guid>
<description></description>
</item>
</channel> </channel>
</rss> </rss>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Ispconfig on Ettore Dreucci</title>
<link>https://ettore.dreucci.it/tags/ispconfig/</link>
<description>Recent content in Ispconfig on Ettore Dreucci</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Wed, 22 May 2019 18:54:00 +0200</lastBuildDate>
<atom:link href="https://ettore.dreucci.it/tags/ispconfig/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>ISPConfig Dynamic DNS</title>
<link>https://ettore.dreucci.it/blog/ispconfig-ddns/</link>
<pubDate>Wed, 22 May 2019 18:54:00 +0200</pubDate>
<guid>https://ettore.dreucci.it/blog/ispconfig-ddns/</guid>
<description>If you manage your DNS server(s) with ISPConfig you may want a dynamic entry that gets updated automatically every time the target host changes its IP address.
Doing so in ISPConfig is quite straight forward: we can use the ISPConfig SOAP API to update an existing record with a PHP script to be run frequently by the target host.
In this recipe I will consider updating an A record.
First we need to create a remote user on the ISPConfig master server to authenticate, and grant it remote access and some functions:</description>
</item>
</channel>
</rss>

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Some files were not shown because too many files have changed in this diff Show More