Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,13 @@ jobs:
VERSION="ci-$COMMIT"

mkdir -p dist
LDFLAGS="-s -w -X go.kenn.io/msgvault/cmd/msgvault/cmd.Version=${VERSION} -X go.kenn.io/msgvault/cmd/msgvault/cmd.Commit=${COMMIT} -X go.kenn.io/msgvault/cmd/msgvault/cmd.BuildDate=$(date -u +%Y-%m-%dT%H:%M:%SZ) -extldflags '-lstdc++ -lm'"
CGO_ENABLED=0 go build -trimpath -buildvcs=false -o dist/msgvault-codex-bridge ./cmd/msgvault-codex-bridge
BRIDGE_SHA256=$(sha256sum dist/msgvault-codex-bridge | cut -d' ' -f1)
LDFLAGS="-s -w -X go.kenn.io/msgvault/cmd/msgvault/cmd.Version=${VERSION} -X go.kenn.io/msgvault/cmd/msgvault/cmd.Commit=${COMMIT} -X go.kenn.io/msgvault/cmd/msgvault/cmd.BuildDate=$(date -u +%Y-%m-%dT%H:%M:%SZ) -X go.kenn.io/msgvault/internal/peoplesweep.codexBridgeSHA256=${BRIDGE_SHA256} -extldflags '-lstdc++ -lm'"
go build -tags "fts5 sqlite_vec" -trimpath -buildvcs=false -ldflags="$LDFLAGS" -o dist/msgvault ./cmd/msgvault

echo "--- Binary info ---"
file dist/msgvault
file dist/msgvault dist/msgvault-codex-bridge
ldd dist/msgvault || true

echo "--- Runtime requirements ---"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Go binaries
/msgvault
/msgvault-codex-bridge
/msgvault.exe
/mimeshootout

Expand Down
10 changes: 8 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,17 @@ ARG COMMIT=unknown
ARG BUILD_DATE=unknown

# Note: Module path must match go.mod (go.kenn.io/msgvault)
RUN CGO_ENABLED=1 go build \
RUN CGO_ENABLED=0 go build -trimpath -buildvcs=false \
-o /msgvault-codex-bridge ./cmd/msgvault-codex-bridge \
&& bridge_digest=$(sha256sum /msgvault-codex-bridge | cut -d' ' -f1) \
&& CGO_ENABLED=1 go build \
-tags "fts5 sqlite_vec" \
-trimpath \
-ldflags="-s -w \
-X go.kenn.io/msgvault/cmd/msgvault/cmd.Version=${VERSION} \
-X go.kenn.io/msgvault/cmd/msgvault/cmd.Commit=${COMMIT} \
-X go.kenn.io/msgvault/cmd/msgvault/cmd.BuildDate=${BUILD_DATE}" \
-X go.kenn.io/msgvault/cmd/msgvault/cmd.BuildDate=${BUILD_DATE} \
-X go.kenn.io/msgvault/internal/peoplesweep.codexBridgeSHA256=${bridge_digest}" \
-o /msgvault \
./cmd/msgvault

Expand All @@ -61,6 +65,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
tzdata \
wget \
libstdc++6 \
bubblewrap \
&& rm -rf /var/lib/apt/lists/*

# Create non-root user
Expand All @@ -69,6 +74,7 @@ RUN groupadd --gid 1000 msgvault \

# Copy binary from builder
COPY --from=builder /msgvault /usr/local/bin/msgvault
COPY --from=builder --chown=msgvault:msgvault /msgvault-codex-bridge /usr/local/bin/msgvault-codex-bridge

# Set up data directory with correct ownership
ENV MSGVAULT_HOME=/data
Expand Down
24 changes: 19 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -92,19 +92,32 @@ GOLANGCI_LINT_TMP ?= $(GOLANGCI_LINT_CACHE)/tmp

# Build the binary (debug)
build: web-embed
ifeq ($(shell go env GOOS),linux)
CGO_ENABLED=0 go build -trimpath -buildvcs=false -o msgvault-codex-bridge ./cmd/msgvault-codex-bridge
@bridge_digest=$$(sha256sum msgvault-codex-bridge | cut -d' ' -f1); \
CGO_ENABLED=1 go build -tags "$(BUILD_TAGS)" -ldflags="$(LDFLAGS) -X go.kenn.io/msgvault/internal/peoplesweep.codexBridgeSHA256=$$bridge_digest" -o msgvault ./cmd/msgvault
else
CGO_ENABLED=1 go build -tags "$(BUILD_TAGS)" -ldflags="$(LDFLAGS)" -o msgvault ./cmd/msgvault
endif
@chmod +x msgvault

# Build with optimizations (release)
build-release: web-embed
ifeq ($(shell go env GOOS),linux)
CGO_ENABLED=0 go build -trimpath -buildvcs=false -o msgvault-codex-bridge ./cmd/msgvault-codex-bridge
@bridge_digest=$$(sha256sum msgvault-codex-bridge | cut -d' ' -f1); \
CGO_ENABLED=1 go build -tags "$(BUILD_TAGS)" -ldflags="$(LDFLAGS_RELEASE) -X go.kenn.io/msgvault/internal/peoplesweep.codexBridgeSHA256=$$bridge_digest" -trimpath -o msgvault ./cmd/msgvault
else
CGO_ENABLED=1 go build -tags "$(BUILD_TAGS)" -ldflags="$(LDFLAGS_RELEASE)" -trimpath -o msgvault ./cmd/msgvault
endif
@chmod +x msgvault

# Install to ~/.local/bin, $GOBIN, or $GOPATH/bin
install: web-embed
@if [ -d "$(HOME)/.local/bin" ]; then \
install: build
@set -e; if [ -d "$(HOME)/.local/bin" ]; then \
echo "Installing to ~/.local/bin/msgvault"; \
CGO_ENABLED=1 go build -tags "$(BUILD_TAGS)" -ldflags="$(LDFLAGS)" -o "$(HOME)/.local/bin/msgvault" ./cmd/msgvault; \
install -m 755 msgvault "$(HOME)/.local/bin/msgvault"; \
if [ "$$(go env GOOS)" = linux ]; then install -m 755 msgvault-codex-bridge "$(HOME)/.local/bin/msgvault-codex-bridge"; fi; \
else \
INSTALL_DIR="$${GOBIN:-$$(go env GOBIN)}"; \
if [ -z "$$INSTALL_DIR" ]; then \
Expand All @@ -113,12 +126,13 @@ install: web-embed
fi; \
mkdir -p "$$INSTALL_DIR"; \
echo "Installing to $$INSTALL_DIR/msgvault"; \
CGO_ENABLED=1 go build -tags "$(BUILD_TAGS)" -ldflags="$(LDFLAGS)" -o "$$INSTALL_DIR/msgvault" ./cmd/msgvault; \
install -m 755 msgvault "$$INSTALL_DIR/msgvault"; \
if [ "$$(go env GOOS)" = linux ]; then install -m 755 msgvault-codex-bridge "$$INSTALL_DIR/msgvault-codex-bridge"; fi; \
fi

# Clean build artifacts
clean:
rm -f msgvault msgvault.exe mimeshootout
rm -f msgvault msgvault.exe msgvault-codex-bridge mimeshootout
rm -rf bin/

# Scale the SQLite suite when both CPU and memory budgets allow it. An explicit
Expand Down
Loading
Loading