- monthly-report Zola 2022-12-31T00:00:00+00:00 https://librepages.org/tags/monthly-report/atom.xml December 2022 Monthly Report 2022-12-31T00:00:00+00:00 2022-12-31T00:00:00+00:00 https://librepages.org/blog/december-2022-monthly-report/ <p>These past couple of months have been very busy interesting, LibrePages went from being a simple <code>git pull</code> webhook to fully-fledged platform that can deploy static sites from <em>any</em> Git forge.</p> <p>This month, the following things were accomplished:</p> <h2 id="1-deploy-site-from-dashboard">1. Deploy site from dashboard<a class="zola-anchor" href="#1-deploy-site-from-dashboard" aria-label="Anchor link for: 1-deploy-site-from-dashboard" ><span class="anchor-icon">#</span></a > </h2> <p>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.</p> <p>Custom domain support isn't available at the moment but will be implemented soon.</p> <h2 id="2-forms-support">2. Forms support<a class="zola-anchor" href="#2-forms-support" aria-label="Anchor link for: 2-forms-support" ><span class="anchor-icon">#</span></a > </h2> <p>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.</p> <p>LibrePages Forms is a <a href="https://git.batsense.net/LibrePages/forms">separate service</a> that can be integrated into the system. It accepts form submissions in both JSON and <code>application/x-www-form-urlencode</code>. Adding it to your LibrePages-deployed website is very simple, please see <a href="https://docs.librepages.org/forms/add/">here</a> for instructions.</p> <h2 id="3-forgejo-and-gitea-integration">3. Forgejo and Gitea integration<a class="zola-anchor" href="#3-forgejo-and-gitea-integration" aria-label="Anchor link for: 3-forgejo-and-gitea-integration" ><span class="anchor-icon">#</span></a > </h2> <p>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.</p> <h2 id="4-sysadmin-logging-and-debugging">4. Sysadmin: logging and debugging<a class="zola-anchor" href="#4-sysadmin-logging-and-debugging" aria-label="Anchor link for: 4-sysadmin-logging-and-debugging" ><span class="anchor-icon">#</span></a > </h2> <p>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 <a href="https://prometheus.io">Prometheus</a> and provides distributed tracing via OpenTelemetry-based based utilities like <a href="https://www.jaegertracing.io/">Jagger</a>.</p> <h2 id="5-nginx-bind-and-let-s-encrypt">5. Nginx, bind and Let's Encrypt<a class="zola-anchor" href="#5-nginx-bind-and-let-s-encrypt" aria-label="Anchor link for: 5-nginx-bind-and-let-s-encrypt" ><span class="anchor-icon">#</span></a > </h2> <p>LibrePages is modular, it can be integrated into any existing system, like <a href="https://gna.org">Gna!</a> and <a href="https://enough.community/">Enough Community</a> to provide static site hosting. We do this using <a href="https://git.batsense.net/LibrePages/conductor">Conductor</a>, which allows LibrePages to integrate with multiple DNS servers/providers, reverse proxies and other third-party applications that LibrePages would depend on.</p> <p>Currently, we are working on supporting a system based on Nginx, Bind9 and Let's Encrypt.</p> <h2 id="6-infrastructure-as-code">6. Infrastructure-as-Code<a class="zola-anchor" href="#6-infrastructure-as-code" aria-label="Anchor link for: 6-infrastructure-as-code" ><span class="anchor-icon">#</span></a > </h2> <p><a href="https://git.batsense.net/LibrePages/Infrastructure-as-Code">Infrastructure as code to deploy the full system</a> 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.</p> <h2 id="thanks">Thanks<a class="zola-anchor" href="#thanks" aria-label="Anchor link for: thanks" ><span class="anchor-icon">#</span></a > </h2> <p>I would like to thank the <a href="https://www.easter-eggs.com/">Easter-eggs</a> for funding team for funding <a href="https://forum.gna.org/t/5-000-contract-aravinth-manivannan-easter-eggs/58">my work on LibrePages</a> &lt;3</p>