Перейти до вмісту
Обрати мову:Українська

Kept у домашній мережі

Kept працює у вашій домашній мережі за звичайною адресою http://, наприклад http://192.0.2.20:8080 або http://kept.home.arpa:8080. Ваші власні дані там працюють: додавання, пошук і переміщення речей, фотографій та файлів, міток, звітів, імпорту та експорту без секретних значень.

Кілька речей потребують HTTPS. Деякі — бо Kept відмовляється видавати ключ або показувати секрет через з’єднання, яке може прочитати будь-хто в мережі; інші — бо браузери дозволяють їх лише на безпечній адресі, що Kept не може змінити.

Що працює через звичайний HTTP

Section titled “Що працює через звичайний HTTP”
Через звичайний HTTP Чому
Речі, місця, пошук, переміщення, мітки, звіти Працює
Фотографії та файли, вибрані з пристрою Працює
Імпорт (Homebox, CSV, експорт Kept) Працює
Відкриття секретів експорту під час його імпорту Потребує HTTPS. Через звичайний HTTP решта експорту імпортується без них Kept: парольна фраза і секретні значення
Експорт без секретних значень Працює. Кожне секретне значення пропускається і позначається як пропущене; експорт імпортується як зазвичай Ваші власні дані
Встановлення секретного значення Працює
Показ секретного значення Потребує HTTPS Kept: секрет ніколи не надсилається через звичайний HTTP
Експорт із секретними значеннями Потребує HTTPS Kept: секрети та їхня парольна фраза
Токени для ШІ-застосунків (MCP) і Home Assistant Не з браузера. Створіть на сервері: kept admin token create (CLI) Kept: токен — це ключ
Підключення застосунку через OAuth (конектор) Потребує HTTPS Kept: OAuth потребує безпечної адреси
Завантаження комплекту відновлення Не з браузера. На сервері: kept admin recovery-kit (CLI) Kept: у ньому зберігаються ключі сервера
Налаштування резервного копіювання та їхня перевірка Потребує HTTPS або встановіть їх у середовищі сервера (конфігурація) Kept: пароль резервного копіювання
Ключі доступу Потребує HTTPS Браузер: ключів доступу немає на адресі звичайного HTTP
Камера, встановлення Kept, робота офлайн, push-сповіщення, локація Потребує HTTPS Браузер

Через звичайний HTTP вхід також триває 12 годин і не поновлюється; через HTTPS він триває 30 днів. Щоб змінити 12 годин, див. Залишаюся у вашій мережі.

Початок роботи на Головній просить адміністратора інстанції встановити Kept на HTTPS. Якщо ви залишаєтеся у своїй домашній мережі, виберіть Залишаюся у своїй домашній мережі, і крок вважається виконаним. Рядок HTTPS угорі кожної сторінки також можна закрити.

localhost вважається безпечною адресою у браузерах, але Kept керується KEPT_PUBLIC_URL: поки це http:, власні відмови Kept, описані вище, застосовуються і на localhost.

Залишаюся у вашій мережі

Section titled “Залишаюся у вашій мережі”

Хто запускає Kept, може змінити дві речі на сервері: скільки часу триває вхід через звичайний HTTP і на які адреси відповідає Kept. Жодну з них не можна змінити з застосунку, а Admin → Status показує, що діє.

Довші входи через звичайний HTTP

Section titled “Довші входи через звичайний HTTP”

Через звичайний HTTP ви входите знову кожні 12 годин. KEPT_HTTP_SIGN_IN_DAYS у .env робить це стількома днями, від 1 до 30, з поновленням під час використання. 7 підходить для домашньої мережі або Tailscale:

Terminal window
KEPT_HTTP_SIGN_IN_DAYS=7

Потім docker compose up -d. У застосунку Home Assistant це опція Sign-in length over http.

Встановлення, оновлене з 1.14.4 лише зміною KEPT_IMAGE, досі має старий compose.yaml, який не передає це налаштування: спочатку завантажте новий.

Ціна: через звичайний HTTP cookie входу може скопіювати будь-хто, хто бачить трафік. Якщо налаштування увімкнено, скопійований cookie продовжує працювати, поки його використовують, аж поки цей пристрій не вийде або не будуть виведені ваші інші пристрої. Тож залишайтеся в мережі, якій довіряєте, і виходьте на пристрої, який втратили.

Не встановлено Встановлено
Вхід через звичайний HTTP триває 12 годин Стільки днів
Поновлюється Ні Раз на день використання (при 1 дні, після пів дня)
Через HTTPS 30 днів, поновлюється 30 днів, поновлюється: налаштування нічого не робить
Секрети та ключі через звичайний HTTP Відмовлено Відмовлено
Чутливі дії Пароль або вхід за останні десять хвилин Те саме; поновлення не вважається входом
Вийти на всіх пристроях Завершує всі входи Завершує всі входи

Будь-яке інше значення (0, 31, 7d) зупиняє Kept при запуску з повідомленням про те, що потрібно. Якщо залишити порожнім — те саме, що не задавати.

Увімкнено — вже створений вхід отримає довшу тривалість при наступному використанні. Вимкнено — він завершиться у свій час, не довше за тривалість, яку мав; щоб завершити їх раніше, використайте Вийти на всіх пристроях у Admin → Users.

Kept приймає входи та збереження лише з KEPT_PUBLIC_URL, тому другий спосіб дістатися до того самого Kept — назва Tailscale поряд із назвою у локальній мережі або IP поряд із назвою — каже: «Цей Kept налаштований для …». KEPT_EXTRA_ADDRESSES перелічує інші, розділені комами, точно так, як їх показує браузер:

Terminal window
KEPT_PUBLIC_URL=http://kept.lan:8080
KEPT_EXTRA_ADDRESSES=http://192.0.2.20:8080,http://<machine>.<tailnet>.ts.net:8080

Потім docker compose up -d. У застосунку Home Assistant це опція Extra addresses. Це працює так само через HTTPS.

Встановлення, оновлене з 1.14.4 лише зміною KEPT_IMAGE, досі має старий compose.yaml, який не передає це налаштування: спочатку завантажте новий.

KEPT_PUBLIC_URL Додаткова адреса
Використання Kept, вхід за паролем або одноразовим кодом Так Так
Посилання з листа або скидання пароля Відкривається тут Відкривається на KEPT_PUBLIC_URL
Ключі доступу Так, через HTTPS Ні; ключ доступу належить одній адресі
Вхід через Google і OIDC Так Кнопка відкриває KEPT_PUBLIC_URL
Застосунки ШІ (MCP, OAuth) Так Підключайте їх на KEPT_PUBLIC_URL: /mcp відмовляє цю адресу, а згода OAuth тут відхиляється
Посилання, мітки, QR-коди, пошта, календарні стрічки Вказують сюди Досі вказують на KEPT_PUBLIC_URL
  • Кожна адреса входить окремо і встановлюється як окремий застосунок, бо браузери зберігають cookies і автономні дані для кожної адреси. Вихід на одній залишає іншу ввійденою; Вийти на всіх пристроях завершує обидві. Push-сповіщення, де це дозволяє HTTPS, відкриваються на адресі, на якій пристрій їх увімкнув. Два порти на одному імені хоста мають спільні cookies: браузери не тримають їх окремо за портом.
  • Посилання з листа, запитане на додатковій адресі, відкривається на KEPT_PUBLIC_URL і входить туди, а не туди, де ви запитали. Скидання пароля встановлює пароль там; потім увійдіть на адресі, де були. Якщо KEPT_PUBLIC_URL недоступний з вашого місця, скористайтеся паролем.
  • Ключі доступу: додавайте та використовуйте їх на KEPT_PUBLIC_URL. Додаткова адреса пропонує пароль або посилання з листа і пояснює чому.
  • Точні адреси: схема, хост і порт порівнюються повністю. http://kept.lan — це не http://kept.lan:8080, а kept.lan.example.com — це не kept.lan. Шаблон, шлях, логін або суміш http і https зупиняють Kept при запуску з повідомленням про те, що саме. Порожнє значення — те саме, що його відсутність.
  • Перенаправлені заголовки: Host і X-Forwarded-* не беруть участі, тож ваш проксі не може додати адресу випадково або забрати її. Спрямовуйте його на Kept для кожної адреси, яку перелічуєте.

Ціна: сторінка, надана за переліченою адресою, вважається самим Kept і може використовувати вхід того, хто її відкриє. Тож перелічуйте лише адреси, що ведуть до цього Kept, на іменах і IP, які ви контролюєте.

Додати HTTPS: спочатку Tailscale

Section titled “Додати HTTPS: спочатку Tailscale”

Найменше зусиль для домогосподарства: встановіть Tailscale на машину, де працює Kept, і на кожен телефон і комп’ютер, що його використовує, увімкніть сертифікати HTTPS для вашої tailnet, і подавайте Kept командою

Terminal window
tailscale serve --bg 8080

Тоді Kept доступний за https://<machine>.<tailnet>.ts.net, із сертифікатом, якому довіряє кожен пристрій, з дому чи зі сторони. Встановіть KEPT_PUBLIC_URL на цю адресу і перезапустіть Kept. Докладніше в Розгорнути Kept на HTTPS.

Додати HTTPS: Caddy з власним центром сертифікації

Section titled “Додати HTTPS: Caddy з власним центром сертифікації”

Без Tailscale і без публічного домену Caddy може підписати сертифікат для імені у домашній мережі сам (tls internal). Це працює, але не швидко: кожен пристрій, що відкриває Kept, треба навчити довіряти кореневому сертифікату Caddy, по одному, для кожної людини у будинку. Поки пристрій йому не довіряє, браузер показує попередження про безпеку.

  1. Оберіть ім’я, яке кожен пристрій може розв’язати до машини, наприклад kept.home.arpa (запис DNS на вашому роутері або запис у файлі hosts кожного пристрою).

  2. Встановіть його в .env:

    Terminal window
    KEPT_DOMAIN=kept.home.arpa
    KEPT_PUBLIC_URL=https://kept.home.arpa
  3. Caddy постачається з compose.full.yaml: завантажте його і docker/caddy/Caddyfile, і встановіть COMPOSE_FILE=compose.full.yaml у .env, як у Розгорнути Kept на HTTPS. Потім додайте tls internal до Caddyfile:

    {$KEPT_DOMAIN} {
    tls internal
    encode zstd gzip
    reverse_proxy kept:8080
    }
  4. Запустіть Caddy і скопіюйте його кореневий сертифікат із тому даних:

    Terminal window
    docker compose --profile https up -d
    docker compose cp caddy:/data/caddy/pki/authorities/local/root.crt ./kept-root.crt
  5. Встановіть kept-root.crt на кожен пристрій і довірте йому:

    • iPhone і iPad: надішліть його на пристрій (AirDrop або пошта), встановіть профіль у Налаштування → Загальні → VPN & Device Management, потім увімкніть повну довіру в Налаштування → Загальні → About → Certificate Trust Settings.
    • Android: у налаштуваннях безпеки встановіть як CA-сертифікат (назва меню залежить від виробника). Деякі застосунки ігнорують сертифікати, встановлені користувачем.
    • Комп’ютери: додайте до довірених сертифікатів системи (Keychain Access на Mac, диспетчер сертифікатів у Windows, сховище CA дистрибутиву в Linux). Firefox може мати власний список.

Корінь Caddy діє десять років; сертифікати, які він підписує, поновлюються самі. Приватний ключ кореня залишається у томі caddy-data: будь-хто, хто його скопіює, може підписувати будь-яке ім’я, якому ваші пристрої тепер довіряють, тож бережіть цей том як пароль. mkcert — та сама ідея з іншим інструментом.

Відкриття Kept за правильною адресою

Section titled “Відкриття Kept за правильною адресою”

Відкривайте Kept за адресою з KEPT_PUBLIC_URL. Якщо відкрито за іншою (наприклад, IP-адреса машини, коли URL називає kept.home.arpa), вхід повідомляє, за якою адресою налаштований цей Kept, з посиланням на неї.