Налаштування сервера¶
Використовуючи стандартний образ Docker, всі необхідні налаштування можна виконати з браузера. Однак, в залежності від розгортання, може бути необхідно налаштувати конфігурацію сервера.
Ця сторінка містить усі методи зміни конфігурації та всі існуючі параметри конфігурації.
Файл конфігурації проти змінних середовища¶
Для налаштувань ви можете використовувати або файл конфігурації, або змінні середовища.
Коли ви використовуєте налаштування на основі Docker Compose, ви можете включити файл конфігурації, додавши наступний пункт списку під ключем volumes: в блоці grampsweb::
- /path/to/config.cfg:/app/config/config.cfg
/path/to/config.cfg — це шлях до файлу конфігурації у файловій системі вашого сервера (права сторона посилається на шлях у контейнері і не повинна змінюватися).
При використанні змінних середовища,
- префіксуйте кожну назву налаштування
GRAMPSWEB_, щоб отримати назву змінної середовища - Використовуйте подвійні підкреслення для вкладених налаштувань словника, наприклад,
GRAMPSWEB_THUMBNAIL_CACHE_CONFIG__CACHE_DEFAULT_TIMEOUTвстановить значення параметра конфігураціїTHUMBNAIL_CACHE_CONFIG['CACHE_DEFAULT_TIMEOUT']
Зверніть увагу, що параметри конфігурації, встановлені через середовище, мають пріоритет над тими, що в файлі конфігурації. Якщо обидва присутні, змінна середовища "перемагає".
Існуючі налаштування конфігурації¶
Існують такі параметри конфігурації.
Обов'язкові налаштування¶
| Ключ | Опис |
|---|---|
TREE |
Назва бази даних родинного дерева, яку потрібно використовувати. Показати доступні дерева за допомогою gramps -l. Якщо дерева з цією назвою не існує, буде створено нове порожнє. |
SECRET_KEY |
Секретний ключ для flask. Секрет не повинен бути опублікований. Зміна його анулює всі токени доступу. |
USER_DB_URI |
URL бази даних користувачів. Дозволяється будь-який URL, сумісний з SQLAlchemy. |
Info
Ви можете згенерувати безпечний секретний ключ, наприклад, за допомогою команди
python3 -c "import secrets;print(secrets.token_urlsafe(32))"
Додаткові налаштування¶
| Ключ | Опис |
|---|---|
MEDIA_BASE_DIR |
Шлях, який використовуватиметься як базовий каталог для медіафайлів, переважаючи базовий каталог медіа, встановлений у Gramps. При використанні S3 повинен мати форму s3://<bucket_name> |
SEARCH_INDEX_DB_URI |
URL бази даних для індексу пошуку. Дозволені лише sqlite або postgresql як бекенди. За замовчуванням sqlite:///indexdir/search_index.db, створюючи файл SQLite в папці indexdir, відносно шляху, з якого запускається скрипт |
STATIC_PATH |
Шлях для обслуговування статичних файлів (наприклад, статичний веб-фронтенд) |
BASE_URL |
Базовий URL, за яким можна досягти API (наприклад, https://mygramps.mydomain.com/). Це необхідно, наприклад, для створення правильних посилань для скидання пароля |
CORS_ORIGINS |
Джерела, з яких дозволені запити CORS. За замовчуванням всі заборонені. Використовуйте "*" для дозволу запитів з будь-якого домену. |
EMAIL_HOST |
Хост SMTP сервера (наприклад, для надсилання електронних листів для скидання пароля) |
EMAIL_PORT |
Порт SMTP сервера. за замовчуванням 465 |
EMAIL_HOST_USER |
Ім'я користувача SMTP сервера |
EMAIL_HOST_PASSWORD |
Пароль SMTP сервера |
EMAIL_USE_TLS |
Логічне значення, чи використовувати TLS для надсилання електронних листів. За замовчуванням True. При використанні STARTTLS, встановіть це значення на False і використовуйте порт, відмінний від 25. |
DEFAULT_FROM_EMAIL |
Адреса "Від" для автоматизованих електронних листів |
THUMBNAIL_CACHE_CONFIG |
Словник з налаштуваннями для кешу ескізів. Дивіться Flask-Caching для можливих налаштувань. |
REQUEST_CACHE_CONFIG |
Словник з налаштуваннями для кешу запитів. Дивіться Flask-Caching для можливих налаштувань. |
PERSISTENT_CACHE_CONFIG |
Словник з налаштуваннями для постійного кешу, який використовується, наприклад, для телеметрії. Дивіться Flask-Caching для можливих налаштувань. |
CELERY_CONFIG |
Налаштування для фонової черги завдань Celery. Дивіться Celery для можливих налаштувань. |
REPORT_DIR |
Тимчасовий каталог, де буде зберігатися вихід виконання звітів Gramps |
EXPORT_DIR |
Тимчасовий каталог, де буде зберігатися вихід експорту бази даних Gramps |
REGISTRATION_DISABLED |
Якщо True, заборонити реєстрацію нових користувачів (за замовчуванням False) |
DISABLE_TELEMETRY |
Якщо True, вимкнути статистичну телеметрію (за замовчуванням False). Дивіться телеметрію для деталей. |
Info
При використанні змінних середовища для конфігурації логічні параметри, такі як EMAIL_USE_TLS, повинні бути або рядком true, або false (регістр має значення!).
Налаштування тільки для бази даних PostgreSQL¶
Це необхідно, якщо ви налаштували свою базу даних Gramps для роботи з додатком PostgreSQL.
| Ключ | Опис |
|---|---|
POSTGRES_USER |
Ім'я користувача для з'єднання з базою даних |
POSTGRES_PASSWORD |
Пароль для користувача бази даних |
Налаштування, що стосуються хостингу кількох дерев¶
Наступні налаштування є актуальними при хостингу кількох дерев.
| Ключ | Опис |
|---|---|
MEDIA_PREFIX_TREE |
Логічне значення, чи використовувати окрему підпапку для медіафайлів кожного дерева. За замовчуванням False, але настійно рекомендується використовувати True в налаштуванні з кількома деревами |
NEW_DB_BACKEND |
Бекенд бази даних, який потрібно використовувати для новостворених родинних дерев. Повинен бути одним з sqlite, postgresql або sharedpostgresql. За замовчуванням sqlite. |
POSTGRES_HOST |
Ім'я хоста сервера PostgreSQL, що використовується для створення нових дерев при використанні налаштування з кількома деревами з бекендом SharedPostgreSQL |
POSTGRES_PORT |
Порт сервера PostgreSQL, що використовується для створення нових дерев при використанні налаштування з кількома деревами з бекендом SharedPostgreSQL |
Налаштування для аутентифікації OIDC¶
Ці налаштування потрібні, якщо ви хочете використовувати аутентифікацію OpenID Connect (OIDC) з зовнішніми постачальниками. Для детальних інструкцій з налаштування та прикладів дивіться Аутентифікація OIDC.
| Ключ | Опис |
|---|---|
OIDC_ENABLED |
Логічне значення, чи дозволити аутентифікацію OIDC. За замовчуванням False. |
OIDC_ISSUER |
URL постачальника OIDC (для спеціальних постачальників OIDC) |
OIDC_CLIENT_ID |
OAuth ідентифікатор клієнта (для спеціальних постачальників OIDC) |
OIDC_CLIENT_SECRET |
OAuth секрет клієнта (для спеціальних постачальників OIDC) |
OIDC_NAME |
Спеціальна назва для постачальника. За замовчуванням "OIDC" |
OIDC_SCOPES |
OAuth області. За замовчуванням "openid email profile" |
OIDC_USERNAME_CLAIM |
Заява, яка використовується для імені користувача. За замовчуванням "preferred_username" |
OIDC_OPENID_CONFIG_URL |
Додатково: URL до кінцевої точки конфігурації OpenID Connect (якщо не використовується стандартний /.well-known/openid-configuration) |
OIDC_DISABLE_LOCAL_AUTH |
Логічне значення, чи вимкнути локальну аутентифікацію за допомогою імені користувача/пароля. За замовчуванням False |
OIDC_AUTO_REDIRECT |
Логічне значення, чи автоматично перенаправляти на OIDC, коли налаштовано лише одного постачальника. За замовчуванням False |
Вбудовані постачальники OIDC¶
Для вбудованих постачальників (Google, Microsoft, GitHub) використовуйте ці налаштування:
| Ключ | Опис |
|---|---|
OIDC_GOOGLE_CLIENT_ID |
Ідентифікатор клієнта для Google OAuth |
OIDC_GOOGLE_CLIENT_SECRET |
Секрет клієнта для Google OAuth |
OIDC_MICROSOFT_CLIENT_ID |
Ідентифікатор клієнта для Microsoft OAuth |
OIDC_MICROSOFT_CLIENT_SECRET |
Секрет клієнта для Microsoft OAuth |
OIDC_GITHUB_CLIENT_ID |
Ідентифікатор клієнта для GitHub OAuth |
OIDC_GITHUB_CLIENT_SECRET |
Секрет клієнта для GitHub OAuth |
Відображення ролей OIDC¶
Ці налаштування дозволяють вам відображати групи/ролі OIDC з вашого постачальника ідентичності на ролі користувачів Gramps Web:
| Ключ | Опис |
|---|---|
OIDC_ROLE_CLAIM |
Назва заяви в токені OIDC, яка містить групи/ролі користувача. За замовчуванням "groups" |
OIDC_GROUP_ADMIN |
Назва групи/ролі з вашого постачальника OIDC, яка відображається на роль "Admin" Gramps |
OIDC_GROUP_OWNER |
Назва групи/ролі з вашого постачальника OIDC, яка відображається на роль "Owner" Gramps |
OIDC_GROUP_EDITOR |
Назва групи/ролі з вашого постачальника OIDC, яка відображається на роль "Editor" Gramps |
OIDC_GROUP_CONTRIBUTOR |
Назва групи/ролі з вашого постачальника OIDC, яка відображається на роль "Contributor" Gramps |
OIDC_GROUP_MEMBER |
Назва групи/ролі з вашого постачальника OIDC, яка відображається на роль "Member" Gramps |
OIDC_GROUP_GUEST |
Назва групи/ролі з вашого постачальника OIDC, яка відображається на роль "Guest" Gramps |
Налаштування тільки для функцій AI¶
Ці налаштування потрібні, якщо ви хочете використовувати функції на базі AI, такі як чат або семантичний пошук.
| Ключ | Опис |
|---|---|
LLM_BASE_URL |
Базовий URL для API чату, сумісного з OpenAI. За замовчуванням None, що використовує API OpenAI. |
LLM_MODEL |
Модель, яку потрібно використовувати для API чату, сумісного з OpenAI. Якщо не встановлено (за замовчуванням), чат вимкнено. |
VECTOR_EMBEDDING_MODEL |
Модель Sentence Transformers для семантичного пошуку векторних вбудувань. Якщо не встановлено (за замовчуванням), семантичний пошук і чат вимкнені. |
LLM_MAX_CONTEXT_LENGTH |
Обмеження символів для контексту родинного дерева, наданого LLM. За замовчуванням 50000. |
Приклад файлу конфігурації¶
Мінімальний файл конфігурації для виробництва може виглядати так: ```python TREE="My Family Tree" BASE_URL="https://mytree.example.com" SECRET_KEY="..." # ваш секретний ключ USER_DB_URI="sqlite:////path/to/users.sqlite" EMAIL_HOST="mail.example.com" EMAIL_PORT=465 EMAIL_USE_TLS=True EMAIL_HOST_USER="gramps@example.com" EMAIL_HOST_PASSWORD="..." # ваш SMTP пароль DEFAULT_FROM_EMAIL="gramps@example.com"