Showing 2 posts under Software Engineering.

Tiago Lopes Carvalho · May 9, 2026 Software EngineeringSoftware View post

Dev Blog #1: Migrating our web stack to Técnico's VPS and some news

Until now, we'd been running our platform on a Hetzner server deployed on Appliku, and as of today we just completed a migration to an OpenStack VPS provided by Técnico. This post covers what we did, why we did it, and the technical steps involved.

Why We Migrated

Appliku is a great platform for getting things running quickly and abstracts away a lot of the complexity of deploying Dockerized apps. However, as our project matured, we wanted more control over our infrastructure and a way to reduce costs. If you know the right people (thanks to our scientific advisor / INESC!), Técnico provides a VPS service for projects on their cloud infrastructure, which gave us an opportunity to eliminate hosting fees entirely and gaining ownership of our deployment pipeline.

The Migration Process, and some quirks

Our web stack is a Django application backed by PostgreSQL (with PostGIS for geospatial support) and served through Gunicorn behind an Nginx reverse proxy, all containerized with Docker. We also store user-uploaded media files including profile photos, CVs, and meeting documents.

We provisioned a new Ubuntu 22.04 instance on Técnico's OpenStack infrastructure, configured security groups to allow HTTP and HTTPS traffic, and assigned a floating IP for external access.

Migrating the Database and Media: We used PostgreSQL's pg_dump tool to dump the database from the old server, SCP'd it over to our local machine and then to the new server. Finally, we dropped and rebuilt the database on the new instance, restoring the data across cleanly. User-uploaded media files, such as profile pictures and PDFs, were stored inside the web container on Appliku. We archived that directory as a tarball and restored them into the Docker volume on the new server.

SSL and Domain Configuration: We set up HTTPS with Certbot, configured Nginx to handle SSL termination and redirect HTTP requests to HTTPS. We also secured a free! domain orbiswater.pt thanks to amen.pt! WIP

Keeping the Old URL Working: Ensuring continuity for anyone who had bookmarked or shared our old URL was a priority. Since orbis.applikuapp.com is a subdomain managed entirely by Appliku, we had no direct control over where it pointed. To work around this, we did the most overkill thing and set up a redirect app on a Google Cloud instance, registered it as a server on Appliku, and deployed a barebones Nginx container whose sole job is to issue a redirect to the new server. It was a roundabout approach, but it means any materials referencing the old URL remain valid. Engineers..

In Other News

The Dev team has been hard at work building out our infrastructure. I have been personally responsible for the gateway, blockchain, and transactional algorithms. @Tomás Ribeiro has been working on daemons that run at the node level and binary packetised communication protocols, and @Francisco Caravana has been working on authentication algorithms and card info hashing.

On top of that, our geospatial dashboard can now be demoed here! Give it a spin!

Tomás Ribeiro · Feb. 28, 2026 External RelationsRelationsSoftware EngineeringSoftware View post

Site is Live!

Orbis Platform — Version 1 Release

Today we're releasing the first version of the Orbis platform: a website and future operational interface for a modular, resilient water distribution system designed for cities under stress.

This release moves the project from concept to something visible, navigable, and technically grounded. For the first time, Orbis exists as a real product layer: built to communicate, manage, and eventually operate an urban emergency water network.


Why this exists

Urban water systems are centralized, rigid, and optimized for normal conditions. But "normal" is becoming less reliable.

Conflicts, earthquakes, droughts, and contamination events have shown how quickly access to drinking water can collapse. In the first 72 hours after a disruption, water access becomes a matter of public safety, health, and stability — not just logistics.

Our approach is a redundant, modular, point-to-point water system that can be deployed across a city and activated when the main network fails. The platform is the digital backbone that makes that system manageable.


More than a website

The site isn't just a landing page — it's structured as a future operational portal.

Even in this first version, the architecture reflects that goal. It introduces the motivation, the risks, and the proposed solution in a clear way, while laying the groundwork for a role-based interface where different actors (municipalities, civil protection, emergency services) can access different layers of information.

In future iterations, operators will be able to monitor node status, storage levels, water quality indicators, and distribution points in real time through this same platform.


Technical foundation

Version 1 is built with Django, chosen for its robustness and strong ecosystem for data-driven platforms. It gives us clean separation between logic, data, and presentation; a powerful admin interface that will evolve into an internal control dashboard; secure authentication and permission management; and the flexibility to grow from an informational site into a full operational tool.

The templating system is already structured around component-based sections, which lets us iterate on design while maintaining consistency across the site.

Geospatial layer with PostGIS

Because this system is inherently spatial, we're integrating PostgreSQL with PostGIS from the start. This allows us to store the location of each modular water node, map distribution zones and coverage areas, analyse proximity to critical infrastructure (hospitals, shelters, dense neighbourhoods), simulate service gaps during network failure, and plan optimal deployment locations in advance.

In later versions, this will power an interactive map interface where users can visualize the network and understand coverage in real time.


What Version 1 includes — and what it doesn't

This release is intentionally lightweight in functionality but strong in structure. The design system, layout components, and data architecture are prepared to scale into real-time monitoring dashboards, activation workflows for emergency scenarios, integration with IoT sensors and telemetry, multi-role access for institutions and responders, and public-facing interfaces for citizens during crises.

Everything in this version is foundation work for that evolution.


Dual use by design

Although the platform targets catastrophic scenarios, the physical system is also designed for everyday use. During normal conditions, the modular water nodes can support firefighters, civil protection units, and temporary operations in areas with limited water access. This dual-use model ensures the system stays maintained, tested, and ready — rather than sitting idle waiting for a disaster.


Next steps

With Version 1 live, we're now working on live data simulation, the map-based interface powered by PostGIS, and expanding the backend into a full operational dashboard for authorities and emergency services. In parallel, we're refining the physical deployment model and exploring partnerships for real-world pilot testing.

More updates to follow.