Compare commits

...

No commits in common. "master" and "pages" have entirely different histories.

37 changed files with 127 additions and 903 deletions

View File

@ -1,39 +0,0 @@
kind: pipeline
type: docker
name: Build & Deploy
clone:
disable: true
steps:
- name: Clone
image: woodpeckerci/plugin-git
settings:
recursive: true
- name: Build site
image: denoland/deno
commands:
- deno task build
depends_on:
- "Clone"
- name: Push to Pages
image: plugins/gh-pages
settings:
remote_url:
from_secret: URL
password:
from_secret: PASS
target_branch: pages
pages_directory: dist
copy_contents: true
user_name: Sam Therapy
user_email: sam@samtherapy.net
depends_on:
- "Build site"
when:
branch:
- master
event:
- push

View File

@ -1,12 +0,0 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

88
.gitignore vendored
View File

@ -1,88 +0,0 @@
# Lume generated site
dist/
# DS Store
.DS_Store
._.DS_Store
**/.DS_Store
**/._.DS_Store
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless
# FuseBox cache
.fusebox/
# Snyk
.dccache

11
.vscode/settings.json vendored
View File

@ -1,11 +0,0 @@
{
"deno.enable": true,
"deno.lint": true,
"deno.unstable": true,
"[typescript]": {
"editor.defaultFormatter": "denoland.vscode-deno"
},
"[typescriptreact]": {
"editor.defaultFormatter": "denoland.vscode-deno"
}
}

1
404.html Normal file
View File

@ -0,0 +1 @@
<!doctype html><html lang=en><title>404</title><meta charset=utf-8><meta content="width=device-width,initial-scale=1"name=viewport><link rel="shortcut icon"href=/img/favicon.png type=image/png><link href=/css/style.css rel=stylesheet><meta content=website property=og:type><meta content="Froth DNS"property=og:site_name><meta content=en property=og:locale><meta content="All you need to know about the services provided by dns.froth.zone"property=og:description><meta content=https://dns.froth.zone/404.html property=og:url><meta content="All you need to know about the services provided by dns.froth.zone"name=twitter:description><meta content=summary name=twitter:card><meta content="All you need to know about the services provided by dns.froth.zone"itemprop=description><meta content="All you need to know about the services provided by dns.froth.zone"name=description><meta content="DNS, nameserver, DNS server, froth.zone, froth DNS, froth zone"name=keywords><meta content="Lume v1.15.2"name=generator><body><nav><ul class=main-nav><li><a href=/>/</a><li><a href=/nameservers>Nameservers</a><li><a href=/resolver>Resolver</a><li><a href=/awl>awl</a><li><a href=/pomme>pomme</a><li class=push><a href=https://status.froth.zone/status/dns>Status</a></ul></nav><header><h1>404</h1><h2>Not found</h2></header><main><p>The page you are looking for does not exist.<p>Did it ever?</main><footer><small> Built with <a href=https://lume.land>Lume</a><a href=https://git.froth.zone/sam/dns.froth.zone>Source</a><a href=https://samtherapy.net>Owner</a> </small></footer>

View File

@ -1,60 +0,0 @@
import lume from "lume/mod.ts"
// Stable plugins
import attributes from "lume/plugins/attributes.ts"
import codeHighlight from "lume/plugins/code_highlight.ts"
import esbuild from "lume/plugins/esbuild.ts"
import jsx from "lume/plugins/jsx_preact.ts"
import katex from "lume/plugins/katex.ts"
import lightningcss from "lume/plugins/lightningcss.ts"
import metas from "lume/plugins/metas.ts"
import minifyHTML from "lume/plugins/minify_html.ts"
import mdx from "lume/plugins/mdx.ts"
import pug from "lume/plugins/pug.ts"
import remark from "lume/plugins/remark.ts"
import sass from "lume/plugins/sass.ts"
import sitemap from "lume/plugins/sitemap.ts"
import sourceMaps from "lume/plugins/source_maps.ts"
import svgo from "lume/plugins/svgo.ts"
// Experimental plugins
// Custom plugins
import toml from "./custom/toml/toml.ts"
const site = lume({
src: "./src",
dest: "./dist",
location: new URL("https://dns.froth.zone"),
})
site
.copy("static", ".")
.copy("static/.well-known", ".well-known")
.copy(".domains")
.loadData([".toml"], toml)
.use(attributes())
.use(codeHighlight())
.use(katex())
.use(metas())
.use(jsx())
.use(mdx())
.use(remark())
.use(pug())
.use(sitemap())
.use(svgo())
.remoteFile(
"_includes/styles/external/nord.min.css",
"https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.6.0/build/styles/nord.min.css",
)
.use(esbuild({
extensions: [".ts", ".js"],
}))
.use(lightningcss())
.use(sass())
.use(minifyHTML())
.use(sourceMaps({
sourceContent: true,
}))
export default site

91
awl/index.html Normal file
View File

@ -0,0 +1,91 @@
<!doctype html><html lang=en><title>awl(1)</title><meta content="dns.froth.zone/awl git https://git.froth.zone/sam/awl"name=go-import><meta content="dns.froth.zone/awl https://git.froth.zone/sam/awl https://git.froth.zone/sam/awl/tree/master{/dir} https://git.froth.zone/sam/awl/src/branch/master{/dir}/{file}#L{line}"name=go-source><meta charset=utf-8><meta content="width=device-width,initial-scale=1"name=viewport><link rel="shortcut icon"href=/img/favicon.png type=image/png><link href=/css/style.css rel=stylesheet><meta content=website property=og:type><meta content="Froth DNS"property=og:site_name><meta content=en property=og:locale><meta content="All you need to know about the services provided by dns.froth.zone"property=og:description><meta content=https://dns.froth.zone/awl/ property=og:url><meta content="All you need to know about the services provided by dns.froth.zone"name=twitter:description><meta content=summary name=twitter:card><meta content="All you need to know about the services provided by dns.froth.zone"itemprop=description><meta content="All you need to know about the services provided by dns.froth.zone"name=description><meta content="DNS, nameserver, DNS server, froth.zone, froth DNS, froth zone"name=keywords><meta content="Lume v1.15.2"name=generator><body><nav><ul class=main-nav><li><a href=/>/</a><li><a href=/nameservers>Nameservers</a><li><a href=/resolver>Resolver</a><li><a href=/awl>awl</a><li><a href=/pomme>pomme</a><li class=push><a href=https://status.froth.zone/status/dns>Status</a></ul></nav><header><h1>awl(1)</h1><h2>A simple DNS client</h2></header><main><p><a href=https://git.froth.zone/sam/awl>awl</a> is a simple DNS query client, much like dig and drill.<pre><code> awl NS froth.zone @https://dns.froth.zone/dns-query
;; opcode: QUERY, status: NOERROR, id: 46274
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 8
;; QUESTION SECTION:
;froth.zone. IN NS
;; ANSWER SECTION:
froth.zone. 1650 IN NS illya.froth.zone.
froth.zone. 1650 IN NS rin.froth.zone.
froth.zone. 1650 IN NS sakura.froth.zone.
froth.zone. 1650 IN NS saber.froth.zone.
;; ADDITIONAL SECTION:
rin.froth.zone. 1650 IN AAAA 2607:5300:201:3100::931b
sakura.froth.zone. 1650 IN AAAA 2001:41d0:304:200::d12b
saber.froth.zone. 1650 IN AAAA 2602:fe90:100:2::164d:4c70
illya.froth.zone. 1650 IN AAAA 2603:c020:4004:62ee::8888
rin.froth.zone. 1650 IN A 158.69.1.114
sakura.froth.zone. 1650 IN A 141.94.206.97
saber.froth.zone. 1650 IN A 45.13.232.162
illya.froth.zone. 1650 IN A 129.213.157.255
;; Query time: 404.9936ms
;; SERVER: https://dns.froth.zone/dns-query
;; WHEN: Never
;; MSG SIZE rcvd: 489
</code></pre><hr><p><code>awl</code> understands DNSSEC, like <a href=https://linux.die.net/man/1/drill><code>drill(1)</code></a>:<pre><code> awl brokendnssec.net @1.1.1.1 --tcp
;; opcode: QUERY, status: SERVFAIL, id: 45766
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;brokendnssec.net. IN A
;; Query time: 6.0461ms
;; SERVER: 1.1.1.1:53 (TCP)
;; WHEN: Never
;; MSG SIZE rcvd: 34
awl brokendnssec.net @1.1.1.1 --cd +tcp
;; opcode: QUERY, status: NOERROR, id: 37917
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;brokendnssec.net. IN A
;; ANSWER SECTION:
brokendnssec.net. 294 IN A 172.67.36.129
brokendnssec.net. 294 IN A 104.22.35.212
brokendnssec.net. 294 IN A 104.22.34.212
;; Query time: 8.4461ms
;; SERVER: 1.1.1.1:53 (TCP)
;; WHEN: Never
;; MSG SIZE rcvd: 130
</code></pre><hr><p>It supports many of the flags that <a href=https://man.openbsd.org/dig.1><code>dig(1)</code></a> does:<pre><code> awl +noquestion +noauthority +nostats cat-v.org
;; opcode: QUERY, status: NOERROR, id: 39675
;; flags: qr rd ra; QUERY: 0, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; ANSWER SECTION:
cat-v.org. 9418 IN A 168.235.69.224
</code></pre><hr><p>And <a href=./man>some new features</a>, too!<pre><code class="language-xml hljs"> awl +quic --xml codeberg.org
<span class=hljs-tag><<span class=hljs-name>Msg</span>></span>
<span class=hljs-tag><<span class=hljs-name>Id</span>></span>22108<span class=hljs-tag>&LT/<span class=hljs-name>Id</span>></span>
<span class=hljs-tag><<span class=hljs-name>Response</span>></span>true<span class=hljs-tag>&LT/<span class=hljs-name>Response</span>></span>
<span class=hljs-tag><<span class=hljs-name>Opcode</span>></span>0<span class=hljs-tag>&LT/<span class=hljs-name>Opcode</span>></span>
<span class=hljs-tag><<span class=hljs-name>Authoritative</span>></span>false<span class=hljs-tag>&LT/<span class=hljs-name>Authoritative</span>></span>
<span class=hljs-tag><<span class=hljs-name>Truncated</span>></span>false<span class=hljs-tag>&LT/<span class=hljs-name>Truncated</span>></span>
<span class=hljs-tag><<span class=hljs-name>RecursionDesired</span>></span>true<span class=hljs-tag>&LT/<span class=hljs-name>RecursionDesired</span>></span>
<span class=hljs-tag><<span class=hljs-name>RecursionAvailable</span>></span>true<span class=hljs-tag>&LT/<span class=hljs-name>RecursionAvailable</span>></span>
<span class=hljs-tag><<span class=hljs-name>Zero</span>></span>false<span class=hljs-tag>&LT/<span class=hljs-name>Zero</span>></span>
<span class=hljs-tag><<span class=hljs-name>AuthenticatedData</span>></span>false<span class=hljs-tag>&LT/<span class=hljs-name>AuthenticatedData</span>></span>
<span class=hljs-tag><<span class=hljs-name>CheckingDisabled</span>></span>false<span class=hljs-tag>&LT/<span class=hljs-name>CheckingDisabled</span>></span>
<span class=hljs-tag><<span class=hljs-name>Rcode</span>></span>0<span class=hljs-tag>&LT/<span class=hljs-name>Rcode</span>></span>
<span class=hljs-tag><<span class=hljs-name>Compress</span>></span>false<span class=hljs-tag>&LT/<span class=hljs-name>Compress</span>></span>
<span class=hljs-tag><<span class=hljs-name>Question</span>></span>
<span class=hljs-tag><<span class=hljs-name>Name</span>></span>codeberg.org.<span class=hljs-tag>&LT/<span class=hljs-name>Name</span>></span>
<span class=hljs-tag><<span class=hljs-name>Qtype</span>></span>1<span class=hljs-tag>&LT/<span class=hljs-name>Qtype</span>></span>
<span class=hljs-tag><<span class=hljs-name>Qclass</span>></span>1<span class=hljs-tag>&LT/<span class=hljs-name>Qclass</span>></span>
<span class=hljs-tag>&LT/<span class=hljs-name>Question</span>></span>
<span class=hljs-tag><<span class=hljs-name>Answer</span>></span>
<span class=hljs-tag><<span class=hljs-name>Hdr</span>></span>
<span class=hljs-tag><<span class=hljs-name>Name</span>></span>codeberg.org.<span class=hljs-tag>&LT/<span class=hljs-name>Name</span>></span>
<span class=hljs-tag><<span class=hljs-name>Rrtype</span>></span>1<span class=hljs-tag>&LT/<span class=hljs-name>Rrtype</span>></span>
<span class=hljs-tag><<span class=hljs-name>Class</span>></span>1<span class=hljs-tag>&LT/<span class=hljs-name>Class</span>></span>
<span class=hljs-tag><<span class=hljs-name>Ttl</span>></span>3600<span class=hljs-tag>&LT/<span class=hljs-name>Ttl</span>></span>
<span class=hljs-tag><<span class=hljs-name>Rdlength</span>></span>4<span class=hljs-tag>&LT/<span class=hljs-name>Rdlength</span>></span>
<span class=hljs-tag>&LT/<span class=hljs-name>Hdr</span>></span>
<span class=hljs-tag><<span class=hljs-name>A</span>></span>193.26.156.135<span class=hljs-tag>&LT/<span class=hljs-name>A</span>></span>
<span class=hljs-tag>&LT/<span class=hljs-name>Answer</span>></span>
<span class=hljs-tag>&LT/<span class=hljs-name>Msg</span>></span>
</code></pre><hr><p>A full list of the features <code>awl</code> supports can be found <a href=https://git.froth.zone/sam/awl/wiki/Supported>here</a>.</main><footer><small> Built with <a href=https://lume.land>Lume</a><a href=https://git.froth.zone/sam/dns.froth.zone>Source</a><a href=https://samtherapy.net>Owner</a> </small></footer>

2
css/style.css Normal file

File diff suppressed because one or more lines are too long

1
css/style.css.map Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,6 +0,0 @@
import { parse } from "std/encoding/toml.ts"
export default async function toml(path: string | URL) {
const content = await Deno.readTextFile(path)
return parse(content)
}

View File

@ -1,42 +0,0 @@
{
"tasks": {
"lume": "echo \"import 'lume/cli.ts'\" | deno run --unstable -A -",
"build": "deno task lume",
"serve": "deno task lume -s"
},
"lock": false,
"compilerOptions": {
"jsx": "react-jsx",
"jsxImportSource": "npm:preact",
"lib": [
"dom",
"dom.iterable",
"dom.asynciterable",
"deno.ns"
]
},
"imports": {
"lume/": "https://deno.land/x/lume@v1.15.2/",
"experimental/": "https://raw.githubusercontent.com/lumeland/experimental-plugins/main/",
"std/": "https://deno.land/std/"
},
"lint": {
"files": {
"exclude": [
"src/_includes/styles/external/",
"dist/"
]
}
},
"fmt": {
"options": {
"semiColons": false
},
"files": {
"exclude": [
"src/_includes/styles/external/",
"dist"
]
}
}
}

1
dnscrypt/index.html Normal file
View File

@ -0,0 +1 @@
<!doctype html><html lang=en><title>Redirecting...</title><meta content="dns.froth.zone/dnscrypt git https://github.com/SamTherapy/dnscrypt"name=go-import><meta content="dns.froth.zone/dnscrypt https://github.com/SamTherapy/dnscrypt https://github.com/SamTherapy/dnscrypt/tree/master{/dir} https://github.com/SamTherapy/dnscrypt/blob/master{/dir}/{file}#L{line}"name=go-source><meta charset=utf-8><meta content="width=device-width,initial-scale=1"name=viewport><link rel="shortcut icon"href=/img/favicon.png type=image/png><link href=/css/style.css rel=stylesheet><meta content=website property=og:type><meta content="Froth DNS"property=og:site_name><meta content=en property=og:locale><meta content="All you need to know about the services provided by dns.froth.zone"property=og:description><meta content=https://dns.froth.zone/dnscrypt/ property=og:url><meta content="All you need to know about the services provided by dns.froth.zone"name=twitter:description><meta content=summary name=twitter:card><meta content="All you need to know about the services provided by dns.froth.zone"itemprop=description><meta content="All you need to know about the services provided by dns.froth.zone"name=description><meta content="DNS, nameserver, DNS server, froth.zone, froth DNS, froth zone"name=keywords><meta content="Lume v1.15.2"name=generator><body><nav><ul class=main-nav><li><a href=/>/</a><li><a href=/nameservers>Nameservers</a><li><a href=/resolver>Resolver</a><li><a href=/awl>awl</a><li><a href=/pomme>pomme</a><li class=push><a href=https://status.froth.zone/status/dns>Status</a></ul></nav><header><h1>Redirecting...</h1><h2>https://github.com/SamTherapy/dnscrypt</h2></header><main><meta content="0; url=https://github.com/SamTherapy/dnscrypt"http-equiv=refresh></main><footer><small> Built with <a href=https://lume.land>Lume</a><a href=https://git.froth.zone/sam/dns.froth.zone>Source</a><a href=https://samtherapy.net>Owner</a> </small></footer>

1
index.html Normal file
View File

@ -0,0 +1 @@
<!doctype html><html lang=en><title>Froth DNS Service</title><meta charset=utf-8><meta content="width=device-width,initial-scale=1"name=viewport><link rel="shortcut icon"href=/img/favicon.png type=image/png><link href=/css/style.css rel=stylesheet><meta content=website property=og:type><meta content="Froth DNS"property=og:site_name><meta content=en property=og:locale><meta content="All you need to know about the services provided by dns.froth.zone"property=og:description><meta content=https://dns.froth.zone/ property=og:url><meta content="All you need to know about the services provided by dns.froth.zone"name=twitter:description><meta content=summary name=twitter:card><meta content="All you need to know about the services provided by dns.froth.zone"itemprop=description><meta content="All you need to know about the services provided by dns.froth.zone"name=description><meta content="DNS, nameserver, DNS server, froth.zone, froth DNS, froth zone"name=keywords><meta content="Lume v1.15.2"name=generator><body><nav><ul class=main-nav><li><a href=/>/</a><li><a href=/nameservers>Nameservers</a><li><a href=/resolver>Resolver</a><li><a href=/awl>awl</a><li><a href=/pomme>pomme</a><li class=push><a href=https://status.froth.zone/status/dns>Status</a></ul></nav><header><h1>Froth DNS Service</h1><h2>Welcome to the Froth DNS service!</h2></header><main><h4>Hello there.</h4><p>This is a landing page for the DNS services that I host.<p><br> <br> <br> <br> <br> <br> <br> <br> <br> Yes, I know I have a problem.<p>No, you don't have to remind me.</main><footer><small> Built with <a href=https://lume.land>Lume</a><a href=https://git.froth.zone/sam/dns.froth.zone>Source</a><a href=https://samtherapy.net>Owner</a> </small></footer>

1
nameservers/index.html Normal file
View File

@ -0,0 +1 @@
<!doctype html><html lang=en><title>Froth.zone Nameservers</title><meta charset=utf-8><meta content="width=device-width,initial-scale=1"name=viewport><link rel="shortcut icon"href=/img/favicon.png type=image/png><link href=/css/style.css rel=stylesheet><meta content=website property=og:type><meta content="Froth DNS"property=og:site_name><meta content=en property=og:locale><meta content="All you need to know about the services provided by dns.froth.zone"property=og:description><meta content=https://dns.froth.zone/nameservers/ property=og:url><meta content="All you need to know about the services provided by dns.froth.zone"name=twitter:description><meta content=summary name=twitter:card><meta content="All you need to know about the services provided by dns.froth.zone"itemprop=description><meta content="All you need to know about the services provided by dns.froth.zone"name=description><meta content="DNS, nameserver, DNS server, froth.zone, froth DNS, froth zone"name=keywords><meta content="Lume v1.15.2"name=generator><body><nav><ul class=main-nav><li><a href=/>/</a><li><a href=/nameservers>Nameservers</a><li><a href=/resolver>Resolver</a><li><a href=/awl>awl</a><li><a href=/pomme>pomme</a><li class=push><a href=https://status.froth.zone/status/dns>Status</a></ul></nav><header><h1>Froth.zone Nameservers</h1><h2></h2></header><main><p>I host four nameservers in servers all over <del>NATO</del> the world, so anybody <del>in the US or Western Europe</del> can more easily access my services:<p>The IP addresses are found by using <a href=/awl/>awl</a>:<ul><li><p><a href=https://rin.froth.zone>rin.froth.zone</a> (Hosted in Canada) <br> awl +short rin.froth.zone && awl +short AAAA rin.froth.zone <br> 158.69.1.114 <br> 2607:5300:201:3100::931b</p><li><p><a href=https://sakura.froth.zone>sakura.froth.zone</a> (Hosted in France) <br> awl --short sakura.froth.zone && awl --short AAAA sakura.froth.zone <br> 141.94.206.97 <br> 2001:41d0:304:200::d12b</p><li><p><a href=https://saber.froth.zone>saber.froth.zone</a> (Hosted in the Netherlands) <br> awl -s saber.froth.zone && awl -s AAAA saber.froth.zone <br> 185.196.220.241 <br> 2a0f:ca80:0:2a4::5:4b32</p><li><p><a href=https://illya.froth.zone>illya.froth.zone</a> (Hosted in the US) <br> awl +short illya.froth.zone && awl -s AAAA illya.froth.zone <br> 129.213.157.255 <br> 2603:c020:4004:62ee::8888</p></ul><hr><p>Want to use them? : If so, just <a href=https://samtherapy.net/contact>contact me</a>!</main><footer><small> Built with <a href=https://lume.land>Lume</a><a href=https://git.froth.zone/sam/dns.froth.zone>Source</a><a href=https://samtherapy.net>Owner</a> </small></footer>

1
pomme/index.html Normal file
View File

@ -0,0 +1 @@
<!doctype html><html lang=en><title>Pomme - A web interface</title><meta content="dns.froth.zone/pomme git https://git.freecumextremist.com/grumbulon/pomme"name=go-import><meta content="dns.froth.zone/pomme https://git.freecumextremist.com/grumbulon/pomme https://git.freecumextremist.com/grumbulon/pomme/tree/master{/dir} https://git.freecumextremist.com/grumbulon/pomme/src/branch/master{/dir}/{file}#L{line}"name=go-source><meta charset=utf-8><meta content="width=device-width,initial-scale=1"name=viewport><link rel="shortcut icon"href=/img/favicon.png type=image/png><link href=/css/style.css rel=stylesheet><meta content=website property=og:type><meta content="Froth DNS"property=og:site_name><meta content=en property=og:locale><meta content="All you need to know about the services provided by dns.froth.zone"property=og:description><meta content=https://dns.froth.zone/pomme/ property=og:url><meta content="All you need to know about the services provided by dns.froth.zone"name=twitter:description><meta content=summary name=twitter:card><meta content="All you need to know about the services provided by dns.froth.zone"itemprop=description><meta content="All you need to know about the services provided by dns.froth.zone"name=description><meta content="DNS, nameserver, DNS server, froth.zone, froth DNS, froth zone"name=keywords><meta content="Lume v1.15.2"name=generator><body><nav><ul class=main-nav><li><a href=/>/</a><li><a href=/nameservers>Nameservers</a><li><a href=/resolver>Resolver</a><li><a href=/awl>awl</a><li><a href=/pomme>pomme</a><li class=push><a href=https://status.froth.zone/status/dns>Status</a></ul></nav><header><h1>Pomme - A web interface</h1><h2>Coming soon :)</h2></header><main></main><footer><small> Built with <a href=https://lume.land>Lume</a><a href=https://git.froth.zone/sam/dns.froth.zone>Source</a><a href=https://samtherapy.net>Owner</a> </small></footer>

1
resolver/index.html Normal file
View File

@ -0,0 +1 @@
<!doctype html><html lang=en><title>Froth.zone DNS resolving service</title><meta charset=utf-8><meta content="width=device-width,initial-scale=1"name=viewport><link rel="shortcut icon"href=/img/favicon.png type=image/png><link href=/css/style.css rel=stylesheet><meta content=website property=og:type><meta content="Froth DNS"property=og:site_name><meta content=en property=og:locale><meta content="All you need to know about the services provided by dns.froth.zone"property=og:description><meta content=https://dns.froth.zone/resolver/ property=og:url><meta content="All you need to know about the services provided by dns.froth.zone"name=twitter:description><meta content=summary name=twitter:card><meta content="All you need to know about the services provided by dns.froth.zone"itemprop=description><meta content="All you need to know about the services provided by dns.froth.zone"name=description><meta content="DNS, nameserver, DNS server, froth.zone, froth DNS, froth zone"name=keywords><meta content="Lume v1.15.2"name=generator><body><nav><ul class=main-nav><li><a href=/>/</a><li><a href=/nameservers>Nameservers</a><li><a href=/resolver>Resolver</a><li><a href=/awl>awl</a><li><a href=/pomme>pomme</a><li class=push><a href=https://status.froth.zone/status/dns>Status</a></ul></nav><header><h1>Froth.zone DNS resolving service</h1><h2></h2></header><main><p>I also host an <a href=https://www.opennic.org/>OpenNIC</a>-compatible DNS resolving server.<h3>Never asked questions (NAQs)</h3><ul><li><p><em>Why OpenNIC?</em> <br> Why not? The root servers seamlessly connect to ICANN space, so it's just free extra domains.</p><li><p><em>Where is it?</em> <br> Right here. This domain you're looking at right now.</p><li><p><em>What about DNS-over-TCP?</em> <br> Yes.</p><li><p><em>DNS-over-TLS?</em> <br> Yes, DNS-over-TLS too.</p><li><p><em>DNSCrypt?</em> <br> Nope. ¯\_(ツ)_/¯ <br> Maybe when it becomes an RFC.</p><li><p><em>What about DNS-over-HTTPS?</em> <br> Yes! Use <strong>ht<span>tp</span>s://dns.froth.zone/dns-query</strong> as the endpoint URL.</p><li><p><em>What about QUIC?</em> <br> Yes! I do! (as of 2023-03-10) <br> Thanks, AdGuard!</p></ul></main><footer><small> Built with <a href=https://lume.land>Lume</a><a href=https://git.froth.zone/sam/dns.froth.zone>Source</a><a href=https://samtherapy.net>Owner</a> </small></footer>

27
sitemap.xml Normal file
View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://dns.froth.zone/</loc>
<lastmod>2023-05-27T12:02:30.629Z</lastmod>
</url>
<url>
<loc>https://dns.froth.zone/awl/</loc>
<lastmod>2023-05-27T12:02:30.629Z</lastmod>
</url>
<url>
<loc>https://dns.froth.zone/dnscrypt/</loc>
<lastmod>2023-05-27T12:02:30.629Z</lastmod>
</url>
<url>
<loc>https://dns.froth.zone/nameservers/</loc>
<lastmod>2023-05-27T12:02:30.629Z</lastmod>
</url>
<url>
<loc>https://dns.froth.zone/pomme/</loc>
<lastmod>2023-05-27T12:02:30.629Z</lastmod>
</url>
<url>
<loc>https://dns.froth.zone/resolver/</loc>
<lastmod>2023-05-27T12:02:30.629Z</lastmod>
</url>
</urlset>

View File

@ -1,9 +0,0 @@
---
title: 404
subtitle: Not found
layout: layouts/base.pug
url: /404.html
---
The page you are looking for does not exist.
Did it ever?

View File

@ -1,35 +0,0 @@
# Site metas from Lume metas plugin
[metas]
site = "Froth DNS"
lang = "en"
description = "All you need to know about the services provided by dns.froth.zone"
# icon = "img/favicon.png"
keywords = ["DNS", "nameserver", "DNS server", "froth.zone", "froth DNS", "froth zone"]
generator = true
[[menu.left]]
name = "/"
url = "/"
[[menu.left]]
name = "Nameservers"
url = "/nameservers"
[[menu.left]]
name = "Resolver"
url = "/resolver"
[[menu.left]]
name = "awl"
url = "/awl"
[[menu.left]]
name = "pomme"
url = "/pomme"
[[menu.right]]
name = "Status"
url = "https://status.froth.zone/status/dns"
[mergedKeys]
metas = "object"

View File

@ -1,14 +0,0 @@
doctype html
html(lang=metas.lang)
head
title= title
include meta.pug
include nav.pug
body
header
h1= title
h2= subtitle
main
| !{content}
footer
include footer.html

View File

@ -1,8 +0,0 @@
<!-- This is a template because I need to make raw HTML -->
<small>
Built with <a href="https://lume.land">Lume</a>
<a href="https://git.froth.zone/sam/dns.froth.zone">Source</a>
<a href="https://samtherapy.net">Owner</a>
</small>

View File

@ -1,10 +0,0 @@
if goimport
meta(name="go-import", content=`${goimport.url} ${goimport.vcs} ${goimport.repo}`)
if goimport.gitea
meta(name="go-source", content=`${goimport.url} ${goimport.repo} ${goimport.repo}/tree/${goimport.branch}\{/dir\} ${goimport.repo}/src/branch/${goimport.branch}\{/dir\}/\{file\}\#L\{line\}`)
else
meta(name="go-source", content=`${goimport.url} ${goimport.repo} ${goimport.repo}/tree/${goimport.branch}\{/dir\} ${goimport.repo}/blob/${goimport.branch}\{/dir\}/\{file\}\#L\{line\}`)
meta(charset="utf-8")
meta(name='viewport', content='width=device-width, initial-scale=1')
link(rel="shortcut icon", href="/img/favicon.png", type="image/png")
link(rel="stylesheet", href="/css/style.css")

View File

@ -1,9 +0,0 @@
nav
ul(class= "main-nav")
each val in menu.left
li
a(href=val.url)= val.name
each val in menu.right
li(class= "push")
a(href=val.url)= val.name

View File

@ -1,32 +0,0 @@
@use "styles/sakura.theme";
// Highlight.js theme
@use "styles/external/nord.min";
:root {
font-family: -apple-system, BlinkMacSystemFont, "Avenir Next", Avenir, "Nimbus Sans L", Roboto, Noto, "Segoe UI", Arial, Helvetica, "Helvetica Neue", sans-serif;
}
.row {
display: flex;
}
.column {
flex: 50%;
}
.main-nav {
display: flex;
list-style: none;
max-width: 75%;
}
nav li {
margin: 0.5em;
}
.push {
justify-content: flex-end;
margin-left: auto;
}

View File

@ -1 +0,0 @@
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#2e3440}.hljs,.hljs-subst{color:#d8dee9}.hljs-selector-tag{color:#81a1c1}.hljs-selector-id{color:#8fbcbb;font-weight:700}.hljs-selector-attr,.hljs-selector-class{color:#8fbcbb}.hljs-property,.hljs-selector-pseudo{color:#88c0d0}.hljs-addition{background-color:rgba(163,190,140,.5)}.hljs-deletion{background-color:rgba(191,97,106,.5)}.hljs-built_in,.hljs-class,.hljs-type{color:#8fbcbb}.hljs-function,.hljs-function>.hljs-title,.hljs-title.hljs-function{color:#88c0d0}.hljs-keyword,.hljs-literal,.hljs-symbol{color:#81a1c1}.hljs-number{color:#b48ead}.hljs-regexp{color:#ebcb8b}.hljs-string{color:#a3be8c}.hljs-title{color:#8fbcbb}.hljs-params{color:#d8dee9}.hljs-bullet{color:#81a1c1}.hljs-code{color:#8fbcbb}.hljs-emphasis{font-style:italic}.hljs-formula{color:#8fbcbb}.hljs-strong{font-weight:700}.hljs-link:hover{text-decoration:underline}.hljs-comment,.hljs-quote{color:#4c566a}.hljs-doctag{color:#8fbcbb}.hljs-meta,.hljs-meta .hljs-keyword{color:#5e81ac}.hljs-meta .hljs-string{color:#a3be8c}.hljs-attr{color:#8fbcbb}.hljs-attribute{color:#d8dee9}.hljs-name{color:#81a1c1}.hljs-section{color:#88c0d0}.hljs-tag{color:#81a1c1}.hljs-template-variable,.hljs-variable{color:#d8dee9}.hljs-template-tag{color:#5e81ac}.language-abnf .hljs-attribute{color:#88c0d0}.language-abnf .hljs-symbol{color:#ebcb8b}.language-apache .hljs-attribute{color:#88c0d0}.language-apache .hljs-section{color:#81a1c1}.language-arduino .hljs-built_in{color:#88c0d0}.language-aspectj .hljs-meta{color:#d08770}.language-aspectj>.hljs-title{color:#88c0d0}.language-bnf .hljs-attribute{color:#8fbcbb}.language-clojure .hljs-name{color:#88c0d0}.language-clojure .hljs-symbol{color:#ebcb8b}.language-coq .hljs-built_in{color:#88c0d0}.language-cpp .hljs-meta .hljs-string{color:#8fbcbb}.language-css .hljs-built_in{color:#88c0d0}.language-css .hljs-keyword{color:#d08770}.language-diff .hljs-meta,.language-ebnf .hljs-attribute{color:#8fbcbb}.language-glsl .hljs-built_in{color:#88c0d0}.language-groovy .hljs-meta:not(:first-child),.language-haxe .hljs-meta,.language-java .hljs-meta{color:#d08770}.language-ldif .hljs-attribute{color:#8fbcbb}.language-lisp .hljs-name,.language-lua .hljs-built_in,.language-moonscript .hljs-built_in,.language-nginx .hljs-attribute{color:#88c0d0}.language-nginx .hljs-section{color:#5e81ac}.language-pf .hljs-built_in,.language-processing .hljs-built_in{color:#88c0d0}.language-scss .hljs-keyword,.language-stylus .hljs-keyword{color:#81a1c1}.language-swift .hljs-meta{color:#d08770}.language-vim .hljs-built_in{color:#88c0d0;font-style:italic}.language-yaml .hljs-meta{color:#d08770}

View File

@ -1,264 +0,0 @@
/* Sakura.css v1.4.1
* ================
* Minimal css theme.
* Project: https://github.com/oxalorg/sakura/
*/
/* Body */
html {
font-size: 62.5%; // So that root size becomes 10px
font-family: $font-family-base;
}
body {
// $font-size-base must be a rem value
font-size: $font-size-base;
line-height: 1.618;
max-width: 60em;
margin: auto;
color: $color-text;
background-color: $color-bg;
padding: 13px;
}
@media (max-width: 684px) {
body {
font-size: $font-size-base * 0.85;
}
}
@media (max-width: 382px) {
body {
font-size: $font-size-base * 0.75;
}
}
@mixin word-wrap() {
overflow-wrap: break-word;
word-wrap: break-word;
-ms-word-break: break-all;
word-break: break-word;
}
h1,
h2,
h3,
h4,
h5,
h6 {
line-height: 1.1;
font-family: $font-family-heading;
font-weight: 700;
margin-top: 3rem;
margin-bottom: 1.5rem;
@include word-wrap;
}
h1 {
font-size: 2.35em
}
h2 {
font-size: 2.00em
}
h3 {
font-size: 1.75em
}
h4 {
font-size: 1.5em
}
h5 {
font-size: 1.25em
}
h6 {
font-size: 1em
}
p {
margin-top: 0px;
margin-bottom: 2.5rem;
}
small,
sub,
sup {
font-size: 75%;
}
hr {
border-color: $color-blossom;
}
a {
text-decoration: none;
color: $color-blossom;
&:visited {
color: darken($color-blossom, 10%);
}
&:hover {
color: $color-fade;
border-bottom: 2px solid $color-text;
}
}
ul {
padding-left: 1.4em;
margin-top: 0px;
margin-bottom: 2.5rem;
}
li {
margin-bottom: 0.4em;
}
blockquote {
margin-left: 0px;
margin-right: 0px;
padding-left: 1em;
padding-top: 0.8em;
padding-bottom: 0.8em;
padding-right: 0.8em;
border-left: 5px solid $color-blossom;
margin-bottom: 2.5rem;
background-color: $color-bg-alt;
}
blockquote p {
margin-bottom: 0;
}
img,
video {
height: auto;
max-width: 100%;
margin-top: 0px;
margin-bottom: 2.5rem;
}
/* Pre and Code */
pre {
background-color: $color-bg-alt;
display: block;
padding: 1em;
overflow-x: auto;
margin-top: 0px;
margin-bottom: 2.5rem;
font-size: 0.9em;
}
code,
kbd,
samp {
font-size: 0.9em;
padding: 0 0.5em;
background-color: $color-bg-alt;
white-space: pre-wrap;
}
pre>code {
padding: 0;
background-color: transparent;
white-space: pre;
font-size: 1em;
}
/* Tables */
table {
text-align: justify;
width: 100%;
border-collapse: collapse;
}
td,
th {
padding: 0.5em;
border-bottom: 1px solid $color-bg-alt;
}
/* Buttons, forms and input */
input,
textarea {
border: 1px solid $color-text;
&:focus {
border: 1px solid $color-blossom;
}
}
textarea {
width: 100%;
}
.button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
display: inline-block;
padding: 5px 10px;
text-align: center;
text-decoration: none;
white-space: nowrap;
background-color: $color-blossom;
color: $color-bg;
border-radius: 1px;
border: 1px solid $color-blossom;
cursor: pointer;
box-sizing: border-box;
&[disabled] {
cursor: default;
opacity: .5;
}
&:focus:enabled,
&:hover:enabled {
background-color: $color-fade;
border-color: $color-fade;
color: $color-bg;
outline: 0;
}
}
textarea,
select,
input {
color: $color-text;
padding: 6px 10px;
/* The 6px vertically centers text on FF, ignored by Webkit */
margin-bottom: 10px;
background-color: $color-bg-alt;
border: 1px solid $color-bg-alt;
border-radius: 4px;
box-shadow: none;
box-sizing: border-box;
&:focus {
border: 1px solid $color-blossom;
outline: 0;
}
}
input[type="checkbox"]:focus {
outline: 1px dotted $color-blossom;
}
label,
legend,
fieldset {
display: block;
margin-bottom: .5rem;
font-weight: 600;
}

View File

@ -1,15 +0,0 @@
// Settings for SakuraCSS
$color-blossom: #ffffff;
$color-fade: #c9c9c9;
$color-bg: #222222;
$color-bg-alt: #4a4a4a;
/* $color-text: #dedce5; */
$color-text: #c9c9c9;
$font-size-base: 1.8rem;
$font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
$font-family-heading: $font-family-base;
@import "styles/external/sakura";

View File

View File

@ -1,133 +0,0 @@
---
title: awl(1)
subtitle: A simple DNS client
goimport:
url: dns.froth.zone/awl
vcs: git
repo: https://git.froth.zone/sam/awl
branch: master
gitea: true
layout: layouts/base.pug
---
[awl](https://git.froth.zone/sam/awl) is a simple DNS query client, much like dig and drill.
```
awl NS froth.zone @https://dns.froth.zone/dns-query
;; opcode: QUERY, status: NOERROR, id: 46274
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 8
;; QUESTION SECTION:
;froth.zone. IN NS
;; ANSWER SECTION:
froth.zone. 1650 IN NS illya.froth.zone.
froth.zone. 1650 IN NS rin.froth.zone.
froth.zone. 1650 IN NS sakura.froth.zone.
froth.zone. 1650 IN NS saber.froth.zone.
;; ADDITIONAL SECTION:
rin.froth.zone. 1650 IN AAAA 2607:5300:201:3100::931b
sakura.froth.zone. 1650 IN AAAA 2001:41d0:304:200::d12b
saber.froth.zone. 1650 IN AAAA 2602:fe90:100:2::164d:4c70
illya.froth.zone. 1650 IN AAAA 2603:c020:4004:62ee::8888
rin.froth.zone. 1650 IN A 158.69.1.114
sakura.froth.zone. 1650 IN A 141.94.206.97
saber.froth.zone. 1650 IN A 45.13.232.162
illya.froth.zone. 1650 IN A 129.213.157.255
;; Query time: 404.9936ms
;; SERVER: https://dns.froth.zone/dns-query
;; WHEN: Never
;; MSG SIZE rcvd: 489
```
---
`awl` understands DNSSEC, like [`drill(1)`](https://linux.die.net/man/1/drill):
```
awl brokendnssec.net @1.1.1.1 --tcp
;; opcode: QUERY, status: SERVFAIL, id: 45766
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;brokendnssec.net. IN A
;; Query time: 6.0461ms
;; SERVER: 1.1.1.1:53 (TCP)
;; WHEN: Never
;; MSG SIZE rcvd: 34
awl brokendnssec.net @1.1.1.1 --cd +tcp
;; opcode: QUERY, status: NOERROR, id: 37917
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;brokendnssec.net. IN A
;; ANSWER SECTION:
brokendnssec.net. 294 IN A 172.67.36.129
brokendnssec.net. 294 IN A 104.22.35.212
brokendnssec.net. 294 IN A 104.22.34.212
;; Query time: 8.4461ms
;; SERVER: 1.1.1.1:53 (TCP)
;; WHEN: Never
;; MSG SIZE rcvd: 130
```
---
It supports many of the flags that [`dig(1)`](https://man.openbsd.org/dig.1)
does:
```
awl +noquestion +noauthority +nostats cat-v.org
;; opcode: QUERY, status: NOERROR, id: 39675
;; flags: qr rd ra; QUERY: 0, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; ANSWER SECTION:
cat-v.org. 9418 IN A 168.235.69.224
```
---
And [some new features](./man), too!
```xml
awl +quic --xml codeberg.org
<Msg>
<Id>22108</Id>
<Response>true</Response>
<Opcode>0</Opcode>
<Authoritative>false</Authoritative>
<Truncated>false</Truncated>
<RecursionDesired>true</RecursionDesired>
<RecursionAvailable>true</RecursionAvailable>
<Zero>false</Zero>
<AuthenticatedData>false</AuthenticatedData>
<CheckingDisabled>false</CheckingDisabled>
<Rcode>0</Rcode>
<Compress>false</Compress>
<Question>
<Name>codeberg.org.</Name>
<Qtype>1</Qtype>
<Qclass>1</Qclass>
</Question>
<Answer>
<Hdr>
<Name>codeberg.org.</Name>
<Rrtype>1</Rrtype>
<Class>1</Class>
<Ttl>3600</Ttl>
<Rdlength>4</Rdlength>
</Hdr>
<A>193.26.156.135</A>
</Answer>
</Msg>
```
------
A full list of the features `awl` supports can be found [here](https://git.froth.zone/sam/awl/wiki/Supported).

View File

@ -1 +0,0 @@
@use "styles/base";

View File

@ -1,13 +0,0 @@
---
title: Redirecting...
subtitle: https://github.com/SamTherapy/dnscrypt
goimport:
url: dns.froth.zone/dnscrypt
vcs: git
repo: https://github.com/SamTherapy/dnscrypt
branch: master
gitea: false
layout: layouts/base.pug
---
<meta http-equiv="refresh" content="0; url=https://github.com/SamTherapy/dnscrypt" />

View File

@ -1,22 +0,0 @@
---
title: Froth DNS Service
subtitle: Welcome to the Froth DNS service!
layout: layouts/base.pug
---
#### Hello there.
This is a landing page for the DNS services that I host.
\
\
\
\
\
\
\
\
\
Yes, I know I have a problem.
No, you don't have to remind me.

View File

@ -1,36 +0,0 @@
---
title: Froth.zone Nameservers
subtitle:
layout: layouts/base.pug
---
I host four nameservers in servers all over ~~NATO~~ the world,
so anybody ~~in the US or Western Europe~~ can more easily access my
services:
The IP addresses are found by using [awl](/awl/):
- [rin.froth.zone](https://rin.froth.zone) (Hosted in Canada) \
awl +short rin.froth.zone && awl +short AAAA rin.froth.zone \
158.69.1.114 \
2607:5300:201:3100::931b
- [sakura.froth.zone](https://sakura.froth.zone) (Hosted in France) \
awl --short sakura.froth.zone && awl --short AAAA sakura.froth.zone \
141.94.206.97 \
2001:41d0:304:200::d12b
- [saber.froth.zone](https://saber.froth.zone) (Hosted in the Netherlands) \
awl -s saber.froth.zone && awl -s AAAA saber.froth.zone \
185.196.220.241 \
2a0f:ca80:0:2a4::5:4b32
- [illya.froth.zone](https://illya.froth.zone) (Hosted in the US) \
awl +short illya.froth.zone && awl -s AAAA illya.froth.zone \
129.213.157.255 \
2603:c020:4004:62ee::8888
---
Want to use them?
: If so, just [contact me](https://samtherapy.net/contact)!

View File

@ -1,11 +0,0 @@
---
title: Pomme - A web interface
subtitle: Coming soon :)
goimport:
url: dns.froth.zone/pomme
vcs: git
repo: https://git.freecumextremist.com/grumbulon/pomme
branch: master
gitea: true
layout: layouts/base.pug
---

View File

@ -1,32 +0,0 @@
---
title: Froth.zone DNS resolving service
subtitle:
layout: layouts/base.pug
---
I also host an [OpenNIC](https://www.opennic.org/)-compatible DNS resolving server.
### Never asked questions (NAQs)
- *Why OpenNIC?* \
Why not? The root servers seamlessly connect to ICANN space, so it's just free extra domains.
- *Where is it?* \
Right here. This domain you're looking at right now.
- *What about DNS-over-TCP?* \
Yes.
- *DNS-over-TLS?* \
Yes, DNS-over-TLS too.
- *DNSCrypt?* \
Nope. ¯\\\_(ツ)\_/¯ \
Maybe when it becomes an RFC.
- *What about DNS-over-HTTPS?* \
Yes! Use __ht<span>tp</span>s://dns.froth.zone/dns-query__ as the endpoint URL.
- *What about QUIC?* \
Yes! I do! (as of 2023-03-10) \
Thanks, AdGuard!