aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: e9530f67c8b35da7ee0ec4a7573450c42ba32078 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# www : My personal website

My name is Julien Dessaux, also known by my pseudonym Adyxax: welcome to my
personal website!

These pages are an aggregation of various thoughts and tutorials I accumulated
over my years of service as a system and network administrator and architect.
Topics covered are open source, BSD and GNU/Linux system administration, and
networking. It is a personal space that I try to fill up with my experience and
knowledge of computer systems and network administration in the hope it serves
others. You can learn more about me on this page.

I hope you feel welcome here, do not hesitate to leave a message at julien -DOT-
dessaux -AT- adyxax -DOT- org. You can ask for a translation, some more details
on a topic covered here, or just say hi or whatever ;-)

Have a good time!

## Contents

- [Dependencies](#dependencies)
- [Quick Start](#Quick-Start)
- [Hugo](#Hugo)
- [Search](#Search)
- [Kubernetes](#Kubernetes)

## Dependencies

go is required for the search feature. Only go version >= 1.22 on linux amd64
(Gentoo) is being regularly tested.

hugo is required in order to build the website html pages. Only hugo >= 0.111.3
is being regularly tested.

## Quick Start

There is a makefile with everything you need, just type `make help` (or `gmake
help` if running BSD).

## Hugo

Contrary to popular usage, I do not use a theme with hugo. I decided to write my
own in order to keep it light and simple. Here is a breakdown of each folder's
contents:

- `assets/`: css files, which will be compiled into a single minified file.
- `content/`: markdown files
    - `blog/`: blog section of this website.
    - `books/`: a log of simple reviews of books I read.
    - `docs/`: wiki like section, where information is not sorted just
      chronologically like in the blog section.
    - `search/`: dummy section I need for the search feature.
- `deploy/`: container images building script.
- `layouts/`: html, json and rss templates. Also some useful hugo shortcodes.
- `search/`: the go program that powers the search feature.
- `static/`: favicon, blog images and schematics.

## Search

Hugo can easily generate a json index of the website, and according to my
google-fu hugo users use javascript solutions to implement search on top of
this. I was not satisfied by the idea of having javascript download the whole
website index and running searches locally, but I found no alternative. I
therefore designed an alternative.

The search folder contains code for a go webservice that can handle search
queries and serve results. It is fully integrated to maintain a coherent look
with the website. For more details, see the related [blog
article](https://www.adyxax.org/blog/2021/09/19/implementing-a-search-feature-for-my-hugo-static-website/).