mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-24 22:58:46 +01:00
65 lines
2.4 KiB
Markdown
65 lines
2.4 KiB
Markdown
|
<h1>Subdomains Extension</h1>
|
||
|
|
||
|
#TODO - fix formatting etc...
|
||
|
on lnbits there should be an interface with input fields:
|
||
|
subdomain (for example: subdomain1)
|
||
|
ip address (for example: 192.168.21.21)
|
||
|
duration (1 month / 1 year etc...)
|
||
|
|
||
|
then when user presses SUBMIT button the ln invoice is shown that has to be paid...
|
||
|
|
||
|
when invoice is paid, the lnbits backend send request to the cloudflare domain registration service, that creates a new A record for that subdomain
|
||
|
|
||
|
for example, i am hosting lnbits on
|
||
|
lnbits.grmkris.com
|
||
|
|
||
|
and i am selling my subdomains
|
||
|
subdomain1.grmkris.com
|
||
|
subdomain2.grmkris.com
|
||
|
subdomain3.grmkris.com
|
||
|
|
||
|
there should be checks if that subdomain is already taken
|
||
|
|
||
|
and maybe an option to blacklist certain subdomains that i don't want to sell
|
||
|
|
||
|
|
||
|
<h2>If your extension has API endpoints, include useful ones here</h2>
|
||
|
|
||
|
<code>curl -H "Content-type: application/json" -X POST https://YOUR-LNBITS/YOUR-EXTENSION/api/v1/EXAMPLE -d '{"amount":"100","memo":"subdomains"}' -H "X-Api-Key: YOUR_WALLET-ADMIN/INVOICE-KEY"</code>
|
||
|
|
||
|
## cloudflare
|
||
|
|
||
|
- Cloudflare offers programmatic subdomain registration... (create new A record)
|
||
|
- you can keep your existing domain's registrar, you just have to transfer dns records to the cloudflare (free service)
|
||
|
- more information:
|
||
|
- https://api.cloudflare.com/#getting-started-requests
|
||
|
- API endpoints needed for our project:
|
||
|
- https://api.cloudflare.com/#dns-records-for-a-zone-list-dns-records
|
||
|
- https://api.cloudflare.com/#dns-records-for-a-zone-create-dns-record
|
||
|
- https://api.cloudflare.com/#dns-records-for-a-zone-delete-dns-record
|
||
|
- https://api.cloudflare.com/#dns-records-for-a-zone-update-dns-record
|
||
|
- api can be used by providing authorization token OR authorization key
|
||
|
- check API Tokens and API Keys : https://api.cloudflare.com/#getting-started-requests
|
||
|
|
||
|
|
||
|
|
||
|
example curls:
|
||
|
List dns records
|
||
|
```bash
|
||
|
curl --location --request GET 'https://api.cloudflare.com/client/v4/zones/bf3c1e516b35878c9f6532db2f2705ee/dns_records?type=A' \
|
||
|
--header 'Content-Type: application/json' \
|
||
|
--header 'Authorization: Bearer mS3gGFC3ySLqBe2ERtRTlh7H2YiGbFp2KLDK62uu'
|
||
|
```
|
||
|
|
||
|
```bash
|
||
|
curl --location --request POST 'https://api.cloudflare.com/client/v4/zones/bf3c1e516b35878c9f6532db2f2705ee/dns_records' \
|
||
|
--header 'Content-Type: application/json' \
|
||
|
--header 'Authorization: Bearer mS3gGFC3ySLqBe2ERtRTlh7H2YiGbFp2KLDK62uu' \
|
||
|
--data-raw '{
|
||
|
"type":"A",
|
||
|
"name":"subdomain1.grmkris.com",
|
||
|
"content":"31.15.150.237",
|
||
|
"ttl":0,
|
||
|
"proxied":true
|
||
|
}'
|
||
|
```
|