edit: new-website
This commit is contained in:
parent
217779d89a
commit
9df2de9207
@ -1,100 +1,97 @@
|
|||||||
---
|
---
|
||||||
title: "New Website"
|
title: "New Website"
|
||||||
date: "2025-05-11T12:00:00-06:00"
|
date: "2025-05-16T13:16:00-06:00"
|
||||||
description: "There's finally a new website at d-b.ca."
|
description: "There's finally a new website at d-b.ca."
|
||||||
summary: "I've published my personal website. A brief history of some past endeavours, and some details on the technology behind the new site."
|
summary: "I've published my personal website. A brief history of some past endeavours, and some details on the technology behind the new site."
|
||||||
---
|
---
|
||||||
|
|
||||||
I've finally gotten around to publishing a proper website here at
|
I've finally published a proper website at [https://d-b.ca/](https://d-b.ca/).
|
||||||
[https://d-b.ca/](https://d-b.ca/). The last time I had anything up on this
|
The last time I had anything live on this domain was over 20 years ago,
|
||||||
domain was over 20 years ago, according to the
|
according to the [Wayback Machine](https://web.archive.org/). What took so
|
||||||
[Wayback Machine](https://web.archive.org/). What took me so long? Over the
|
long? Over the years I've learned a lot, and I'm constantly experimenting with
|
||||||
years I've learned a lot, and I'm constantly trying out new ways of getting
|
new ways of getting things done. This site, while useful in its own right, is
|
||||||
things done. This site, although intended to be useful in its own right, is a
|
a culmination of the platform I've developed to host it.
|
||||||
culmination of the platform I've developed to host it.
|
|
||||||
|
|
||||||
## History
|
## History
|
||||||
|
|
||||||
My very first personal website was developed while I was a student at the
|
My first personal website was developed while I was a student at the
|
||||||
[University of Alberta](https://ualberta.ca), near the end of the previous
|
[University of Alberta](https://ualberta.ca), near the end of the previous
|
||||||
century. The web itself hadn't been around for very many years, but the
|
century. The web itself was still quite young, but the university provided
|
||||||
university did provide the means for every student to publish web content.
|
students with the means to publish web content. It was mostly a novelty at the
|
||||||
It was mostly a novelty at the time, and didn't last beyond my time at the
|
time and didn't last beyond my time at school, but it sparked my interest in
|
||||||
school, but it was part of the beginning of how I got interested in Internet
|
Internet technologies and their applications.
|
||||||
technologies and how they can be applied.
|
|
||||||
|
|
||||||
That early site did include one interesting feature. I developed a mechanism
|
That early site included one interesting feature. I developed a mechanism to
|
||||||
to automatically update a page every time I logged into one of the school's
|
automatically update a page every time I logged into one of the school's
|
||||||
computers, so my friends could find me if they wanted to.
|
computers, so my friends could find me if they wanted to.
|
||||||
|
|
||||||
### Self-Hosting
|
### Self-Hosting
|
||||||
|
|
||||||
I've always been an avid self-hoster. It started when I was working at a local
|
I've always been an avid self-hoster. It began when I was working at a local
|
||||||
Internet services provider. I was able to get a special deal on a
|
Internet service provider. I was able to get a special deal on a
|
||||||
business-class broadband connection at home, which came with a `/28` subnet
|
business-class broadband connection at home, which included a small network
|
||||||
that I could use. I dedicated the largest machine I had on hand at the time as
|
block (a `/28`, or 16 IP addresses) that I could use. I dedicated my most
|
||||||
my server, and developed many services, including a new website.
|
powerful machine to be my server and developed several services, including a
|
||||||
|
new website.
|
||||||
|
|
||||||
My website at this time was nothing fancy, and was mostly geared towards
|
My website at that time wasn't fancy, and was geared primarily towards
|
||||||
experimentation. I developed a simple content management system from scratch
|
experimentation. I developed a simple content management system from scratch
|
||||||
in PHP3, which I used to publish a blog. It had some integration with mailing
|
in PHP3, which I used to publish a blog. It also integrated with mailing
|
||||||
lists, which I was also experimenting with quite a lot at the time.
|
lists, another area I was exploring at the time.
|
||||||
|
|
||||||
### D-B.CA
|
### D-B.CA
|
||||||
|
|
||||||
I hadn't registered a domain name of my own in those early days, so everything
|
I hadn't registered a domain name of my own in those early days, so everything
|
||||||
was listed under a friend's domain name. In late 2002, I decided to finally
|
resided under a friend's domain. In late 2002, I decided to finally register
|
||||||
register one of my own, mainly so I could have a stable email address. I came
|
one of my own, primarily so I could have a stable email address. I came up
|
||||||
up with `d-b.ca`, because someone was squatting on `db.ca` --- which is still
|
with `d-b.ca` because someone was squatting on `db.ca` – and still is, I might
|
||||||
squatted on to this very day, I might add.
|
add.
|
||||||
|
|
||||||
Early on I was mostly involved in operating my email services and other
|
Early on, I focused mostly on operating my email services and other
|
||||||
experiments, and didn't focus much on a website. There were a few test pages
|
experiments, with little attention paid to a website. There were a few test
|
||||||
at times, but nothing serious.
|
pages at times, but nothing substantial.
|
||||||
|
|
||||||
## Modern Technology
|
## Modern Technology
|
||||||
|
|
||||||
One of the projects I've been keeping an eye on is [Hugo](https://gohugo.io/).
|
One of the projects I've been following is [Hugo](https://gohugo.io/). I've
|
||||||
I've seen and worked with various web content management systems in the past,
|
seen and worked with various web content management systems in the past, and
|
||||||
and they tend to be rather cumbersome and a source of security concerns. Hugo
|
they often feel cumbersome and present security concerns. Hugo is an example
|
||||||
is an example of what's called a "Static Site Generator", which transforms a
|
of a "Static Site Generator," which transforms a source description of a site
|
||||||
source description of a site into the set of static resources used to serve
|
into the static resources used to serve it – much like a compiler. The
|
||||||
the site, much like a compiler. The resulting static resources can be served
|
resulting static resources can be served as regular files from any web
|
||||||
as regular files from any web service, without the need for dynamically
|
service, without the need for dynamically generating content upon request from
|
||||||
generating content upon request from a database like a traditional CMS.
|
a database, as traditional CMS systems do.
|
||||||
|
|
||||||
Using Hugo is much easier with a good base template, of which there are
|
Using Hugo is much easier with a good base template, and there are
|
||||||
[many to choose from](https://themes.gohugo.io/). I've chosen one called
|
[many to choose from](https://themes.gohugo.io/). I've chosen one called
|
||||||
["Blowfish"](https://blowfish.page/) for this site.
|
["Blowfish"](https://blowfish.page/) for this site.
|
||||||
|
|
||||||
Another benefit of a static site generator is that all of the sources for the
|
Another benefit of a static site generator is that all the sources for the
|
||||||
site can be treated like software code, meaning that it's simple to use
|
site can be treated like software code, making it simple to use development
|
||||||
development tools like git for version control. I keep the sources for this
|
tools like Git for version control. I keep the sources for this site in a
|
||||||
site in a public repository on my own git server, have a look at this link
|
public repository on my own Git server. Feel free to take a look:
|
||||||
if you like.
|
|
||||||
|
|
||||||
{{< gitea repo="d-b.ca/web" >}}
|
{{< gitea repo="d-b.ca/web" >}}
|
||||||
|
|
||||||
### CI/CD
|
### CI/CD
|
||||||
|
|
||||||
I have also set up a CI/CD pipeline to handle building and deploying the site
|
I've also set up a CI/CD pipeline to build and deploy the site whenever
|
||||||
whenever anything is changed in the source repository. The CI portion is
|
changes are made to the source repository. The CI portion is triggered by a
|
||||||
triggered by a push to the web repository. It runs a workflow that builds the
|
push to the web repository. It runs a workflow that builds the site and
|
||||||
site and then packages the resulting artifacts into a container image based on
|
packages the resulting artifacts into a container image based on
|
||||||
[Caddy](https://caddyserver.com/). The build container with Hugo is another
|
[Caddy](https://caddyserver.com/). The build container with Hugo is another
|
||||||
image that I maintain in this repository.
|
image I maintain in this repository:
|
||||||
|
|
||||||
{{< gitea repo="d-b.ca/hugo-builder" >}}
|
{{< gitea repo="d-b.ca/hugo-builder" >}}
|
||||||
|
|
||||||
Next, the workflow updates the CD Gitops repository to deploy this new version
|
Next, the workflow updates the CD GitOps repository to deploy this new version
|
||||||
to a private staging site. When I want to publish the new version as the
|
to a private staging site. When I want to publish the new version as the
|
||||||
production site, I use my regular Gitops repository to update the image tag
|
production site, I use my regular GitOps repository to update the image tag,
|
||||||
and the rest happens automatically.
|
and the rest happens automatically.
|
||||||
|
|
||||||
{{< gitea repo="d-b.ca/db-cd" >}}
|
{{< gitea repo="d-b.ca/db-cd" >}}
|
||||||
|
|
||||||
## Underlying Platform
|
## Underlying Platform
|
||||||
|
|
||||||
In my next article, I'll describe more about the platform that this site is
|
In my next article, I'll describe the platform this site is running on, and
|
||||||
running on, and some of the history and desicions that were made to get
|
some of the history and decisions that drove its design.
|
||||||
everything up and running.
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user