Fix the Android release build and tighten the Helm values
Every Android release build runs lint, which AGP 8.7 cannot run on JDK 26, the JDK Homebrew's Gradle starts on; make android failed unless JAVA_HOME was set by hand. gradle/gradle-daemon-jvm.properties now runs the Gradle daemon on JDK 17 whatever launches it. The Helm values trusted every private address range as a proxy, which let any client on the LAN choose its own address for the sign-in rate limits. They now name only the nginx host and the k3s pod network. The port gains healthcheckPath, so the pod gets readiness and liveness probes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
4ffc434b1b
commit
cc1aeb6a00
+3
-2
@@ -27,8 +27,9 @@ The merge policy in `Mirror.decide` is the same table as the desktop client's
|
|||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
Requirements: JDK 17 (lint in AGP 8.7 fails on newer JDKs; set `JAVA_HOME`
|
Requirements: a JDK 17 installed (Gradle 8.9 or newer runs its daemon on it
|
||||||
to a 17 when Gradle defaults to something else), Gradle 8.9 or newer, and an
|
whatever JDK launches Gradle, per `gradle/gradle-daemon-jvm.properties`:
|
||||||
|
AGP 8.7's lint, which every release build runs, fails on newer JDKs), and an
|
||||||
Android SDK with
|
Android SDK with
|
||||||
`platforms;android-35` and `build-tools;35.0.0`.
|
`platforms;android-35` and `build-tools;35.0.0`.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# The Gradle daemon runs on JDK 17 whatever the launcher runs on. AGP 8.7's
|
||||||
|
# lint, which every release build runs (lintVitalAnalyzeRelease), cannot
|
||||||
|
# parse the version string of newer JDKs, and a Gradle installed from
|
||||||
|
# Homebrew launches on the newest one.
|
||||||
|
toolchainVersion=17
|
||||||
@@ -5,10 +5,13 @@ environment:
|
|||||||
value: "/etc/keeporg/config.txt"
|
value: "/etc/keeporg/config.txt"
|
||||||
- name: "KEEPORG_EXTERNAL_URL"
|
- name: "KEEPORG_EXTERNAL_URL"
|
||||||
value: "https://keeporg.tiredsysadmin.cc"
|
value: "https://keeporg.tiredsysadmin.cc"
|
||||||
# nginx reaches the pod from the cluster's private network; its
|
# Only the hops between nginx and the pod: the nginx host itself, and the
|
||||||
# X-Forwarded-For is what the sign-in rate limits count by.
|
# k3s pod network, which kube-proxy's NodePort translation makes the source
|
||||||
|
# of every connection. Sign-in rate limits count by the address nginx puts
|
||||||
|
# in X-Forwarded-For; a whole private range here would let any client on it
|
||||||
|
# claim a fresh address with a header of its own.
|
||||||
- name: "KEEPORG_TRUSTED_PROXIES"
|
- name: "KEEPORG_TRUSTED_PROXIES"
|
||||||
value: "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
|
value: "10.200.1.3,10.42.0.0/16"
|
||||||
image:
|
image:
|
||||||
name: "repo.rcmd.space/keeporg"
|
name: "repo.rcmd.space/keeporg"
|
||||||
version: "v0.1.0"
|
version: "v0.1.0"
|
||||||
@@ -18,6 +21,10 @@ network:
|
|||||||
node: 32970
|
node: 32970
|
||||||
source: 8765
|
source: 8765
|
||||||
destination: 8765
|
destination: 8765
|
||||||
|
# Readiness keeps traffic away until the server has opened (and, on the
|
||||||
|
# first start of 0.11, imported) its database; liveness restarts it if
|
||||||
|
# it stops answering.
|
||||||
|
healthcheckPath: "/healthz"
|
||||||
mounts:
|
mounts:
|
||||||
- name: "db"
|
- name: "db"
|
||||||
source: "/var/lib/keeporg"
|
source: "/var/lib/keeporg"
|
||||||
|
|||||||
@@ -846,6 +846,13 @@ key arrives as the Kubernetes secret `keeporg-encryption` mounted on
|
|||||||
at it. `KEEPORG_EXTERNAL_URL=https://keeporg.tiredsysadmin.cc` matches the
|
at it. `KEEPORG_EXTERNAL_URL=https://keeporg.tiredsysadmin.cc` matches the
|
||||||
nginx `server_name`; the image's command passes neither `-config` nor
|
nginx `server_name`; the image's command passes neither `-config` nor
|
||||||
`-url`, so this variable is the only thing that sets it there.
|
`-url`, so this variable is the only thing that sets it there.
|
||||||
|
`KEEPORG_TRUSTED_PROXIES` names only the nginx host (10.200.1.3) and the k3s
|
||||||
|
pod network (10.42.0.0/16, the source address after kube-proxy's NodePort
|
||||||
|
translation); a wider range would let clients on it choose their own address
|
||||||
|
for the rate limits. The port's `healthcheckPath: /healthz` gives the pod
|
||||||
|
readiness and liveness probes. The `keeporg-encryption` secret's
|
||||||
|
`config.txt` must be the master key itself — base64 of 32 bytes, or 32 raw
|
||||||
|
bytes — since 0.11 refuses to start without one.
|
||||||
`KEEPORG_ADMIN_PASSWORD` is not set there, so the first start logs a
|
`KEEPORG_ADMIN_PASSWORD` is not set there, so the first start logs a
|
||||||
generated password once.
|
generated password once.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user