feat: serve docs flat at /<repo>/ with no redirects

- collect.py copies each repo's built site contents directly to a
  top-level <repo>/ dir (was libs|apis|wiki/<repo>/site nesting)
- nginx uses `index index.html lib/index.html api/index.html` so
  /dagpipe/ -> lib/index.html, /auth-server/ -> api/index.html are
  served internally with no redirects
- _index regenerates links against the flat layout
  (/dagpipe/lib/, /auth-server/api/, /mongo-ops/, /blog/...)
- config.yml static entries point at vendored blog/ + media-manager/
- Dockerfile copies per-repo dirs flat into the nginx html root
- removed stale libs/, apis/, wiki/, tutorials/ category trees
This commit is contained in:
2026-09-11 21:32:30 +05:30
parent 0c25cbb19f
commit a32eeaf2b4
882 changed files with 85 additions and 1982 deletions

View File

@@ -29,16 +29,23 @@ COPY main.py core.py config.py collect.py config.yml ./
COPY nginx.conf /etc/nginx/conf.d/default.conf COPY nginx.conf /etc/nginx/conf.d/default.conf
RUN rm -f /etc/nginx/sites-enabled/default RUN rm -f /etc/nginx/sites-enabled/default
# --- collected documentation tree ----------------------------------------- # --- collected documentation tree (flat, one dir per repo) -----------------
COPY _index /usr/share/nginx/html/ COPY _index /usr/share/nginx/html/
COPY libs /usr/share/nginx/html/libs COPY openapi-first /usr/share/nginx/html/openapi-first
COPY apis /usr/share/nginx/html/apis COPY doc-forge /usr/share/nginx/html/doc-forge
COPY wiki /usr/share/nginx/html/wiki COPY dagpipe /usr/share/nginx/html/dagpipe
COPY tutorials /usr/share/nginx/html/tutorials COPY mail-intake /usr/share/nginx/html/mail-intake
COPY omniread /usr/share/nginx/html/omniread
COPY py-jwt /usr/share/nginx/html/py-jwt
COPY hexa /usr/share/nginx/html/hexa
COPY mongo-ops /usr/share/nginx/html/mongo-ops
COPY auth-server /usr/share/nginx/html/auth-server
COPY blog /usr/share/nginx/html/blog
COPY media-manager /usr/share/nginx/html/media-manager
# --- MCP bundles ----------------------------------------------------------- # --- MCP bundles -----------------------------------------------------------
COPY mcp /app/mcp COPY mcp /app/mcp
EXPOSE 8000 8001 8002 8003 8004 8005 8006 9000 EXPOSE 8000 8001 8002 8003 8004 8005 8006 9000
CMD ["python", "main.py"] CMD ["python", "main.py"]

View File

@@ -71,37 +71,37 @@
<div class="card"> <div class="card">
<h3>OpenAPI First</h3> <h3>OpenAPI First</h3>
<p>Design-first API development toolkit enforcing OpenAPI contracts as the single source of truth.</p> <p>Design-first API development toolkit enforcing OpenAPI contracts as the single source of truth.</p>
<a href="/libs/openapi-first/" target="_blank">View Documentation &rarr;</a> <a href="/openapi-first/lib/" target="_blank">View Documentation &rarr;</a>
</div> </div>
<div class="card"> <div class="card">
<h3>Doc Forge</h3> <h3>Doc Forge</h3>
<p>Renderer-agnostic Python documentation compiler powering MkDocs and MCP generation across Aetoskia projects.</p> <p>Renderer-agnostic Python documentation compiler powering MkDocs and MCP generation across Aetoskia projects.</p>
<a href="/libs/doc-forge/" target="_blank">View Documentation &rarr;</a> <a href="/doc-forge/lib/" target="_blank">View Documentation &rarr;</a>
</div> </div>
<div class="card"> <div class="card">
<h3>DAG Pipe</h3> <h3>DAG Pipe</h3>
<p>Deterministic pipeline framework for executing state transformations through a directed acyclic graph (DAG).</p> <p>Deterministic pipeline framework for executing state transformations through a directed acyclic graph (DAG).</p>
<a href="/libs/dagpipe/" target="_blank">View Documentation &rarr;</a> <a href="/dagpipe/lib/" target="_blank">View Documentation &rarr;</a>
</div> </div>
<div class="card"> <div class="card">
<h3>Mail Intake</h3> <h3>Mail Intake</h3>
<p>High-performance email ingestion and processing framework with pluggable adapters and automation workflows.</p> <p>High-performance email ingestion and processing framework with pluggable adapters and automation workflows.</p>
<a href="/libs/mail-intake/" target="_blank">View Documentation &rarr;</a> <a href="/mail-intake/lib/" target="_blank">View Documentation &rarr;</a>
</div> </div>
<div class="card"> <div class="card">
<h3>Omniread</h3> <h3>Omniread</h3>
<p>Unified ingestion and normalization layer for structured and unstructured data sources.</p> <p>Unified ingestion and normalization layer for structured and unstructured data sources.</p>
<a href="/libs/omniread/" target="_blank">View Documentation &rarr;</a> <a href="/omniread/lib/" target="_blank">View Documentation &rarr;</a>
</div> </div>
<div class="card"> <div class="card">
<h3>Py JWT</h3> <h3>Py JWT</h3>
<p>Lightweight, explicit JWT utilities for Python services with strong validation and minimal magic.</p> <p>Lightweight, explicit JWT utilities for Python services with strong validation and minimal magic.</p>
<a href="/libs/py-jwt/" target="_blank">View Documentation &rarr;</a> <a href="/py-jwt/lib/" target="_blank">View Documentation &rarr;</a>
</div> </div>
<div class="card"> <div class="card">
<h3>Hexa</h3> <h3>Hexa</h3>
<p>Hexagonal architecture framework and toolbox for Python services.</p> <p>Hexagonal architecture framework and toolbox for Python services.</p>
<a href="/libs/hexa/" target="_blank">View Documentation &rarr;</a> <a href="/hexa/lib/" target="_blank">View Documentation &rarr;</a>
</div> </div>
</div> </div>
</section> </section>
@@ -112,12 +112,12 @@
<div class="card"> <div class="card">
<h3>Auth Server</h3> <h3>Auth Server</h3>
<p>Aetoskia authentication service. OpenAPI-driven, FastAPI backend for auth flows.</p> <p>Aetoskia authentication service. OpenAPI-driven, FastAPI backend for auth flows.</p>
<a href="/apis/auth-server/" target="_blank">View Documentation &rarr;</a> <a href="/auth-server/api/" target="_blank">View Documentation &rarr;</a>
</div> </div>
<div class="card"> <div class="card">
<h3>Blog API</h3> <h3>Blog API</h3>
<p>A modular, async Blog API backend for FastAPI microservices. Provides streamlined CRUD operations for articles and authors.</p> <p>A modular, async Blog API backend for FastAPI microservices. Provides streamlined CRUD operations for articles and authors.</p>
<a href="/apis/blog/" target="_blank">View Documentation &rarr;</a> <a href="/blog/" target="_blank">View Documentation &rarr;</a>
</div> </div>
</div> </div>
</section> </section>
@@ -128,7 +128,7 @@
<div class="card"> <div class="card">
<h3>Mongo Ops</h3> <h3>Mongo Ops</h3>
<p>A modular, async MongoDB operations layer for FastAPI microservices. Simplifies CRUD, transactions, and model management.</p> <p>A modular, async MongoDB operations layer for FastAPI microservices. Simplifies CRUD, transactions, and model management.</p>
<a href="/wiki/mongo-ops/" target="_blank">View Documentation &rarr;</a> <a href="/mongo-ops/" target="_blank">View Documentation &rarr;</a>
</div> </div>
</div> </div>
</section> </section>
@@ -139,7 +139,7 @@
<div class="card"> <div class="card">
<h3>Media Manager Tutorial</h3> <h3>Media Manager Tutorial</h3>
<p>Step-by-step guide to the Media Manager architecture, ingestion pipeline, automation workflows, and integrations.</p> <p>Step-by-step guide to the Media Manager architecture, ingestion pipeline, automation workflows, and integrations.</p>
<a href="/tutorials/media-manager/" target="_blank">View Tutorial &rarr;</a> <a href="/media-manager/" target="_blank">View Tutorial &rarr;</a>
</div> </div>
</div> </div>
</section> </section>

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Some files were not shown because too many files have changed in this diff Show More