Add installer, CI, ARM build and test updates

Introduce a one‑line Docker installer and environment examples, add CI and docker validation workflows, and update docs and tests.

Key changes:
- Add docker/install.sh installer that bootstraps /opt/synapsis, downloads compose files, optionally installs Docker, and generates secrets.
- Add top-level .env.example and docker/.env.example entries for shared storage and local development.
- Add GitHub Actions CI (ci.yml) with type checks, targeted vitest runs, build and docker-compose validation.
- Update existing docker workflow to set up QEMU and build multi‑arch images (amd64, arm64).
- Update README and docker/README to use the installer, point to the new repo, adjust local setup instructions, and note shared S3 env vars.
- Update docker-compose comments and include shared S3 env variables and defaults.
- Update .gitignore to ignore site-work mirrors.
- Tests: expand supported bot source types (add brave_news, youtube), increase POST_MAX_LENGTH from 400 to 600, add minimal user handle in mention handler tests, and add mocks & test adjustments in scheduler tests to keep them unit-scoped.

These changes simplify installation, add CI coverage (including Docker config validation), enable multi‑arch builds, and align tests with expanded bot source/validation behavior.
This commit is contained in:
cyph3rasi
2026-03-07 16:11:37 -08:00
parent a686db38b0
commit ae2c34df6c
14 changed files with 350 additions and 48 deletions
+10 -10
View File
@@ -2,15 +2,10 @@
# Uses pre-built image from GitHub Container Registry
#
# Quick Start:
# 1. Download files to a new directory:
# mkdir -p /opt/synapsis && cd /opt/synapsis
# curl -O https://raw.githubusercontent.com/cyph3rasi/synapsis/main/docker-compose.yml
# curl -O https://raw.githubusercontent.com/cyph3rasi/synapsis/main/docker/Caddyfile
# curl -O https://raw.githubusercontent.com/cyph3rasi/synapsis/main/docker/caddy-entrypoint.sh
# curl -O https://raw.githubusercontent.com/cyph3rasi/synapsis/main/docker/.env.example
# cp .env.example .env
# 2. Configure (edit with your domain and secrets): nano .env
# 3. Start your node: docker compose up -d
# 1. Bootstrap the deployment directory:
# curl -fsSL https://synapsis.social/install.sh | bash
# 2. Configure (edit with your domain and admin email): nano /opt/synapsis/.env
# 3. Start your node: cd /opt/synapsis && docker compose up -d
#
# Services:
# - Synapsis Next.js application (from GHCR)
@@ -75,7 +70,12 @@ services:
# Port configuration (auto or specific port)
PORT: ${PORT:-3000}
# S3 Storage public URL (for custom S3 providers like R2, B2, Contabo)
# Shared S3 storage configuration
STORAGE_ENDPOINT: ${STORAGE_ENDPOINT:-}
STORAGE_REGION: ${STORAGE_REGION:-us-east-1}
STORAGE_BUCKET: ${STORAGE_BUCKET:-}
STORAGE_ACCESS_KEY: ${STORAGE_ACCESS_KEY:-}
STORAGE_SECRET_KEY: ${STORAGE_SECRET_KEY:-}
STORAGE_PUBLIC_BASE_URL: ${STORAGE_PUBLIC_BASE_URL:-}
# Node environment