Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Host=mailarchiver_postgres_1;Database=mailarchiver;Username=mailarchiver;Password=mailarchiver"
|
||||
},
|
||||
"Authentication": {
|
||||
"Username": "admin",
|
||||
"Password": "secure123!",
|
||||
"SessionTimeoutMinutes": 60,
|
||||
"CookieName": "MailArchiverAuth",
|
||||
"CookieSameSite": "Strict"
|
||||
},
|
||||
"OAuth": {
|
||||
"Enabled": false,
|
||||
"Authority": "",
|
||||
"ClientId": "",
|
||||
"ClientSecret": null,
|
||||
"ClientScopes": [
|
||||
"openid",
|
||||
"profile",
|
||||
"email"
|
||||
],
|
||||
"DisablePasswordLogin": false,
|
||||
"AutoRedirect": false,
|
||||
"AutoApproveUsers": false,
|
||||
"AdminEmails": []
|
||||
},
|
||||
"MailSync": {
|
||||
"IntervalMinutes": 15,
|
||||
"TimeoutMinutes": 120,
|
||||
"ConnectionTimeoutSeconds": 300,
|
||||
"CommandTimeoutSeconds": 600,
|
||||
"AlwaysForceFullSync": false,
|
||||
"IgnoreSelfSignedCert": false
|
||||
},
|
||||
"BatchRestore": {
|
||||
"AsyncThreshold": 50,
|
||||
"MaxSyncEmails": 150,
|
||||
"MaxAsyncEmails": 50000,
|
||||
"SessionTimeoutMinutes": 30,
|
||||
"DefaultBatchSize": 50
|
||||
},
|
||||
"Selection": {
|
||||
"MaxSelectableEmails": 250
|
||||
},
|
||||
"View": {
|
||||
"DefaultToPlainText": true,
|
||||
"BlockExternalResources": true
|
||||
},
|
||||
"BatchOperation": {
|
||||
"BatchSize": 50,
|
||||
"PauseBetweenEmailsMs": 50,
|
||||
"PauseBetweenBatchesMs": 200
|
||||
},
|
||||
"TimeZone": {
|
||||
"DisplayTimeZoneId": "Etc/UCT"
|
||||
},
|
||||
"DatabaseMaintenance": {
|
||||
"Enabled": true,
|
||||
"DailyExecutionTime": "02:00",
|
||||
"TimeoutMinutes": 30
|
||||
},
|
||||
"Upload": {
|
||||
"MaxFileSizeGB": 10,
|
||||
"KeepAliveTimeoutHours": 4,
|
||||
"RequestHeadersTimeoutHours": 2,
|
||||
"Notes": "Optimized for large file uploads up to 10GB"
|
||||
},
|
||||
"Npgsql": {
|
||||
"CommandTimeout": 900
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning",
|
||||
"Microsoft.EntityFrameworkCore.Database.Command": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
manifestVersion: 1
|
||||
id: mailarchiver
|
||||
name: Mail Archiver
|
||||
tagline: Комплексное решение для архивирования, поиска и экспорта электронной почты.
|
||||
category: files
|
||||
version: "2604.2"
|
||||
port: 5006
|
||||
description: >-
|
||||
Mail Archiver обеспечивает автоматическое архивирование входящей и исходящей электронной почты с нескольких учетных записей. Все содержимое электронной почты и вложения синхронизируются по расписанию. Адаптивный интерфейс оптимизирован для использования на мобильных устройствах и настольных компьютерах, многоязычен и поддерживает темный режим.
|
||||
|
||||
OpenID Connect (OIDC) можно настроить для интеграции внешних служб аутентификации.
|
||||
|
||||
|
||||
**Настраивать**
|
||||
|
||||
Предоставленные учетные данные необходимо изменить при первом входе в систему. Пользователей, учетные записи и т. д. можно настроить в веб-интерфейсе, основные настройки (например, часовой пояс) можно настроить в соответствии с вашими потребностями в «data/appsettings.json».
|
||||
|
||||
|
||||
🔍 **Поиск и доступ**
|
||||
- Расширенный поиск по всем заархивированным электронным письмам с возможностью фильтрации.
|
||||
- Предварительный просмотр электронных писем со списком вложений
|
||||
- Экспортируйте целые почтовые учетные записи в виде файлов mbox или сжатых архивов EML.
|
||||
- Экспортировать выбранные отдельные электронные письма или пакеты электронных писем.
|
||||
|
||||
|
||||
👥 **Управление пользователями**
|
||||
- Многопользовательская поддержка с разрешениями для конкретной учетной записи.
|
||||
- Панель управления со статистикой, мониторингом хранилища и анализом отправителей
|
||||
- Комплексное ведение журнала доступа с подробным отслеживанием активности пользователей (доступ, экспорт, удаление, восстановление и многое другое) — подробности см. в руководстве по ведению журнала доступа.
|
||||
|
||||
|
||||
🧩 **Поддержка провайдера электронной почты**
|
||||
- IMAP — традиционные учетные записи IMAP с возможностью полной синхронизации.
|
||||
- M365 – почтовые учетные записи Microsoft 365 через Microsoft Graph API (Руководство по установке)
|
||||
- ИМПОРТ – учетные записи, доступные только для импорта, для переноса существующих архивов электронной почты.
|
||||
|
||||
|
||||
📥 **Функции импорта и восстановления**
|
||||
- Импорт MBox и импорт EML (ZIP-файлы с поддержкой структуры папок)
|
||||
- Восстановить выбранные электронные письма или целые почтовые ящики в почтовые ящики назначения.
|
||||
|
||||
|
||||
🗑️ **Политика хранения**
|
||||
- Настройте автоматическое удаление заархивированных писем с почтового сервера через определенные дни (документация по политикам хранения).
|
||||
- Установите срок хранения для каждой учетной записи электронной почты (например, 30, 90 или 365 дней).
|
||||
- Хранение локального архива. Настройка отдельного периода хранения для локального архива.
|
||||
developer: s1t5
|
||||
website: https://mail-archiver.org
|
||||
repo: https://github.com/s1t5/mail-archiver
|
||||
support: https://github.com/s1t5/mail-archiver/issues
|
||||
defaultUsername: "admin"
|
||||
defaultPassword: "secure123!"
|
||||
gallery:
|
||||
- 1.jpg
|
||||
- 2.jpg
|
||||
- 3.jpg
|
||||
releaseNotes: >-
|
||||
Улучшения:
|
||||
- Обновлены зависимости для лучшей совместимости.
|
||||
|
||||
|
||||
Исправления ошибок:
|
||||
- Исправлена обработка даты при восстановлении электронной почты в учетных записях Microsoft 365.
|
||||
- Исправлено отображение времени последней синхронизации для русского языка.
|
||||
- Исправлена обработка памяти во время синхронизации Microsoft 365.
|
||||
|
||||
|
||||
Полные примечания к выпуску можно найти по адресу https://github.com/s1t5/mail-archiver.
|
||||
dependencies: []
|
||||
path: ""
|
||||
submitter: dirstel
|
||||
submission: https://github.com/getumbrel/dfwebos-apps/pull/5078
|
||||
@@ -0,0 +1,32 @@
|
||||
services:
|
||||
app_proxy:
|
||||
environment:
|
||||
APP_HOST: mailarchiver_app_1
|
||||
APP_PORT: 5000
|
||||
|
||||
app:
|
||||
image: ghcr.io/s1t5/mailarchiver:2604.2@sha256:53800df180b876e3cc02e31f088e0684bf81a4380ad22b5419da99e8559bb5ba
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/data-protection-keys:/app/DataProtection-Keys
|
||||
- ${APP_DATA_DIR}/data/appsettings.json:/app/appsettings.json
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
||||
postgres:
|
||||
image: postgres:18.3-alpine3.23@sha256:4da1a4828be12604092fa55311276f08f9224a74a62dcb4708bd7439e2a03911
|
||||
restart: on-failure
|
||||
user: 1000:1000
|
||||
environment:
|
||||
POSTGRES_DB: mailarchiver
|
||||
POSTGRES_USER: mailarchiver
|
||||
POSTGRES_PASSWORD: mailarchiver
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/database:/var/lib/postgresql
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U mailarchiver -d mailarchiver"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
Reference in New Issue
Block a user