diff --git a/content/blog/2022-12-31-december-2022-monthly-report.md b/content/blog/2022-12-31-december-2022-monthly-report.md new file mode 100644 index 0000000..ad49cd3 --- /dev/null +++ b/content/blog/2022-12-31-december-2022-monthly-report.md @@ -0,0 +1,89 @@ ++++ +title = "December 2022 Monthly Report" +date = "2022-12-31" +description = "Towards MVP: deploy sites with forms with Forgejo and Gitea integration. Infrastructure-as-Code to deploy full system is WIP" +draft=false + +[taxonomies] +tags = ['monthly-report', 'JAMStack', 'self-hosting'] + +[extra] +author = 'realaravinth' ++++ + +These past couple of months have been very busy interesting, LibrePages +went from being a simple `git pull` webhook to fully-fledged platform +that can deploy static sites from _any_ Git forge. + +This month, the following things were accomplished: + +## 1. Deploy site from dashboard + +It is now possible to deploy and manage websites with log inspection +right from the dashboard. LibrePages will automatically assign a +randomly generated, but friendly-sounding subdomain on a domain that the +LibrePages system manages. It is also possible to inspect deployment +events, like site updates, to troubleshoot errors in the deployment +pipelines. + +Custom domain support isn't available at the moment but will be +implemented soon. + +## 2. Forms support + +Forms are useful but creating a separate backed or relying on +privacy-invasive tech like Google Forms is very inconvenient. Popular +JAMStack platforms like Netlify provide forms support, so we thought +implementing forms support will be useful. + +LibrePages Forms is a [separate +service](https://git.batsense.net/LibrePages/forms) that can be +integrated into the system. It accepts form submissions in both JSON and +`application/x-www-form-urlencode`. Adding it to your +LibrePages-deployed website is very simple, please see +[here](https://docs.librepages.org/forms/add/) for instructions. + +## 3. Forgejo and Gitea integration + +LibrePages exposes an endpoint which users can call to update their +deployments. This allows us to support all types of Git-based forges. In +addition to the endpoint, we now expose a webhook that is compatible +with Forgejo and Gitea. This way, the deployment will automatically be +updated when a push event is received at the deployed branch, without the +user (or their CI) requiring to call the endpoint. + +## 4. Sysadmin: logging and debugging + +LibrePages is complicated system made of multiple services. It also uses +several third-party applications, like Nginx, to serve websites. +Debugging an issue that affecting multiple services used be complicated +but LibrePages now includes instrumentation to monitor with +[Prometheus](https://prometheus.io) and provides distributed tracing via +OpenTelemetry-based based utilities like [Jagger](https://www.jaegertracing.io/). + +## 5. Nginx, bind and Let's Encrypt + +LibrePages is modular, it can be integrated into any existing system, +like [Gna!](https://gna.org) and [Enough +Community](https://enough.community/) to provide static site hosting. We +do this using +[Conductor](https://git.batsense.net/LibrePages/conductor), which allows +LibrePages to integrate with multiple DNS servers/providers, reverse +proxies and other third-party applications that LibrePages would depend +on. + +Currently, we are working on supporting a system based on Nginx, Bind9 and Let's Encrypt. + +## 6. Infrastructure-as-Code + +[Infrastructure as code to deploy the full +system](https://git.batsense.net/LibrePages/Infrastructure-as-Code) is +being worked on. So far, we've implemented deploying a Debian server +using Terraform and libvirt. Installing and and configuring LibrePages +is being worked on. + +## Thanks + +I would like to thank the [Easter-eggs](https://www.easter-eggs.com/) +for funding team for funding [my work on +LibrePages](https://forum.gna.org/t/5-000-contract-aravinth-manivannan-easter-eggs/58) <3