{"action":"created","comment":{"url":"https://api.github.com/repos/freedombox/Plinth/pulls/comments/26073942","id":26073942,"diff_hunk":"@@ -0,0 +1,165 @@\n+{% extends \"base.html\" %}\n+{% comment %}\n+#\n+# This file is part of Plinth.\n+#\n+# This program is free software: you can redistribute it and/or modify\n+# it under the terms of the GNU Affero General Public License as\n+# published by the Free Software Foundation, either version 3 of the\n+# License, or (at your option) any later version.\n+#\n+# This program is distributed in the hope that it will be useful,\n+# but WITHOUT ANY WARRANTY; without even the implied warranty of\n+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+# GNU Affero General Public License for more details.\n+#\n+# You should have received a copy of the GNU Affero General Public License\n+# along with this program.  If not, see http://www.gnu.org/licenses/.\n+#\n+{% endcomment %}\n+\n+{% load bootstrap %}\n+\n+{% block content %}\n+\n+  <form class=\"form\" method=\"post\">\n+    {% csrf_token %}\n+    <div id='dynamicdns-no-js'>\n+      You have disabled Javascript. Dynamic form mode is disabled and \n+      some helper functions may not work <br>\n+      (but the main functionality should work)\n+      <br><hr>\n+    </div>\n+\n+    {{ form|bootstrap }}\n+\n+    <input type=\"submit\" class=\"btn btn-primary\" value=\"Update setup\"/>\n+\n+  </form>\n+\n+{% endblock %}\n+\n+{% block page_js %}\n+  <script type=\"text/javascript\">\n+\n+    (function($) {\n+      var SELFHOST = 'https://carol.selfhost.de/update?username=<User>&' +\n+                     'password=<Pass>&myip=<Ip>'\n+      var NOIP     = 'http://dynupdate.no-ip.com/nic/update?hostname=' +\n+                     '<Domain>&myip=<Ip>'\n+      var FREEDNS  = 'http://freedns.afraid.org/dynamic/update.php?' +","path":"plinth/modules/dynamicdns/templates/dynamicdns_configure.html","position":50,"original_position":50,"commit_id":"15a6c49922f8a91304f2062466066079abaf6a27","original_commit_id":"15a6c49922f8a91304f2062466066079abaf6a27","user":{"login":"fonfon","id":1867309,"avatar_url":"https://avatars.githubusercontent.com/u/1867309?v=3","gravatar_id":"","url":"https://api.github.com/users/fonfon","html_url":"https://github.com/fonfon","followers_url":"https://api.github.com/users/fonfon/followers","following_url":"https://api.github.com/users/fonfon/following{/other_user}","gists_url":"https://api.github.com/users/fonfon/gists{/gist_id}","starred_url":"https://api.github.com/users/fonfon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fonfon/subscriptions","organizations_url":"https://api.github.com/users/fonfon/orgs","repos_url":"https://api.github.com/users/fonfon/repos","events_url":"https://api.github.com/users/fonfon/events{/privacy}","received_events_url":"https://api.github.com/users/fonfon/received_events","type":"User","site_admin":false},"body":"https worked for me so it would be good to have it as default","created_at":"2015-03-09T20:45:30Z","updated_at":"2015-03-09T20:45:30Z","html_url":"https://github.com/freedombox/Plinth/pull/81#discussion_r26073942","pull_request_url":"https://api.github.com/repos/freedombox/Plinth/pulls/81","_links":{"self":{"href":"https://api.github.com/repos/freedombox/Plinth/pulls/comments/26073942"},"html":{"href":"https://github.com/freedombox/Plinth/pull/81#discussion_r26073942"},"pull_request":{"href":"https://api.github.com/repos/freedombox/Plinth/pulls/81"}}},"pull_request":{"url":"https://api.github.com/repos/freedombox/Plinth/pulls/81","id":26798435,"html_url":"https://github.com/freedombox/Plinth/pull/81","diff_url":"https://github.com/freedombox/Plinth/pull/81.diff","patch_url":"https://github.com/freedombox/Plinth/pull/81.patch","issue_url":"https://api.github.com/repos/freedombox/Plinth/issues/81","number":81,"state":"open","locked":false,"title":"dynamicdns","user":{"login":"steglicd","id":7570118,"avatar_url":"https://avatars.githubusercontent.com/u/7570118?v=3","gravatar_id":"","url":"https://api.github.com/users/steglicd","html_url":"https://github.com/steglicd","followers_url":"https://api.github.com/users/steglicd/followers","following_url":"https://api.github.com/users/steglicd/following{/other_user}","gists_url":"https://api.github.com/users/steglicd/gists{/gist_id}","starred_url":"https://api.github.com/users/steglicd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steglicd/subscriptions","organizations_url":"https://api.github.com/users/steglicd/orgs","repos_url":"https://api.github.com/users/steglicd/repos","events_url":"https://api.github.com/users/steglicd/events{/privacy}","received_events_url":"https://api.github.com/users/steglicd/received_events","type":"User","site_admin":false},"body":"Would be nice if freedombox could be reached via DNS resolved hostname (even if freedombox is connected via dynamic IP).\r\n\r\nFor this reason I'm implementing a ez-ipupdate module.\r\n\r\nThe module should detect the current WAN IP (even if freedombox is connected behind NAT router) and push the IP to a open source GnudIP server if a change is detected.\r\n\r\nIPv6 and other Server types than gnudip should also be included later.\r\n\r\nGnudIP vs. update URL:\r\n\r\n* Gnudip is more safe (md5 hashed and salted password transmission prevent replay attacks)\r\n* update URL is more generic (the most common dynamic DNS Service provides a URL to update the IP)\r\n\r\n","created_at":"2015-01-04T19:25:39Z","updated_at":"2015-03-09T20:45:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fa3b1170008b8bb8b99bb29dafc35c26a18f5647","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/freedombox/Plinth/pulls/81/commits","review_comments_url":"https://api.github.com/repos/freedombox/Plinth/pulls/81/comments","review_comment_url":"https://api.github.com/repos/freedombox/Plinth/pulls/comments{/number}","comments_url":"https://api.github.com/repos/freedombox/Plinth/issues/81/comments","statuses_url":"https://api.github.com/repos/freedombox/Plinth/statuses/15a6c49922f8a91304f2062466066079abaf6a27","head":{"label":"steglicd:dynamicdns","ref":"dynamicdns","sha":"15a6c49922f8a91304f2062466066079abaf6a27","user":{"login":"steglicd","id":7570118,"avatar_url":"https://avatars.githubusercontent.com/u/7570118?v=3","gravatar_id":"","url":"https://api.github.com/users/steglicd","html_url":"https://github.com/steglicd","followers_url":"https://api.github.com/users/steglicd/followers","following_url":"https://api.github.com/users/steglicd/following{/other_user}","gists_url":"https://api.github.com/users/steglicd/gists{/gist_id}","starred_url":"https://api.github.com/users/steglicd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steglicd/subscriptions","organizations_url":"https://api.github.com/users/steglicd/orgs","repos_url":"https://api.github.com/users/steglicd/repos","events_url":"https://api.github.com/users/steglicd/events{/privacy}","received_events_url":"https://api.github.com/users/steglicd/received_events","type":"User","site_admin":false},"repo":{"id":28773180,"name":"Plinth","full_name":"steglicd/Plinth","owner":{"login":"steglicd","id":7570118,"avatar_url":"https://avatars.githubusercontent.com/u/7570118?v=3","gravatar_id":"","url":"https://api.github.com/users/steglicd","html_url":"https://github.com/steglicd","followers_url":"https://api.github.com/users/steglicd/followers","following_url":"https://api.github.com/users/steglicd/following{/other_user}","gists_url":"https://api.github.com/users/steglicd/gists{/gist_id}","starred_url":"https://api.github.com/users/steglicd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steglicd/subscriptions","organizations_url":"https://api.github.com/users/steglicd/orgs","repos_url":"https://api.github.com/users/steglicd/repos","events_url":"https://api.github.com/users/steglicd/events{/privacy}","received_events_url":"https://api.github.com/users/steglicd/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/steglicd/Plinth","description":"Web UI for FreedomBox","fork":true,"url":"https://api.github.com/repos/steglicd/Plinth","forks_url":"https://api.github.com/repos/steglicd/Plinth/forks","keys_url":"https://api.github.com/repos/steglicd/Plinth/keys{/key_id}","collaborators_url":"https://api.github.com/repos/steglicd/Plinth/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/steglicd/Plinth/teams","hooks_url":"https://api.github.com/repos/steglicd/Plinth/hooks","issue_events_url":"https://api.github.com/repos/steglicd/Plinth/issues/events{/number}","events_url":"https://api.github.com/repos/steglicd/Plinth/events","assignees_url":"https://api.github.com/repos/steglicd/Plinth/assignees{/user}","branches_url":"https://api.github.com/repos/steglicd/Plinth/branches{/branch}","tags_url":"https://api.github.com/repos/steglicd/Plinth/tags","blobs_url":"https://api.github.com/repos/steglicd/Plinth/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/steglicd/Plinth/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/steglicd/Plinth/git/refs{/sha}","trees_url":"https://api.github.com/repos/steglicd/Plinth/git/trees{/sha}","statuses_url":"https://api.github.com/repos/steglicd/Plinth/statuses/{sha}","languages_url":"https://api.github.com/repos/steglicd/Plinth/languages","stargazers_url":"https://api.github.com/repos/steglicd/Plinth/stargazers","contributors_url":"https://api.github.com/repos/steglicd/Plinth/contributors","subscribers_url":"https://api.github.com/repos/steglicd/Plinth/subscribers","subscription_url":"https://api.github.com/repos/steglicd/Plinth/subscription","commits_url":"https://api.github.com/repos/steglicd/Plinth/commits{/sha}","git_commits_url":"https://api.github.com/repos/steglicd/Plinth/git/commits{/sha}","comments_url":"https://api.github.com/repos/steglicd/Plinth/comments{/number}","issue_comment_url":"https://api.github.com/repos/steglicd/Plinth/issues/comments{/number}","contents_url":"https://api.github.com/repos/steglicd/Plinth/contents/{+path}","compare_url":"https://api.github.com/repos/steglicd/Plinth/compare/{base}...{head}","merges_url":"https://api.github.com/repos/steglicd/Plinth/merges","archive_url":"https://api.github.com/repos/steglicd/Plinth/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/steglicd/Plinth/downloads","issues_url":"https://api.github.com/repos/steglicd/Plinth/issues{/number}","pulls_url":"https://api.github.com/repos/steglicd/Plinth/pulls{/number}","milestones_url":"https://api.github.com/repos/steglicd/Plinth/milestones{/number}","notifications_url":"https://api.github.com/repos/steglicd/Plinth/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/steglicd/Plinth/labels{/name}","releases_url":"https://api.github.com/repos/steglicd/Plinth/releases{/id}","created_at":"2015-01-04T12:05:29Z","updated_at":"2015-01-04T22:48:28Z","pushed_at":"2015-03-06T23:03:19Z","git_url":"git://github.com/steglicd/Plinth.git","ssh_url":"git@github.com:steglicd/Plinth.git","clone_url":"https://github.com/steglicd/Plinth.git","svn_url":"https://github.com/steglicd/Plinth","homepage":"https://freedomboxfoundation.org/","size":4347,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"freedombox:master","ref":"master","sha":"2015b52798610fd8830a93b789398d92dcf95874","user":{"login":"freedombox","id":5255604,"avatar_url":"https://avatars.githubusercontent.com/u/5255604?v=3","gravatar_id":"","url":"https://api.github.com/users/freedombox","html_url":"https://github.com/freedombox","followers_url":"https://api.github.com/users/freedombox/followers","following_url":"https://api.github.com/users/freedombox/following{/other_user}","gists_url":"https://api.github.com/users/freedombox/gists{/gist_id}","starred_url":"https://api.github.com/users/freedombox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/freedombox/subscriptions","organizations_url":"https://api.github.com/users/freedombox/orgs","repos_url":"https://api.github.com/users/freedombox/repos","events_url":"https://api.github.com/users/freedombox/events{/privacy}","received_events_url":"https://api.github.com/users/freedombox/received_events","type":"Organization","site_admin":false},"repo":{"id":12196957,"name":"Plinth","full_name":"freedombox/Plinth","owner":{"login":"freedombox","id":5255604,"avatar_url":"https://avatars.githubusercontent.com/u/5255604?v=3","gravatar_id":"","url":"https://api.github.com/users/freedombox","html_url":"https://github.com/freedombox","followers_url":"https://api.github.com/users/freedombox/followers","following_url":"https://api.github.com/users/freedombox/following{/other_user}","gists_url":"https://api.github.com/users/freedombox/gists{/gist_id}","starred_url":"https://api.github.com/users/freedombox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/freedombox/subscriptions","organizations_url":"https://api.github.com/users/freedombox/orgs","repos_url":"https://api.github.com/users/freedombox/repos","events_url":"https://api.github.com/users/freedombox/events{/privacy}","received_events_url":"https://api.github.com/users/freedombox/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/freedombox/Plinth","description":"Web UI for FreedomBox","fork":true,"url":"https://api.github.com/repos/freedombox/Plinth","forks_url":"https://api.github.com/repos/freedombox/Plinth/forks","keys_url":"https://api.github.com/repos/freedombox/Plinth/keys{/key_id}","collaborators_url":"https://api.github.com/repos/freedombox/Plinth/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/freedombox/Plinth/teams","hooks_url":"https://api.github.com/repos/freedombox/Plinth/hooks","issue_events_url":"https://api.github.com/repos/freedombox/Plinth/issues/events{/number}","events_url":"https://api.github.com/repos/freedombox/Plinth/events","assignees_url":"https://api.github.com/repos/freedombox/Plinth/assignees{/user}","branches_url":"https://api.github.com/repos/freedombox/Plinth/branches{/branch}","tags_url":"https://api.github.com/repos/freedombox/Plinth/tags","blobs_url":"https://api.github.com/repos/freedombox/Plinth/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/freedombox/Plinth/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/freedombox/Plinth/git/refs{/sha}","trees_url":"https://api.github.com/repos/freedombox/Plinth/git/trees{/sha}","statuses_url":"https://api.github.com/repos/freedombox/Plinth/statuses/{sha}","languages_url":"https://api.github.com/repos/freedombox/Plinth/languages","stargazers_url":"https://api.github.com/repos/freedombox/Plinth/stargazers","contributors_url":"https://api.github.com/repos/freedombox/Plinth/contributors","subscribers_url":"https://api.github.com/repos/freedombox/Plinth/subscribers","subscription_url":"https://api.github.com/repos/freedombox/Plinth/subscription","commits_url":"https://api.github.com/repos/freedombox/Plinth/commits{/sha}","git_commits_url":"https://api.github.com/repos/freedombox/Plinth/git/commits{/sha}","comments_url":"https://api.github.com/repos/freedombox/Plinth/comments{/number}","issue_comment_url":"https://api.github.com/repos/freedombox/Plinth/issues/comments{/number}","contents_url":"https://api.github.com/repos/freedombox/Plinth/contents/{+path}","compare_url":"https://api.github.com/repos/freedombox/Plinth/compare/{base}...{head}","merges_url":"https://api.github.com/repos/freedombox/Plinth/merges","archive_url":"https://api.github.com/repos/freedombox/Plinth/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/freedombox/Plinth/downloads","issues_url":"https://api.github.com/repos/freedombox/Plinth/issues{/number}","pulls_url":"https://api.github.com/repos/freedombox/Plinth/pulls{/number}","milestones_url":"https://api.github.com/repos/freedombox/Plinth/milestones{/number}","notifications_url":"https://api.github.com/repos/freedombox/Plinth/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/freedombox/Plinth/labels{/name}","releases_url":"https://api.github.com/repos/freedombox/Plinth/releases{/id}","created_at":"2013-08-18T15:10:42Z","updated_at":"2015-03-08T08:00:50Z","pushed_at":"2015-03-08T08:00:49Z","git_url":"git://github.com/freedombox/Plinth.git","ssh_url":"git@github.com:freedombox/Plinth.git","clone_url":"https://github.com/freedombox/Plinth.git","svn_url":"https://github.com/freedombox/Plinth","homepage":"https://freedomboxfoundation.org/","size":5436,"stargazers_count":4,"watchers_count":4,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"open_issues_count":58,"forks":11,"open_issues":58,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/freedombox/Plinth/pulls/81"},"html":{"href":"https://github.com/freedombox/Plinth/pull/81"},"issue":{"href":"https://api.github.com/repos/freedombox/Plinth/issues/81"},"comments":{"href":"https://api.github.com/repos/freedombox/Plinth/issues/81/comments"},"review_comments":{"href":"https://api.github.com/repos/freedombox/Plinth/pulls/81/comments"},"review_comment":{"href":"https://api.github.com/repos/freedombox/Plinth/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/freedombox/Plinth/pulls/81/commits"},"statuses":{"href":"https://api.github.com/repos/freedombox/Plinth/statuses/15a6c49922f8a91304f2062466066079abaf6a27"}}}}