scadere


Namescadere JSON
Version 0.2.4 PyPI version JSON
download
home_pageNone
SummaryTLS certificate renewal reminder
upload_time2025-07-11 05:52:33
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords atom tls ca
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Scadere

Scadere is a TLS certificate renewal reminder.  It checks for certificates
that are about to expire and provides an Atom feed for notification.

## Installation

The recommended installation method is through your distribution.
Installing from source should only be considered as a last resort;
if you are capable of doing so, please also package scadere
for your distribution.

Scadere requires Python 3.11 or later, and uses [flit] 3.12 or above
as the PEP 517 build backend.  Installation can be done
with `flit install` or `pip install .`.

With `scadere-check` and `scadere-listen` under `$prefix/bin`,
the manual pages can be built and installed using `make(1p)`,
GNU [help2man] and `install(1)`:

    cd doc
    make PREFIX=$prefix
    make install PREFIX=$prefix

(FYI, GNU make has an extension that allows specifying `--directory=doc`,
which can save you from having to change the directory.)

## Usage

### Expiration checking

```console
$ scadere-check --help
Usage: scadere-check [-h] [-v] [-d DAYS] [-o PATH] HOST[:PORT]...

Check TLS certificate expiration of HOST, where PORT defaults to 443.

Options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -d DAYS, --days=DAYS  days before expiration (default to 7)
  -o PATH, --output=PATH
                        output file (default to stdout)
```

It is recommended to schedule `scadere-check` chronically.
See `contrib/scadere-check.*` for an example systemd timer configuration.

### Expiration notification

```console
$ scadere-listen --help
Usage: scadere-listen [-h] [-v] [-t TITLE] PATH URL [[HOST][:PORT]]

Serve at URL Atom feeds for TLS certificate renewal reminder.
It is possible for clients to filter domains
using one or more "domain" URL queries.

The certificate information is read from the file at PATH,
which is generated by scadere-check(1).

The server listens for TCP connections coming to HOST:PORT,
where HOST defaults to localhost and PORT is selected randomly
if not specified.

Options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -t TITLE, --title=TITLE
                        title of Atom feeds (default to PATH's filename)
```

A sample `scadere-listen.service` for systemd
is also available under the `contrib` directory.

## Hacking

Unit testing is done with [pytest], [pytest-asyncio],
[Hypothesis] and [trustme].  Since scadere itself does not depend
on any Python package, it is safe to be tested in-tree:

    PYTHONPATH=src pytest

## Contributing

Issues should be reported to [chung@loa.loang.net][loang mailing list].

The mailing list also welcomes patches.  Please maintain
a full branch [coverage], keep the [hobgoblins][flake8] happy,
and ensure the software is easy to [reuse]:

    PYTHONPATH=src coverage run && coverage report
    flake8
    reuse lint

Patches should be sent using [`git send-email`][git send-email]
with the following configuration:

    git config sendemail.to 'chung@loa.loang.net'
    git config format.subjectPrefix 'PATCH scadere'

## Copying

![AGPLv3](https://www.gnu.org/graphics/agplv3-155x51.png)

Scadere is free software: you can redistribute and/or modify it
under the terms of the GNU [Affero General Public License][agpl]
version 3 or later.

[flit]: https://flit.pypa.io
[help2man]: https://www.gnu.org/software/help2man
[pytest]: https://docs.pytest.org
[pytest-asyncio]: https://pytest-asyncio.rtfd.io
[Hypothesis]: https://hypothesis.rtfd.io
[trustme]: https://trustme.rtfd.io
[loang mailing list]: https://loa.loang.net/chung
[coverage]: https://coverage.rtfd.io
[flake8]: https://flake8.pycqa.org
[reuse]: https://reuse.software
[git send-email]: https://git-send-email.io
[agpl]: https://www.gnu.org/licenses/agpl

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "scadere",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "Nguy\u1ec5n Gia Phong <chung@loa.loang.net>",
    "keywords": "atom, tls, ca",
    "author": null,
    "author_email": "Nguy\u1ec5n Gia Phong <cnx@loang.net>",
    "download_url": "https://files.pythonhosted.org/packages/0b/36/0e35df0ce533ccaa117e21d17d305592f42725254d535ff18cfc70eb14e4/scadere-0.2.4.tar.gz",
    "platform": null,
    "description": "# Scadere\n\nScadere is a TLS certificate renewal reminder.  It checks for certificates\nthat are about to expire and provides an Atom feed for notification.\n\n## Installation\n\nThe recommended installation method is through your distribution.\nInstalling from source should only be considered as a last resort;\nif you are capable of doing so, please also package scadere\nfor your distribution.\n\nScadere requires Python 3.11 or later, and uses [flit] 3.12 or above\nas the PEP 517 build backend.  Installation can be done\nwith `flit install` or `pip install .`.\n\nWith `scadere-check` and `scadere-listen` under `$prefix/bin`,\nthe manual pages can be built and installed using `make(1p)`,\nGNU [help2man] and `install(1)`:\n\n    cd doc\n    make PREFIX=$prefix\n    make install PREFIX=$prefix\n\n(FYI, GNU make has an extension that allows specifying `--directory=doc`,\nwhich can save you from having to change the directory.)\n\n## Usage\n\n### Expiration checking\n\n```console\n$ scadere-check --help\nUsage: scadere-check [-h] [-v] [-d DAYS] [-o PATH] HOST[:PORT]...\n\nCheck TLS certificate expiration of HOST, where PORT defaults to 443.\n\nOptions:\n  -h, --help            show this help message and exit\n  -v, --version         show program's version number and exit\n  -d DAYS, --days=DAYS  days before expiration (default to 7)\n  -o PATH, --output=PATH\n                        output file (default to stdout)\n```\n\nIt is recommended to schedule `scadere-check` chronically.\nSee `contrib/scadere-check.*` for an example systemd timer configuration.\n\n### Expiration notification\n\n```console\n$ scadere-listen --help\nUsage: scadere-listen [-h] [-v] [-t TITLE] PATH URL [[HOST][:PORT]]\n\nServe at URL Atom feeds for TLS certificate renewal reminder.\nIt is possible for clients to filter domains\nusing one or more \"domain\" URL queries.\n\nThe certificate information is read from the file at PATH,\nwhich is generated by scadere-check(1).\n\nThe server listens for TCP connections coming to HOST:PORT,\nwhere HOST defaults to localhost and PORT is selected randomly\nif not specified.\n\nOptions:\n  -h, --help            show this help message and exit\n  -v, --version         show program's version number and exit\n  -t TITLE, --title=TITLE\n                        title of Atom feeds (default to PATH's filename)\n```\n\nA sample `scadere-listen.service` for systemd\nis also available under the `contrib` directory.\n\n## Hacking\n\nUnit testing is done with [pytest], [pytest-asyncio],\n[Hypothesis] and [trustme].  Since scadere itself does not depend\non any Python package, it is safe to be tested in-tree:\n\n    PYTHONPATH=src pytest\n\n## Contributing\n\nIssues should be reported to [chung@loa.loang.net][loang mailing list].\n\nThe mailing list also welcomes patches.  Please maintain\na full branch [coverage], keep the [hobgoblins][flake8] happy,\nand ensure the software is easy to [reuse]:\n\n    PYTHONPATH=src coverage run && coverage report\n    flake8\n    reuse lint\n\nPatches should be sent using [`git send-email`][git send-email]\nwith the following configuration:\n\n    git config sendemail.to 'chung@loa.loang.net'\n    git config format.subjectPrefix 'PATCH scadere'\n\n## Copying\n\n![AGPLv3](https://www.gnu.org/graphics/agplv3-155x51.png)\n\nScadere is free software: you can redistribute and/or modify it\nunder the terms of the GNU [Affero General Public License][agpl]\nversion 3 or later.\n\n[flit]: https://flit.pypa.io\n[help2man]: https://www.gnu.org/software/help2man\n[pytest]: https://docs.pytest.org\n[pytest-asyncio]: https://pytest-asyncio.rtfd.io\n[Hypothesis]: https://hypothesis.rtfd.io\n[trustme]: https://trustme.rtfd.io\n[loang mailing list]: https://loa.loang.net/chung\n[coverage]: https://coverage.rtfd.io\n[flake8]: https://flake8.pycqa.org\n[reuse]: https://reuse.software\n[git send-email]: https://git-send-email.io\n[agpl]: https://www.gnu.org/licenses/agpl\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "TLS certificate renewal reminder",
    "version": "0.2.4",
    "project_urls": {
        "Inbox": "https://loa.loang.net/chung",
        "Source": "https://trong.loang.net/scadere"
    },
    "split_keywords": [
        "atom",
        " tls",
        " ca"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6d279865f8f51b240fc8f03542ca685547fb070eca9b7c3d1c51477832690a27",
                "md5": "c6c20c038c84160d167717cc45d022ce",
                "sha256": "9f6a1ddc4ba3205bebe82680cbc6ba9851c7449062251d4a4bed525d1154e692"
            },
            "downloads": -1,
            "filename": "scadere-0.2.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c6c20c038c84160d167717cc45d022ce",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 27476,
            "upload_time": "2025-07-11T05:52:31",
            "upload_time_iso_8601": "2025-07-11T05:52:31.574833Z",
            "url": "https://files.pythonhosted.org/packages/6d/27/9865f8f51b240fc8f03542ca685547fb070eca9b7c3d1c51477832690a27/scadere-0.2.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0b360e35df0ce533ccaa117e21d17d305592f42725254d535ff18cfc70eb14e4",
                "md5": "fafda89706e47188b1b2387c0a1909db",
                "sha256": "6bf1833865b4ae632a283190207082b3ea4e6ceecb68186c852b2600f927fb8e"
            },
            "downloads": -1,
            "filename": "scadere-0.2.4.tar.gz",
            "has_sig": false,
            "md5_digest": "fafda89706e47188b1b2387c0a1909db",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 31150,
            "upload_time": "2025-07-11T05:52:33",
            "upload_time_iso_8601": "2025-07-11T05:52:33.753414Z",
            "url": "https://files.pythonhosted.org/packages/0b/36/0e35df0ce533ccaa117e21d17d305592f42725254d535ff18cfc70eb14e4/scadere-0.2.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-11 05:52:33",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "scadere"
}
        
Elapsed time: 1.09152s