summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
29 hoursUse simple.cssxengineering
This enables the use of simple.css as CSS framework.
29 hoursAdd `run` targetxengineering
This allows to easily run the server with a single `meson compile -C build run` during development.
29 hoursfrontend: Add simple.css submodulexengineering
This is the CSS framework which should be used for this repository.
29 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.
29 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.
30 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.
31 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.
31 hoursfrontend: layouts: Add baseof.html and home.htmlxengineering
These two files are the starting point for the front end.
31 hoursfrontend: Add .gitignorexengineering
Hugo produces files which should not be committed.
31 hoursfrontend: Reduce to explicitly wanted filesxengineering
Hugo by default generates output files which are not yet needed.
31 hoursfrontend: Add hugo.tomlxengineering
This is the starting point of a Hugo[1] based web frontend. [1]: https://gohugo.io/
32 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.
32 hoursRemove / and hello() handlerxengineering
This was just for demonstration purposes.
32 hoursSplit run() arguments into multiple linesxengineering
One line per argument makes the code more readable and also diffs in case arguments are changed.
32 hoursRun go fmtxengineering
32 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.
32 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.
32 hoursRename srv to serverxengineering
This improves readability.
32 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.
32 hoursAdd /versionxengineering
32 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