Hardware requirements¶
Supported architectures¶
Starting with v1.3.0-ce, CE ships native binaries for Linux and macOS on every release. Windows users run CE via the Docker image or WSL 2.
| Architecture | Triple | Tarball |
|---|---|---|
| Linux x86_64 | x86_64-unknown-linux-gnu |
synapcores-ce-VER-linux-x86_64.tar.gz |
| Linux aarch64 | aarch64-unknown-linux-gnu |
synapcores-ce-VER-linux-aarch64.tar.gz |
| macOS x86_64 (Intel) | x86_64-apple-darwin |
synapcores-ce-VER-darwin-x86_64.tar.gz |
| macOS aarch64 (Apple Silicon) | aarch64-apple-darwin |
synapcores-ce-VER-darwin-aarch64.tar.gz |
Supported Linux distributions¶
The CE binary is dynamically linked against system FFmpeg + Tesseract +
Leptonica + FreeType + Fontconfig. The bootstrap installer
(curl -fsSL https://get.synapcores.com | sh) detects your distro and
selects the matching tarball variant (FFmpeg 4 SONAMEs for 22.04 /
Debian 12; FFmpeg 6 SONAMEs for 24.04 / Debian 13). On macOS, the
install-ce.sh equivalent is the user's responsibility — the bootstrap
doesn't yet auto-set up Homebrew. See macos.md for the
manual brew steps.
That gives the following distro matrix:
| Distro | Status | Notes |
|---|---|---|
| Ubuntu 22.04 LTS | ✅ Supported | Native binary, FFmpeg 4 ABI |
| Debian 12 (Bookworm) | ✅ Supported | Native binary, FFmpeg 4 ABI |
| Ubuntu 24.04 LTS | ✅ Supported | Native binary, FFmpeg 6 ABI |
| Debian 13 (Trixie) | ✅ Supported | Native binary, FFmpeg 6 ABI |
| macOS 13+ (Intel) | ✅ Supported | Native binary, Homebrew FFmpeg 7+ |
| macOS 14+ (Apple Silicon) | ✅ Supported | Native binary, Homebrew FFmpeg 7+ |
| Ubuntu 20.04 LTS | ❌ Too old | glibc 2.31 < 2.35; binary won't link even with FFmpeg 4 installed. |
| Debian 11 (Bullseye) | ❌ Too old | glibc 2.31. |
| RHEL 9 / Rocky 9 / Alma 9 | ⚠️ Untested | glibc 2.34. May work; runtime deps via dnf install ffmpeg-libs tesseract leptonica freetype fontconfig. Please report success/failure. |
| RHEL 8 / Rocky 8 | ❌ Too old | glibc 2.28. |
| CentOS 7 | ❌ Too old | glibc 2.17. End-of-life — please upgrade. |
| Amazon Linux 2023 | ⚠️ Untested | glibc 2.34. Same situation as RHEL 9. |
| Amazon Linux 2 | ❌ Too old | glibc 2.26. |
| Alpine Linux | ❌ Not supported | musl libc, not glibc. Use a glibc-based distro or Docker. |
| Windows | ❌ Not yet | Run via WSL 2 with Ubuntu 22.04. |
When in doubt, use the Docker image — it bundles all the right runtime libraries and works on any Linux distro with Docker installed:
docker run -p 8080:8080 \
-v synapcores-data:/var/lib/synapcores \
-e AIDB_JWT_SECRET="$(openssl rand -base64 32)" \
ghcr.io/synapcores/community:latest
Hardware sizing¶
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores, x86_64-v2 | 4+ cores, x86_64-v3 (AVX2) |
| RAM | 4 GB | 8 GB+ (LLM inference needs headroom) |
| Disk | 10 GB free in the data dir | 50+ GB SSD (vector indexes are I/O-heavy) |
| File descriptors | ulimit -n ≥ 4096 |
65 536 (the systemd unit sets this) |
| Network | TCP 8080 (HTTP) + 8443 (TLS) free |
Same |
| GPU | Not required | Optional — improves LLM inference throughput; requires source build |
The CE binary runs out of the box on a small VM (4 GB / 2 vCPU). Throughput on big workloads is bounded by RAM (HNSW vector indexes are RAM-resident) and AVX2 availability (llama-cpp inference is much slower without it).
Runtime dependencies¶
The bare-metal install path runs install-ce.sh from the release
tarball. That script calls the bootstrap pre-flight check and then
auto-installs the runtime deps appropriate for your distro.
If you skip install-ce.sh (e.g., SYNAPCORES_BINARY_ONLY=1 or your
own provisioning system), install these packages manually:
Ubuntu 22.04 / Debian 12¶
sudo apt-get update
sudo apt-get install -y \
libavutil56 libavformat58 libavcodec58 libavfilter7 libavdevice58 \
libswresample3 libswscale5 \
libtesseract4 libleptonica5 \
libfreetype6 libfontconfig1 \
ca-certificates curl
RHEL 9 / Rocky 9 / Alma 9 (untested)¶
sudo dnf install -y epel-release # FFmpeg lives in the RPM Fusion or EPEL repos
sudo dnf install -y \
ffmpeg-libs tesseract leptonica \
freetype fontconfig \
ca-certificates curl
If this works for you, please open an issue to confirm the package list — RHEL-family distros are currently untested and we'd like to formalize support.
What the installer checks¶
When you run curl -fsSL https://get.synapcores.com | sh, the bootstrap
verifies before downloading anything:
- OS is Linux (errors with a Docker hint on macOS, errors on anything else)
- Architecture is
x86_64oraarch64 - Distro is in the supported list above (warns and exits early if not)
- glibc ≥ 2.35
After download, the install-ce.sh system installer additionally:
- Verifies the tarball's SHA-256 against the published checksum
- Verifies the binary self-reports as Community
- Installs runtime dependencies via apt-get (Ubuntu 22.04 / Debian 12 path)
- Creates the
synapcoressystem user - Lays out
/opt/synapcores/{synapcores,aidb_data}and/etc/synapcores/ - Drops a hardened systemd unit (
NoNewPrivileges,ProtectSystem=strict,LimitNOFILE=65536)
What the installer does not check (your responsibility):
- RAM headroom
- Disk space at the data dir
- Whether
:8080/:8443are already in use - AVX2 availability (llama-cpp will work without it but is slower)
Local LLM inference¶
CE ships with built-in local LLM inference via the embedded
llama-cpp Rust binding. The
llm-inference Cargo feature is on by default — there is nothing extra
to install for AI chat, NL2SQL, or embedding generation to work. CE uses
quantized GGUF models loaded in-process.
No GPU required. The published CE binaries are CPU-only — no CUDA, Metal, Vulkan, or OpenCL backends are linked in.
Performance bands you can expect on a 7B-parameter Q4_K_M model:
| Hardware | Tokens/sec |
|---|---|
| Apple Silicon M1/M2/M3/M4 (Docker) | 30–80 |
| Modern x86 with AVX2 (Zen 3+, Intel 11th gen+) | 5–15 |
| Older x86 without AVX2 | 1–3 (painful for chat) |
| Linux ARM (Graviton, Pi 5) | 3–8 |
For embedding-only workloads (semantic search, vector indexing) the numbers are dramatically better — 384/768-dim models run in tens of milliseconds even on a Pi.
If you need GPU-accelerated inference (e.g. a 70B model in real time),
build SynapCores from source with --features llama-cpp/cuda (or
metal, vulkan). Pre-built GPU binaries are not distributed because
the cross-product of CUDA versions and driver versions is unmanageable
across distros.