Name | linode-dyndns JSON |
Version |
1.3.0
JSON |
| download |
home_page | |
Summary | A Python tool for dynamically updating Linode Domain Records |
upload_time | 2023-03-17 03:06:08 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.9 |
license | MIT |
keywords |
automation
linode
dyndns
dns
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Linode DynDNS
[![Docker Hub](https://img.shields.io/badge/Docker%20Hub-iarekylew00t%2Flinode--dyndns-blue)](https://hub.docker.com/r/iarekylew00t/linode-dyndns)
[![PyPI](https://img.shields.io/pypi/v/linode-dyndns)](https://pypi.org/project/linode-dyndns/)
[![GitHub build status](https://img.shields.io/github/actions/workflow/status/IAreKyleW00t/linode-dyndns/main.yml?style=flat)](https://github.com/IAreKyleW00t/linode-dyndns/actions/workflows/main.yml)
[![License](https://img.shields.io/github/license/IAreKyleW00t/linode-dyndns)](https://github.com/IAreKyleW00t/linode-dyndns/blob/main/LICENSE)
A Python tool for dynamically updating Linode Domain Records with your current IP address. Inspired by [nvllsvm/linode-dynamic-dns](https://github.com/nvllsvm/linode-dynamic-dns) but now utilizes the official [linode_api4](https://github.com/linode/linode_api4-python) package for Python.
## Installation
```sh
pip install linode-dyndns
```
### Docker
```sh
# Docker Hub
docker pull iarekylew00t/linode-dyndns:latest
# GHCR
docker pull ghcr.io/iarekylew00t/linode-dyndns:latest
```
#### Tags
The following tags are available for the `iarekylew00t/linode-dyndns` image.
- `latest`
- `<version>` (eg: `1.2.2`, including: `1.2`, `1`, etc.)
## Usage
Full usage and defaults can be found using the `--help` flag. Each option has a matching env variable associated with it which can be set instead of setting flags on the cli tool itself, see the [Environment variables](#Environment-variables) section.
Multiple hosts can be specified by passing multiple `--host` flags, or if using the `HOST` env variable then separate each host by space.
When running the tool in a loop (`--interval` flag), if for some reason the tool cannot get your IP during a run, it will skip it and retry during the next interval.
```sh
linode_dyndns \
--domain exmaple.com \
--host mylab \
--token abc...789 \
--interval 60
```
or, running it via Docker (which also supports passing flags)
```sh
docker run --rm -it --name linode_dyndns \
-e DOMAIN=exmaple.com \
-e HOST=mylab \
-e TOKEN=abc...789 \
-e INTERVAL=15 \
iarekylew00t/linode-dyndns
```
### Environment variables
| Name | Flag |
| ---------- | ------------ |
| `DOMAIN` | `--domain` |
| `HOST` | `--host` |
| `TOKEN` | `--token` |
| `INTERVAL` | `--interval` |
| `IPV6` | `--ipv6` |
| `IPV4_URL` | `--ipv4-url` |
| `IPV6_URL` | `--ipv6-url` |
## Local development
The `requirements.txt` file is mainly for dependencies required for a developer, including stuff like the [black](https://github.com/psf/black) formatter.
Setup your local environmnet (ensure you are using Python 3.9 or newer)
```sh
git clone https://github.com/IAreKyleW00t/linode-dyndns.git
cd linode-dyndns
python3 -m venv .venv
source .venv/bin/activate
```
Install all the dependencies
```sh
pip install -r requirements.txt
```
## Building
You can build the package yourself via the [build](https://pypi.org/project/build/) module (included in `requirements.txt`)
```sh
python -m build --sdist --wheel --outdir dist/ .
```
or build the Docker image instead
```sh
docker build -t linode-dyndns .
```
## Container signatures
All container images will be automatically signed via [Cosign](https://docs.sigstore.dev/cosign/overview/) using [keyless signatures](https://docs.sigstore.dev/cosign/keyless/). You can use the following command to verify the integrity of these images yourself.
```sh
cosign verify \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp https://github.com/IAreKyleW00t/linode-dyndns/.github/workflows/ \
iarekylew00t/linode-dyndns:latest
```
## Contributing
Feel free to contribute and make things better by opening an [Issue](https://github.com/IAreKyleW00t/linode-dyndns/issues) or [Pull Request](https://github.com/IAreKyleW00t/linode-dyndns/pulls).
### Code Styling
This tool is painted [black](https://github.com/psf/black) and has a corresponding [workflow](https://github.com/IAreKyleW00t/linode-dyndns/actions/workflows/black.yml) to enforce it. If you plan to contribute anything, please ensure you run `black` against your files first (included in `requirements.txt`).
```sh
black .
```
## License
See [LICENSE](https://github.com/IAreKyleW00t/linode-dyndns/blob/main/LICENSE).
Raw data
{
"_id": null,
"home_page": "",
"name": "linode-dyndns",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "automation,linode,dyndns,dns",
"author": "",
"author_email": "Kyle Colantonio <k@yle.sh>",
"download_url": "https://files.pythonhosted.org/packages/30/54/69d31f3c1fa405b619ef59ee49f6ab7b16b444dc7a00945f8c7564308cf2/linode_dyndns-1.3.0.tar.gz",
"platform": null,
"description": "# Linode DynDNS\n\n[![Docker Hub](https://img.shields.io/badge/Docker%20Hub-iarekylew00t%2Flinode--dyndns-blue)](https://hub.docker.com/r/iarekylew00t/linode-dyndns)\n[![PyPI](https://img.shields.io/pypi/v/linode-dyndns)](https://pypi.org/project/linode-dyndns/)\n[![GitHub build status](https://img.shields.io/github/actions/workflow/status/IAreKyleW00t/linode-dyndns/main.yml?style=flat)](https://github.com/IAreKyleW00t/linode-dyndns/actions/workflows/main.yml)\n[![License](https://img.shields.io/github/license/IAreKyleW00t/linode-dyndns)](https://github.com/IAreKyleW00t/linode-dyndns/blob/main/LICENSE)\n\nA Python tool for dynamically updating Linode Domain Records with your current IP address. Inspired by [nvllsvm/linode-dynamic-dns](https://github.com/nvllsvm/linode-dynamic-dns) but now utilizes the official [linode_api4](https://github.com/linode/linode_api4-python) package for Python.\n\n## Installation\n\n```sh\npip install linode-dyndns\n```\n\n### Docker\n\n```sh\n# Docker Hub\ndocker pull iarekylew00t/linode-dyndns:latest\n\n# GHCR\ndocker pull ghcr.io/iarekylew00t/linode-dyndns:latest\n```\n\n#### Tags\n\nThe following tags are available for the `iarekylew00t/linode-dyndns` image.\n\n- `latest`\n- `<version>` (eg: `1.2.2`, including: `1.2`, `1`, etc.)\n\n## Usage\n\nFull usage and defaults can be found using the `--help` flag. Each option has a matching env variable associated with it which can be set instead of setting flags on the cli tool itself, see the [Environment variables](#Environment-variables) section.\n\nMultiple hosts can be specified by passing multiple `--host` flags, or if using the `HOST` env variable then separate each host by space.\n\nWhen running the tool in a loop (`--interval` flag), if for some reason the tool cannot get your IP during a run, it will skip it and retry during the next interval.\n\n```sh\nlinode_dyndns \\\n --domain exmaple.com \\\n --host mylab \\\n --token abc...789 \\\n --interval 60\n```\n\nor, running it via Docker (which also supports passing flags)\n\n```sh\ndocker run --rm -it --name linode_dyndns \\\n -e DOMAIN=exmaple.com \\\n -e HOST=mylab \\\n -e TOKEN=abc...789 \\\n -e INTERVAL=15 \\\n iarekylew00t/linode-dyndns\n```\n\n### Environment variables\n\n| Name | Flag |\n| ---------- | ------------ |\n| `DOMAIN` | `--domain` |\n| `HOST` | `--host` |\n| `TOKEN` | `--token` |\n| `INTERVAL` | `--interval` |\n| `IPV6` | `--ipv6` |\n| `IPV4_URL` | `--ipv4-url` |\n| `IPV6_URL` | `--ipv6-url` |\n\n## Local development\n\nThe `requirements.txt` file is mainly for dependencies required for a developer, including stuff like the [black](https://github.com/psf/black) formatter.\n\nSetup your local environmnet (ensure you are using Python 3.9 or newer)\n\n```sh\ngit clone https://github.com/IAreKyleW00t/linode-dyndns.git\ncd linode-dyndns\npython3 -m venv .venv\nsource .venv/bin/activate\n```\n\nInstall all the dependencies\n\n```sh\npip install -r requirements.txt\n```\n\n## Building\n\nYou can build the package yourself via the [build](https://pypi.org/project/build/) module (included in `requirements.txt`)\n\n```sh\npython -m build --sdist --wheel --outdir dist/ .\n```\n\nor build the Docker image instead\n\n```sh\ndocker build -t linode-dyndns .\n```\n\n## Container signatures\n\nAll container images will be automatically signed via [Cosign](https://docs.sigstore.dev/cosign/overview/) using [keyless signatures](https://docs.sigstore.dev/cosign/keyless/). You can use the following command to verify the integrity of these images yourself.\n\n```sh\ncosign verify \\\n --certificate-oidc-issuer https://token.actions.githubusercontent.com \\\n --certificate-identity-regexp https://github.com/IAreKyleW00t/linode-dyndns/.github/workflows/ \\\n iarekylew00t/linode-dyndns:latest\n```\n\n## Contributing\n\nFeel free to contribute and make things better by opening an [Issue](https://github.com/IAreKyleW00t/linode-dyndns/issues) or [Pull Request](https://github.com/IAreKyleW00t/linode-dyndns/pulls).\n\n### Code Styling\n\nThis tool is painted [black](https://github.com/psf/black) and has a corresponding [workflow](https://github.com/IAreKyleW00t/linode-dyndns/actions/workflows/black.yml) to enforce it. If you plan to contribute anything, please ensure you run `black` against your files first (included in `requirements.txt`).\n\n```sh\nblack .\n```\n\n## License\n\nSee [LICENSE](https://github.com/IAreKyleW00t/linode-dyndns/blob/main/LICENSE).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python tool for dynamically updating Linode Domain Records",
"version": "1.3.0",
"split_keywords": [
"automation",
"linode",
"dyndns",
"dns"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e26fb7e868edd001fccdb13703f67b78c3e140fb65f646370d6a2797723c46b9",
"md5": "32747a7e6325dbae9e0ba018a8aa0411",
"sha256": "622d04163b4a2ef032728a8b975eb4791a588a55e784ce469d37676dec8faef0"
},
"downloads": -1,
"filename": "linode_dyndns-1.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "32747a7e6325dbae9e0ba018a8aa0411",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 6486,
"upload_time": "2023-03-17T03:06:05",
"upload_time_iso_8601": "2023-03-17T03:06:05.692509Z",
"url": "https://files.pythonhosted.org/packages/e2/6f/b7e868edd001fccdb13703f67b78c3e140fb65f646370d6a2797723c46b9/linode_dyndns-1.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "305469d31f3c1fa405b619ef59ee49f6ab7b16b444dc7a00945f8c7564308cf2",
"md5": "e86740a2fa1f3c9e680bc76b3248629a",
"sha256": "82d7a7c16a37865d48ed72fe3d3a1ea7d7add275b299e2e49f0325d611166fef"
},
"downloads": -1,
"filename": "linode_dyndns-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "e86740a2fa1f3c9e680bc76b3248629a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 5733,
"upload_time": "2023-03-17T03:06:08",
"upload_time_iso_8601": "2023-03-17T03:06:08.999199Z",
"url": "https://files.pythonhosted.org/packages/30/54/69d31f3c1fa405b619ef59ee49f6ab7b16b444dc7a00945f8c7564308cf2/linode_dyndns-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-03-17 03:06:08",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "linode-dyndns"
}