{"id":20812294,"url":"https://github.com/klettit/powerrqlite","last_synced_at":"2025-06-20T01:09:40.121Z","repository":{"id":54816900,"uuid":"330959956","full_name":"KlettIT/PowerRqlite","owner":"KlettIT","description":"PowerDNS remote Backend for rqlite (Distributed SQLite)","archived":false,"fork":false,"pushed_at":"2024-06-06T13:49:27.000Z","size":182,"stargazers_count":9,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T10:52:47.753Z","etag":null,"topics":["aspnet-core","csharp","distributed-database","powerdns","powerdns-backend","rqlite"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KlettIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-19T11:37:33.000Z","updated_at":"2024-07-26T16:07:13.000Z","dependencies_parsed_at":"2024-11-17T20:52:26.290Z","dependency_job_id":"921a3e67-bed6-46fd-b437-18e5a2dcf067","html_url":"https://github.com/KlettIT/PowerRqlite","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/KlettIT/PowerRqlite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KlettIT%2FPowerRqlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KlettIT%2FPowerRqlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KlettIT%2FPowerRqlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KlettIT%2FPowerRqlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KlettIT","download_url":"https://codeload.github.com/KlettIT/PowerRqlite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KlettIT%2FPowerRqlite/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260857418,"owners_count":23073439,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aspnet-core","csharp","distributed-database","powerdns","powerdns-backend","rqlite"],"created_at":"2024-11-17T20:52:12.450Z","updated_at":"2025-06-20T01:09:35.107Z","avatar_url":"https://github.com/KlettIT.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![PowerRqlite](Resources/logo-text.png)\n\n*PowerRqlite* is a small [PowerDNS Authoritative](https://powerdns.com) backend which allows to use a [rqlite](https://github.com/rqlite/rqlite) cluster as database / storage.\n\n![GitHub](https://img.shields.io/github/license/KlettIT/PowerRqlite?style=plastic)\n\n\n## How it works\n\n*PowerRqlite* implements the required PowerDNS [remote backend functions](https://doc.powerdns.com/authoritative/backends/remote.html) and stores the data in the rqlite cluster using the [rqlite Data API](https://github.com/rqlite/rqlite/blob/master/DOC/DATA_API.md).\n\nA simple deployment could be look like this:\n\n![SimpleDeployment](docs/SimpleDeployment.png)\n\n*PowerRqlite* can be also be used to build a High Availbility setup **without** need for (complex) HA Backend MariaDB Galera Cluster.\n\n![HADeployment](docs/HADeployment.png)\n\n## Prerequisites\n\n* .NET 8 compatible Operating System (Ubuntu/Debian/CentOS/Alpine Linux/Windows/macOS) or a Docker Host\n* [rqrlite Cluster](https://github.com/rqlite/rqlite/blob/master/DOC/CLUSTER_MGMT.md)\n* PowerDNS Authoritative 4.3.x or higher\n\n*PowerRqlite* can be used for the following DNS Modes of Operation:\n\n| Name        | Native | Master | Slave | SuperSlave | DNSSEC | Launch |\n|-------------|:------:|:------:|:-----:|:----------:|:------:|:------:|\n| PowerRqlite |   yes  |   yes  |   no  |     no     |   no   | remote |\n\n\n\n## Known Issues\n\n* Domains/Zones can not be deleted via pdnsutil. This have to be done via sql.\n  ```\n  DELETE FROM domain WHERE name='example.com.';\n  ```\n\n\n## Quick Start\n\n### rqlite\n\nGrab the latest release from the rqlite [Github release page](https://github.com/rqlite/rqlite/releases). Once installed you can start a single rqlite node:\n\n```\nrqlited -node-id 1 ~/node.1\n```\n\n### PowerDNS\n\nInstall PowerDNS Authoritative a documented [here](https://doc.powerdns.com/authoritative/installation.html).\nTo use *PowerRqlite* you also have to install the `pdns-backend-remote` package.\n\nOnce installed we need to configure the remote-backend. To do this edit the `pdns.conf` configuration file add the following at the end of the file:\n\n```\nlaunch=remote\nremote-connection-string=http:url=http://127.0.0.1:5000/PowerDNS,timeout=20000\n```\n\n### PowerRqlite\n\nGrab the latest release from the rqlite [Github release page](https://github.com/KlettIT/PowerRqlite/releases). Once installed you can start it:\n\n```\nchmod +x PowerRqlite\n./PowerRqlite\n```\n\nIn case rqlite is not running on the same node, you can configure the rqlite url in the `appsettings.json` configuration file. Just edit `Url` under the `rqliteOptions` section.\n\nWhen running as a Docker container you can configure it via the `rqliteOptions__Url` Environment variable.\n\n## Configuration\n\n*PowerRqlite* is ASP.NET Core application and will therefore configured via the file `appsettings.json`.\nIf you running *PowerRqlite* as a Docker container you can use Environment variables to configure *PowerRqlite*.\n\n### Change default Port\n\n*PowerRqlite* listens default on Port `5000`. In case you want to change it, you just need to edit `appsettings.json` configuration file. In this example we change the listen port to `5555`\n\n```\n{\n...\n  \"Kestrel\": {\n    \"EndPoints\": {\n      \"Http\": {\n        \"Url\": \"http://localhost:5555\"\n      }\n    }\n  }\n}\n```\n\nTranslated into \"Docker\" it would be the following environment variable: `ASPNETCORE_Kestrel__EndPoints__Http__Url=http://localhost:5555`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklettit%2Fpowerrqlite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklettit%2Fpowerrqlite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklettit%2Fpowerrqlite/lists"}