blob: dc0c38cb617b46654df2366349374da791d4849f (
plain) (
blame)
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
|
{{ define "title" }}
<title>software | samanthony.xyz</title>
{{ end }}
{{ define "style" }}
<style>
h1, h2 { margin-bottom: 0px; }
h2 {
margin-top: 0px;
padding-left: 1em;
color: grey;
}
</style>
{{ end }}
{{ define "body_content" }}
<header>
<h1>samanthony.xyz</h1>
<h2>This website</h2>
<hr>
</header>
<p>
Get a copy of the source code with
<code>git clone git://samanthony.xyz/samanthony.xyz.git</code>.
</p>
<p>
The site uses HTML templates to avoid tedium and for the ability to make
small changes across the entire site without editing multiple files. It uses
the html/template package included in Go's standard library.
</p>
<p>
A server is required to serve these templates. Once again Go provides with
the built in http package. This makes writing a web server extremely easy.
All you have to do is write a function to handle incoming requests and call
http.ListenAndServe(). Painless.
</p>
<p>
Since I'm running OpenBSD, TLS can be dealt with external to the webserver
by using relayd. As an aside, I encourage anyone looking for an operating
system to give OpenBSD a look. It's been an absolute pleasure to work with
so far. As long as you don't expect it to be exactly like a Linux-based
system (it's not), then not only is it more secure, but also
<em>easier to use</em> than something Linux-based. Even for a noob like
myself. Sane design and good documentation go a long way.
</p>
<p>
Inspiration was taken from httpd and the server runs chroot'd. When
serving content it also drops down to an unprivileged user with setuid.
</p>
{{ end }}
|