119 lines
4.4 KiB
HTML
119 lines
4.4 KiB
HTML
|
|
<!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 — session log — 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>
|