Конфигурация сервера¶
Используя стандартный образ 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, которое сопоставляется с ролью "Администратор" Gramps |
OIDC_GROUP_OWNER |
Имя группы/роли из вашего провайдера OIDC, которое сопоставляется с ролью "Владелец" Gramps |
OIDC_GROUP_EDITOR |
Имя группы/роли из вашего провайдера OIDC, которое сопоставляется с ролью "Редактор" Gramps |
OIDC_GROUP_CONTRIBUTOR |
Имя группы/роли из вашего провайдера OIDC, которое сопоставляется с ролью "Участник" Gramps |
OIDC_GROUP_MEMBER |
Имя группы/роли из вашего провайдера OIDC, которое сопоставляется с ролью "Член" Gramps |
OIDC_GROUP_GUEST |
Имя группы/роли из вашего провайдера OIDC, которое сопоставляется с ролью "Гость" Gramps |
Настройки только для функций ИИ¶
Эти настройки необходимы, если вы хотите использовать функции на основе ИИ, такие как чат или семантический поиск.
| Ключ | Описание |
|---|---|
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="Мое семейное дерево" 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"