Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 111f11f534 |
+37
-9
@@ -100,15 +100,43 @@ unset APP_PASSWORD
|
|||||||
wstanie**: usługa z kontami, ale bez klucza, nie odróżniłaby ważnej sesji od
|
wstanie**: usługa z kontami, ale bez klucza, nie odróżniłaby ważnej sesji od
|
||||||
podrobionej. Nikt go nigdy nie musi oglądać.
|
podrobionej. Nikt go nigdy nie musi oglądać.
|
||||||
|
|
||||||
> **Rotacja tego klucza wylogowuje WSZYSTKICH.** To nie usterka, tylko awaryjny
|
### ⚠️ Masz już sekret sprzed LOG-34? Dołóż klucz, nie twórz od nowa
|
||||||
> wyłącznik: gdy podejrzewasz, że ktoś przechwycił cudzą sesję, podmiana klucza
|
|
||||||
> unieważnia je wszystkie naraz.
|
Komenda wyżej zakłada sekret **od zera**. Jeśli `astrololo-auth` już istnieje,
|
||||||
>
|
merge manifestu sam klucza nie dołoży — pod zgłosi wtedy:
|
||||||
> ```bash
|
|
||||||
> kubectl -n astrololo patch secret astrololo-auth --type=json \
|
```
|
||||||
> -p="[{\"op\":\"replace\",\"path\":\"/data/SESSION_SECRET\",\"value\":\"$(openssl rand -hex 32 | base64 | tr -d '\n')\"}]"
|
Error: couldn't find key SESSION_SECRET in Secret astrololo/astrololo-auth
|
||||||
> kubectl -n astrololo rollout restart deploy/presentation
|
```
|
||||||
> ```
|
|
||||||
|
Dokładamy klucz, nie ruszając pozostałych:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl -n astrololo patch secret astrololo-auth --type=merge \
|
||||||
|
-p "{\"stringData\":{\"SESSION_SECRET\":\"$(openssl rand -hex 32)\"}}"
|
||||||
|
|
||||||
|
kubectl -n astrololo rollout restart deploy/presentation
|
||||||
|
```
|
||||||
|
|
||||||
|
Sprawdzenie, że komplet kluczy jest na miejscu (bez pokazywania wartości):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl -n astrololo get secret astrololo-auth -o jsonpath='{.data}' \
|
||||||
|
| tr ',' '\n' | grep -o '"[A-Z_]*"'
|
||||||
|
```
|
||||||
|
|
||||||
|
Oczekiwane: `APP_PASSWORD`, `INTERNAL_TOKEN`, `SESSION_SECRET`.
|
||||||
|
|
||||||
|
> `--type=merge` ze `stringData` **dokłada albo nadpisuje** i nie wymaga, żeby
|
||||||
|
> klucz wcześniej istniał — w odróżnieniu od JSON Patch z `op: replace`, który
|
||||||
|
> na brakującej ścieżce po prostu odmawia. Ta sama komenda służy więc i do
|
||||||
|
> dołożenia, i do rotacji.
|
||||||
|
|
||||||
|
### Rotacja klucza sesji
|
||||||
|
|
||||||
|
**Wylogowuje WSZYSTKICH.** To nie usterka, tylko awaryjny wyłącznik: gdy
|
||||||
|
podejrzewasz, że ktoś przechwycił cudzą sesję, podmiana klucza unieważnia je
|
||||||
|
wszystkie naraz. Komenda ta sama, co dołożenie wyżej.
|
||||||
|
|
||||||
`INTERNAL_TOKEN` jest losowany i **nikt go nigdy nie musi oglądać** — służy tylko
|
`INTERNAL_TOKEN` jest losowany i **nikt go nigdy nie musi oglądać** — służy tylko
|
||||||
usługom do rozmowy między sobą. `APP_PASSWORD` wpisujesz w przeglądarce
|
usługom do rozmowy między sobą. `APP_PASSWORD` wpisujesz w przeglądarce
|
||||||
|
|||||||
@@ -31,19 +31,6 @@ spec:
|
|||||||
# Where the librarian sends THIS bot's results/pongs back to (its own
|
# Where the librarian sends THIS bot's results/pongs back to (its own
|
||||||
# NodePort). Lets one librarian serve both bots - see deploy-bot.yaml.
|
# NodePort). Lets one librarian serve both bots - see deploy-bot.yaml.
|
||||||
- { name: CONJURER_SELF_CALLBACK, value: "http://192.168.1.73:32442" }
|
- { name: CONJURER_SELF_CALLBACK, value: "http://192.168.1.73:32442" }
|
||||||
# Self-hosted models (Ollama). No API key - the endpoint IS the
|
|
||||||
# configuration, and the backend stays unselectable while unset.
|
|
||||||
# Pick a model at runtime with: $gadaj_teraz ollama <model>
|
|
||||||
# ($modele_ai lists what the server actually has pulled).
|
|
||||||
- { name: CONJURER_OLLAMA_URL, value: "http://192.168.1.72:11434" }
|
|
||||||
# The server currently has exactly one model pulled (verified via
|
|
||||||
# /v1/models): gemma4:e2b. Without this the built-in default
|
|
||||||
# (llama3.1:8b) would be requested and every reply would fail.
|
|
||||||
- { name: CONJURER_OLLAMA_MODEL, value: "gemma4:e2b" }
|
|
||||||
# Self-hosted generation is far slower than a hosted API, especially
|
|
||||||
# the first request after the model is evicted from VRAM. Applies to
|
|
||||||
# every backend, so keep it only as high as you actually need.
|
|
||||||
- { name: CONJURER_AI_TIMEOUT_SECONDS, value: "240" }
|
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- { name: data, mountPath: /data }
|
- { name: data, mountPath: /data }
|
||||||
- { name: netrc, mountPath: /secrets, readOnly: true }
|
- { name: netrc, mountPath: /secrets, readOnly: true }
|
||||||
|
|||||||
@@ -51,19 +51,6 @@ spec:
|
|||||||
# query and answers results/pongs HERE - so it serves this bot AND the
|
# query and answers results/pongs HERE - so it serves this bot AND the
|
||||||
# test bot from one instance, no CONJURER_MAIN_BOT repointing needed.
|
# test bot from one instance, no CONJURER_MAIN_BOT repointing needed.
|
||||||
- { name: CONJURER_SELF_CALLBACK, value: "http://192.168.1.73:32443" }
|
- { name: CONJURER_SELF_CALLBACK, value: "http://192.168.1.73:32443" }
|
||||||
# Self-hosted models (Ollama). No API key - the endpoint IS the
|
|
||||||
# configuration, and the backend stays unselectable while unset.
|
|
||||||
# Pick a model at runtime with: $gadaj_teraz ollama <model>
|
|
||||||
# ($modele_ai lists what the server actually has pulled).
|
|
||||||
- { name: CONJURER_OLLAMA_URL, value: "http://192.168.1.72:11434" }
|
|
||||||
# The server currently has exactly one model pulled (verified via
|
|
||||||
# /v1/models): gemma4:e2b. Without this the built-in default
|
|
||||||
# (llama3.1:8b) would be requested and every reply would fail.
|
|
||||||
- { name: CONJURER_OLLAMA_MODEL, value: "gemma4:e2b" }
|
|
||||||
# Self-hosted generation is far slower than a hosted API, especially
|
|
||||||
# the first request after the model is evicted from VRAM. Applies to
|
|
||||||
# every backend, so keep it only as high as you actually need.
|
|
||||||
- { name: CONJURER_AI_TIMEOUT_SECONDS, value: "240" }
|
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- { name: data, mountPath: /data }
|
- { name: data, mountPath: /data }
|
||||||
- { name: netrc, mountPath: /secrets, readOnly: true }
|
- { name: netrc, mountPath: /secrets, readOnly: true }
|
||||||
|
|||||||
Reference in New Issue
Block a user