deploy: b930cfefcbd28d7500b344a026996451b06d6303

This commit is contained in:
andrewgodwin 2022-11-25 00:57:12 +00:00
parent 631dc4c2f1
commit facaa0951d
7 changed files with 12 additions and 8 deletions

View File

@ -1,4 +1,4 @@
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.106.0"><meta name=description content="Takahē is an ActivityPub server focused on microblogging, much like Mastodon, Pleroma, and others. Our goals are:
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.107.0"><meta name=description content="Takahē is an ActivityPub server focused on microblogging, much like Mastodon, Pleroma, and others. Our goals are:
Allowing multiple domains on the same server (“virtual hosting”) Efficient, stable background tasks via asynchronous state machines A default fast, low-JavaScript web interface Mastodon Client API compatibility (eventually!) Why start another server? The main motivation was to prove two things - that virtual hosting of multiple domains on a single ActivityPub server was possible (so you dont need to run a whole new server for every person or organisation that brings their own domain), and to explore the use of Pythons asynchronous libraries to speed up the large amount of background work ActivityPub involves."><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/contrib/auto-render.min.js integrity=sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI crossorigin=anonymous onload=renderMathInElement(document.body)></script><title>About Takahē | Takahē</title></head><body><section class=page-header><h1 class=project-name><img src=/logo-1024.png alt="Takahe logo" class=logo></h1><h2 class=project-tagline>An efficient ActivityPub Server, for small installs with multiple domains</h2><nav><a href=/about/ class=btn>About</a>
<a href=https://takahe-server.readthedocs.io/en/latest/ class=btn>Docs</a>
@ -16,4 +16,8 @@ is to provide a smaller, lighter-weight server that is useful for small- to
medium-size instances. The architecture we&rsquo;ve chosen is deliberately easy to
run and maintain but will not scale to a large install, and that&rsquo;s fine.</p><h2 id=more-insight>More Insight</h2><p>Takahē is, so far, mostly authored by <a href=https://aeracode.org/>Andrew Godwin</a>,
and you can read more about its development, choices made, and progress via
<a href=https://aeracode.org/category/takahe>my blog posts</a>.</p><footer class=site-footer><span class=site-footer-credits>Theme based on <a href=https://github.com/zwbetz-gh/cayman-hugo-theme>Cayman</a></span></footer></section></body></html>
<a href=https://aeracode.org/category/takahe>my blog posts</a>.</p><h2 id=about-the-takahē>About The Takahē</h2><p>The Takahē, after which this project is named, is a
<a href=https://en.wikipedia.org/wiki/Takah%C4%93>flightless bird from Aotearoa New Zealand</a> -
once thought extinct, but in recent decades they were rediscovered and have
been the subject of a successful breeding and reintroduction programme.</p><p>If you&rsquo;d like to donate to their cause, you can give money through
the <a href=https://nznaturefund.org/projects/takahe-recovery-programme/>New Zealand Nature Fund</a>.</p><footer class=site-footer><span class=site-footer-credits>Theme based on <a href=https://github.com/zwbetz-gh/cayman-hugo-theme>Cayman</a></span></footer></section></body></html>

View File

@ -1,4 +1,4 @@
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.106.0"><meta name=description content="Categories"><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.107.0"><meta name=description content="Categories"><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/contrib/auto-render.min.js integrity=sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI crossorigin=anonymous onload=renderMathInElement(document.body)></script><title>Categories | Takahē</title></head><body><section class=page-header><h1 class=project-name><img src=/logo-1024.png alt="Takahe logo" class=logo></h1><h2 class=project-tagline>An efficient ActivityPub Server, for small installs with multiple domains</h2><nav><a href=/about/ class=btn>About</a>
<a href=https://takahe-server.readthedocs.io/en/latest/ class=btn>Docs</a>
<a href=https://github.com/jointakahe/takahe class=btn>GitHub</a>

View File

@ -1,4 +1,4 @@
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.106.0"><meta name=description content="This code of conduct applies to all spaces managed by the Takahē project. This includes GitHub issues and discussions, Discord, takahe.social, and other forums where the project may participate. In addition, violations of this code outside these spaces may affect a persons ability to participate within them.
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.107.0"><meta name=description content="This code of conduct applies to all spaces managed by the Takahē project. This includes GitHub issues and discussions, Discord, takahe.social, and other forums where the project may participate. In addition, violations of this code outside these spaces may affect a persons ability to participate within them.
If you believe someone is violating the code of conduct, we ask that you report it by emailing conduct@jointakahe.org.
Be friendly and patient. Be welcoming."><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/contrib/auto-render.min.js integrity=sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI crossorigin=anonymous onload=renderMathInElement(document.body)></script><title>Code of Conduct | Takahē</title></head><body><section class=page-header><h1 class=project-name><img src=/logo-1024.png alt="Takahe logo" class=logo></h1><h2 class=project-tagline>An efficient ActivityPub Server, for small installs with multiple domains</h2><nav><a href=/about/ class=btn>About</a>

View File

@ -1,4 +1,4 @@
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.106.0"><meta name=description content="Takahē is a new ActivityPub server, designed for efficient use on small- to medium-size installations, and which allows you to host multiple domains on the same infrastructure.
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.107.0"><meta name=description content="Takahē is a new ActivityPub server, designed for efficient use on small- to medium-size installations, and which allows you to host multiple domains on the same infrastructure.
Its currently in an alpha state, meaning things work (and it will talk ActivityPub to Mastodon and other servers), but theres still a lot of features left to add.
The flagship instance can be found at takahe.social, and if youre interested, you can also read more about the project, or read some of Andrews blogs on building it."><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/contrib/auto-render.min.js integrity=sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI crossorigin=anonymous onload=renderMathInElement(document.body)></script><title>Welcome | Takahē</title></head><body><section class=page-header><h1 class=project-name><img src=/logo-1024.png alt="Takahe logo" class=logo></h1><h2 class=project-tagline>An efficient ActivityPub Server, for small installs with multiple domains</h2><nav><a href=/about/ class=btn>About</a>

View File

@ -1,4 +1,4 @@
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.106.0"><meta name=description content="Posts"><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.107.0"><meta name=description content="Posts"><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/contrib/auto-render.min.js integrity=sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI crossorigin=anonymous onload=renderMathInElement(document.body)></script><title>Posts | Takahē</title></head><body><section class=page-header><h1 class=project-name><img src=/logo-1024.png alt="Takahe logo" class=logo></h1><h2 class=project-tagline>An efficient ActivityPub Server, for small installs with multiple domains</h2><nav><a href=/about/ class=btn>About</a>
<a href=https://takahe-server.readthedocs.io/en/latest/ class=btn>Docs</a>
<a href=https://github.com/jointakahe/takahe class=btn>GitHub</a>

View File

@ -1,4 +1,4 @@
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.106.0"><meta name=description content="Hello!"><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.107.0"><meta name=description content="Hello!"><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/contrib/auto-render.min.js integrity=sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI crossorigin=anonymous onload=renderMathInElement(document.body)></script><title>Welcome | Takahē</title></head><body><section class=page-header><h1 class=project-name><img src=/logo-1024.png alt="Takahe logo" class=logo></h1><h2 class=project-tagline>An efficient ActivityPub Server, for small installs with multiple domains</h2><nav><a href=/about/ class=btn>About</a>
<a href=https://takahe-server.readthedocs.io/en/latest/ class=btn>Docs</a>
<a href=https://github.com/jointakahe/takahe class=btn>GitHub</a>

View File

@ -1,4 +1,4 @@
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.106.0"><meta name=description content="Tags"><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Hugo 0.107.0"><meta name=description content="Tags"><link rel=stylesheet href=https://jointakahe.org/css/normalize.css><link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel=stylesheet type=text/css><link rel=stylesheet href=https://jointakahe.org/css/cayman.f197fbcc617c3f604a7e7817a58931d53690eb11f3d646e44e5632aa9cfabea7.css><link rel=apple-touch-icon sizes=1024x1024 href=/icon-1024.png><link rel=icon type=image/png sizes=32x32 href=/icon-32.png><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css integrity=sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js integrity=sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ crossorigin=anonymous></script>
<script defer src=https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/contrib/auto-render.min.js integrity=sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI crossorigin=anonymous onload=renderMathInElement(document.body)></script><title>Tags | Takahē</title></head><body><section class=page-header><h1 class=project-name><img src=/logo-1024.png alt="Takahe logo" class=logo></h1><h2 class=project-tagline>An efficient ActivityPub Server, for small installs with multiple domains</h2><nav><a href=/about/ class=btn>About</a>
<a href=https://takahe-server.readthedocs.io/en/latest/ class=btn>Docs</a>
<a href=https://github.com/jointakahe/takahe class=btn>GitHub</a>