minor additions

This commit is contained in:
postscriptum 2026-02-26 19:28:23 +02:00
parent cc96bf153a
commit 3f9fb14754

View file

@ -57,7 +57,7 @@ target/release/kellnr start --registry-data-dir /path/to/kellnr \
Після запуску, зайшов до адмінки, вказавши логін `admin` і пароль `admin`:
=> http://127.0.0.1:8000/login?redirect=settings
* на віддаленому сервері потрібно цей пароль змінити (в моїй версії була помилка не співпадіння - проігноруйте її, бо пароль насправді змінюється)
* на віддаленому сервері потрібно цей пароль змінити (в моїй версії була помилка не співпадіння - проігноруйте її, бо пароль насправді змінюється). Див. також `--setup-admin-pwd`.
База даних тут стандартно SQLite, вона буде розташована за вказаним шляхом `/path/to/kellnr`.
@ -126,6 +126,8 @@ Group=kellnr
ExecStart=/usr/local/bin/kellnr start --registry-data-dir /home/kellnr \
--proxy-enabled true \
# кешувати файли крейтів локально (до теки cratesio)
# --proxy-download-on-update true \
--local-ip :: \
--local-port 8180 \
# в мене використовується багатомережний origin
@ -172,13 +174,16 @@ semanage port -a -t http_port_t -p tcp 8180
### Налаштування вихідного проксі
> Рішення нижче виявилось робочим частково: наприклад, завантажити крейт (cargo install) не виде, тільки підтягнути до ного залежності (cargo update). Також цей сценарій чомусь не зберігає кешовані файли, тільки наповнює індекс в БД. Тому від описаного нижче способу я відмовився бо він потребує доопрацювання вибіркових шляхів API через `/etc/hosts` та [config.json](https://github.com/rust-lang/crates.io-index/blob/master/config.json) або рішення програмними засобами.
На моєму сервері немає Інтернет-інтерфейсу, тому я не можу забрати пакунки з crates.io напряму. Схоже, що Kellnr також поки не підтримує таку функціональність, тому я створив відповідний тікет #1096 і згодом знайшов тимчасове рішення у зв'язці з Nginx - засобами якого я "підставляю" потрібні заголовки згідно до URI:
``` /etc/nginx/sites-available/default
server {
listen [::1]:8200;
access_log /var/log/nginx/kellnr.outproxy.access.log;
access_log /var/log/nginx/kellnr.access.log;
error_log /var/log/nginx/kellnr.error.log warn;
location / {
proxy_pass http://[::1]:8118;
@ -201,7 +206,8 @@ server {
server {
listen [::1]:8200;
access_log /var/log/nginx/kellnr.outproxy.access.log;
access_log /var/log/nginx/kellnr.access.log;
error_log /var/log/nginx/kellnr.error.log warn;
location / {
proxy_set_header X-Forwarded-Proto "https";
@ -245,7 +251,7 @@ kellnr start .. \
$ cargo build --locked
warning: spurious network error (3 tries remaining): [7] Could not connect to server (Failed to connect to 127.0.0.1 port 8000 after 1 ms: Could not connect to server)
```
то не плутайте її з локальними налаштуваннями `Cargo.toml` і вкажіть на сервері актуальний `--origin-*`, вирішивши проблему його підключення до вихідного проксі.
то не плутайте її з локальними налаштуваннями `Cargo.toml` і вкажіть на сервері актуальний `--origin-*`, вирішивши спочатку проблему його підключення до вихідного проксі.
Якщо помилки:
@ -265,6 +271,9 @@ warning: spurious network error (3 tries remaining): [28] Timeout was reached (O
cargo build --locked
```
Додатково, для запобігання компрометації пакунків, варто створити окремий апстрім для індексів з хешами: наприклад на базі офіційного дзеркала GitHub, опціонально розгорнувши мульти-мережне дзеркало Radicle:
=> https://github.com/rust-lang/crates.io-index
## Посилання
Наш експериментальний вузол в мережах Yggdrasil і Mycelium, побачимо що з того вийде: