ABD Labs Portfolio Routing

Public infrastructure and portfolio foundation · 2026 · 1 day · 1 person · 4 min read

abdlabs.org serves a static HTTPS portfolio from this VPS, with www redirected, TLS issued and renewal verified.

Overview

The first public ABD Labs milestone was to recover the domain and route it to a safe static portfolio surface. The site is intentionally separate from lab administration and from existing production services.

Problem

ABD Labs needed a public identity for verified Microsoft Enterprise Lab and technical portfolio work, but the current VPS also hosts other important services. The public site had to be useful without increasing operational risk.

Constraints

Approach

Create a dedicated nginx virtual host for abdlabs.org, serve static files from a scoped webroot, issue a Let's Encrypt certificate for both abdlabs.org and www.abdlabs.org, then verify redirects, HTTPS and renewal behavior before expanding the site content.

Key Decisions

Use static hosting for the public portfolio.

Reasoning:

Static output gives the public site fast delivery and a small operational surface. No database, admin panel or application runtime has to be exposed for the first portfolio version.

Alternatives considered:
  • Deploy a full CMS.
  • Run a custom Node application behind nginx.
  • Keep a hand-written single HTML marker page indefinitely.

Make abdlabs.org the canonical route.

Reasoning:

A single canonical domain keeps public links simple, while www.abdlabs.org can redirect permanently to the root domain.

Alternatives considered:
  • Publish primarily on www.abdlabs.org.
  • Use portfolio.abdlabs.org before there is enough content to justify a subdomain.

Keep the lab administration namespace private by default.

Reasoning:

The portfolio can prove work without publishing management surfaces. Any future VPN endpoint needs a separate design and explicit approval.

Alternatives considered:
  • Publish direct lab service names in public DNS.
  • Use the portfolio host as a general lab gateway.

Tech Stack

Result & Impact

ABD Labs now has a public proof layer that can grow into case studies while lab management remains private and current VPS services stay isolated.

Learnings

Implementation Notes

The route was built as a static public surface:

The nginx route was created without opening new firewall rules and without exposing any Windows or lab administration service.

Verification Commands

These checks were used during the routing and portfolio deployment work.

nginx -t

Expected result:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
curl -I https://abdlabs.org/
curl -I https://www.abdlabs.org/
curl -I http://abdlabs.org/

Observed behavior:

certbot renew --dry-run --cert-name abdlabs.org --no-random-sleep-on-renew

Expected result: renewal simulation succeeds for the abdlabs.org certificate.

curl -I https://app.konai.fr/nginx-health

Expected result: 200, confirming the existing nginx-backed service stayed reachable after the portfolio route changed.

Deployment Procedure

The Astro source is built locally:

cd /root/projects/microsoft-enterprise-lab/portfolio-site
npm run build

The generated static files are deployed from:

/root/projects/microsoft-enterprise-lab/portfolio-site/dist

to:

/var/www/abdlabs.org/public

Before replacing the previous site, the existing public webroot was copied to:

/var/www/abdlabs.org/backups/public-20260924T140727+0200

If a rollback is needed, the backup can be copied back into the public webroot.

Public And Private Boundary

This route is public:

These remain private by default:

Current Source Of Truth

The live static output is served from /var/www/abdlabs.org/public.

The maintainable source now lives in the Microsoft Enterprise Lab repository under portfolio-site/, using Astro and MDX so future case studies can be added through Git-tracked content.

Follow-Up Evidence To Add

The next stronger version of this case study should include sanitized snippets from the nginx vhost, certificate metadata and a short rollback drill once the portfolio has changed a few more times.