update gui
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
# Proxmox client API
|
||||
|
||||
The ProxMenu client uses two HTTPS requests. It never receives Gitea
|
||||
The ProxMenu client uses two HTTPS requests. It never receives Git
|
||||
credentials.
|
||||
|
||||
## Exchange a deployment code
|
||||
|
||||
+26
-26
@@ -7,8 +7,8 @@ VM. `/opt/idssys/TA-Deployment-Access` is only one possible example.
|
||||
One Compose project manages:
|
||||
|
||||
- TAPM broker, with an embedded SQLite database
|
||||
- Gitea, with its own embedded SQLite database and repository storage
|
||||
- Nginx, terminating TLS for the broker and Gitea
|
||||
- Git, with its own embedded SQLite database and repository storage
|
||||
- Nginx, terminating TLS for the broker and Git
|
||||
- Certbot, as an on-demand utility for certificate issuance and renewal
|
||||
|
||||
The same deployment supports an explicitly insecure HTTP testing phase before
|
||||
@@ -18,9 +18,9 @@ runtime data.
|
||||
|
||||
In production, only the configured Nginx HTTP and HTTPS ports are published.
|
||||
They default to 8680 and 8643. Inside Docker, Nginx listens on ports 80 and 443,
|
||||
the broker on 8080, and Gitea is explicitly pinned to `0.0.0.0:3000`. Gitea
|
||||
the broker on 8080, and Git is explicitly pinned to `0.0.0.0:3000`. Git
|
||||
SSH is disabled. Deployment-level variables such as `HTTP_PORT` are not passed
|
||||
into the Gitea container, preventing them from overriding its internal listener.
|
||||
into the Git container, preventing them from overriding its internal listener.
|
||||
|
||||
## 1. VM and network
|
||||
|
||||
@@ -38,7 +38,7 @@ the required forwarded ports. Nginx supplies the application-edge controls:
|
||||
unknown HTTP hostnames are dropped, unknown TLS SNI names are rejected,
|
||||
TLS is restricted to 1.2/1.3, session tickets and version disclosure are
|
||||
disabled, broker requests and per-address connections are limited, slow-client
|
||||
timeouts are bounded, Gitea login bursts are throttled, and HSTS plus browser
|
||||
timeouts are bounded, Git login bursts are throttled, and HSTS plus browser
|
||||
security headers are returned. Container PID ceilings and Docker log rotation
|
||||
reduce the impact of local resource exhaustion.
|
||||
Nginx also runs with a read-only container filesystem and narrowly scoped
|
||||
@@ -50,7 +50,7 @@ forwarding headers.
|
||||
|
||||
```sh
|
||||
sudo mkdir -p /YOUR/INSTALL/PARENT
|
||||
sudo git clone GITEA-REPOSITORY-URL /YOUR/INSTALL/PARENT/TA-Deployment-Access
|
||||
sudo git clone GIT-REPOSITORY-URL /YOUR/INSTALL/PARENT/TA-Deployment-Access
|
||||
sudo chown -R 1000:1000 /YOUR/INSTALL/PARENT/TA-Deployment-Access
|
||||
cd /YOUR/INSTALL/PARENT/TA-Deployment-Access
|
||||
./install.sh
|
||||
@@ -58,7 +58,7 @@ cd /YOUR/INSTALL/PARENT/TA-Deployment-Access
|
||||
|
||||
The guided installer validates both hostnames and Docker ports, generates the
|
||||
broker cookie secret, writes `.env` with mode `0600`, prepares persistent
|
||||
storage, and starts only Gitea and Nginx. It defaults to `SSL_MODE=none`, so no
|
||||
storage, and starts only Git and Nginx. It defaults to `SSL_MODE=none`, so no
|
||||
certificate or public port forwarding is required.
|
||||
|
||||
With the default `HTTP_PORT=8680`, test URLs include that port:
|
||||
@@ -82,7 +82,7 @@ Runtime state is deliberately visible below the checkout:
|
||||
config/
|
||||
├── broker/ # tapm.db and SQLite WAL files
|
||||
├── gitea/
|
||||
│ ├── config/ # app.ini and Gitea configuration
|
||||
│ ├── config/ # app.ini and Git configuration
|
||||
│ └── data/ # repositories, packages, and gitea.db
|
||||
├── letsencrypt/ # account data, certificate, and private key
|
||||
├── ssl/ # optional administrator-provided certificate
|
||||
@@ -92,15 +92,15 @@ config/
|
||||
|
||||
The contents are ignored by Git. They must never be committed.
|
||||
|
||||
## 3. Configure Gitea and the broker
|
||||
## 3. Configure Git and the broker
|
||||
|
||||
The installer has already bootstrapped Gitea. Create the initial administrator:
|
||||
The installer has already bootstrapped Git. Create the initial administrator:
|
||||
|
||||
```sh
|
||||
./manage.sh create-admin
|
||||
```
|
||||
|
||||
Sign in at the Gitea URL printed by the command and change the temporary
|
||||
Sign in at the Git URL printed by the command and change the temporary
|
||||
password. Create the `TAI` organization, then create:
|
||||
|
||||
1. `tapm-packages`, with a read-only package token.
|
||||
@@ -116,13 +116,13 @@ Save the resulting values without echoing secrets to the terminal:
|
||||
```
|
||||
|
||||
The broker is deliberately not started during the first bootstrap. Blank
|
||||
OAuth/package values are valid for Gitea-only setup, while `start` refuses to
|
||||
OAuth/package values are valid for Git-only setup, while `start` refuses to
|
||||
launch the broker until all required credentials are present.
|
||||
|
||||
`TAPM_GITEA_URL` is the public browser-facing Gitea URL.
|
||||
`TAPM_GITEA_URL` is the public browser-facing Git URL.
|
||||
`TAPM_GITEA_INTERNAL_URL` defaults to `http://gitea:3000` in installations so
|
||||
OAuth token exchange and package traffic stay on the private Compose network.
|
||||
Do not publish Gitea's internal port to make broker authentication work.
|
||||
Do not publish Git's internal port to make broker authentication work.
|
||||
|
||||
Deployment codes default to seven days:
|
||||
|
||||
@@ -141,7 +141,7 @@ For troubleshooting, use `./manage.sh diagnostics`. Do not share unredacted
|
||||
`docker compose config` output: Compose resolves the broker's `.env` file and
|
||||
can print cookie, OAuth, and package secrets. If configuration output is
|
||||
accidentally disclosed, rotate the cookie secret with
|
||||
`./manage.sh rotate-cookie-secret` and replace any configured Gitea tokens or
|
||||
`./manage.sh rotate-cookie-secret` and replace any configured Git tokens or
|
||||
OAuth secret that appeared.
|
||||
|
||||
## 4. Enable TLS when forwarding is ready
|
||||
@@ -157,7 +157,7 @@ After public DNS resolves and the datacenter edge forwards public TCP 80 and
|
||||
|
||||
`set-ssl` changes all public URLs to HTTPS and removes the temporary `:8680`
|
||||
test port. `bootstrap` obtains the certificate and switches Nginx to TLS.
|
||||
`start` recreates Gitea and the broker with secure cookies. Existing SQLite
|
||||
`start` recreates Git and the broker with secure cookies. Existing SQLite
|
||||
databases, repositories, packages, installation identities, and secrets remain
|
||||
in place.
|
||||
|
||||
@@ -188,7 +188,7 @@ curl --fail "http://GITEA_DOMAIN:HTTP_PORT/api/healthz" # SSL_MODE=none
|
||||
```
|
||||
|
||||
The broker automatically applies SQLite schema migrations before starting.
|
||||
Gitea uses its own SQLite database at
|
||||
Git uses its own SQLite database at
|
||||
`config/gitea/data/data/gitea.db`.
|
||||
After TLS is enabled, use the equivalent `https://` URLs without the temporary
|
||||
HTTP test port.
|
||||
@@ -196,7 +196,7 @@ HTTP test port.
|
||||
### Final identity hardening
|
||||
|
||||
After public DNS, WAN TCP 80/443 forwarding, and the Let's Encrypt certificate
|
||||
are working, configure Microsoft Entra ID as Gitea's OpenID Connect
|
||||
are working, configure Microsoft Entra ID as Git's OpenID Connect
|
||||
authentication source. Register the final callback URL:
|
||||
|
||||
```text
|
||||
@@ -204,9 +204,9 @@ https://GITEA_DOMAIN/user/oauth2/entra/callback
|
||||
```
|
||||
|
||||
Require assignment to the Entra enterprise application, apply the company's
|
||||
Duo-backed Conditional Access policy, and map the Entra `Gitea.User` and
|
||||
`Gitea.Admin` application roles into Gitea. Verify an Entra administrator can
|
||||
sign in and reach the broker before disabling Gitea's local password sign-in
|
||||
Duo-backed Conditional Access policy, and map the Entra `Git.User` and
|
||||
`Git.Admin` application roles into Git. Verify an Entra administrator can
|
||||
sign in and reach the broker before disabling Git's local password sign-in
|
||||
form. Keep a documented VM-console recovery procedure and retain the package
|
||||
reader and publisher as non-admin service accounts with narrowly scoped
|
||||
tokens.
|
||||
@@ -227,8 +227,8 @@ Then run:
|
||||
./manage.sh start-direct
|
||||
```
|
||||
|
||||
This adds host mappings to the broker's port 8080 and Gitea's port 3000. It
|
||||
also changes Gitea's root URL and session cookie policy to permit HTTP login.
|
||||
This adds host mappings to the broker's port 8080 and Git's port 3000. It
|
||||
also changes Git's root URL and session cookie policy to permit HTTP login.
|
||||
The direct broker port is suitable for health and API testing; technician
|
||||
OAuth login remains designed for the HTTPS public URL. Do not use the
|
||||
direct-port override on an Internet-facing production VM. Return to the
|
||||
@@ -241,7 +241,7 @@ production URL and secure-cookie policy with:
|
||||
## 6. Move repositories
|
||||
|
||||
For each existing repository, create an empty matching repository in the new
|
||||
Gitea and mirror all refs:
|
||||
Git and mirror all refs:
|
||||
|
||||
```sh
|
||||
git clone --mirror OLD-REPOSITORY-URL
|
||||
@@ -280,10 +280,10 @@ cd /YOUR/INSTALL/PARENT/TA-Deployment-Access
|
||||
```
|
||||
|
||||
The updater operates only on the current VM. It fast-forwards the checked-out
|
||||
branch, pulls the pinned Gitea and Nginx images, rebuilds and restarts the local
|
||||
branch, pulls the pinned Git and Nginx images, rebuilds and restarts the local
|
||||
stack, and waits for the local broker to become healthy. Certbot is not pulled
|
||||
or run during a routine update; it is used only by `bootstrap` and `renew`. The
|
||||
updater has no peer discovery, SSH, or multi-node update behavior.
|
||||
|
||||
Pin image versions as supplied and review release notes before changing them.
|
||||
Never change Gitea between rootless and rootful image families in place.
|
||||
Never change Git between rootless and rootful image families in place.
|
||||
|
||||
Reference in New Issue
Block a user