summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
13 hoursRelease version 0.1.0HEADv0.1.0mainxengineering
This release allows to get started with packaging and deployment in a very early stage. All features can be added incrementally.
13 hoursVERSION.txt: Remove `v` prefixxengineering
The content of this file should contain the version string of the software. There is no need to label it with a prefix `v` since this is redundant.
13 hoursAdd missing `.` to log messagesxengineering
13 hoursREADME.md: Add public API declarationxengineering
This is required to properly use Semantic Versioning.
13 hoursDisable log timestampsxengineering
Many logging systems provide timestamps on their own. To avoid duplication it is disabled by default.
13 hoursREADME.md: Add build instructionsxengineering
14 hourssystemd: Add finserv.servicexengineering
This file can be used to package for systemd-based Linux distribution. It creates the finserv system service running the server. That way automatic startup on system start can be implemented.
14 hourssystemd: Add finserv.tmpfile.dxengineering
This file can be used to package for systemd-based Linux distribution. I configures the data directory of finserv. This notably includes setting the proper access permissions to protect the saved data.
14 hourssystemd: Add sysuser.confxengineering
This file can be used to package for systemd-based Linux distribution. It creates the `finserv` system user which runs the server.
24 hoursfrontend: Add work in progress text to indexxengineering
This explains the users the current state of this project.
24 hoursfrontend: static: Add simple.css symlinkxengineering
This allows to develop the frontend with `hugo server` and its built-in page refresh on file change. For the actual build the file is copied to the build directory by Meson.
25 hoursUse simple.cssxengineering
This enables the use of simple.css as CSS framework.
25 hoursAdd `run` targetxengineering
This allows to easily run the server with a single `meson compile -C build run` during development.
25 hoursfrontend: Add simple.css submodulexengineering
This is the CSS framework which should be used for this repository.
25 hoursAdd global Meson build systemxengineering
This commit fully introduces Meson as a build system for this repository. It makes sure the frontend page is built with Hugo before the Go executable is built and embeds the frontend.
25 hoursfrontend: Add Meson build systemxengineering
This is a first step towards using Meson for the whole repository. Having one central build system allows many things like ensuring that the frontend page is build before embedding it into the Go executable or like transpiling TypeScript to JavaScript before building the frontend page.
26 hoursEmbed frontend to server executablexengineering
This makes use of the `embed` package of the Go standard library to embed the full Hugo static website as a global filesystem variable inside the executable. This effectively makes all files of the static website part of the Go executable. That way it is always possible to just copy the server executable to a host, make it executable and run it without any other dependencies.
26 hoursHook up frontend in Go web serverxengineering
This makes the Hugo-built static website part of site hosted by Go which also contains the dynamic API under /api.
26 hoursfrontend: layouts: Add baseof.html and home.htmlxengineering
These two files are the starting point for the front end.
26 hoursfrontend: Add .gitignorexengineering
Hugo produces files which should not be committed.
26 hoursfrontend: Reduce to explicitly wanted filesxengineering
Hugo by default generates output files which are not yet needed.
27 hoursfrontend: Add hugo.tomlxengineering
This is the starting point of a Hugo[1] based web frontend. [1]: https://gohugo.io/
27 hoursMove to /api/versionxengineering
The old /version endpoint was moved. It should be part of the API and it is intended that everything not part of /api/* is a static web site which is also served by the Go server.
27 hoursRemove / and hello() handlerxengineering
This was just for demonstration purposes.
27 hoursSplit run() arguments into multiple linesxengineering
One line per argument makes the code more readable and also diffs in case arguments are changed.
27 hoursRun go fmtxengineering
27 hoursMake run fully configurablexengineering
This makes the run() function compared to main() useful at all since all parameters can be changed to test e.g. with unit tests.
27 hoursAdd handlers.goxengineering
This keeps the HTTP handlers in a separate file which registers the routes in an init() function. The main execution flow is still maintained in a now minimal main.go.
27 hoursRename srv to serverxengineering
This improves readability.
27 hoursRegister routes with init()xengineering
This makes the used *mux.Router from github.com/gorilla/mux a global variable. A new router is created in the line where the global variable is created. Handlers can be added across the code base in init() functions.
28 hoursAdd /versionxengineering
28 hoursLog HTTP URLxengineering
3 daysFix stop messagexengineering
3 daysAdd HTTP-based hello worldxengineering
This demonstrates the HTTP server is working.
3 daysAdd github.com/gorilla/mux v1.8.1xengineering
This should be used for the HTTP routing.
3 daysLog start and stop of serverxengineering
3 daysIntroduce run() functionxengineering
This function should be called by main but can also be called by a unit test to run a server which might have different arguments which will likely be added.
3 daysAdd Go hello world programxengineering
This is a starting point to build the server.
3 daysAdd go.mod filexengineering
This makes the repository a Go module which is required to fetch dependencies.
3 daysAdd README.mdxengineering
This explains the purpose of the project.
3 daysAdd Mozilla Public License 2.0xengineering