PHPackages                             jpmurray/doddns - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. jpmurray/doddns

ActiveLibrary[CLI &amp; Console](/categories/cli)

jpmurray/doddns
===============

Small tool to use Digital Ocean as a Dynamic DNS (DDNS) service.

3.5.0(5y ago)29156[3 PRs](https://github.com/jpmurray/doddns/pulls)MITPHPPHP ^7.3

Since Sep 15Pushed 4y agoCompare

[ Source](https://github.com/jpmurray/doddns)[ Packagist](https://packagist.org/packages/jpmurray/doddns)[ Docs](https://github.com/jpmurray/doddns)[ GitHub Sponsors](https://github.com/jpmurray)[ RSS](/packages/jpmurray-doddns/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (7)Dependencies (9)Versions (25)Used By (0)

doddns
======

[](#doddns)

A small utility to use Digital Ocean as a Dynamic DNS (DDNS) service, built with [Laravel Zero](https://github.com/laravel-zero/laravel-zero).

It'll regularly check your IP address and update a selected Digital Ocean domain record with it, if the address changed.

Requirement
-----------

[](#requirement)

- PHP &gt;= 7.3 and Composer installed.
- A Digital Ocean [Personal Access Token](https://www.digitalocean.com/docs/api/create-personal-access-token/) that has the `read` and `write` permission.
- At least one domain name added to your account.
- At least a `cname` or an `A` record added to a domain that DODDNS will try to update.

Installation / Usage
--------------------

[](#installation--usage)

Using composer, you will need to run the following command to install DODDNS into the global space:

```
composer global require jpmurray/doddns

```

For DODDNS to work correctly you will have to make sure composer vendor's bin folder is added to your system's `$PATH`. You can test it by typing `doddns` in your terminal of choice: if it is installed correctly, you should be seeing commands usage instructions.

Next, you will have to add your DigitalOcean API token with the `token:add` command and then select which record you want to update with the `record:select` command.

Once it's done, you're good to go!

Available commands
------------------

[](#available-commands)

You can then use the doddns command to see a list of possible actions:

- `ip:last`: will output the last known IP that has been found / used and the timestamp of last update.
- `ip:current`: will query ipcheck.doddns.com to get your current IP address.
- `notifications:toggle`: turn desktop notification on or off (default is off).
- `record:delete`: removes saved record from the config file.
- `record:select`: Display a list of domains and records found with your DigitalOcean token to choose which to update with your current IP address.
- `record:update`: updates the selected record in config file with current IP.
- `token:add {token}`: will set your DigitalOcean personal access token, overwriting any existing value.

### Automatic updates

[](#automatic-updates)

If you want DODDNS to update your selected domain record automatically with your current IP address, you will have to add entry to your cron tab like so:

```
* * * * * php /path-to-doddns/doddns schedule:run >> /dev/null 2>&1.

```

After that, DODDNS will try to update every hours by itself.

Updating DODDNS
---------------

[](#updating-doddns)

### Version 3.0.0 and after

[](#version-300-and-after)

Version 3.0.0 changed a lot in term of workflow. If you install DODDNS from before 3.0.0, it is suggested that you remove the doddns folder entirely from the .config folder located in your home directory then start back from scratch so everything is clean.

### Before 3.0.0

[](#before-300)

If you've pulled or downloaded a new version, be sure to run doddns setup and choose the upgrade option to make sure your local database is up to date! You can also forgo the menu to upgrade directly using `doddns setup -U`.

PRs
---

[](#prs)

Any help is appreciated, please PR to the develop branch.

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 94.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~50 days

Recently: every ~33 days

Total

20

Last Release

1883d ago

Major Versions

1.4.0 → 2.0.02018-11-18

2.1.0 → 3.0.02019-07-13

PHP version history (3 changes)1.0.0PHP ^7.1.3

3.3.0PHP ^7.2.5

3.4.0PHP ^7.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1550428?v=4)[Jean-Philippe Murray](/maintainers/jpmurray)[@jpmurray](https://github.com/jpmurray)

---

Top Contributors

[![jpmurray](https://avatars.githubusercontent.com/u/1550428?v=4)](https://github.com/jpmurray "jpmurray (160 commits)")[![victorlap](https://avatars.githubusercontent.com/u/1645632?v=4)](https://github.com/victorlap "victorlap (6 commits)")[![WhiteLapin](https://avatars.githubusercontent.com/u/65079784?v=4)](https://github.com/WhiteLapin "WhiteLapin (2 commits)")[![0xflotus](https://avatars.githubusercontent.com/u/26602940?v=4)](https://github.com/0xflotus "0xflotus (1 commits)")

---

Tags

cliconsolelaravel-zerodigital oceandigitaloceanddns

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jpmurray-doddns/health.svg)

```
[![Health](https://phpackages.com/badges/jpmurray-doddns/health.svg)](https://phpackages.com/packages/jpmurray-doddns)
```

###  Alternatives

[mehrancodes/laravel-harbor

A CLI tool to Quickly create On-Demand preview environment for your apps.

10095.6k](/packages/mehrancodes-laravel-harbor)[laravel-zero/framework

The Laravel Zero Framework.

3491.5M419](/packages/laravel-zero-framework)[aeliot/todo-registrar

Register TODOs from source code in issue tracker

153.0k](/packages/aeliot-todo-registrar)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
