-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Feature Description
Add official ARM64/v8 architecture support for the SurfSense All-in-One Docker image. This involves updating the build pipeline to produce multi-platform images so users on ARM-based hardware (NAS, Apple Silicon, Raspberry Pi) can run the application without instruction set crashes [web:19][web:24].
Target Deployment
- SurfSense Cloud (hosted version)
- Self-hosted version
- Both
Problem Statement
I am frustrated when attempting to deploy SurfSense on my Asustor NAS. While the container pulls and begins the orchestration of services, the backend fails to initialize. Specifically, the database engine crashes with a Signal 4: Illegal instruction error the moment it attempts to run CREATE EXTENSION IF NOT EXISTS vector [conversation_history:1]. This makes the "All-in-One" solution unusable on ARM-based NAS hardware due to a lack of compatible pgvector binaries [web:17].
Proposed Solution
Update the project's CI/CD workflow (GitHub Actions) to utilize Docker Buildx. The Dockerfile should be audited to ensure that dependencies, particularly pgvector and Docling, are compiled or installed using architecture-agnostic methods or specific ARM64 wheels/binaries [web:30].
Alternative Solutions
- Manual Compilation: Users could build the image locally, but this defeats the purpose of an "All-in-One" container.
- QEMU Emulation: Running the AMD64 image via emulation on ARM results in severe performance degradation [web:21].
Benefits
- Wider Hardware Compatibility: Allows ARM64 users (Apple M-Series, NAS owners, AWS Graviton) to host SurfSense [web:39].
- Efficiency: ARM-based servers provide better performance-per-watt for 24/7 self-hosted homelabs.
Use Case Examples
- NAS Hosting: A user with an Asustor or Synology ARM-based NAS wants to run SurfSense as a private research hub.
- Apple Silicon Development: A developer wants to run the full stack locally on a MacBook M2/M3 for testing.
Additional Context
Error logs from Asustor NAS environment:
LOG: server process (PID 106) was terminated by signal 4: Illegal instruction[2]
DETAIL: Failed process was running: CREATE EXTENSION IF NOT EXISTS vector[2]
ERROR: Application startup failed. Exiting.