You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Contributing to SynologyDDNSCloudflareMultidomain
2
+
3
+
First off, thanks for taking the time to contribute! 🎉
4
+
5
+
The following is a set of guidelines for contributing to this project. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
6
+
7
+
## How Can I Contribute?
8
+
9
+
### Reporting Bugs
10
+
11
+
This section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
12
+
13
+
***Use a clear and descriptive title** for the issue to identify the problem.
14
+
***Describe the exact steps which reproduce the problem** in as many details as possible.
15
+
***Provide specific examples** to demonstrate the steps.
16
+
***Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
17
+
***Explain which behavior you expected to see instead and why.**
18
+
***Include logs** if possible (sanitize them to remove your API keys and domains).
19
+
20
+
### Suggesting Enhancements
21
+
22
+
This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality.
23
+
24
+
***Use a clear and descriptive title** for the issue to identify the suggestion.
25
+
***Provide a step-by-step description of the suggested enhancement** in as many details as possible.
26
+
***Explain why this enhancement would be useful** to most users.
27
+
28
+
### Pull Requests
29
+
30
+
* Ensure your code adheres to the existing style.
31
+
* Update the documentation if relevant.
32
+
***Run the tests** locally before submitting (`./run_tests.sh`).
33
+
* Ensure the GitHub Actions CI passes.
34
+
35
+
## Styleguides
36
+
37
+
### PHP
38
+
39
+
* We follow standard PHP coding conventions (PSR-12 where applicable).
40
+
* Keep the code simple and readable.
41
+
42
+
## License
43
+
44
+
By contributing, you agree that your contributions will be licensed under its MIT License.
Copy file name to clipboardExpand all lines: README.md
+36-24Lines changed: 36 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,10 +9,9 @@
9
9
10
10
## Table of contents
11
11
12
-
* 🆕 [What is new](#what-is-new)
13
-
*[What this script does](#what-this-script-does)
12
+
*[Features](#features)
14
13
*[Before you begin](#before-you-begin)
15
-
*🆕 [How to install](#how-to-install)
14
+
*[How to install](#how-to-install)
16
15
*[Troubleshooting and known issues](#troubleshooting-and-known-issues)
17
16
+[CloudFlare API free domains limitation](#cloudflare-api-free-domains-limitation)
18
17
+[Connection test failed or error returned](#connection-test-failed-or-error-returned)
@@ -21,21 +20,14 @@
21
20
*[Debug script](#debug)
22
21
*[Support this project](#support-this-project)
23
22
24
-
## What is new
23
+
## Features
25
24
26
-
- 🆕 New hostname input format: `subdomain1.mydomain.com|subdomain2.mydomain.com` (each domain is separated: `|`) used to be with `---` separator
27
-
- 🆕 Hostname input uses a new source of data (account) and support 256 symbols limit (DSM UI limit)
28
-
- 🆕 Autodetect IPv6 addresses via [ipify.org](https://www.ipify.org)
29
-
- 🆕 Optimised request to Cloudflare API
30
-
- 🆕 Installer script
31
-
32
-
## What this script does
33
-
34
-
* A PHP script for Synology DSM (and potentially Synology SRM devices) adding support for Cloudflare to Network Centre > Dynamic DNS (DDNS).
35
-
* Supports single domains, multidomains, subdomains and regional domains, or any combination thereof (example: dev.my.domain.com.au, domain.com.uk etc)
36
-
* 🆕 Easy installation process (added auto install script)
37
-
* Based on CloudFlare API v4
38
-
*[Supports dual stack IPv4 and IPv6](https://github.com/mrikirill/SynologyDDNSCloudflareMultidomain/pull/13)
25
+
***Synology Integration**: Adds Cloudflare support to Synology DSM and SRM Network Center > Dynamic DNS (DDNS).
26
+
***Comprehensive Domain Support**: Supports single domains, multidomains, subdomains, and regional domains (e.g., `dev.my.domain.com.au`).
27
+
***Dual Stack**: Autodetects and updates both IPv4 and IPv6 addresses.
28
+
***Easy Installation**: Automated installation script via SSH or Task Scheduler.
29
+
***Modern API**: Based on Cloudflare API v4 with optimized requests.
30
+
***Extended Capabilities**: Supports up to 256 characters for hostnames.
39
31
40
32
## Before you begin
41
33
@@ -56,15 +48,15 @@ Before starting the installation process, make sure you have (and know) the foll
56
48
**Zone** > **Zone** > **Read**
57
49
**Zone** > **DNS** > **Edit**
58
50
59
-
The affected zone ressouces have to be (at least):
51
+
The affected zone resources have to be (at least):
60
52
61
53
**Include** > **All zones from an account** > `<domain>`
62
54
63
55
2.*DNS settings:*
64
56
65
57
Ensure the DNS A record(s) for the domain/zone(s) you wish to update with this script have been created (More information: [Managing DNS records](https://support.cloudflare.com/hc/en-us/articles/360019093151-Managing-DNS-records-in-Cloudflare)).
66
58
67
-
Case for if IpV6 is available (check via https://api6.ipify.org), you can create an AAAA record for the domain/zone(s) you wish to update with this script.
59
+
Case for if IPv6 is available (check via https://api6.ipify.org), you can create an AAAA record for the domain/zone(s) you wish to update with this script.
68
60
69
61
Your DNS records should appear (or already be setup as follows) in Cloudflare:
70
62
@@ -75,7 +67,7 @@ Before starting the installation process, make sure you have (and know) the foll
75
67
3.*SSH access to your Synology device:*
76
68
77
69
If you haven't setup this access, see the following Synology Knowledge Base article:
78
-
[How can I sign in to DSM/SRM with root privilege via SSH?[(https://kb.synology.com/en-id/DSM/tutorial/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet)
70
+
[How can I sign in to DSM/SRM with root privilege via SSH?](https://kb.synology.com/en-id/DSM/tutorial/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet)
79
71
80
72
4.*SRM users: Knowledge of vi:*
81
73
@@ -87,6 +79,8 @@ For assistance with vi commands, see:
87
79
88
80
## How to install
89
81
82
+
### Method 1: via SSH
83
+
90
84
1.**SSH with root privileges on your supported device:**
91
85
92
86
a. For DSM Users:
@@ -129,7 +123,7 @@ For a single domain: __mydomain.com__
129
123
For multiple domains: __subdomain.mydomain.com|vpn.mydomain.com__
130
124
🆕(ensure each domain is separated: `|`)🆕
131
125
132
-
__Note: there is 256 symbols limit on Hostname input__
126
+
__Note: there is a 256-character limit on Hostname input__
@@ -139,11 +133,29 @@ For multiple domains: __subdomain.mydomain.com|vpn.mydomain.com__
139
133
4. Don't forget to deactivate SSH (step 1) if you don't need it. Leaving it active can be a security risk.
140
134
5. You're done! Optional, if you're happy with this script you could buy me ☕ or 🍺 here -> [](https://github.com/sponsors/mrikirill)
141
135
136
+
### Method 2: via Task Scheduler (No SSH required)
6. Select the newly created task and click **Run**.
151
+
7. Once the task has finished (you can check via Action > View Result), you can delete the task.
152
+
8. Proceed to **Step 3**in Method 1 above to configure the DDNS settings in Control Panel.
153
+
142
154
## Troubleshooting and known issues
143
155
144
-
### CloudFlare API free domains limitation
156
+
### Cloudflare API free domains limitation
145
157
146
-
CloudFlare API doesn't support domains with a .cf, .ga, .gq, .ml, or .tk TLD (top-level domain)
158
+
Cloudflare API doesn't support domains with a .cf, .ga, .gq, .ml, or .tk TLD (top-level domain)
147
159
148
160
For more details read here: https://github.com/mrikirill/SynologyDDNSCloudflareMultidomain/issues/28 and https://community.cloudflare.com/t/unable-to-update-ddns-using-api-for-some-tlds/167228/61
149
161
@@ -204,7 +216,7 @@ You can run this script directly to see output logs
0 commit comments