openvibers/openvibe.network Commits

Network: its subdomains and the parked domains get vhosts here, so OpenVibe.Sites can go (plan T11) (#107)

OP OpenVibers committed 9 Oct 2026 · 3d1cdfbb0f · 3 files, +156 −1

- deploy/nginx/network-subdomains.conf: status., themes., admin., auth. and api.openvibe.network answer a permanent
  redirect to the page on openvibe.network that does their job (api.'s front page goes to openvibe.services).
- deploy/nginx/parked-domains.conf: openvibe.homes, openvibe.run, openvibe.website, openvibe.zone and
  realtime.openvibe.network have no product yet. They answer a temporary redirect to the network's front door instead
  of a placeholder page, each with its own certificate.

Both replace OpenVibe.Sites placeholder and notice pages.

Changes

ddiff --git a/README.md b/README.md
iindex 776c4517..71903c3e 100644
---- a/README.md
++++ b/README.md
@@@ -96,7 +96,7 @@ openvibe.network (port 4000)
│ ├── login.html # Animated login/register page
│ └── my.html # Account management (profile, sessions, notifications)
├── deploy/
--│ ├── nginx/ # openvibe.network.conf
++│ ├── nginx/ # openvibe.network.conf; network-subdomains.conf (status/themes/admin/auth/api. redirects); parked-domains.conf
│ ├── scripts/ # deploy.sh (runs `ovhost deploy network`), deploy-legacy.sh (its fallback)
│ └── systemd/ # openvibe-network.service (EnvironmentFile=/etc/openvibe/network.env)
└── .env.example
ddiff --git a/deploy/nginx/network-subdomains.conf b/deploy/nginx/network-subdomains.conf
nnew file mode 100644
iindex 00000000..77b35aff
---- /dev/null
++++ b/deploy/nginx/network-subdomains.conf
@@@ -0,0 +1,78 @@
++# ═══════════════════════════════════════════════════════════════
++# The openvibe.network subdomains that are not products of their own (REFERENCE).
++#
++# Each one answers a permanent redirect to the page on openvibe.network that does its job. They served
++# OpenVibe.Sites placeholder pages until 2026-10-09 (plan T11: Sites is deleted).
++# status. → openvibe.network/status
++# themes. → openvibe.network/themes
++# admin. → openvibe.network/admin
++# auth. → openvibe.network<path> (sign-in, OAuth and discovery live on the apex)
++# api. → openvibe.network<path>; its front page → openvibe.services (the developer console and docs)
++#
++# Install: sudo ov-vhost-install deploy/nginx/network-subdomains.conf network-subdomains.conf
++# after removing Sites' admin/api/auth/status/themes.openvibe.network.conf (two files may not claim one name).
++# Certificate: the *.openvibe.network wildcard at /etc/letsencrypt/live/openvibe.network/.
++# ═══════════════════════════════════════════════════════════════
++
++server {
++ listen 80;
++ listen [::]:80;
++ server_name status.openvibe.network themes.openvibe.network admin.openvibe.network auth.openvibe.network api.openvibe.network;
++ return 301 https://$host$request_uri;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name status.openvibe.network;
++ ssl_certificate /etc/letsencrypt/live/openvibe.network/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.network/privkey.pem;
++ access_log off;
++ return 301 https://openvibe.network/status;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name themes.openvibe.network;
++ ssl_certificate /etc/letsencrypt/live/openvibe.network/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.network/privkey.pem;
++ access_log off;
++ return 301 https://openvibe.network/themes;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name admin.openvibe.network;
++ ssl_certificate /etc/letsencrypt/live/openvibe.network/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.network/privkey.pem;
++ access_log off;
++ return 301 https://openvibe.network/admin;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name auth.openvibe.network;
++ ssl_certificate /etc/letsencrypt/live/openvibe.network/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.network/privkey.pem;
++ access_log off;
++ return 301 https://openvibe.network$request_uri;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name api.openvibe.network;
++ ssl_certificate /etc/letsencrypt/live/openvibe.network/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.network/privkey.pem;
++ access_log off;
++ location = / { return 301 https://openvibe.services/; }
++ location / { return 301 https://openvibe.network$request_uri; }
++}
ddiff --git a/deploy/nginx/parked-domains.conf b/deploy/nginx/parked-domains.conf
nnew file mode 100644
iindex 00000000..11a213f3
---- /dev/null
++++ b/deploy/nginx/parked-domains.conf
@@@ -0,0 +1,77 @@
++# ═══════════════════════════════════════════════════════════════
++# Parked domains (REFERENCE): owned by the network, no product serves them yet.
++#
++# A parked domain has no page of its own (plan rule: no placeholders). It answers a temporary redirect
++# to the network's front door, so a visitor lands somewhere real instead of on a TLS or 52x error, and
++# the redirect goes away the day the product's own vhost takes the name. Until 2026-10-09 these served
++# OpenVibe.Sites placeholder pages (plan T11: Sites is deleted).
++# openvibe.homes, openvibe.run, openvibe.website, openvibe.zone: products not built yet (plan T19/T14).
++# realtime.openvibe.network: OpenVibe.Realtime is closed; delivery is OpenVibe.Events.
++#
++# Install: sudo ov-vhost-install deploy/nginx/parked-domains.conf parked-domains.conf
++# after removing Sites' vhost for each name. Each name uses its own certificate (a vhost must use its own
++# name's certificate, or Cloudflare answers 526).
++# ═══════════════════════════════════════════════════════════════
++
++server {
++ listen 80;
++ listen [::]:80;
++ server_name openvibe.homes www.openvibe.homes openvibe.run www.openvibe.run openvibe.website www.openvibe.website
++ openvibe.zone www.openvibe.zone realtime.openvibe.network;
++ return 302 https://openvibe.network/;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name openvibe.homes www.openvibe.homes;
++ ssl_certificate /etc/letsencrypt/live/openvibe.homes/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.homes/privkey.pem;
++ access_log off;
++ return 302 https://openvibe.network/;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name openvibe.run www.openvibe.run;
++ ssl_certificate /etc/letsencrypt/live/openvibe.run/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.run/privkey.pem;
++ access_log off;
++ return 302 https://openvibe.network/;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name openvibe.website www.openvibe.website;
++ ssl_certificate /etc/letsencrypt/live/openvibe.website/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.website/privkey.pem;
++ access_log off;
++ return 302 https://openvibe.network/;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name openvibe.zone www.openvibe.zone;
++ ssl_certificate /etc/letsencrypt/live/openvibe.zone/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.zone/privkey.pem;
++ access_log off;
++ return 302 https://openvibe.network/;
++}
++
++server {
++ listen 443 ssl;
++ listen [::]:443 ssl;
++ http2 on;
++ server_name realtime.openvibe.network;
++ ssl_certificate /etc/letsencrypt/live/openvibe.network/fullchain.pem;
++ ssl_certificate_key /etc/letsencrypt/live/openvibe.network/privkey.pem;
++ access_log off;
++ return 302 https://openvibe.network/;
++}