mirror of
https://github.com/LogicLabs-OU/OpenArchiver.git
synced 2026-04-05 16:22:01 +02:00
* fix(api): correct API key generation and proxy handling This commit resolves an issue where generating a new API key would fail. The root cause was improper handling of POST request bodies in the frontend proxy server. - Refactored `ApiKeyController` methods to use arrow functions to ensure correct `this` binding. * User profile/account page, change password, API * docs(api): update ingestion source provider values Update the `CreateIngestionSourceDto` documentation in `ingestion.md` to reflect the current set of supported providers. * updating tag * feat: add REDIS_USER env variable (#172) * feat: add REDIS_USER env variable fixes #171 * add proper type for bullmq config * Bulgarian UI language strings added (backend+frontend) (#194) * Bulgarian UI Support added * BG language UI support - Create translation.json * update redis config logic * Update Bulgarian language setting, register language * Allow specifying local file path for mbox/eml/pst (#214) * Add agents AI doc * Allow local file path for Mbox file ingestion --------- Co-authored-by: Wei S. <5291640+wayneshn@users.noreply.github.com> * feat(ingestion): add local file path support and optimize EML processing - Frontend: Updated IngestionSourceForm to allow toggling between "Upload File" and "Local File Path" for PST, EML, and Mbox providers. - Frontend: Added logic to clear irrelevant form data when switching import methods. - Frontend: Added English translations for new form fields. - Backend: Refactored EMLConnector to stream ZIP entries using yauzl instead of extracting the full archive to disk, significantly improving efficiency for large archives. - Docs: Updated API documentation and User Guides (PST, EML, Mbox) to clarify "Local File Path" usage, specifically within Docker environments. * docs: add meilisearch dumpless upgrade guide and snapshot config Update `docker-compose.yml` to include the `MEILI_SCHEDULE_SNAPSHOT` environment variable, defaulting to 86400 seconds (24 hours), enabling periodic data snapshots for easier recovery. Shout out to @morph027 for the inspiration! Additionally, update the Meilisearch upgrade documentation to include an experimental "dumpless" upgrade guide while marking the previous method as the standard recommended process. * build(coolify): enable daily snapshots for meilisearch Configure the Meilisearch service in `open-archiver.yml` to create snapshots every 86400 seconds (24 hours) by setting the `MEILI_SCHEDULE_SNAPSHOT` environment variable. --------- Co-authored-by: Antonia Schwennesen <53372671+zophiana@users.noreply.github.com> Co-authored-by: IT Creativity + Art Team <admin@it-playground.net> Co-authored-by: Jan Berdajs <mrbrdo@gmail.com>
80 lines
3.2 KiB
YAML
80 lines
3.2 KiB
YAML
# documentation: https://openarchiver.com
|
|
# slogan: A self-hosted, open-source email archiving solution with full-text search capability.
|
|
# tags: email archiving,email,compliance,search
|
|
# logo: svgs/openarchiver.svg
|
|
# port: 3000
|
|
|
|
services:
|
|
open-archiver:
|
|
image: logiclabshq/open-archiver:latest
|
|
environment:
|
|
- SERVICE_URL_3000
|
|
- SERVICE_URL=${SERVICE_URL_3000}
|
|
- PORT_BACKEND=${PORT_BACKEND:-4000}
|
|
- PORT_FRONTEND=${PORT_FRONTEND:-3000}
|
|
- NODE_ENV=${NODE_ENV:-production}
|
|
- SYNC_FREQUENCY=${SYNC_FREQUENCY:-* * * * *}
|
|
- POSTGRES_DB=${POSTGRES_DB:-open_archive}
|
|
- POSTGRES_USER=${POSTGRES_USER:-admin}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
|
|
- MEILI_MASTER_KEY=${SERVICE_PASSWORD_MEILISEARCH}
|
|
- MEILI_HOST=http://meilisearch:7700
|
|
- REDIS_HOST=valkey
|
|
- REDIS_PORT=6379
|
|
- REDIS_USER=default
|
|
- REDIS_PASSWORD=${SERVICE_PASSWORD_VALKEY}
|
|
- REDIS_TLS_ENABLED=false
|
|
- STORAGE_TYPE=${STORAGE_TYPE:-local}
|
|
- STORAGE_LOCAL_ROOT_PATH=${STORAGE_LOCAL_ROOT_PATH:-/var/data/open-archiver}
|
|
- BODY_SIZE_LIMIT=${BODY_SIZE_LIMIT:-100M}
|
|
- STORAGE_S3_ENDPOINT=${STORAGE_S3_ENDPOINT}
|
|
- STORAGE_S3_BUCKET=${STORAGE_S3_BUCKET}
|
|
- STORAGE_S3_ACCESS_KEY_ID=${STORAGE_S3_ACCESS_KEY_ID}
|
|
- STORAGE_S3_SECRET_ACCESS_KEY=${STORAGE_S3_SECRET_ACCESS_KEY}
|
|
- STORAGE_S3_REGION=${STORAGE_S3_REGION}
|
|
- STORAGE_S3_FORCE_PATH_STYLE=${STORAGE_S3_FORCE_PATH_STYLE:-false}
|
|
- JWT_SECRET=${SERVICE_BASE64_128_JWT}
|
|
- JWT_EXPIRES_IN=${JWT_EXPIRES_IN:-7d}
|
|
- ENCRYPTION_KEY=${SERVICE_BASE64_64_ENCRYPTIONKEY}
|
|
- RATE_LIMIT_WINDOW_MS=${RATE_LIMIT_WINDOW_MS:-60000}
|
|
- RATE_LIMIT_MAX_REQUESTS=${RATE_LIMIT_MAX_REQUESTS:-100}
|
|
volumes:
|
|
- archiver-data:/var/data/open-archiver
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
valkey:
|
|
condition: service_started
|
|
meilisearch:
|
|
condition: service_started
|
|
|
|
postgres:
|
|
image: postgres:17-alpine
|
|
environment:
|
|
- POSTGRES_DB=${POSTGRES_DB}
|
|
- POSTGRES_USER=${POSTGRES_USER}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- LC_ALL=C
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}']
|
|
interval: 10s
|
|
timeout: 20s
|
|
retries: 10
|
|
|
|
valkey:
|
|
image: valkey/valkey:8-alpine
|
|
command: valkey-server --requirepass ${SERVICE_PASSWORD_VALKEY}
|
|
volumes:
|
|
- valkeydata:/data
|
|
|
|
meilisearch:
|
|
image: getmeili/meilisearch:v1.15
|
|
environment:
|
|
- MEILI_MASTER_KEY=${SERVICE_PASSWORD_MEILISEARCH}
|
|
- MEILI_SCHEDULE_SNAPSHOT=86400
|
|
volumes:
|
|
- meilidata:/meili_data
|