<feed xmlns='http://www.w3.org/2005/Atom'>
<title>haminer, branch main</title>
<subtitle>Library and program to parse and forward HAProxy HTTP logs.</subtitle>
<id>http://git.kilabit.info/haminer/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/haminer/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/'/>
<updated>2026-02-12T02:44:17Z</updated>
<entry>
<title>README: simplify the license section</title>
<updated>2026-02-12T02:44:17Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-02-12T02:44:17Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=084f94483a9e482feee8b70e007b437c56317484'/>
<id>urn:sha1:084f94483a9e482feee8b70e007b437c56317484</id>
<content type='text'>
Mention only license name and the file to look for full
license information.
</content>
</entry>
<entry>
<title>Release haminer v0.3.0 (2025-12-29)</title>
<updated>2025-12-29T08:48:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-12-29T08:48:47Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=df9ab9327a6fa88ebb3880214b3194a28377a3ce'/>
<id>urn:sha1:df9ab9327a6fa88ebb3880214b3194a28377a3ce</id>
<content type='text'>
**💧 Group documentation into _doc/ directory**.

This is so we can serve the documentation under
https://kilabit.info/project/haminer.

In the Makefile, we add task `serve-doc` to preview the documentation.

**💧 Replace module "share" with "pakakeh.go"**

The "share" module has been renamed to "pakakeh.go" and moved to different
git repository.

**💧 Realign struct HttpLog and questdbClient**

The HttpLog realign from 304 to 288 bytes.
The questdbClient realign from 56 to 24 bytes.

**🪵 Comply with all linters recommendations**

Some of breaking changes,

* Field [Config.HttpUrl] renamed to [Config.HTTPURL]
* Field [ConfigForwarder.Url] renamed to [ConfigForwarder.URL]
* Struct [HttpLog] renamed to [HTTPLog]

**💧 _ops/haminer-test: setup container for development using mkosi**

The container run HAProxy and PostgreSQL servers.

We also create new dummy backend to test backend in HAProxy.
The haminer-dummy-backend run in container and serve two ports in HTTP
and TCP modes.

**🌱 all: implement forwarder for Postgresql**

The Postgresql forwarder accept single option "URL",

  [forwarder "postgresql"]
  url = postgres://&lt;user&gt;:&lt;pass&gt;@&lt;host&gt;/&lt;database&gt;?sslmode=&lt;&gt;

The user and database must already created first, manually.

**🌼 Do not log ServerName with invalid connection '&lt;NOSRV&gt;'**

**🌼 _AUR: fix installation of binary in package function**

**Add linter gocheck**

Program gocheck implement go static analysis using [Analyzer] that are not
included in the default go vet.
See package [lib/goanalysis] for more information.

[Analyzer]: https://pkg.go.dev/golang.org/x/tools/go/analysis#hdr-Analyzer +
[lib/goanalysis]: https://pkg.go.dev/git.sr.ht/~shulhan/pakakeh.go/lib/goanalysis/
</content>
</entry>
<entry>
<title>all: add missing SPDX license to all files</title>
<updated>2025-12-29T08:08:08Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-12-29T08:08:08Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=76df394598f5953a2cba14ca0f95c4d9e52e9469'/>
<id>urn:sha1:76df394598f5953a2cba14ca0f95c4d9e52e9469</id>
<content type='text'>
Convert the old ".reuse/dep5" format to REUSE.toml format using
"reuse convert-dep5" command.

For generated files, add the ".license" file.

Using "reuse annotate ..." it automatically add empty line after
"SPDX-FileCopyrightText:", and it also put "SPDX-FileCopyrightText" above
the "SPDX-License-Identifier".

Now, this project is compliant with version 3.3 of the REUSE
Specification.

</content>
</entry>
<entry>
<title>make: replace external linter with gocheck</title>
<updated>2025-12-29T07:14:29Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-12-29T07:14:29Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=4654d45c96f86133bc0258d67c919dea7884fc46'/>
<id>urn:sha1:4654d45c96f86133bc0258d67c919dea7884fc46</id>
<content type='text'>
The fieldalignment and shadow is a linter from golang.org/x/tools.
This program actually have an API that can be used.
The pakakeh.go/lib/goanalysis wrap those APIs into a single function
call that can be run inside a main.
This minimize and simplified our tools dependencies.

</content>
</entry>
<entry>
<title>_AUR: fix installation of binary in package function</title>
<updated>2025-06-29T18:45:14Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-06-29T18:45:14Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=5aa9337aeae709244846782ac98f276ad7965d78'/>
<id>urn:sha1:5aa9337aeae709244846782ac98f276ad7965d78</id>
<content type='text'>
</content>
</entry>
<entry>
<title>_doc: merge index.md into README.md</title>
<updated>2025-06-29T18:41:45Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-06-29T18:30:59Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=d1d6a4f8857d67ec698fc887e7481560e8709e9e'/>
<id>urn:sha1:d1d6a4f8857d67ec698fc887e7481560e8709e9e</id>
<content type='text'>
Also, make the README as index for project page.
</content>
</entry>
<entry>
<title>all: replace golangci-lint with go vet</title>
<updated>2025-01-07T18:28:14Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-01-07T18:28:14Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=26a3ccad0912510dbbf108285b113dfa02274ad1'/>
<id>urn:sha1:26a3ccad0912510dbbf108285b113dfa02274ad1</id>
<content type='text'>
Golangci-lint does not works when working with gotip, use too much memory,
and become red herring and subjective instead of correctness.
</content>
</entry>
<entry>
<title>go.mod: update all dependencies</title>
<updated>2025-01-07T18:27:26Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-01-07T18:25:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=5319e3f4f05e724d9c0d6485b152b353dbbb2407'/>
<id>urn:sha1:5319e3f4f05e724d9c0d6485b152b353dbbb2407</id>
<content type='text'>
</content>
</entry>
<entry>
<title>go.mod: update all dependencies</title>
<updated>2024-09-07T18:22:00Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-09-07T18:22:00Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=bb5f413739395991bb20316e16f31d473bdfe71c'/>
<id>urn:sha1:bb5f413739395991bb20316e16f31d473bdfe71c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>all: do not log ServerName with invalid connection '&lt;NOSRV&gt;'</title>
<updated>2024-04-01T05:46:07Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-04-01T05:46:07Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/haminer/commit/?id=c48d8614027569d0f68203d83e7b4abb17bd6b7c'/>
<id>urn:sha1:c48d8614027569d0f68203d83e7b4abb17bd6b7c</id>
<content type='text'>
</content>
</entry>
</feed>
