{ "info": { "author": "Javinator9889", "author_email": "contact@javinator9889.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# CloudFlare 'A' Record Updater\n\n*DDNS Service for updating dynamically your CloudFlare 'A' Records when your public IP changes*\n\n[![PyPi](https://img.shields.io/badge/v1.1%20-PyPi-green.svg)](https://pypi.org/project/pyCloudFlareUpdater/)\n[![ZIP](https://img.shields.io/badge/Package%20-Zip-green.svg)](https://gitlab.javinator9889.com/ddns-clients/pyCloudFlareUpdater/repository/master/archive.zip)\n[![GIT](https://img.shields.io/badge/Package%20-Git-green.svg)](https://gitlab.javinator9889.com/ddns-clients/pyCloudFlareUpdater.git)\n[![Downloads](https://pepy.tech/badge/pycloudflareupdater)](https://pepy.tech/project/pycloudflareupdater)\n\n## Index\n\n 1. [Purpose](#purpose)\n 2. [Installation](#installation)\n 3. [Usage](#usage)\n 4. [License](#license)\n \n------------\n\n### Purpose\n\nAs a continuation of the [recently created pyGoDaddyUpdater](https://gitlab.javinator9889.com/ddns-clients/pyGoDaddyAUpdater),\nhere you have *CloudFlare Updater*. This group aims to create *DDNS* OpenSource clients that are available for every \nuser/sysadmin with the most common DNS providers.\n\nIf you are a *CloudFlare* user (you have your own domain, CNAMES, etc.) maybe you have noticed that there is no **Dynamic \nDNS** (*DDNS*) update service, so you have to manually put your **public IP** at your domain 'A' Record whenever it \nchanges.\n\nTherefore, other possibilities exists such as *having a No-IP domain* and make all your CNAMEs point to that DNS, \nenabling redirection from the source domain (e.g.: example.com) to an *www* domain (e.g.: www.example.com).\n\nWith this script/service, you can configure a **daemon** which will be running in the background, periodically checking\nfor your public IP for seeing if it has changed. If you want also, you can configure it to run only once.\n\n### Installation\n\n**NOTICE: THIS SCRIPT IS ONLY RUNNING ON SYSTEMS WITH PYTHON 3 AND ABOVE**\n\nThere are two possibilities for installing this script:\n\n#### 1. Using *setup.py*\n \n Start by *cloning* this repository. For that, you will need to have \n [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) installed. Then, run on Git Bash:\n ```text\n git clone https://gitlab.javinator9889.com/ddns-clients/pyCloudFlareUpdater.git\n ```\n \n There is another possibility so you can *directly download* a compressed file with all the necessary data. Just unzip\n it and continue with the steps below.\n \n For installing, you will need **administrator** permissions, as the script is creating a new command so you can run\n it from everywhere:\n ```text\n cd pyCloudFlareUpdater\n sudo python3 setup.py install\n ```\n \n#### 2. Using *pip* (easier and faster)\n \n I assume you have [**pip** installed](https://www.makeuseof.com/tag/install-pip-for-python/), so for using this package:\n ```text\n sudo pip install pyCloudFlareUpdater\n # If you have any error saying that at least Python 3 is needed\n # try with the following one:\n sudo pip3 install pyCloudFlareUpdater\n ```\n \n### Usage\n\nFirst of all, go to your *Cloudflare user account* options, and find the section (usually at the bottom of the page) \nthat says **API Keys**. \n\nObtain the *Global API Key* and save it on a safe location, we will use it later.\n\n![API Keys](api_keys.png)\n\n---------\n\nOnce you have installed the script, the execution is simple (from your command line):\n```text\n$ cloudflare_ddns [OPTIONS]\n```\n\nThe available options are:\n\n + `--domain DOMAIN`: specifies **which domain** will be updated. That is, if your site is hosted at www.example.com, then your\n domain is *example.com*.\n \n + `--name NAME`: here the 'A' Record name must be included. In most cases, this name usually matches the domain.\n \n + `--time TIME`: change the *update check interval* time (in minutes). By default, it is 5 minutes.\n \n + `--key KEY`: the *Cloudflare key* you obtained as explained before.\n \n + `--mail MAIL`: the *Cloudflare mail* you use to login into your account.\n \n + `--proxied`: use this option for making all the requests to your website **access first** Cloudflare servers (the \n same as enabling this option ![Cloudflare proxy](cloud.png)).\n \n + `--no_daemonize`: include this option for running this script **only once**.\n \n + `--pid PID FILE`: define your own PID file, in which the running daemon PID will be saved. By default, it is: \n `/var/run/cloudflare.pid`.\n \n + `--log LOG FILE`: define your own LOG file, in which the running daemon logs will be saved. By default, it is:\n `/var/log/cloudflare.log`.\n \n + `--preferences PREFERENCES FILE`: if you are planning to dynamically update **more than one** domain at the same \n time, you can define a custom preferences file (if not, each time you run the daemon it will be overwritten).\n \n + `--user USERNAME`: if for any reason you need to run this script as another user (for example, because of the \n permissions for saving logs and the PID file), include here your username (you must run the script as admin).\n \n + `--group GROUP NAME`: if for any reason you need to run this script as another group (for example, because of the \n permissions for saving logs and the PID file), include here your username (you must run the script as admin).\n \nThe first time you execute this script (or for defining a new preferences file), you must include (only the first time):\n + Domain.\n + Name.\n + Key.\n + Mail.\n + Proxied.\n\nThen, each time you execute the script with no *extra arguments* or *providing the preferences file* you will not need\nto include the options mentioned above.\n\n### License\n\n```text\n pyCloudFlareUpdater\n Copyright (C) 2019 - Javinator9889\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (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 General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://gitlab.javinator9889.com/ddns-clients/pyCloudFlareUpdater/repository/master/archive.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.javinator9889.com/ddns-clients/pyCloudFlareUpdater", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "pyCloudFlareUpdater", "package_url": "https://pypi.org/project/pyCloudFlareUpdater/", "platform": "", "project_url": "https://pypi.org/project/pyCloudFlareUpdater/", "project_urls": { "Download": "https://gitlab.javinator9889.com/ddns-clients/pyCloudFlareUpdater/repository/master/archive.zip", "Homepage": "https://gitlab.javinator9889.com/ddns-clients/pyCloudFlareUpdater" }, "release_url": "https://pypi.org/project/pyCloudFlareUpdater/1.10/", "requires_dist": null, "requires_python": "", "summary": "DDNS service for dynamically update CloudFlare 'A' Records", "version": "1.10" }, "last_serial": 5567679, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "97df5da90e65897a43ed8b36ff1ae2cb", "sha256": "fa486d1d938c582a99a21fd6b4f22292dedaa4df380e6268d4e3283078d7d438" }, "downloads": -1, "filename": "pyCloudFlareUpdater-1.0.tar.gz", "has_sig": false, "md5_digest": "97df5da90e65897a43ed8b36ff1ae2cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12289, "upload_time": "2019-03-31T18:17:46", "url": "https://files.pythonhosted.org/packages/ca/cc/942b6daa2eb009340d81b63890a6af04654466b925dd17c7a0cda6c8cd38/pyCloudFlareUpdater-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "f0b1b9358122df0d9590ad1474b6333d", "sha256": "30def16a6f5169a3c1a46a4e1e355268617ebb54372bd0234fd0cd86452c0b01" }, "downloads": -1, "filename": "pyCloudFlareUpdater-1.1.tar.gz", "has_sig": false, "md5_digest": "f0b1b9358122df0d9590ad1474b6333d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12203, "upload_time": "2019-07-22T14:10:25", "url": "https://files.pythonhosted.org/packages/db/00/03a5c07787dc4521bfb4afb7b23ca9f8770cc69dbd8caa3e759d5d471968/pyCloudFlareUpdater-1.1.tar.gz" } ], "1.10": [ { "comment_text": "", "digests": { "md5": "0223c81b869b38fbb36962e779e5282c", "sha256": "86d828e46307c3c64b02c7b1098800b702d564364a12e03751bc38023406bbc1" }, "downloads": -1, "filename": "pyCloudFlareUpdater-1.10.tar.gz", "has_sig": false, "md5_digest": "0223c81b869b38fbb36962e779e5282c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12197, "upload_time": "2019-07-22T14:16:33", "url": "https://files.pythonhosted.org/packages/7b/3a/7ba1fd0c43ec217242b8c7cb1451f468ce5dd40c2aceb16be26da03df2fe/pyCloudFlareUpdater-1.10.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0223c81b869b38fbb36962e779e5282c", "sha256": "86d828e46307c3c64b02c7b1098800b702d564364a12e03751bc38023406bbc1" }, "downloads": -1, "filename": "pyCloudFlareUpdater-1.10.tar.gz", "has_sig": false, "md5_digest": "0223c81b869b38fbb36962e779e5282c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12197, "upload_time": "2019-07-22T14:16:33", "url": "https://files.pythonhosted.org/packages/7b/3a/7ba1fd0c43ec217242b8c7cb1451f468ce5dd40c2aceb16be26da03df2fe/pyCloudFlareUpdater-1.10.tar.gz" } ] }