- TypeScript 75.8%
- Shell 18.4%
- Dockerfile 3.6%
- Nix 2.2%
|
|
||
|---|---|---|
| .vscode | ||
| images | ||
| src | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .envrc | ||
| .gitignore | ||
| compose.yaml | ||
| config-schema.json | ||
| config.example.json | ||
| deno.json | ||
| Dockerfile | ||
| flake.lock | ||
| flake.nix | ||
| implementation.sh | ||
| LICENSE | ||
| README.md | ||
| SETUP_GUIDE.md | ||
BunDDNS
A very minimal dynamic DNS tool to routinely update Cloudflare DNS records with my latest IP address.
Setup
See the setup guide.
Details
- Only updates A records.
- Runs on startup and then every 5 minutes (on the minute).
- For the purposes of efficiency, only the first record is checked when deciding whether to update all of them.
- Supports multiple Cloudflare accounts.
Why
-
Why make this?
Because I need a way to handle my IP address changing that doesn't involve a third party service like no-ip.
-
Why not use an existing tool?
That's still a third-party service, plus this is basic enough that I can make it myself, so why not.
-
Why TypeScript?
I did originally write this as a bash script, however I wanted the added monitoring functionality of Docker.
-
Why store variables in both
.envandconfig.json?I use
.envfor sensitive information, since many applications have extra measures to "secure" it, such as VS Code not showing its contents in search results. However when variables start becoming more complicated than a simple key=value, I prefer to use JSON since it can be directly imported in TypeScript and I can make a schema for it.