Browse Source

added basic information

master
Kristjan 4 years ago
parent
commit
399a07b98a
  1. 75
      lnbits/extensions/subdomains/README.md
  2. 16
      lnbits/extensions/subdomains/templates/subdomains/_api_docs.html
  3. 14
      lnbits/extensions/subdomains/templates/subdomains/index.html

75
lnbits/extensions/subdomains/README.md

@ -1,34 +1,27 @@
<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
So the goal of the extension is to allow the owner of a domain to sell their subdomain to the anyone who is willing to pay some money for it.
## Requirements
- Free cloudflare account
- Cloudflare as a dns server provider
- Cloudflare TOKEN and Cloudflare zone-id where the domain is parked
## API Endpoints
- **Domains**
- GET /api/v1/domains
- POST /api/v1/domains
- PUT /api/v1/domains/<domain_id>
- DELETE /api/v1/domains/<domain_id>
- **Subdomains**
- GET /api/v1/subdomains
- POST /api/v1/subdomains/<domain_id>
- GET /api/v1/subdomains/<payment_hash>
- DELETE /api/v1/subdomains/<subdomain_id>
## Useful
### 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:
@ -40,26 +33,4 @@ and maybe an option to blacklist certain subdomains that i don't want to sell
- 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
}'
```
- Cloudflare API postman collection: https://support.cloudflare.com/hc/en-us/articles/115002323852-Using-Cloudflare-API-with-Postman-Collections

16
lnbits/extensions/subdomains/templates/subdomains/_api_docs.html

@ -0,0 +1,16 @@
<q-expansion-item group="extras" icon="swap_vertical_circle" label="Info" :content-inset-level="0.5">
<q-card>
<q-card-section>
<h5 class="text-subtitle1 q-my-none">
Subdomains: Get paid sats to sell your subdomains
</h5>
<p>
Charge people for using your subdomain name...<br />
Are you the owner of <b>cool-domain.com</b> and want to sell <i>cool-subdomain</i>.<b>cool-domain.com</b>
<br />
<small>
Created by, <a href="https://github.com/grmkris">Kris</a></small>
</p>
</q-card-section>
</q-card>
</q-expansion-item>

14
lnbits/extensions/subdomains/templates/subdomains/index.html

@ -95,7 +95,19 @@
</q-table>
</q-card-section>
</q-card>
<div class="col-12 col-md-4 col-lg-5 q-gutter-y-md">
<q-card>
<q-card-section>
<h6 class="text-subtitle1 q-my-none">
LNbits Subdomain extension
</h6>
</q-card-section>
<q-card-section class="q-pa-none">
<q-separator></q-separator>
<q-list> {% include "subdomains/_api_docs.html" %} </q-list>
</q-card-section>
</q-card>
</div>
</div>

Loading…
Cancel
Save