initial commit

This commit is contained in:
ycc
2026-01-20 19:49:41 +01:00
commit 30a59d7e4e
30 changed files with 12607 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
<!DOCTYPE html>
<html lang="{{ config.default_language | default(value="en") }}" data-theme="light">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>
{%- if page is defined and page.title -%}
{{ page.title }} {{ config.title }}
{%- elif section is defined and section.title -%}
{{ section.title }} {{ config.title }}
{%- else -%}
{{ config.title }}
{%- endif -%}
</title>
{# Description meta #}
{% if page is defined and page.description %}
<meta name="description" content="{{ page.description }}">
{% elif section is defined and section.description %}
<meta name="description" content="{{ section.description }}">
{% else %}
<meta name="description" content="{{ config.description | default(value="OpenCloud sovereign distributed cloud project") }}">
{% endif %}
<link rel="stylesheet" href="{{ get_url(path="main.css") }}">
</head>
<body>
{% include "partials/header.html" %}
<main class="oc-main">
{% block content %}{% endblock content %}
</main>
{% include "partials/footer.html" %}
<script>
(function () {
const root = document.documentElement;
const stored = localStorage.getItem('oc-theme');
// Default = light
if (stored === 'dark') {
root.setAttribute('data-theme', 'dark');
} else {
root.setAttribute('data-theme', 'light');
}
const btn = document.getElementById('oc-theme-toggle');
if (!btn) return;
const updateLabel = () => {
const current = root.getAttribute('data-theme') || 'light';
btn.dataset.theme = current;
if (current === 'dark') {
btn.innerText = '☀ Light';
} else {
btn.innerText = '🌙 Dark';
}
};
updateLabel();
btn.addEventListener('click', () => {
const current = root.getAttribute('data-theme') === 'dark' ? 'dark' : 'light';
const next = current === 'dark' ? 'light' : 'dark';
root.setAttribute('data-theme', next);
localStorage.setItem('oc-theme', next);
updateLabel();
});
})();
</script>
</body>
</html>

View File

@@ -0,0 +1,66 @@
{% extends "base.html" %}
{% block content %}
{% if section is defined %}
{% include "partials/hero.html" %}
{% endif %}
<section class="oc-section">
<div class="oc-container oc-grid-3">
<div class="oc-card">
<h2>Why OpenCloud?</h2>
<p>
OpenCloud interconnects private clouds with a secure, peer-to-peer control plane.
Each participant keeps full sovereignty while benefiting from shared resilience and capacity.
</p>
<a href="/project" class="oc-link-arrow">Discover the project →</a>
</div>
<div class="oc-card">
<h2>Architecture</h2>
<p>
A distributed mesh overlay connects independent nodes, enabling resource sharing,
trust-based federation, and multi-site fault tolerance.
</p>
<a href="/project/architecture" class="oc-link-arrow">View the architecture →</a>
</div>
<div class="oc-card">
<h2>Open Source</h2>
<p>
OpenCloud is developed in the open, with transparent governance and a commitment
to interoperability and long-term independence.
</p>
{% if config.extra.repo_url %}
<a href="{{ config.extra.repo_url | safe }}" class="oc-link-arrow" target="_blank" rel="noopener">
Browse the source →</a>
{% endif %}
</div>
</div>
</section>
<section class="oc-section oc-section-muted">
<div class="oc-container oc-split">
<div>
<h2>Key benefits for decision-makers</h2>
<ul class="oc-list-check">
<li>Keep strategic control over data and infrastructure</li>
<li>Build resilience across multiple sites and partners</li>
<li>Avoid vendor lock-in and opaque proprietary stacks</li>
<li>Align technical architecture with sovereignty policies</li>
</ul>
</div>
<div>
<h2>From prototype to production</h2>
<p>
OpenCloud is evolving from a research-grade prototype to a production-ready
federated cloud fabric. Follow the roadmap to understand current capabilities
and planned milestones.
</p>
<a href="/project/roadmap" class="oc-btn oc-btn-outline">
View the roadmap
</a>
</div>
</div>
</section>
{% endblock content %}