chore(PROJ-60): Xapian-Reste aus Dockerfile, Makefile und Doku entfernen

Dockerfile und Makefile bauten noch mit CGO_ENABLED=1 -tags xapian und
installierten libxapian-dev/libxapian30, obwohl der Xapian-Code bereits
entfernt wurde. PRD.md und api-v1.md erwähnten Xapian noch im Tech-Stack
bzw. als Such-Syntax-Referenz.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sysops
2026-06-25 09:48:52 +02:00
co-authored by Claude Sonnet 4.6
parent 7c028601cf
commit c1338f6721
4 changed files with 14 additions and 18 deletions
+5 -9
View File
@@ -1,25 +1,20 @@
# ── Stage 1: Go Backend Build (CGO + Xapian) ─────────────────────────────────
# ── Stage 1: Go Backend Build (CGO-frei, Manticore Search) ───────────────────
FROM golang:1.24-bookworm AS go-builder
RUN apt-get update && apt-get install -y --no-install-recommends \
libxapian-dev pkg-config build-essential \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=1 go build -tags xapian -buildvcs=false \
RUN CGO_ENABLED=0 go build -buildvcs=false \
-ldflags="-s -w" \
-o /out/archivmail ./cmd/archivmail/
# ── Stage 2: Runtime Image ────────────────────────────────────────────────────
FROM debian:bookworm-slim
# Xapian runtime library only (no dev headers)
RUN apt-get update && apt-get install -y --no-install-recommends \
libxapian30 ca-certificates \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
RUN useradd --system --shell /bin/false --uid 999 --create-home archivmail
@@ -27,7 +22,8 @@ RUN useradd --system --shell /bin/false --uid 999 --create-home archivmail
COPY --from=go-builder /out/archivmail /usr/local/bin/archivmail
# Volumes: config + data werden von außen gemountet
RUN mkdir -p /var/archivmail/store /var/archivmail/astore /var/archivmail/xapian \
# Manticore Search läuft als eigener Dienst/Container (Port 9306), nicht hier
RUN mkdir -p /var/archivmail/store /var/archivmail/astore \
&& chown -R archivmail:archivmail /var/archivmail
USER archivmail
+6 -6
View File
@@ -8,11 +8,11 @@ LDFLAGS = -X main.Version=$(VERSION) -s -w
all: build
# Build — requires: apt install libxapian-dev
# Build — CGO-frei, Manticore Search als Volltext-Backend
build:
go build -tags xapian -ldflags "$(LDFLAGS)" -o bin/$(APP) ./cmd/archivmail
go build -tags xapian -ldflags "$(LDFLAGS)" -o bin/$(IMPORTER) ./cmd/archivmail-import
go build -tags xapian -ldflags "$(LDFLAGS)" -o bin/$(EXPORTER) ./cmd/archivmail-export
CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" -o bin/$(APP) ./cmd/archivmail
CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" -o bin/$(IMPORTER) ./cmd/archivmail-import
CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" -o bin/$(EXPORTER) ./cmd/archivmail-export
clean:
rm -rf bin/
@@ -35,7 +35,7 @@ test-cover:
smoke: build
@echo "Starting daemon in background for smoke test..."
mkdir -p /tmp/archivmail-test/{store,xapian,logs}
mkdir -p /tmp/archivmail-test/{store,logs}
./bin/archivmail --config config/config.test.yml &
sleep 2
bash smoke_test.sh
@@ -51,7 +51,7 @@ install: build
install -D -m 644 config/config.yml /etc/archivmail/config.yml
install -D -m 644 debian/archivmail.service /lib/systemd/system/archivmail.service
useradd --system --no-create-home --shell /usr/sbin/nologin archivmail 2>/dev/null || true
mkdir -p /var/archivmail/{store,astore,xapian}
mkdir -p /var/archivmail/{store,astore}
mkdir -p /var/log/archivmail
chown -R archivmail:archivmail /var/archivmail /var/log/archivmail
systemctl daemon-reload
+1 -1
View File
@@ -48,7 +48,7 @@ Ein selbst gehostetes, unternehmenstaugliches Mail-Archiv-System, das E-Mails au
- **DSGVO-konform:** E-Mails verlassen nie den eigenen Server; Löschkonzept vorhanden
- **Großes Volumen:** Architektur skaliert auf > 100.000 E-Mails
- **Einfache Architektur:** Go-Backend REST API + Next.js-Frontend, kleines Team (12 Devs)
- **Tech Stack:** Go (Backend, SMTP-Daemon, Storage, Xapian) + Next.js/TypeScript (Web-GUI) + PostgreSQL
- **Tech Stack:** Go (Backend, SMTP-Daemon, Storage) + Manticore Search (Volltext-Index) + Next.js/TypeScript (Web-GUI) + PostgreSQL
## Non-Goals
- Kein vollständiger E-Mail-Client (kein eigenständiges Senden von E-Mails durch Nutzer)
+2 -2
View File
@@ -48,7 +48,7 @@ GET /api/v1/mails
| Parameter | Typ | Beschreibung | Beispiel |
|-----------|-----|-------------|---------|
| `q` | string | Volltext-Suche (Xapian QueryParser) | `q=Rechnung+2024` |
| `q` | string | Volltext-Suche (Manticore QueryParser) | `q=Rechnung+2024` |
| `from` | string | Absender (exakt oder Partial-Match) | `from=alice@firma.de` |
| `to` | string | Empfänger | `to=bob@firma.de` |
| `cc` | string | CC-Empfänger | `cc=team@firma.de` |
@@ -200,7 +200,7 @@ Gibt Version und Status des Servers zurück. Nützlich zum Testen der Verbindung
## Volltext-Suche Syntax (`q`-Parameter)
Der `q`-Parameter unterstützt Xapian QueryParser-Syntax:
Der `q`-Parameter unterstützt Manticore QueryParser-Syntax:
| Syntax | Beispiel | Bedeutung |
|--------|---------|-----------|