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
+8 -13
View File
@@ -11,19 +11,14 @@ Synapsis is an open-source, federated social network built for the decentralized
Run your personal Synapsis node with a single command:
```bash
# 1. Download and start
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
# 1. Bootstrap the deployment directory
curl -fsSL https://synapsis.social/install.sh | bash
# 2. Edit .env with your domain and secrets (takes 2 minutes)
nano .env
# Use a host-only domain (no scheme), e.g. synapsis.example.com
# 2. Edit /opt/synapsis/.env with your domain and admin email
nano /opt/synapsis/.env
# 3. Start your node
cd /opt/synapsis
docker compose up -d
```
@@ -117,7 +112,7 @@ Want to hack on Synapsis? Here's how to run it locally:
```bash
# 1. Clone the repository
git clone https://github.com/cyph3rasi/synapsis.git
git clone https://github.com/GnosysLabs/Synapsis.git
cd synapsis
# 2. Install dependencies
@@ -128,13 +123,13 @@ cp .env.example .env
# Edit .env with your local database and storage settings
# 4. Set up the database
npx drizzle-kit push
npm run db:push
# 5. Run the development server
npm run dev
```
Visit `http://localhost:3000` — the app will redirect you to `/install` for initial setup.
Visit `http://localhost:3000` and register with an email listed in `ADMIN_EMAILS`. Local setup no longer uses a dedicated `/install` route.
### Tech Stack