Compare commits
12 Commits
develop
...
005a306fc6
| Author | SHA1 | Date | |
|---|---|---|---|
|
005a306fc6
|
|||
|
cb13ca0a3b
|
|||
|
5685830cba
|
|||
|
1f9b38306c
|
|||
|
9568cfe177
|
|||
|
18619efe39
|
|||
|
719221d74f
|
|||
|
5d95307ae2
|
|||
|
1b017d919a
|
|||
|
ce5ec9aace
|
|||
|
668dc8683b
|
|||
|
26c91c030a
|
@@ -23,5 +23,6 @@
|
||||
"TON": "Toncoin (TON)",
|
||||
"OP": "Optimism (OP)",
|
||||
"IAA": "IRIS (IAA)",
|
||||
"NEAR": "NEAR Protocol (NEAR)"
|
||||
"NEAR": "NEAR Protocol (NEAR)",
|
||||
"KAS": "Kasper (KAS)"
|
||||
}
|
||||
1
.well-known/wallets/KAS
Normal file
1
.well-known/wallets/KAS
Normal file
@@ -0,0 +1 @@
|
||||
kaspa:qzl7av7gq5j594pcs2gn6zf2xadpmhdm90nygjstvte0n6gt9f4fgx0w2dhm8
|
||||
35
addCoin.py
Normal file
35
addCoin.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import os
|
||||
import json
|
||||
|
||||
if not os.path.exists('.well-known/wallets'):
|
||||
os.makedirs('.well-known/wallets')
|
||||
|
||||
def addCoin(token:str, name:str, address:str):
|
||||
with open('.well-known/wallets/'+token.upper(),'w') as f:
|
||||
f.write(address)
|
||||
|
||||
with open('.well-known/wallets/.coins','r') as f:
|
||||
coins = json.load(f)
|
||||
|
||||
coins[token.upper()] = f'{name} ({token.upper()})'
|
||||
with open('.well-known/wallets/.coins','w') as f:
|
||||
f.write(json.dumps(coins, indent=4))
|
||||
|
||||
def addDomain(token:str, domain:str):
|
||||
with open('.well-known/wallets/.domains','r') as f:
|
||||
domains = json.load(f)
|
||||
|
||||
domains[token.upper()] = domain
|
||||
with open('.well-known/wallets/.domains','w') as f:
|
||||
f.write(json.dumps(domains, indent=4))
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Ask user for token
|
||||
token = input('Enter token symbol: ')
|
||||
name = input('Enter token name: ')
|
||||
address = input('Enter wallet address: ')
|
||||
addCoin(token, name, address)
|
||||
|
||||
if input('Do you want to add a domain? (y/n): ').lower() == 'y':
|
||||
domain = input('Enter domain: ')
|
||||
addDomain(token, domain)
|
||||
29
cleanSite.py
Normal file
29
cleanSite.py
Normal file
@@ -0,0 +1,29 @@
|
||||
import os
|
||||
|
||||
# Read all files in the templates directory
|
||||
for file in os.listdir('templates'):
|
||||
# Check if the file is sitemap.xml
|
||||
if file == 'sitemap.xml':
|
||||
# Open the file
|
||||
with open('templates/sitemap.xml', 'r') as f:
|
||||
# Read the content
|
||||
content = f.read()
|
||||
# Replace all .html with empty string
|
||||
content = content.replace('.html', '')
|
||||
# Write the content back to the file
|
||||
with open('templates/sitemap.xml', 'w') as f:
|
||||
f.write(content)
|
||||
# Skip the file
|
||||
continue
|
||||
|
||||
# If the file is not an html file, skip it
|
||||
if not file.endswith('.html'):
|
||||
continue
|
||||
|
||||
# Open the file
|
||||
with open('templates/' + file, 'r') as f:
|
||||
# Read and remove all .html
|
||||
content = f.read().replace('.html"', '"')
|
||||
# Write the cleaned content back to the file
|
||||
with open('templates/' + file, 'w') as f:
|
||||
f.write(content)
|
||||
@@ -3,7 +3,8 @@
|
||||
"url": "https://nathan3dprinting.au",
|
||||
"img": "/assets/img/external/nathan3dprinting.webp",
|
||||
"name": "Nathan 3D Printing",
|
||||
"description": "Offering 3D Printing and CAD modelling services to the Canberra region"
|
||||
"description": "Offering 3D Printing and CAD modelling services to the Canberra region",
|
||||
"enabled": false
|
||||
},
|
||||
{
|
||||
"url": "https://domains.hns.au",
|
||||
@@ -46,5 +47,17 @@
|
||||
"img": "/favicon.png",
|
||||
"name": "LINKR/",
|
||||
"description": "A free link shortener with a Handshake TLD and using DNS for authentication"
|
||||
},
|
||||
{
|
||||
"url": "https://faucet.woodburn.au",
|
||||
"img": "/favicon.png",
|
||||
"name": "HNS Domain Faucet",
|
||||
"description": "A service providing free Handshake TLDs to allow for quick testing for new users"
|
||||
},
|
||||
{
|
||||
"url":"https://hnsdoh.com",
|
||||
"img": "/assets/img/external/HNS.png",
|
||||
"name": "HNS DoH",
|
||||
"description": "A DNS over HTTPS resolver for Handshake domains"
|
||||
}
|
||||
]
|
||||
126
server.py
126
server.py
@@ -24,7 +24,18 @@ sites = []
|
||||
if os.path.isfile('data/sites.json'):
|
||||
with open('data/sites.json') as file:
|
||||
sites = json.load(file)
|
||||
# Remove any sites that are not enabled
|
||||
sites = [site for site in sites if 'enabled' not in site or site['enabled'] == True]
|
||||
|
||||
projects = []
|
||||
projectsUpdated = 0
|
||||
|
||||
|
||||
def getAddress():
|
||||
global address
|
||||
if address == '':
|
||||
address = 'hs1qv3uu4amv87g7p7h49xez2pmzwjf92am0wzpnh4'
|
||||
return address
|
||||
|
||||
#Assets routes
|
||||
@app.route('/assets/<path:path>')
|
||||
@@ -32,8 +43,20 @@ def send_report(path):
|
||||
if path.endswith('.json'):
|
||||
return send_from_directory('templates/assets', path, mimetype='application/json')
|
||||
|
||||
if os.path.isfile('templates/assets/' + path):
|
||||
return send_from_directory('templates/assets', path)
|
||||
|
||||
# Try looking in one of the directories
|
||||
filename:str = path.split('/')[-1]
|
||||
if filename.endswith('.png') or filename.endswith('.jpg') \
|
||||
or filename.endswith('.jpeg') or filename.endswith('.svg'):
|
||||
if os.path.isfile('templates/assets/img/' + filename):
|
||||
return send_from_directory('templates/assets/img', filename)
|
||||
if os.path.isfile('templates/assets/img/favicon/' + filename):
|
||||
return send_from_directory('templates/assets/img/favicon', filename)
|
||||
|
||||
return render_template('404.html'), 404
|
||||
|
||||
|
||||
# Special routes
|
||||
@app.route('/links')
|
||||
@@ -112,16 +135,38 @@ def nostr():
|
||||
})
|
||||
|
||||
|
||||
# Main routes
|
||||
@app.route('/manifest.json')
|
||||
def manifest():
|
||||
host = request.host
|
||||
if host == 'nathan.woodburn.au':
|
||||
return send_from_directory('templates', 'manifest.json')
|
||||
|
||||
# Read as json
|
||||
with open('templates/manifest.json') as file:
|
||||
manifest = json.load(file)
|
||||
if host != 'localhost:5000' and host != '127.0.0.1:5000':
|
||||
manifest['start_url'] = f'https://{host}/'
|
||||
else:
|
||||
manifest['start_url'] = 'http://127.0.0.1:5000/'
|
||||
return jsonify(manifest)
|
||||
|
||||
|
||||
# region Main routes
|
||||
@app.route('/')
|
||||
def index():
|
||||
# Check if host if podcast.woodburn.au
|
||||
if "podcast.woodburn.au" in request.host:
|
||||
return render_template('podcast.html')
|
||||
|
||||
loaded = False
|
||||
if request.referrer:
|
||||
# Check if referrer includes nathan.woodburn.au
|
||||
if "nathan.woodburn.au" in request.referrer:
|
||||
loaded = True
|
||||
|
||||
|
||||
# Check if cookie is set
|
||||
if not request.cookies.get('loaded'):
|
||||
if not request.cookies.get('loaded') and not loaded:
|
||||
# Set cookie
|
||||
resp = make_response(render_template('loading.html'), 200, {'Content-Type': 'text/html'})
|
||||
resp.set_cookie('loaded', 'true', max_age=604800)
|
||||
@@ -130,8 +175,12 @@ def index():
|
||||
|
||||
global address
|
||||
global handshake_scripts
|
||||
global projects
|
||||
global projectsUpdated
|
||||
|
||||
try:
|
||||
git=requests.get('https://git.woodburn.au/api/v1/users/nathanwoodburn/activities/feeds?only-performed-by=true&limit=1&token=' + os.getenv('git_token'))
|
||||
git=requests.get('https://git.woodburn.au/api/v1/users/nathanwoodburn/activities/feeds?only-performed-by=true&limit=1',
|
||||
headers={'Authorization': os.getenv('git_token')})
|
||||
git = git.json()
|
||||
git = git[0]
|
||||
repo_name=git['repo']['name']
|
||||
@@ -141,8 +190,39 @@ def index():
|
||||
repo_name = "nathanwoodburn.github.io"
|
||||
repo_description = "Personal website"
|
||||
git = {'repo': {'html_url': 'https://nathan.woodburn.au', 'name': 'nathanwoodburn.github.io', 'description': 'Personal website'}}
|
||||
custom = ""
|
||||
print("Error getting git data")
|
||||
|
||||
# Get only repo names for the newest updates
|
||||
if projects == [] or projectsUpdated < datetime.datetime.now() - datetime.timedelta(hours=2):
|
||||
projectsreq = requests.get('https://git.woodburn.au/api/v1/users/nathanwoodburn/repos')
|
||||
|
||||
projects = projectsreq.json()
|
||||
|
||||
# Check for next page
|
||||
pageNum = 1
|
||||
while 'rel="next"' in projectsreq.headers['link']:
|
||||
projectsreq = requests.get('https://git.woodburn.au/api/v1/users/nathanwoodburn/repos?page=' + str(pageNum))
|
||||
projects += projectsreq.json()
|
||||
pageNum += 1
|
||||
|
||||
|
||||
for project in projects:
|
||||
if project['avatar_url'] == 'https://git.woodburn.au/':
|
||||
project['avatar_url'] = '/favicon.png'
|
||||
project['name'] = project['name'].replace('_', ' ').replace('-', ' ')
|
||||
# Sort by last updated
|
||||
projectsList = sorted(projects, key=lambda x: x['updated_at'], reverse=True)
|
||||
projects = []
|
||||
projectNames = []
|
||||
projectNum = 0
|
||||
while len(projects) < 3:
|
||||
if projectsList[projectNum]['name'] not in projectNames:
|
||||
projects.append(projectsList[projectNum])
|
||||
projectNames.append(projectsList[projectNum]['name'])
|
||||
projectNum += 1
|
||||
projectsUpdated = datetime.datetime.now()
|
||||
|
||||
custom = ""
|
||||
# Check for downtime
|
||||
uptime = requests.get('https://uptime.woodburn.au/api/status-page/main/badge')
|
||||
uptime = uptime.content.count(b'Up') > 1
|
||||
@@ -161,17 +241,18 @@ def index():
|
||||
if request.host == "localhost:5000" or request.host == "127.0.0.1:5000" or os.getenv('dev') == "true" or request.host == "test.nathan.woodburn.au":
|
||||
handshake_scripts = ""
|
||||
|
||||
if request.cookies.get('HNS'):
|
||||
return render_template('index.html', handshake_scripts=handshake_scripts, HNS=request.cookies.get('HNS'), repo=repo, repo_description=repo_description, custom=custom,sites=sites)
|
||||
|
||||
if address == '':
|
||||
address = getAddress()
|
||||
# Set cookie
|
||||
resp = make_response(render_template('index.html', handshake_scripts=handshake_scripts, HNS=address, repo=repo, repo_description=repo_description, custom=custom,sites=sites), 200, {'Content-Type': 'text/html'})
|
||||
# Cookie should last 1 week
|
||||
resp.set_cookie('HNS', address, max_age=604800)
|
||||
resp = make_response(render_template('index.html', handshake_scripts=handshake_scripts,
|
||||
HNS=address, repo=repo,
|
||||
repo_description=repo_description,
|
||||
custom=custom,sites=sites,projects=projects), 200, {'Content-Type': 'text/html'})
|
||||
resp.set_cookie('loaded', 'true', max_age=604800)
|
||||
|
||||
return resp
|
||||
|
||||
|
||||
# region Now Pages
|
||||
@app.route('/now')
|
||||
@app.route('/now/')
|
||||
def now():
|
||||
@@ -244,6 +325,7 @@ def now_old():
|
||||
|
||||
html += '</ul>'
|
||||
return render_template('now/old.html', handshake_scripts=handshake_scripts,now_pages=html)
|
||||
# endregion
|
||||
|
||||
|
||||
@app.route('/donate')
|
||||
@@ -388,24 +470,19 @@ def catch_all(path):
|
||||
return render_template('404.html'), 404
|
||||
# If file exists, load it
|
||||
if os.path.isfile('templates/' + path):
|
||||
return render_template(path, handshake_scripts=handshake_scripts)
|
||||
return render_template(path, handshake_scripts=handshake_scripts,sites=sites)
|
||||
|
||||
# Try with .html
|
||||
if os.path.isfile('templates/' + path + '.html'):
|
||||
return render_template(path + '.html', handshake_scripts=handshake_scripts)
|
||||
return render_template(path + '.html', handshake_scripts=handshake_scripts,sites=sites)
|
||||
|
||||
if os.path.isfile('templates/' + path.strip('/') + '.html'):
|
||||
return render_template(path.strip('/') + '.html', handshake_scripts=handshake_scripts)
|
||||
return render_template(path.strip('/') + '.html', handshake_scripts=handshake_scripts,sites=sites)
|
||||
|
||||
return render_template('404.html'), 404
|
||||
# endregion
|
||||
|
||||
def getAddress():
|
||||
global address
|
||||
if address == '':
|
||||
address = 'hs1qv3uu4amv87g7p7h49xez2pmzwjf92am0wzpnh4'
|
||||
return address
|
||||
|
||||
|
||||
#region ACME
|
||||
@app.route('/hnsdoh-acme', methods=['POST'])
|
||||
def hnsdoh_acme():
|
||||
# Get the TXT record from the request
|
||||
@@ -436,7 +513,9 @@ def hnsdoh_acme():
|
||||
record = cf.zones.dns_records.post(zone_id, data={'type': 'TXT', 'name': '_acme-challenge', 'content': txt})
|
||||
print(record)
|
||||
return jsonify({'status': 'success'})
|
||||
#endregion
|
||||
|
||||
#region Podcast
|
||||
@app.route('/ID1')
|
||||
def ID1():
|
||||
# Proxy to ID1 url
|
||||
@@ -452,7 +531,6 @@ def ID1_slash():
|
||||
@app.route('/ID1/<path:path>')
|
||||
def ID1_path(path):
|
||||
# Proxy to ID1 url
|
||||
print('https://id1.woodburn.au/ID1/' + path)
|
||||
req = requests.get('https://id1.woodburn.au/ID1/' + path)
|
||||
return make_response(req.content, 200, {'Content-Type': req.headers['Content-Type']})
|
||||
|
||||
@@ -466,13 +544,15 @@ def ID1_xml():
|
||||
def podsync():
|
||||
req = requests.get('https://id1.woodburn.au/podsync.opml')
|
||||
return make_response(req.content, 200, {'Content-Type': req.headers['Content-Type']})
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region Error Catching
|
||||
# 404 catch all
|
||||
@app.errorhandler(404)
|
||||
def not_found(e):
|
||||
return render_template('404.html'), 404
|
||||
#endregion
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True, port=5000, host='0.0.0.0')
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/404">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/404">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/about">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/about">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
|
||||
2
templates/assets/js/loading.min.js
vendored
2
templates/assets/js/loading.min.js
vendored
@@ -1 +1 @@
|
||||
document.addEventListener("DOMContentLoaded",(function(){const n=document.getElementById("loading-screen"),e=[{pre:'┌──(<span class="blue">nathan@NWTux</span>)-[<span class="white">~</span>]',message:"cd Git"},{pre:'┌──(<span class="blue">nathan@NWTux</span>)-[<span class="white">~/Git</span>]',message:"cd Nathanwoodburn.github.io"},{pre:'┌──(<span class="blue">nathan@NWTux</span>)-[<span class="white">~/Git/Nathanwoodburn.github.io</span>]',message:"python3 main.py"}],t=["Starting server with 1 workers and 2 threads","+0000] [1] [INFO] Starting gunicorn 22.0.0","+0000] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)","+0000] [1] [INFO] Using worker: gthread","+0000] [8] [INFO] Booting worker with pid: 8"];let a=0;function s(e,t){const a=function(){const n=new Date;return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}-${String(n.getUTCDate()).padStart(2,"0")} ${String(n.getUTCHours()).padStart(2,"0")}:${String(n.getUTCMinutes()).padStart(2,"0")}:${String(n.getUTCSeconds()).padStart(2,"0")}`}();console.log(a);for(let t=0;t<e.length;t++){const s=document.createElement("div");s.classList.add("loading-line"),s.innerHTML=0!==t?"["+a+e[t]:e[t],n.appendChild(s)}t()}function r(){window.location.reload()}!function i(){a<e.length?function(e,t){const a=document.createElement("div");a.classList.add("loading-pre"),a.innerHTML=e.pre,n.appendChild(a);const s=document.createElement("div");s.classList.add("loading-line"),s.innerHTML='└─<span class="blue">$</span> <span class="cursor"></span>',n.appendChild(s);let r=0;const i=setInterval((()=>{s.removeChild(s.querySelector(".cursor")),s.innerHTML+=e.message[r]+'<span class="cursor"></span>',r++,r===e.message.length&&(s.removeChild(s.querySelector(".cursor")),clearInterval(i),t())}),50)}(e[a],(()=>{a++,setTimeout(i,200)})):s(t,(()=>{setTimeout(r,200)}))}()}));
|
||||
document.addEventListener("DOMContentLoaded",(function(){const n=document.getElementById("loading-screen"),e=[{pre:'┌──(<span class="blue">nathan@NWTux</span>)-[<span class="white">~</span>]',message:"cd Git"},{pre:'┌──(<span class="blue">nathan@NWTux</span>)-[<span class="white">~/Git</span>]',message:"cd Nathanwoodburn.github.io"},{pre:'┌──(<span class="blue">nathan@NWTux</span>)-[<span class="white">~/Git/Nathanwoodburn.github.io</span>]',message:"python3 main.py"}],t=["Starting server with 1 workers and 2 threads","+0000] [1] [INFO] Starting gunicorn 22.0.0","+0000] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)","+0000] [1] [INFO] Using worker: gthread","+0000] [8] [INFO] Booting worker with pid: 8"];let a=0;function s(e,t){const a=function(){const n=new Date;return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}-${String(n.getUTCDate()).padStart(2,"0")} ${String(n.getUTCHours()).padStart(2,"0")}:${String(n.getUTCMinutes()).padStart(2,"0")}:${String(n.getUTCSeconds()).padStart(2,"0")}`}();for(let t=0;t<e.length;t++){const s=document.createElement("div");s.classList.add("loading-line"),s.innerHTML=0!==t?"["+a+e[t]:e[t],n.appendChild(s)}t()}function r(){window.location.reload()}!function i(){a<e.length?function(e,t){const a=document.createElement("div");a.classList.add("loading-pre"),a.innerHTML=e.pre,n.appendChild(a);const s=document.createElement("div");s.classList.add("loading-line"),s.innerHTML='└─<span class="blue">$</span> <span class="cursor"></span>',n.appendChild(s);let r=0;const i=setInterval((()=>{s.removeChild(s.querySelector(".cursor")),s.innerHTML+=e.message[r]+'<span class="cursor"></span>',r++,r===e.message.length&&(s.removeChild(s.querySelector(".cursor")),clearInterval(i),t())}),50)}(e[a],(()=>{a++,setTimeout(i,200)})):s(t,(()=>{setTimeout(r,200)}))}()}));
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/donate">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/donate">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/gitpgp">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/gitpgp">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
@@ -99,24 +98,15 @@ Check them out here!</blockquote><img class="img-fluid" src="/assets/img/pfront.
|
||||
</section><img class="no-drag" src="/assets/img/tilt.svg" style="background: #363636;width: 100%;" alt="">
|
||||
<section class="text-center content-section sites" id="sites" style="background: #363636;padding-top: 0px;padding-bottom: 0px;">
|
||||
<div class="site-container">
|
||||
<h1>My Websites</h1>
|
||||
<h1>Some recent projects</h1>
|
||||
<div class="swiper">
|
||||
<div class="swiper-wrapper"><!-- <div class="swiper-slide site" data-url="https://nathan3dprinting.au"><img class="site-img" src="/assets/img/external/nathan3dprinting.webp" />
|
||||
<div class="swiper-wrapper">{% for project in projects %}
|
||||
<div class="swiper-slide site" data-url="{{ project.html_url }}">
|
||||
<img class="site-img" src="{{ project.avatar_url }}" />
|
||||
<div class="site-body">
|
||||
<div class="site-detail" style="width: 100%;">
|
||||
<h2 class="site-name" style="text-align: left;">Nathan 3D Printing</h2>
|
||||
<p class="text-start site-author">Offering 3D Printing and CAD modelling services to the Canberra region</p>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
{% for site in sites %}
|
||||
<div class="swiper-slide site" data-url="{{ site.url }}">
|
||||
<img class="site-img" src="{{ site.img }}" />
|
||||
<div class="site-body">
|
||||
<div class="site-detail" style="width: 100%;">
|
||||
<h2 class="site-name" style="text-align: left;">{{ site.name }}</h2>
|
||||
<p class="text-start site-author">{{ site.description }}</p>
|
||||
<h2 class="site-name" style="text-align: left;">{{ project.name }}</h2>
|
||||
<p class="text-start site-author">{{ project.description }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/link">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/link">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/loading">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/loading">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/now/24_02_18.html">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/now/24_02_18.html">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/now/24_02_25.html">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/now/24_02_25.html">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/now/24_04_19.html">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/now/24_04_19.html">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/now/24_05_20.html">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/now/24_05_20.html">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/now/24_05_28.html">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/now/24_05_28.html">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/now/24_06_06.html">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/now/24_06_06.html">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/now/24_06_17.html">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/now/24_06_17.html">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/now/old.html">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/now/old.html">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/now/template.html">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/now/template.html">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/pgp">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/pgp">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/podcast">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/podcast">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta property="og:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="Alliance Church Woden Valley Podcast">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/projects">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/projects">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
<meta name="twitter:card" content="summary">
|
||||
@@ -37,21 +36,19 @@
|
||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||
</head>
|
||||
|
||||
<body id="page-top" data-bs-spy="scroll" data-bs-target="#mainNav" data-bs-offset="77"><!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns?id=GTM-NNXTCKW"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
<nav class="navbar navbar-expand-md fixed-top navbar-light" id="mainNav">
|
||||
<div class="container"><a class="navbar-brand nathanwoodburn" href="/#">Nathan.Woodburn/</a><button data-bs-toggle="collapse" class="navbar-toggler navbar-toggler-right" data-bs-target="#navbarResponsive" type="button" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation" value="Menu"><i class="fa fa-bars"></i></button>
|
||||
<body id="page-top" data-bs-spy="scroll" data-bs-target="#mainNav" data-bs-offset="77">
|
||||
<nav class="navbar navbar-expand-md fixed-top navbar-light" id="mainNav" style="background: var(--bs-navbar-hover-color);">
|
||||
<div class="container-fluid"><a class="navbar-brand nathanwoodburn" href="/#">Nathan.Woodburn/</a><button data-bs-toggle="collapse" class="navbar-toggler navbar-toggler-right" data-bs-target="#navbarResponsive" type="button" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation" value="Menu"><i class="fa fa-bars"></i></button>
|
||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||
<ul class="navbar-nav ms-auto">
|
||||
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
||||
<li class="nav-item nav-link"><a class="nav-link" href="projects">Projects</a></li>
|
||||
<li class="nav-item nav-link"><a class="nav-link" href="/projects">Projects</a></li>
|
||||
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<header class="masthead" style="height: auto;background: url("/assets/img/bg/projects.webp") bottom / cover no-repeat;">
|
||||
<header class="masthead" style="background: url("/assets/img/bg/projects.webp") bottom / cover no-repeat;height: auto;padding-top: 20px;">
|
||||
<div style="margin-top: 150px;margin-bottom: 100px;">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
@@ -62,61 +59,17 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="text-center content-section" id="projects" style="padding-bottom: 100px;">
|
||||
<p style="font-size: 28px;">Check out my <a href="https://git.woodburn.au/nathanwoodburn" target="_blank">Git</a> for all my projects</p>
|
||||
<section class="text-center content-section" id="sites" style="padding-bottom: 100px;">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="row gx-5 row-cols-1 row-cols-sm-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-3 row-cols-xxl-4">{% for site in sites %}
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>ShakeCities</h2>
|
||||
<p>A single page website creator where each user's page on their free HNS domain</p><a class="btn btn-primary" role="button" href="https://shakecities.com" target="_blank">More Info</a>
|
||||
</div>
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>Woodburn Faucet</h2>
|
||||
<p>A service providing free Handshake TLDs to allow for quick testing for new users</p><a class="btn btn-primary" role="button" href="https://faucet.woodburn.au" target="_blank">More Info</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>Linkr</h2>
|
||||
<p>A shortlinks service on the Handshake domain Linkr/</p><a class="btn btn-primary" role="button" href="https://linkr" target="_blank">More Info</a>
|
||||
</div>
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>HNSDoh</h2>
|
||||
<p>A DNS server with support for Handshake domains using multiple upstream providers to provide as little downtime as possible.</p><a class="btn btn-primary" role="button" href="https://hnsdoh.com" target="_blank">More Info</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>FireWallet</h2>
|
||||
<p><span style="background-color: initial;">The Handshake wallet that is Fire.</span><br><span style="background-color: initial;">A new frontend to HSD or Bob Wallet</span></p><a class="btn btn-primary" role="button" target="_blank" href="https://firewallet.au">More Info</a>
|
||||
</div>
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>HNS HOSting</h2>
|
||||
<p>A hosting service for Handshake domains<br><br></p><a class="btn btn-primary" role="button" href="https://hnshosting.au" target="_blank">More Info</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>HNS AU</h2>
|
||||
<p><span style="background-color: initial;">The home of Australians using the decentralized web, built on Handshake.</span><br></p><a class="btn btn-primary" role="button" href="https://hns.au" target="_blank">More Info</a>
|
||||
</div>
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>HNS Proxy</h2>
|
||||
<p><span style="background-color: initial;">A Proxy to access Handshake domains over SSL.</span><br></p><a class="btn btn-primary" role="button" href="https://hnsproxy.au" target="_blank">More Info</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>Woodburn Registry</h2>
|
||||
<p>Selling SLDs off domains secured on the Handshake blockchain.</p><a class="btn btn-primary" role="button" href="https://reg.woodburn.au" target="_blank">More Info</a>
|
||||
</div>
|
||||
<div class="col" style="padding-top: 20px;">
|
||||
<h2>HSD Batcher</h2>
|
||||
<p><span style="background-color: initial;">A GUI to send transaction batches to the Handshake chain.</span></p><a class="btn btn-primary" role="button" target="_blank" href="https://github.com/Nathanwoodburn/HSDBatcherGUI">More Info</a>
|
||||
</div>
|
||||
<h2>{{site.name}}</h2>
|
||||
<p>{{site.description}}</p><a class="btn btn-primary" role="button" href="{{site.url}}" target="_blank">More Info</a>
|
||||
</div>
|
||||
{% endfor %}</div>
|
||||
</div>
|
||||
</section>
|
||||
<p class="text-center" style="font-size: 28px;">Check out my <a href="https://git.woodburn.au/nathanwoodburn" target="_blank">Git</a> for all my projects</p>
|
||||
<footer>
|
||||
<div class="container text-center">
|
||||
<p class="copyright">Copyright © Nathan.Woodburn/ 2024</p>
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/resume">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/resume">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/servers">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/servers">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
<meta name="twitter:card" content="summary">
|
||||
@@ -30,27 +29,13 @@
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Cabin:700&display=swap">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Anonymous+Pro&display=swap">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700">
|
||||
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||
</head>
|
||||
|
||||
<body id="page-top" data-bs-spy="scroll" data-bs-target="#mainNav" data-bs-offset="77"><!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns?id=GTM-NNXTCKW"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
<nav class="navbar navbar-expand-md fixed-top navbar-light" id="mainNav">
|
||||
<div class="container"><a class="navbar-brand nathanwoodburn" href="/#">Nathan.Woodburn/</a><button data-bs-toggle="collapse" class="navbar-toggler navbar-toggler-right" data-bs-target="#navbarResponsive" type="button" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation" value="Menu"><i class="fa fa-bars"></i></button>
|
||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||
<ul class="navbar-nav ms-auto">
|
||||
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
||||
<li class="nav-item nav-link"><a class="nav-link" href="projects">Projects</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<body id="page-top" data-bs-spy="scroll" data-bs-target="#mainNav" data-bs-offset="77">
|
||||
<header class="masthead" style="background-image:url('/assets/img/bg/projects.webp');">
|
||||
<div class="intro-body">
|
||||
<div class="container">
|
||||
@@ -226,33 +211,6 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-cols-1 row-cols-sm-1 row-cols-md-1 row-cols-lg-1 row-cols-xl-3 row-cols-xxl-3">
|
||||
<div class="col">
|
||||
<div class="card" style="margin-top: 10px;margin-bottom: 10px;">
|
||||
<div class="card-body text-primary text-bg-dark">
|
||||
<h4 class="card-title">Potato2 (3D Printer)</h4>CPU<br>
|
||||
<iframe
|
||||
src="https://potato2dash.woodburn.au/?graph=cpu&showPercentage=true&surface=212529"
|
||||
style="border-radius: 20px"
|
||||
allowtransparency="true"
|
||||
frameborder="0"
|
||||
></iframe>
|
||||
<br>MEM<br>
|
||||
<iframe
|
||||
src="https://potato2dash.woodburn.au/?graph=ram&showPercentage=true&surface=212529"
|
||||
style="border-radius: 20px"
|
||||
allowtransparency="true"
|
||||
frameborder="0"
|
||||
></iframe>
|
||||
<br>Storage<br>
|
||||
<iframe
|
||||
src="https://potato2dash.woodburn.au/?graph=storage&showPercentage=true&surface=212529"
|
||||
style="border-radius: 20px"
|
||||
allowtransparency="true"
|
||||
frameborder="0"
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="card" style="margin-top: 10px;margin-bottom: 10px;">
|
||||
<div class="card-body text-primary text-bg-dark">
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
<meta name="theme-color" content="#97009a">
|
||||
<link rel="canonical" href="https://nathan.woodburn.au/signalQR">
|
||||
<meta property="og:url" content="https://nathan.woodburn.au/signalQR">
|
||||
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||
<meta property="og:title" content="Nathan.Woodburn/">
|
||||
|
||||
Reference in New Issue
Block a user