diff --git a/backmatter/devopsAIPromptLog.tex b/backmatter/devopsAIPromptLog.tex index b162047..629c668 100644 --- a/backmatter/devopsAIPromptLog.tex +++ b/backmatter/devopsAIPromptLog.tex @@ -158,3 +158,24 @@ academic approval; recorded the current Elastic IP and the unresolved campus SSH timeout; did not infer public HTTPS or persistence replacement success from local checks. Domain details, renewal and external checks, PR workflows, final compilation, and submission remain unverified. + + +\subsection{Record 9 --- Domain, DNS, and Open PR Evidence} +\textbf{Date:} October 15, 2026.\\ +\textbf{Tool:} OpenAI Codex.\\ +\textbf{Task:} Guide Victor through organization/repository setup, issue-linked +PR creation, Name.com Student Pack domain redemption, and independent DNS +verification; document all completed work and its evidence.\\ +\textbf{Human actions:} Victor created the Inviscid organization, assigned both +authors to Owners, pushed the existing main history, created issue 1, committed +and pushed documentation, and opened PR 2 requesting Payton's review. Victor +reported successful Overleaf compilation/review of the earlier draft and +Payton's working SSH/Gitea access. Victor registered inviscid.dev and executed +the supplied DNS lookups; the assistant did not perform purchases or DNS writes.\\ +\textbf{Output used:} Procedural guidance, saved non-secret screenshots, +updated chapter, renewal/account records, and explicit handoff/pending status.\\ +\textbf{Evidence handling and limits:} The order screenshot containing billing +and contact details was excluded from the repository; free-checkout and domain +management screenshots provide non-sensitive evidence instead. Public HTTPS, +renewal tests, external exposure, persistence replacement, Payton's PR review, +merge/closure, remaining issues/README, and final compilation are not claimed. diff --git a/chapters/devopsGiteaFoundation.tex b/chapters/devopsGiteaFoundation.tex index d544ac0..ec350c4 100644 --- a/chapters/devopsGiteaFoundation.tex +++ b/chapters/devopsGiteaFoundation.tex @@ -8,27 +8,95 @@ The dated screenshots record completed work; pending items below are not represented as passed. This draft covers Victor's deployment and access setup. \section{Student Pack Domain and DNS} -Victor submitted school enrollment evidence to GitHub Education on October 12, -2026. Academic status was approved that day, but the portal displayed -``Awaiting Benefits'' and stated that partner offers would activate after -72 hours (Figure~\ref{Figure:GiteaBenefits}). At the October 15 drafting -checkpoint, Victor reported that benefits were still unavailable. +Victor submitted current school-enrollment evidence to GitHub Education on +October 12, 2026. Academic status was approved that day, while partner benefits +remained in ``Awaiting Benefits'' status with a stated 72-hour activation delay +(Figure~\ref{Figure:GiteaBenefits}). On October 15 the benefits became available, +and Victor redeemed Name.com's GitHub Student Developer Pack offer. -\textbf{Pending:} redeem an eligible Student Pack domain offer; record the -provider, eligibility, first-year charge, renewal charge, expiration, and renewal -owner; configure the selected Gitea hostname and capture an independent DNS -lookup. \texttt{inviscid.net} is a preference, not a registered or verified -domain in this record. The selected offer must determine which extension is -eligible. The intended DNS A record will point the selected hostname to -\texttt{100.49.80.94}. Domain ownership and renewal will be recorded when the -offer is redeemed; no registration cost or expiry is invented here. +The offer covered selected extensions rather than the preferred +\texttt{inviscid.net}. Victor selected \texttt{inviscid.dev}, registered it for +one year, and supplied the completed order and domain-management evidence. +The checkout total was \$0.00, with the free Domain Safe option; Domain Safe Pro +and optional hosting/email upgrades were not selected. No registrar-provided +SSL product is needed for the planned Caddy deployment. + +\begin{tabularx}{\linewidth}{L{3.8cm}Y} +\caption{Student Domain and DNS Record\label{Table:GiteaDomain}}\\ +\toprule \textbf{Field} & \textbf{Recorded value}\\ \midrule +Provider and eligibility & Name.com, redeemed through the activated GitHub Student Developer Pack benefit\\ +Registered domain & \texttt{inviscid.dev}\\ +Registration date / term & October 15, 2026 / one year\\ +Initial charge & \$0.00\\ +Displayed renewal price & \$22.99; verify current price before renewal\\ +Displayed renewal date & October 15, 2027\\ +Account owner / renewal responsibility & Victor; keep payment/contact details current and track renewal before the anniversary\\ +Renewal and protection settings & Automatic renewal ON; WHOIS privacy ON; transfer lock enabled\\ +Gitea hostname & \texttt{git.inviscid.dev}\\ +DNS hosting & Name.com's DNS management; exact authoritative nameserver values not yet captured\\ +DNS record & A, host \texttt{git}, answer \texttt{100.49.80.94}, TTL 300 seconds\\ +Intended public service URL & \url{https://git.inviscid.dev/}; DNS verified, HTTPS still pending in this record\\ +\bottomrule +\end{tabularx} + +Victor manages registration and renewal; the registrar's automatic-renewal +setting and October 2027 anniversary provide the recorded renewal controls. +Domain registration and DNS are independent of the class AWS account hosting +the application. Prices can change, so the table records the displayed price, +not a guarantee of the eventual renewal charge. \begin{figure}[htbp] \centering \includegraphics[width=\linewidth]{figures/gitea/student-pack-approved-awaiting-benefits.png} -\caption{October 12: academic status approved, with partner benefits still awaiting activation. This establishes the dependency blocking domain redemption, not a completed registration.} +\caption{October 12: academic approval preceded partner-benefit activation. The delay was resolved before domain registration on October 15.} \label{Figure:GiteaBenefits} \end{figure} +\begin{figure}[htbp] +\centering +\includegraphics[width=0.62\linewidth,height=0.60\textheight,keepaspectratio]{figures/gitea/student-pack-domain-offer.png} +\caption{October 15: Name.com Student Pack offer for selected domain extensions.} +\label{Figure:GiteaDomainOffer} +\end{figure} +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figures/gitea/domain-free-checkout.png} +\caption{October 15: one-year inviscid.dev registration at a checkout total of zero, with paid Domain Safe Pro unselected.} +\label{Figure:GiteaDomainCheckout} +\end{figure} +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figures/gitea/domain-renewal-details.png} +\caption{October 15: registered domain, October 15, 2027 renewal date, displayed renewal price, auto-renewal, privacy, and transfer-lock settings.} +\label{Figure:GiteaDomainRenewal} +\end{figure} + +In Name.com's Manage DNS page, Victor added an A record with host +\texttt{git}; the interface appended \texttt{.inviscid.dev}. The answer is the +EC2 Elastic IP rather than the old auto-assigned address. The saved record +and creation date are visible in Figure~\ref{Figure:GiteaDNSRecord}. +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figures/gitea/dns-a-record.png} +\caption{October 15: saved A record for git.inviscid.dev pointing to 100.49.80.94 with a 300-second TTL.} +\label{Figure:GiteaDNSRecord} +\end{figure} + +Victor independently verified the record from Windows PowerShell, outside +EC2, using two public DNS resolvers: +\begin{minted}{powershell} +Get-Date -Format o +Resolve-DnsName git.inviscid.dev -Type A -Server 1.1.1.1 +Resolve-DnsName git.inviscid.dev -Type A -Server 8.8.8.8 +\end{minted} +The supplied timestamp is October 15, 2026 at 19:17:31, UTC offset -04:00. +Both resolvers returned an A answer of \texttt{100.49.80.94}, TTL 300. +This verifies public name resolution, not application availability or TLS. +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figures/gitea/dns-independent-lookups.png} +\caption{October 15: independent Cloudflare and Google resolver lookups both return the expected Elastic IP.} +\label{Figure:GiteaDNSLookup} +\end{figure} \section{Pinned Gitea Deployment} The existing \texttt{ssw590-group-web} instance runs Ubuntu 26.04 LTS on a @@ -140,7 +208,7 @@ This required test is distinct from the optional backup/restore exercise. \section{HTTPS and Certificate Renewal} \textbf{Pending---Payton:} compare two certificate options and justify one; -configure Caddy using the final hostname, persistent certificate state, and +configure Caddy using \texttt{git.inviscid.dev}, persistent certificate state, and private forwarding to \texttt{gitea:3000}; update Gitea's domain and public URL; record issuer, expiry, redirect, renewal automation, and a successful renewal test or dry run. The existing website's host-port-80 mapping must be resolved @@ -207,16 +275,103 @@ mandatory password change. A shared Gitea account is not used. On October 15 Victor added Payton's public SSH key to the remote Ubuntu account's authorized keys, preserving the existing key and using directory/file permissions 700/600. His source IP was allowed separately. Victor subsequently -reported that Payton connected over SSH successfully; Gitea login testing was -still underway. Both currently use the Linux \texttt{ubuntu} account with -separate keys, so Linux account-level attribution remains shared. +reported that Payton connected over SSH successfully and subsequently confirmed +that his Gitea account worked. His password-change completion was not separately +captured. Both currently use the Linux \texttt{ubuntu} account with separate +keys, so Linux account-level attribution remains shared. -\textbf{Pending---Payton and both authors:} confirm Payton's Gitea login and -password change; create the organization, product repository, README, member -roles, and five actionable issues. Link the organization and repository here. -Then each author completes an issue-linked branch and PR, receives peer review, -merges, and closes the issue. Capture both complete cycles. The initial GitHub -push is not counted as a reviewed Gitea PR. +\subsection{Organization, Repository, and Roles} +Victor took responsibility for the Gitea organization/repository work while +Payton focused on the other infrastructure tasks. Victor created organization +\texttt{Inviscid} and added \texttt{payton} to its Owners team. Both +\texttt{victor} and \texttt{payton} therefore administer the organization and +its repositories; Payton's account is not a site-wide administrator. + +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figures/gitea/organization-owners.png} +\caption{October 15: victor and payton are members of the Inviscid Owners team.} +\label{Figure:GiteaOwners} +\end{figure} + +Victor created \texttt{Inviscid/SSW590-DevOps} without initializing an unrelated +README commit, then pushed the existing project's \texttt{main} history. +The repository page showed 13 commits, including the initial Gitea deployment +commit \texttt{2807081}. GitHub remains the \texttt{origin} remote; the new +\texttt{gitea} remote points to the tunneled service. The observed commands were: +\begin{minted}{bash} +git remote add gitea http://localhost:3000/Inviscid/SSW590-DevOps.git +git push gitea main:main +\end{minted} + +The intended final organization and repository links are +\url{https://git.inviscid.dev/Inviscid} and +\url{https://git.inviscid.dev/Inviscid/SSW590-DevOps}. +At the recorded checkpoint, access used the equivalent paths at +\url{http://localhost:3000/} through an SSH tunnel; the final HTTPS links are +not yet verified. These links must be checked before submission. + +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figures/gitea/repository-main-import.png} +\caption{October 15: existing project files and history imported into the organization repository on main.} +\label{Figure:GiteaRepository} +\end{figure} + +\subsection{Issue 1 and Documentation Pull Request 2} +Victor created issue \#1, ``Document the initial Gitea deployment and team +access,'' assigned it to himself, and recorded acceptance criteria covering +deployment facts, evidence, manual controls, pending work, and Overleaf review. +Victor reported that he had uploaded the draft to Overleaf, compiled it, and +visually reviewed it. This is author-reported validation of the earlier draft, +not verification of later edits or the final combined submission. + +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figures/gitea/issue-1-documentation.png} +\caption{October 15: open issue 1, acceptance criteria, and Victor's assignment. Checked criteria do not mean the issue has been merged or closed.} +\label{Figure:GiteaIssueOne} +\end{figure} + +The changes were made on \texttt{codex/gitea-foundation-docs}, staged and +checked, then committed as \texttt{da6a369} and pushed: +\begin{minted}{bash} +git diff --cached --check +git diff --cached --stat +git commit -m "Document initial Gitea deployment and team access; refs #1" +git push -u gitea codex/gitea-foundation-docs +\end{minted} +The commit recorded 12 changed files, 342 insertions, and 32 deletions. +Victor opened PR \#2 targeting \texttt{main}, included \texttt{Closes \#1} +in its description, and requested review from \texttt{payton}. Gitea uses a +shared numbering sequence for issues and PRs: PR \#2 is the first PR, not a +second completed workflow. + +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figures/gitea/pr-2-review-request.png} +\caption{October 15: open PR 2 targets main, links issue 1, and requests Payton's review. Approval and merge are not shown.} +\label{Figure:GiteaPROpen} +\end{figure} +\begin{figure}[htbp] +\centering +\includegraphics[width=\linewidth]{figures/gitea/pr-2-chapter-diff.png} +\caption{October 15: Files Changed view exposes the documentation additions for peer review.} +\label{Figure:GiteaPRDiff} +\end{figure} + +The intended final links are +\url{https://git.inviscid.dev/Inviscid/SSW590-DevOps/issues/1} and +\url{https://git.inviscid.dev/Inviscid/SSW590-DevOps/pulls/2}. +These were accessed through the SSH-tunnel hostname at this checkpoint. + +\textbf{Pending---Payton and both authors:} Payton's formal review, any +requested corrections, merge, and issue closure; a separate issue-linked PR +authored by Payton and reviewed by Victor; README and at least five actionable +issues, including product and operations work. Only issue 1 and open PR 2 are +fully evidenced here. The dashboard issue was proposed but its creation was +not confirmed. Payton has taken ownership of the remaining Gitea tasks. +The initial main push is not counted as a reviewed PR. \section{Architecture and Operation} The current private initialization path is shown in @@ -270,8 +425,8 @@ from observed deployment facts where necessary. Material AI help is recorded in \ChapterRef{AIPromptLog}. The linked history entry identifies both table updates. Optional backup/restore extra credit is outside this draft's scope. -\textbf{Pending before submission:} finish all pending sections, update DNS -and final Compose/proxy configuration, complete the required team workflow, +\textbf{Pending before submission:} finish all pending sections, update the +final Compose/proxy configuration for \texttt{git.inviscid.dev}, complete the required team workflow, verify external exposure and renewal, compile the combined PDF, inspect its pages and links, and submit only the PDF. No deadline time was supplied for the professor's extension to Thursday, October 15, 2026; check Canvas. diff --git a/chapters/devopsHosts.tex b/chapters/devopsHosts.tex index 10b7b8d..ad5b14f 100644 --- a/chapters/devopsHosts.tex +++ b/chapters/devopsHosts.tex @@ -36,7 +36,7 @@ only once it exists and is reachable. \multicolumn{4}{l}{\small\itshape Host Inventory (continued)}\\ \toprule \textbf{Host name} & \textbf{Role} & \textbf{Platform} & \textbf{Status}\\ \midrule \endhead \bottomrule \endlastfoot -\texttt{ssw590-group-web} & Group deployment target. Runs Color Buttons and the Gitea work hub in \ChapterRef{GiteaFoundation}; Elastic IP \texttt{100.49.80.94}. & Ubuntu 26.04 LTS on Amazon EC2, \texttt{t3.micro} & In service\\ +\texttt{ssw590-group-web} & Group deployment target. Runs Color Buttons and the Gitea work hub in \ChapterRef{GiteaFoundation}; Elastic IP \texttt{100.49.80.94}; DNS \texttt{git.inviscid.dev} verified October 15 (HTTPS pending). & Ubuntu 26.04 LTS on Amazon EC2, \texttt{t3.micro} & In service\\ \texttt{ssw590-dev-01} & Primary Linux host for the course. Target for service configuration, deployment exercises, and command-line work. & Ubuntu Server LTS on Amazon EC2 & Planned\\ \end{tabularx} @@ -46,7 +46,8 @@ only once it exists and is reachable. \texttt{ssw590-group-web} is shared by both authors and runs under Victor's AWS account, where each author has a separate IAM identity. For the Gitea deployment, both authors currently connect to the Linux \texttt{ubuntu} account using separate public keys. Victor is a Gitea site -administrator; Payton has a separate regular Gitea account. Linux account-level +administrator; Payton has a separate regular Gitea account. Both are members +of the Inviscid organization Owners team. Linux account-level attribution is shared; per-person Linux accounts remain a future improvement. Administrative SSH is restricted to approved source IPv4 addresses. The observed rules and connection limitations are in \ChapterRef{GiteaFoundation}. diff --git a/chapters/devopsPasswords.tex b/chapters/devopsPasswords.tex index d271e95..b34623f 100644 --- a/chapters/devopsPasswords.tex +++ b/chapters/devopsPasswords.tex @@ -42,8 +42,9 @@ only where a generated secret cannot be retrieved. \multicolumn{4}{l}{\small\itshape Account, Server, and Password Rule Register (continued)}\\ \toprule \textbf{User} & \textbf{Server or service} & \textbf{Class} & \textbf{Rule and hint}\\ \midrule \endhead \bottomrule \endlastfoot +Victor & Name.com registrar & Private account & Domain inviscid.dev; credentials held outside Git/report. Victor manages renewal; auto-renewal enabled.\\ \texttt{victor} & Gitea (Inviscid) & Unique & Site administrator; password kept outside this report and repository.\\ -\texttt{payton} & Gitea (Inviscid) & Temporary & Initial password delivered separately; mandatory change configured. First-login completion pending confirmation.\\ +\texttt{payton} & Gitea (Inviscid) & Temporary & Initial password delivered separately; mandatory change configured. Successful login reported; password-change completion not separately evidenced.\\ Both authors & EC2 \texttt{ubuntu} & SSH key & Separate private keys remain on each author's workstation; only public keys authorized on EC2. No private keys in Git.\\ \texttt{root} & \texttt{ssw590-dev-01} & None & No password. Administrative access is obtained through \texttt{sudo} by a named account, so that privileged actions are attributable.\\ \texttt{payton} & \texttt{ssw590-dev-01}, \texttt{ssw590-build-01} & Derived & Used only to authenticate \texttt{sudo}; \gls{ssh} password authentication is disabled, so this secret never crosses the network. diff --git a/devopsAssignment.tex b/devopsAssignment.tex index 1e5e623..3a65f8f 100644 --- a/devopsAssignment.tex +++ b/devopsAssignment.tex @@ -40,7 +40,7 @@ % Replace these values for each assignment. \newcommand{\AssignmentTitle}{Startup Foundation with Gitea} \newcommand{\AssignmentNumber}{4} -\newcommand{\DocumentVersion}{4.0} +\newcommand{\DocumentVersion}{4.1} \newcommand{\DocumentStatus}{Submitted Document} \newcommand{\CourseNumber}{SSW 590} \newcommand{\CourseName}{DevOps} diff --git a/docker/gitea/README.md b/docker/gitea/README.md index 9c8d56c..30d853a 100644 --- a/docker/gitea/README.md +++ b/docker/gitea/README.md @@ -1,6 +1,6 @@ # Inviscid Gitea foundation -This is the temporary, Gitea-only deployment while Student Pack registration is pending. +This is the temporary, Gitea-only deployment used before the domain was registered; retain it as the initial deployment configuration. The official image version is pinned; verify that it pulls before starting the service. SQLite is `/data/gitea/gitea.db`; repositories and other application data share the persistent named volume `inviscid_gitea_data`. Container replacement must preserve it. @@ -42,8 +42,7 @@ Sources: - Gitea initialized with site title Inviscid; victor is administrator and payton is a regular user. - Local HTTP check returned 200; named-volume mount and SQLite file were verified. - Both containers remained running following Elastic IP association. -- Domain registration, public HTTPS, renewal verification, external firewall checks, - container-replacement persistence test, and team PR workflow remain incomplete. +- This October 12 configuration predates domain registration; see the October 15 update below. For private browser access, use your own authorized key: @@ -53,3 +52,21 @@ ssh -i /path/to/your-private-key -o ExitOnForwardFailure=yes -N -L 127.0.0.1:300 Open http://localhost:3000 while the tunnel stays open. Each team member must have their public key authorized and their source IP allowed for administrative SSH. + +## October 15 handoff update + +- Student Pack domain offer redeemed: `inviscid.dev`, Name.com, one year at $0.00. +- Displayed renewal: October 15, 2027 at $22.99; auto-renew enabled. Victor owns renewal. +- Saved A record: `git.inviscid.dev` -> `100.49.80.94`, TTL 300. +- Windows lookups via 1.1.1.1 and 8.8.8.8 both returned that IP at 19:17 EDT. +- Both users are organization owners of `Inviscid`; Payton's SSH/Gitea access works per Victor. +- Existing main history pushed to `Inviscid/SSW590-DevOps`; issue #1 and PR #2 created. +- PR #2 (`da6a369`, `codex/gitea-foundation-docs`) awaits Payton's review and merge. +- Payton owns the remaining Gitea tasks; Victor will review his separate PR. +- Public HTTPS, renewal tests, external exposure, container replacement persistence, + README/five-issue completion, and two completed reviewed PR workflows are not yet verified. + +Payton: update DOMAIN to `git.inviscid.dev` and ROOT_URL to +`https://git.inviscid.dev/` alongside Caddy configuration. The tracked Compose +file still intentionally records the initial localhost setup; do not interpret +the new DNS record as proof that HTTPS has been deployed. diff --git a/figures/gitea/dns-a-record.png b/figures/gitea/dns-a-record.png new file mode 100644 index 0000000..8ea3a79 Binary files /dev/null and b/figures/gitea/dns-a-record.png differ diff --git a/figures/gitea/dns-independent-lookups.png b/figures/gitea/dns-independent-lookups.png new file mode 100644 index 0000000..b63af8a Binary files /dev/null and b/figures/gitea/dns-independent-lookups.png differ diff --git a/figures/gitea/documentation-branch-push.png b/figures/gitea/documentation-branch-push.png new file mode 100644 index 0000000..fd272d3 Binary files /dev/null and b/figures/gitea/documentation-branch-push.png differ diff --git a/figures/gitea/domain-free-checkout.png b/figures/gitea/domain-free-checkout.png new file mode 100644 index 0000000..12a4b49 Binary files /dev/null and b/figures/gitea/domain-free-checkout.png differ diff --git a/figures/gitea/domain-renewal-details.png b/figures/gitea/domain-renewal-details.png new file mode 100644 index 0000000..cd38eed Binary files /dev/null and b/figures/gitea/domain-renewal-details.png differ diff --git a/figures/gitea/issue-1-documentation.png b/figures/gitea/issue-1-documentation.png new file mode 100644 index 0000000..284ad05 Binary files /dev/null and b/figures/gitea/issue-1-documentation.png differ diff --git a/figures/gitea/organization-owners.png b/figures/gitea/organization-owners.png new file mode 100644 index 0000000..7703772 Binary files /dev/null and b/figures/gitea/organization-owners.png differ diff --git a/figures/gitea/pr-2-chapter-diff.png b/figures/gitea/pr-2-chapter-diff.png new file mode 100644 index 0000000..c2eb760 Binary files /dev/null and b/figures/gitea/pr-2-chapter-diff.png differ diff --git a/figures/gitea/pr-2-review-request.png b/figures/gitea/pr-2-review-request.png new file mode 100644 index 0000000..1f123a8 Binary files /dev/null and b/figures/gitea/pr-2-review-request.png differ diff --git a/figures/gitea/repository-main-import.png b/figures/gitea/repository-main-import.png new file mode 100644 index 0000000..eeff9a1 Binary files /dev/null and b/figures/gitea/repository-main-import.png differ diff --git a/figures/gitea/student-pack-domain-offer.png b/figures/gitea/student-pack-domain-offer.png new file mode 100644 index 0000000..1d5706d Binary files /dev/null and b/figures/gitea/student-pack-domain-offer.png differ diff --git a/frontmatter/abstract.tex b/frontmatter/abstract.tex index ab65894..8b6b60e 100644 --- a/frontmatter/abstract.tex +++ b/frontmatter/abstract.tex @@ -10,7 +10,10 @@ a Docker container that compiles \LaTeX\ documents as Overleaf does; and the Inviscid monitoring-service proposal, including a planned comparison of Prometheus and VictoriaMetrics. -Assignment 4 records the initial persistent Gitea service on the existing EC2 -host, Elastic IP association, and separate team access. Student Pack partner -activation, domain/DNS, final HTTPS and firewall verification, persistence -replacement testing, and reviewed Gitea workflows remain pending in this draft. +Assignment 4 records the persistent Gitea service on the existing EC2 host, +Elastic IP association, and separate team access. It also records Student Pack +domain redemption, inviscid.dev registration and independently verified DNS, +organization ownership, repository import, and the first open issue-linked PR. +Public HTTPS, renewal and external exposure tests, container-replacement +persistence verification, and both completed reviewed-merge workflows remain +pending in this draft. diff --git a/frontmatter/devopsDocumentHistory.tex b/frontmatter/devopsDocumentHistory.tex index 8dc1834..a6c2e26 100644 --- a/frontmatter/devopsDocumentHistory.tex +++ b/frontmatter/devopsDocumentHistory.tex @@ -11,6 +11,7 @@ link each entry to the changed chapter, table, figure, or controlled artifact. \multicolumn{4}{l}{\small\itshape Document Update History (continued)}\\ \toprule \textbf{Date / Version} & \textbf{Author Initials} & \textbf{Change} & \textbf{Changed At}\\ \midrule \endhead \bottomrule \endlastfoot +October 15, 2026 / 4.1 & VDRF & Recorded Student Pack redemption, inviscid.dev registration/renewal, DNS record and two independent lookups, organization ownership, repository import, issue 1, and open PR 2. Updated Hosts domain entry, Passwords registrar/account hints, abstract, AI log, and deployment handoff notes; HTTPS and reviewed merges remain pending. & \ChapterRef{GiteaFoundation}, \ChapterRef{Hosts}, \ChapterRef{Passwords}, \ChapterRef{AIPromptLog}\\ October 15, 2026 / 4.0 & VDRF & Added the initial Gitea foundation chapter with deployment, SQLite, Elastic IP, access evidence, and explicit pending DNS/HTTPS/workflow items. Updated Hosts inventory and cleanup, Passwords account/hint table and policy-versus-observation wording, metadata, abstract, introduction, and AI log. & \ChapterRef{GiteaFoundation}, \ChapterRef{Hosts}, \ChapterRef{Passwords}, \ChapterRef{AIPromptLog}\\ October 6, 2026 / 3.2 & VDRF & Replaced the preliminary tool proposal with Inviscid, its sample customer task, tentative stack, research question, and independent SWOT assessments of Prometheus and VictoriaMetrics. Updated the abstract and AI log. & \ChapterRef{ProjectProposal}, \ChapterRef{AIPromptLog}\\ October 5, 2026 / 3.1 & PCB & Added the LaTeX Docker chapter for compiling a sample document with its sources, build and run commands, and test evidence. Updated the document title, keywords, glossary, abstract, introduction, and hosts. & \ChapterRef{LatexDocker}, \ChapterRef{Hosts}, \ChapterRef{Introduction}, \ChapterRef{CloudDockerDeployment}\\