metadist/synaplan-nextcloud

▲ 144 stars today★ 254⑂ 26

Synaplan AI integration into nextcloud for RAG powered discussions, translations and summaries. Run your own AI platform next to your nextcloud!

About metadist/synaplan-nextcloud

metadist/synaplan-nextcloud is an open-source project on GitHub, mainly written in PHP. Synaplan AI integration into nextcloud for RAG powered discussions, translations and summaries. Run your own AI platform next to your nextcloud! It currently holds 254 stars and 26 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the Today's Trending board.

GitHub Repository Details

Repository metadist/synaplan-nextcloud · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

Synaplan Integration for Nextcloud

Context menu options

AI-powered document summarization, translation, knowledge base, and research chat — directly in Nextcloud.

Features

Language handling

Personalisation & live feedback

Supported File Types

| Type | Formats | |------|---------| | Text | TXT, Markdown, CSV, HTML, XML, RTF, JSON | | Documents | PDF, DOCX, DOC, ODT | | Spreadsheets | XLSX, XLS, ODS | | Presentations | PPTX, PPT, ODP |

Binary formats (PDF, Office, OpenDocument) are processed via Synaplan's built-in Tika text extraction.

Requirements

Installation

From the Nextcloud App Store (recommended)

1. Go to your Nextcloud instance → Apps 2. Search for Synaplan Integration 3. Click Download and enable

From a Release Tarball

# Download the latest release
wget https://github.com/metadist/synaplan-nextcloud/releases/latest/download/synaplan_integration.tar.gz

Extract into Nextcloud's custom_apps directory

tar -xzf synaplan_integration.tar.gz -C /path/to/nextcloud/custom_apps/

Enable the app

php /path/to/nextcloud/occ app:enable synaplan_integration

From Source (Development)

git clone https://github.com/metadist/synaplan-nextcloud.git
cd synaplan-nextcloud

composer install npm install npm run build

Symlink into Nextcloud

ln -s "$(pwd)" /path/to/nextcloud/custom_apps/synaplan_integration

php /path/to/nextcloud/occ app:enable synaplan_integration

Configuration

1. Go to Admin Settings → Synaplan Integration 2. Enter your Synaplan instance URL (e.g., https://synaplan.example.com) 3. Enter your Synaplan API key 4. Click Test connection to verify

Language & AI behaviour (admin)

Development

composer install          # PHP dependencies
npm install               # JS dependencies

make ci-local # Every CI job except e2e — run before each push make lint # php-cs-fixer, ESLint, Prettier make stan # PHPStan make test # PHPUnit make test-contract # Every call to Synaplan against the pinned Synaplan's OpenAPI spec (Docker) make typecheck # vue-tsc make test-unit-js # Vitest make test-e2e # Playwright journeys (see End-to-end journeys) make build # Production frontend build make help # Show all available commands

npm run dev # Watch mode (auto-rebuild on changes)

Local Nextcloud next to Synaplan (WSL)

Start the Synaplan stack with Keycloak first (docker compose --profile oidc up -d in ../synaplan), then:

make dev-up        # copies docker-compose.dev.yml.example (gitignored) on the first run

The first run builds the frontend when js/ is missing (that directory is not in git). A later make dev-up leaves an existing build alone.

bob and carol (password -dev-pass). Ada has the folders the journeys use; Incoming-DE (edit) and Specs (read) are shared with Bob. (ada-dev-pass) signs in as the local ada. NC_OIDC=0 make dev-reset dev-up installs without it. for the floor (a major version change needs fresh volumes). Synaplan's MailHog (http://localhost:8025). calls Synaplan at http://backend and sends browsers to http://localhost:5173. link (each person connects their existing Synaplan account). Synaplan must have Linked platforms enabled (PLATFORM_LINKS.ENABLED) for link. make dev-down stops the stack and keeps the volumes; make dev-reset deletes them. make dev-occ CMD="user:list", make dev-logs and make dev-shell help while it runs.

End-to-end journeys (Playwright)

The journeys in tests/e2e click through a real Nextcloud next to the Synaplan test stack: connect an account, Summarize, Translate, Chat about this file, Make searchable by AI, save a generated image, disconnect on either side, and accounts created by the administrator. CI runs them on Nextcloud 33 and 35.

npx playwright install chromium   # once
make e2e-up       # Synaplan test stack on :8001 (pinned image, files from ../synaplan), Nextcloud on :8091
make test-e2e     # the journeys, in order, with one browser
make e2e-down     # stop both stacks and delete their data
moves Nextcloud, SYNAPLAN_DIR points at another synaplan checkout. stacks. test container (app_test), not for the Nextcloud plugin: your Synaplan account". backend/.env.test ships a fake Stripe test key (sk_test_fakeKey...) for billing unit tests, which makes Synaplan's PremiumFeatureGate require a paid plan before minting API keys (403 API_PLAN_REQUIRED). Clearing STRIPE_SECRET_KEY switches the Synaplan test container into self-hosted / open-source mode (billing off) so the provisioning journey (05-provision.spec.ts) can create accounts and mint per-user API keys. The Nextcloud app itself has no Stripe integration or keys. and sidebar routes are active during E2E runs. compose file that drops it in E2E_SYNAPLAN_FILES.

Release

Releases come from CI (.github/workflows/release.yml):

1. A pull request sets the version in appinfo/info.xml and package.json and dates its CHANGELOG.md section (## 1.7.0 – 2026-10-20). The workflow's dry run checks that the three agree, packages, and signs with a throwaway key. 2. After the merge, and once All Checks Passed is green on main, tag the merge commit: git tag v1.7.0 && git push origin v1.7.0. 3. The workflow refuses a tag that is not on main or whose CI run failed, and an info.xml the App Store schema rejects (scripts/check-info-xml.sh). It packages, signs, verifies the signature against the certificate the App Store holds for the app, attaches the tarball and its signature to a GitHub release and publishes the release to the App Store.

v1.7.0-rc.1 stops at a draft GitHub release, for a test install before the release. Running the workflow again for a tag reuses the files its release already holds, so the App Store's signature keeps matching. The workflow needs two repository secrets: APP_STORE_SIGNING_KEY (the app's private key) and APP_STORE_TOKEN (an App Store API token of an owner or co-maintainer).

By hand, with the key in ~/.nextcloud/certificates/:

make package              # Build unsigned tarball
make sign                 # Build + sign (requires certificate)
make appstore             # Build, sign, and show upload instructions

License

Apache-2.0 — see LICENSE.

GitHub Stars & Activity

254Stars
26Forks
0Open issues
PHPLanguage

GitHub Popularity

GitHub stars254
Forks26
Open issues0
Primary languagePHP
License-
Stars gained today144
Created-
Last pushed-

Trending History

Weekly boardrank #69 · ▲ 144 stars

Related AI Projects

1

WordPress / mcp-adapter

PHP★ 1,894⑂ 229▲ 3 stars
→
2

obra / superpowers

Shell★ 309,942⑂ 27,571▲ 663 stars
→
3

mattpocock / skills

Shell★ 308,196⑂ 25,934▲ 882 stars
→
4

anthropics / skills

Python★ 185,808⑂ 21,939▲ 756 stars
→
5

DietrichGebert / ponytail

JavaScript★ 181,437⑂ 9,980▲ 621 stars
→
6

f / prompts.chat

HTML★ 175,423⑂ 22,393▲ 213 stars
→
7

msitarzewski / agency-agents

Shell★ 165,662⑂ 26,818▲ 334 stars
→
8

Graphify-Labs / graphify

Python★ 139,947⑂ 13,346▲ 686 stars
→

More AI Rankings