3.5 KiB
+++ 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 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 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 and provides distributed tracing via OpenTelemetry-based based utilities like Jagger.
5. Nginx, bind and Let's Encrypt
LibrePages is modular, it can be integrated into any existing system, like Gna! and Enough Community to provide static site hosting. We do this using 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 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 for funding team for funding my work on LibrePages <3