mirror of
https://github.com/tiennm99/coolify.git
synced 2026-10-12 14:14:52 +00:00
feat(template): add open archiver template (#6593)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
This commit is contained in:
1 parent
d4957ff3d1
commit
ae4ffb0248
3 files changed
+5009
-7920
No files matched your search
+4903
-7920
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,19 @@
|
||||
<svg width="361" height="361" viewBox="0 0 361 361" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g clip-path="url(#clip0_2_36)">
|
||||
<mask id="mask0_2_36" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="361" height="361">
|
||||
<path d="M361 0H0V361H361V0Z" fill="white"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_2_36)">
|
||||
<path d="M406.486 -45.486H-45.486V406.486H406.486V-45.486Z" fill="url(#pattern0_2_36)"/>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<pattern id="pattern0_2_36" patternContentUnits="objectBoundingBox" width="1" height="1">
|
||||
<use xlink:href="#image0_2_36" transform="scale(0.002)"/>
|
||||
</pattern>
|
||||
<clipPath id="clip0_2_36">
|
||||
<rect width="361" height="361" fill="white"/>
|
||||
</clipPath>
|
||||
<image id="image0_2_36" width="500" height="500" preserveAspectRatio="none" xlink:href="data:image/png;base64,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 truncated
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 164 KiB |
@@ -0,0 +1,87 @@
|
||||
# documentation: https://docs.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_OPENARCHIVER_3000
|
||||
- ENCRYPTION_KEY=${SERVICE_HEX_32_ENCRYPTIONKEY}
|
||||
- STORAGE_ENCRYPTION_KEY=${SERVICE_HEX_32_STORAGEENCRYPTIONKEY}
|
||||
- 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=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-open-archiver-db}
|
||||
- MEILI_MASTER_KEY=${SERVICE_PASSWORD_MEILISEARCH}
|
||||
- MEILI_HOST=http://meilisearch:7700
|
||||
- REDIS_HOST=valkey
|
||||
- REDIS_PORT=6379
|
||||
- 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}
|
||||
- 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_healthy
|
||||
meilisearch:
|
||||
condition: service_healthy
|
||||
|
||||
postgres:
|
||||
image: postgres:17-alpine
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB:-open-archiver-db}
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- LC_ALL=C
|
||||
volumes:
|
||||
- postgres-data:/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:
|
||||
- valkey-data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
meilisearch:
|
||||
image: getmeili/meilisearch:v1.15
|
||||
environment:
|
||||
- MEILI_MASTER_KEY=${SERVICE_PASSWORD_MEILISEARCH}
|
||||
volumes:
|
||||
- meilisearch-data:/meili_data
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:7700/health"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
Reference in new issue
Block a user