finished initial implementation of site and added ci/cd stuffs
This commit is contained in:
parent
f517187025
commit
c099269dfd
47
.gitlab-ci.yml
Normal file
47
.gitlab-ci.yml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
stages:
|
||||||
|
- build
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
develop-build-job:
|
||||||
|
stage: build
|
||||||
|
tags:
|
||||||
|
- hugo
|
||||||
|
script:
|
||||||
|
- echo "Building configuration"
|
||||||
|
- hugo
|
||||||
|
only:
|
||||||
|
- develop
|
||||||
|
|
||||||
|
master-build-job:
|
||||||
|
stage: build
|
||||||
|
tags:
|
||||||
|
- hugo
|
||||||
|
script:
|
||||||
|
- echo "Building configuration"
|
||||||
|
- hugo
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- public/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
|
||||||
|
deploy-job:
|
||||||
|
stage: deploy
|
||||||
|
tags:
|
||||||
|
- hugo
|
||||||
|
environment:
|
||||||
|
name: Production
|
||||||
|
url: "$Live_Server_IP"
|
||||||
|
before_script:
|
||||||
|
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y)'
|
||||||
|
- eval $(ssh-agent -s)
|
||||||
|
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||||
|
- mkdir -p ~/.ssh
|
||||||
|
- chmod 700 ~/.ssh
|
||||||
|
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >> ~/.ssh/config'
|
||||||
|
script:
|
||||||
|
- tar zcf ../inkletblot-com.tar.gz ./public
|
||||||
|
- scp -o 'ProxyJump "$Live_Server_User"@"$Live_Server_IP"' -o StrictHostKeyChecking=no ../inkletblot-com.tar.gz "$Live_Server_User"@"$Live_Server_Target":/var/www/html
|
||||||
|
- ssh -J "$Live_Server_User"@"$Live_Server_IP" "$Live_Server_User"@"$Live_Server_Target" "rm -Rf /var/www/html/inkletblot-com_old && mv /var/www/html/inkletblot-com /var/www/html/inkletblot-com_old && mkdir /var/www/html/inkletblot-com_build && mkdir /var/www/html/inkletblot-com && tar zxf /var/www/html/inkletblot-com.tar.gz -C /var/www/html/inkletblot-com_build && mv /var/www/html/inkletblot-com_build/dist/inkletblot-com/* /var/www/html/inkletblot-com && rm -Rf /var/www/html/inkletblot-com_build && chmod -R 755 /var/www/html/inkletblot-com && exit"
|
||||||
|
only:
|
||||||
|
- master
|
||||||
@ -1,4 +1,4 @@
|
|||||||
// @font-face{
|
@font-face{
|
||||||
// font-family: FiraCode;
|
font-family: FiraCode;
|
||||||
// src: url(static/fonts/FiraCode-Regular.ttf);
|
src: url(fonts/FiraCode-Regular.ttf);
|
||||||
// }
|
}
|
||||||
|
|||||||
@ -1,12 +1,17 @@
|
|||||||
@use 'variables' as vars;
|
@use "variables" as vars;
|
||||||
|
|
||||||
.home {
|
.home {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 100%;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
&__content {
|
&__content {
|
||||||
text-align: justify;
|
text-align: justify;
|
||||||
max-width: 850px;
|
max-width: 850px;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
border-radius: 50px;
|
border-radius: 16px;
|
||||||
float: left;
|
float: left;
|
||||||
margin: 0 24px 16px 0;
|
margin: 0 24px 16px 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
&__title {
|
&__title {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
|
color: vars.$color-orange-dark;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__date {
|
&__date {
|
||||||
|
|||||||
@ -15,13 +15,17 @@
|
|||||||
|
|
||||||
.service {
|
.service {
|
||||||
width: 45%;
|
width: 45%;
|
||||||
// text-align: justify;
|
align-self: center;
|
||||||
|
margin: 8px 0;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
&__text {
|
&__text {
|
||||||
padding: 4px 4px 4px 0;
|
padding: 2px;
|
||||||
line-height: 12px;
|
line-height: 24px;
|
||||||
// background: vars.$color-bg0_h;
|
background: vars.$color-bg0_h;
|
||||||
background: green ;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,11 @@
|
|||||||
body {
|
body {
|
||||||
color: vars.$color-fg;
|
color: vars.$color-fg;
|
||||||
background: vars.$color-bg;
|
background: vars.$color-bg;
|
||||||
// font-family: FiraCode, monospace;
|
font-family: FiraCode, monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: FiraCode, monospace;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-wrapper {
|
.content-wrapper {
|
||||||
@ -44,24 +48,30 @@ img {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
|
display: block;
|
||||||
// background-color: red;
|
// background-color: red;
|
||||||
|
|
||||||
&__title {
|
&__title {
|
||||||
a,
|
a,
|
||||||
a:link,
|
a:link,
|
||||||
a:hover,
|
a:hover,
|
||||||
a:visited {
|
a:visited {
|
||||||
color: vars.$color-green-dark !important;
|
color: vars.$color-orange-dark !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__nav {
|
&__nav {
|
||||||
|
&__list {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-wrap:wrap;
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
|
margin-right: 32px;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.main {
|
.main {
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@ -78,11 +88,11 @@ img {
|
|||||||
a,
|
a,
|
||||||
a:link,
|
a:link,
|
||||||
a:visited {
|
a:visited {
|
||||||
color: vars.$color-green-dark;
|
color: vars.$color-orange-dark;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
color: vars.$color-green;
|
color: vars.$color-orange;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,6 +116,11 @@ img {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
// background: purple;
|
// background: purple;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@ -132,5 +147,5 @@ h1,
|
|||||||
h2,
|
h2,
|
||||||
h3,
|
h3,
|
||||||
h4 {
|
h4 {
|
||||||
color: vars.$color-orange-dark;
|
color: vars.$color-green-dark;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,7 +26,7 @@ however, given that it was being set up on standard x86_64 architecture one
|
|||||||
could pick any of the myriad of guides for setting up rancher (which I set up in
|
could pick any of the myriad of guides for setting up rancher (which I set up in
|
||||||
a VM on my server) with a k3s cluster (the t620s), which is what I did.
|
a VM on my server) with a k3s cluster (the t620s), which is what I did.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## It's Use
|
## It's Use
|
||||||
|
|
||||||
@ -52,7 +52,9 @@ setup and I'm very happy with it.
|
|||||||
|
|
||||||
When I started writing this I had a much grander vision for the end result,
|
When I started writing this I had a much grander vision for the end result,
|
||||||
however, it really isn't that grand. The final solution for the CI/CD can be
|
however, it really isn't that grand. The final solution for the CI/CD can be
|
||||||
found [here](). Using helm simplified things greatly.
|
found [here](https://gitlab.inkletblot.com/inkletblot/simple-blog-api). Although
|
||||||
|
I don't use the project any more it contains all of the CI/CD config required,
|
||||||
|
some of which is outlined below. Using helm simplified things greatly.
|
||||||
|
|
||||||
## Extras
|
## Extras
|
||||||
|
|
||||||
@ -209,7 +211,6 @@ through gitlab.
|
|||||||
name: production
|
name: production
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
That is about all I can come up with at the moment. I hope it is useful for
|
That is about all I can come up with at the moment. I hope it is useful for
|
||||||
someone.
|
someone.
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,6 @@ date: 2022-06-16
|
|||||||
draft: false
|
draft: false
|
||||||
---
|
---
|
||||||
|
|
||||||
## Odroid Cluster
|
|
||||||
|
|
||||||
Say hello to my little odroid kubernetes cluster project.
|
Say hello to my little odroid kubernetes cluster project.
|
||||||
|
|
||||||
Details are: 5 x Odroid-MC1's as worker nodes. All up 10gb RAM and 40 cores. 1 x
|
Details are: 5 x Odroid-MC1's as worker nodes. All up 10gb RAM and 40 cores. 1 x
|
||||||
@ -21,7 +19,7 @@ tutorial loosely and it's all working wonderfully. It's cool to be introduced to
|
|||||||
ansible, which I had heard about but not used before. I'm currently developing
|
ansible, which I had heard about but not used before. I'm currently developing
|
||||||
some apps that I'd like to run on it.
|
some apps that I'd like to run on it.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
-ink
|
-ink
|
||||||
|
|
||||||
|
|||||||
@ -4,10 +4,6 @@ date: 2021-07-28
|
|||||||
draft: true
|
draft: true
|
||||||
---
|
---
|
||||||
|
|
||||||
# Icomoon for Icon Managament
|
|
||||||
|
|
||||||
## Icons, SVGs, Fonts, and Icomoon.
|
|
||||||
|
|
||||||
Early in the year I, for a project at work, was tasked with coming up with a
|
Early in the year I, for a project at work, was tasked with coming up with a
|
||||||
solution to deal with icons. We had decided to use FluentUI icons from
|
solution to deal with icons. We had decided to use FluentUI icons from
|
||||||
microsoft, but the 2Mb font file that they provide was a bit much to include in
|
microsoft, but the 2Mb font file that they provide was a bit much to include in
|
||||||
|
|||||||
@ -1,24 +1,58 @@
|
|||||||
---
|
---
|
||||||
title: "This Website"
|
title: "This Website - inkletblot.com"
|
||||||
date: 2021-07-15
|
date: 2021-07-15
|
||||||
lastmod: 2022-06-13
|
lastmod: 2022-06-13
|
||||||
draft: false
|
draft: false
|
||||||
---
|
---
|
||||||
|
|
||||||
# Inkletblot[]().com
|
This website has existed in one for or another for upwards of 10 years at this
|
||||||
|
point. It is essentially the catalyst for my love of programming, technology,
|
||||||
|
and for my choice of study at university, and my career. When I first created it
|
||||||
|
I was in my early teens and it was created using solely HTML and CSS. Since then
|
||||||
|
each time I learn of some new technology through uni, on my own steam, or at
|
||||||
|
work, I rework the site a little bit. The current design is my favourite so far.
|
||||||
|
It's also the most complex.
|
||||||
|
|
||||||
This website has existed in one for or another for upwards of 10 years at this point. It is essentially the catalyst for my love of programming, technology, and for my choice of study at university, and my career. When I first created it I was in my early teens and it was created using solely HTML and CSS. Since then each time I learn of some new technology through uni, on my own steam, or at work, I rework the site a little bit. The current design is my favourite so far. It's also the most complex.
|
## A little timeline
|
||||||
|
|
||||||
### A little timeline
|
- 2009 - sites initial creation, very basic hand rolled static site. Contents is
|
||||||
|
a bio and some downloads (probably poorly considered by my teen self) to
|
||||||
|
different things I liked.
|
||||||
|
|
||||||
* 2009 - sites initial creation, very basic hand rolled static site. Contents is a bio and some downloads (probably poorly considered by my teen self) to different things I liked.
|
- 2010-2014 - site remains largely unchanged, it is re-created early on and has
|
||||||
|
downloads removed.
|
||||||
|
|
||||||
* 2010-2014 - site remains largely unchanged, it is re-created early on and has downloads removed.
|
- 2015 - a forum is created (now removed until further notice) and added to the
|
||||||
|
site following a long forgotten tutorial on how to create a PHP based forum.
|
||||||
|
Along with this, the knowledge gained from creating the forum is used to
|
||||||
|
create a very basic gallery. It was open to the public for uploads and there
|
||||||
|
was a global clear button. Very simple comment threads were also used.
|
||||||
|
|
||||||
* 2015 - a forum is created (now removed until further notice) and added to the site following a long forgotten tutorial on how to create a PHP based forum. Along with this, the knowledge gained from creating the forum is used to create a very basic gallery. It was open to the public for uploads and there was a global clear button. Very simple comment threads were also used.
|
- 2018 - a major change occurs. The forum, site, and gallery, are all recreated
|
||||||
|
in angularjs and node APIs are built for the forum and gallery. This came from
|
||||||
|
a web dev topic I completed at uni. Everything looked pretty similar to the
|
||||||
|
previous iteration the implementations were completely new. I hosted the node
|
||||||
|
APIs on the Kubernetes cluster I talk about in another post. Their management
|
||||||
|
was a pain though for reasons I won't get into here which leads me to...
|
||||||
|
|
||||||
* 2018 - a major change occurs. The forum, site, and gallery, are all recreated in angularjs and node APIs are built for the forum and gallery. This came from a web dev topic I completed at uni. Everything looked pretty similar to the previous iteration the implementations were completely new. I hosted the node APIs on the Kubernetes cluster I talk about in another post. Their management was a pain though for reasons I won't get into here which leads me to...
|
- 2020-2021 - the site is rewritten yet again, this time using angular11
|
||||||
|
(something I was introduced to through work). The forum and gallery are
|
||||||
|
removed from the site and instead a simple blog is added. I will cover the
|
||||||
|
simple blog api I have created in another post however you can find it on my
|
||||||
|
[gitlab](https://gitlab.inkletblot.com/inkletblot/simple-blog-api). I do plan
|
||||||
|
on recreating the forum and gallery at some point. However, I think I am going
|
||||||
|
to fucus on this little blog for now. I want to add more content and make it a
|
||||||
|
bit more feature rich if I can.
|
||||||
|
|
||||||
* 2020-2021 - the site is rewritten yet again, this time using angular11 (something I was introduced to through work). The forum and gallery are removed from the site and instead a simple blog is added. I will cover the simple blog api I have created in another post however you can find it on my [gitlab](https://gitlab.inkletblot.com/inkletblot/simple-blog-api). I do plan on recreating the forum and gallery at some point. However, I think I am going to fucus on this little blog for now. I want to add more content and make it a bit more feature rich if I can.
|

|
||||||
|
|
||||||
* the future - I guess we will see.
|
- 2022 - Present. I have re-created the website yet again, this time in using
|
||||||
|
[Hugo](https://gohugo.io/). I originally got the idea from Luke Smith but it's
|
||||||
|
taken me some time to complete this while working on my final year of uni and
|
||||||
|
since I started Hugo has exploded in popularity. The site, including it's
|
||||||
|
posts of which there are few so far, are totally static. Thus the largest part
|
||||||
|
of the site for the user to download is the font I'm using which I think is
|
||||||
|
pretty cool. I indent to continue working on the site and in partuclar the
|
||||||
|
content, which I'm hoping to add to semi-regularly.
|
||||||
|
|
||||||
|
- the future - I guess we will see.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<main>
|
<main class="list">
|
||||||
{{ if or .Title .Content }}
|
{{ if or .Title .Content }}
|
||||||
<div>
|
<div>
|
||||||
{{ with .Title }}<h1>{{ . }}</h1>{{ end }}
|
{{ with .Title }}<h1>{{ . }}</h1>{{ end }}
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<main class="main__content">
|
<main class="main__content">
|
||||||
|
<article><p>This homepage is a work in progress, I hope to find something a little more interesting to put here than a list of posts.</p></article>
|
||||||
|
|
||||||
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }}
|
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }}
|
||||||
{{ range $paginator.Pages }}
|
{{ range $paginator.Pages }}
|
||||||
{{ .Render "summary" }}
|
{{ .Render "summary" }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<article class="home">
|
<div class="home">
|
||||||
<h1>{{ .Title }}</h1>
|
<h1>{{ .Title }}</h1>
|
||||||
<div class="home__content">{{ .Content }}</div>
|
<div class="home__content">{{ .Content }}</div>
|
||||||
</article>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|||||||
@ -4,9 +4,9 @@
|
|||||||
</h1>
|
</h1>
|
||||||
{{ with .Site.Menus.main }}
|
{{ with .Site.Menus.main }}
|
||||||
<nav class="header__nav">
|
<nav class="header__nav">
|
||||||
<ul>
|
<ul class="header__nav__list">
|
||||||
{{ range . }}
|
{{ range . }}
|
||||||
<li class="header__nav__item">
|
<li class="header__nav__list__item">
|
||||||
<a href="{{ .URL | relURL }}">{{ .Name }}</a>
|
<a href="{{ .URL | relURL }}">{{ .Name }}</a>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|||||||
@ -1,14 +1,10 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<main class="services">
|
<main class="services">
|
||||||
{{ if or .Title .Content }}
|
{{ if or .Title .Content }} {{ with .Title }}
|
||||||
<div>
|
|
||||||
{{ with .Title }}
|
|
||||||
<h1 class="services__title">{{ . }}</h1>
|
<h1 class="services__title">{{ . }}</h1>
|
||||||
{{ end }} {{ with .Content }}
|
{{ end }} {{ with .Content }}
|
||||||
<div class="services__content">{{ . }}</div>
|
<div class="services__content">{{ . }}</div>
|
||||||
{{ end }}
|
{{ end }} {{ end }}
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<div class="services__list">
|
<div class="services__list">
|
||||||
{{ range .Paginator.Pages }} {{ .Render "summary" }} {{ end }}
|
{{ range .Paginator.Pages }} {{ .Render "summary" }} {{ end }}
|
||||||
|
|||||||
BIN
static/images/odroid-cluster-1.jpg
Normal file
BIN
static/images/odroid-cluster-1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1000 KiB |
BIN
static/images/odroid-cluster-2.jpg
Normal file
BIN
static/images/odroid-cluster-2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 941 KiB |
BIN
static/images/rancher.png
Normal file
BIN
static/images/rancher.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
BIN
static/images/site-2020-2021.png
Normal file
BIN
static/images/site-2020-2021.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 229 KiB |
Loading…
Reference in New Issue
Block a user