rojects/workspace/history/2026/07-July/11-Saturday/index.html

119 lines
4.4 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Session Summary — 11 July 2026</title>
<link rel="stylesheet" href="../../../../_assets_/styles.css">
<link rel="stylesheet" href="../../../../_assets_/nav.css">
</head>
<body>
<div class="page">
<header>
<p class="date">Saturday, 11 July 2026</p>
<h1>Roject — Session Summary</h1>
<p class="subtitle">
nginx reverse proxy on Server A — Gitea moved to a local port,
SSL termination handed to nginx, development.rokojori.com restored.
Project directory restructure planned for next session.
</p>
</header>
<section>
<h2>What we built</h2>
<div class="card">
<h3>nginx reverse proxy on Server A</h3>
<p>
Installed nginx on Server A (development.rokojori.com). Gitea was
previously running directly on port 443 with its own TLS. It was moved
to port 4444 on localhost, running plain HTTP. nginx now owns port 443
for the domain and proxies traffic to Gitea internally.
</p>
<p style="margin-top:0.75rem">
The nginx server block for <code>development.rokojori.com</code> includes
the standard reverse-proxy headers (<code>Host</code>, <code>X-Real-IP</code>,
<code>X-Forwarded-For</code>, <code>X-Forwarded-Proto</code>) and uses
the existing Let's Encrypt certificate.
</p>
<p style="margin-top:0.75rem">
Gitea's <code>app.ini</code> was updated: <code>PROTOCOL = http</code>,
<code>HTTP_PORT = 4444</code>, <code>ROOT_URL = https://development.rokojori.com/</code>.
Port 4444 was closed in the IONOS firewall so Gitea is only reachable
through nginx.
</p>
<div class="tags">
<span class="tag">nginx</span>
<span class="tag">reverse proxy</span>
<span class="tag">Server A</span>
<span class="tag">Gitea :4444</span>
<span class="tag">Let's Encrypt</span>
</div>
</div>
</section>
<section>
<h2>Key Decisions</h2>
<div class="decision">
<strong>nginx handles TLS, Gitea runs plain HTTP locally</strong>
<p>
Gitea's built-in TLS was disabled so that nginx becomes the sole
TLS termination point. This is the standard pattern for a reverse
proxy setup: one certificate, one HTTPS endpoint, all internal
communication over plain HTTP on localhost. It also makes it
straightforward to add a second domain (<code>roject.rokojori.com</code>)
to the same nginx instance later.
</p>
</div>
<div class="decision">
<strong>Port 4444 closed at the firewall level</strong>
<p>
Once Gitea dropped its own TLS, port 4444 became an unencrypted
HTTP port. Closing it in the IONOS firewall ensures Gitea is
unreachable directly from the internet and all traffic must pass
through nginx.
</p>
</div>
<div class="decision">
<strong>Directory restructure deferred to next session</strong>
<p>
A full restructure of the project layout was planned: <code>source/</code>
for all frontend + backend + locale source, <code>build/app/</code> for
compiled output, <code>build/data/db/</code> for JSON user data, and
<code>build/data/storage/</code> for project files. The git submodule
(<code>src/library-ts/</code>) was committed and pushed clean before the
session ended, ready for the <code>git mv</code> that the restructure
requires.
</p>
</div>
</section>
<section>
<h2>Structural Changes</h2>
<div class="card">
<p>
Server A infrastructure only — no source files changed this session.<br>
nginx config: <code>/etc/nginx/sites-available/gitea-server</code> (new)<br>
Gitea config: <code>app.ini</code> — PROTOCOL, HTTP_PORT, ROOT_URL updated<br>
IONOS firewall: port 4444 closed
</p>
</div>
</section>
<footer>
Roject &mdash; session log &mdash; 11 July 2026
</footer>
</div>
<script>var NAV_ROOT = '../../../../';</script>
<script src="../../../../_assets_/nav-data.js"></script>
<script src="../../../../_assets_/nav.js"></script>
</body>
</html>