No description
Find a file
2025-03-31 22:46:55 -07:00
.vscode Move to Deno+Bunny.net, add a way to test webring locally. 2025-02-23 23:47:07 -08:00
bunny Move to Deno+Bunny.net, add a way to test webring locally. 2025-02-23 23:47:07 -08:00
host_config Configure host to use SSH certs on the host and client side. 2025-03-31 21:30:46 -07:00
scripts Properly purge CDN cache. 2025-03-31 22:46:55 -07:00
src Move to Deno+Bunny.net, add a way to test webring locally. 2025-02-23 23:47:07 -08:00
templates Permit scrolling in small viewports 2025-03-18 02:06:47 +00:00
test Move to Deno+Bunny.net, add a way to test webring locally. 2025-02-23 23:47:07 -08:00
.envrc First version of webring with simple landing page and control functions. 2024-09-27 16:42:59 -07:00
.gitignore Move to Deno+Bunny.net, add a way to test webring locally. 2025-02-23 23:47:07 -08:00
deno.json Move to Deno+Bunny.net, add a way to test webring locally. 2025-02-23 23:47:07 -08:00
deno.lock Move to Deno+Bunny.net, add a way to test webring locally. 2025-02-23 23:47:07 -08:00
flake.lock Add config for forgejo machine, justfile for quality of life. 2025-02-23 18:57:51 -08:00
flake.nix Configure host to use SSH certs on the host and client side. 2025-03-31 21:30:46 -07:00
justfile Configure host to use SSH certs on the host and client side. 2025-03-31 21:30:46 -07:00
README.md Configure host to use SSH certs on the host and client side. 2025-03-31 21:30:46 -07:00
webring_data.json Add scottsmitelli to webring_data.json 2025-03-17 18:42:49 -04:00

Adding yourself to the webring

Add your information to webring_data.json. The schema is as follows:

  • id: a unique id for your entry. You will use this id when adding webring links on your own blog/page.
  • title: the title you want to use on the webring directory.
  • author: the name you want to use on the webring directory.
  • url: the URL to redirect to whenever the webring needs to point a visitor to your entry.

Create a PR with your changes.

Testing your entry

Run deno task dev, which should start a local web server. You can then navigate to it to inspect how your entry will look on the webring's main page, as well as make sure the url it points to works fine.

Using the webring on your blog/page

Somewhere in your blog/page (footer recommended), add the following links. Remember to replace <YOUR_ID_HERE> with the unique id for your entry on the webring.

Note: it's ok for you to add these links to your page before your PR gets approved and merged. The webring will redirect to random pages when given an unknown id. Whenever your PR gets approved and merged, your id will be recognised and you'll officially be part of the webring.

  • Previous entry: https://akols.com/previous?id=<YOUR_ID_HERE>
  • Next entry: https://akols.com/next?id=<YOUR_ID_HERE>
  • A link to the webring directory: https://akols.com

Development setup

Setting up VSCode (and flavours)

We're using Deno in the webring functions, so if you want proper editor support, you'll need to install the Deno extension. There's already a .vscode directory which should direct VSCode to enable the Deno extension for this project.

Infrastructure

Setting up SSH access

You'll need to trust the SSH certificate authority that generates SSH keys for Epesooj's hosts. The CA's public key is in ./host_config/ssh_certs/host_ca.pub.

This is the template for the SSH known_hosts entry:

@cert-authority <dns name or ip address> <CONTENTS OF host_ca.pub>

For example:

@cert-authority code.akols.com ssh-ed25519 AAAA...

Signing a user's public SSH key to give them host access

Run just sign_user_key <username> <user_pub_key_path>. This will by default give them root access. Check the definition of this just command to see how to give them access to different user(s).

Once this is done, give them the signed public key (it'll be a file in the same directory as <user_pub_key_path> with the -cert.pub suffix) and tell them to add the CertificateFile option to their SSH config to make sure it'll also present the signed public key. For example:

Host epesooj
  User root
  HostName code.akols.com
  IdentityFile ~/.ssh/epesooj_personal.pub
  CertificateFile ~/.ssh/epesooj_personal-cert.pub
  IdentitiesOnly yes

Nixifying a new host

If you have a bunch of SSH keys in your SSH agent and get errors when trying to SSH into a fresh host, you may need to temporarily add the following config to your SSH config (obviously change the details for your case). The key is the line "IdentitiesOnly yes" along with an identity file.

Host 188.245.194.78
  User root
  IdentityFile ~/.ssh/hetzner_personal_root.pub
  IdentitiesOnly yes

Once you can SSH into the host normally, run just nixify_host <hostname> "code" "<dns name>,<ip address>". For example: just nixify_host epesooj-code-0001 code "code.akols.com,188.245.194.78".

This command requires you to have the key for the Epesooj Host SSH certificate authority. If you don't have it, contact someone who does.

Deploying the webring

You should have a .env file with the id and deploy key for each script in the webring, as well as a key to deploy the index page to bunny. When you have this, run deno task deploy. You'll need the API keys required to deploy these. If you don't have them, contact someone who does.