Nextcloud Talk Desktop client based on Nextcloud Talk web application bundling β¨
- Nextcloud Server version 27 or higher.
- Nextcloud Talk version 17 or higher.
- Currently not supported:
- Works with limitations:
- File Viewer β only images and videos
Full multi-account currently is not currently supported.
However, using portable zip
distribution, you can have several Nextcloud Talk instances run simultaneously. Just rename the executable from default Nextcloud Talk
to a custom name. For example:
/path/to/apps/
βββ home-apps/
β βββ Nextcloud Talk/
β βββ ...
β βββ Nextcloud Talk (Home).exe
β βββ ...
βββ work-apps/
βββ Nextcloud Talk/
βββ ...
βββ Nextcloud Talk (Work).exe
βββ ...
# Install dependencies
npm ci
# Make .env file
cp .env.example .env
# Don't forget to configure ENV variables!
Nextcloud Talk Desktop requires Nextcloud Talk source code.
Clone nextcloud/spreed
and install dependencies:
# Clone in the repository root
git clone https://github.com/nextcloud/spreed
# Install dependencies
cd ./spreed/
npm ci
# Don't forget to return back
cd ../
Set TALK_PATH
ENV variable or edit .env
file:
TALK_PATH=/path/to/nextcloud-dev/apps/spreed/
npm run dev
# π₯οΈ Current platform and architecture
npm run build
# π§ Linux (x64)
npm run build:linux
# π macOS (universal)
npm run build:mac
# π macOS (separate x64 and arm64)
npm run build:mac:x64
npm run build:mac:arm64
# πͺ Windows (win32-x64)
npm run build:windows
Notes:
- General recommendation is to always build binaries on the same platform
- Building Windows binaries on Linux/Mac requires Wine
- Building Mac binaries on Windows is not supported
- Building Linux binaries on Windows is not supported for some Linux distributions
After changing source icons, to generate icons in different sizes and formats, run:
npm run generate-icons
Talk frontend depends on the global Nextcloud server styles. To manually get them run:
# node ./scripts/fetch-server-styles.mjs <VERSION>, for example
node ./scripts/fetch-server-styles.mjs stable29
# π§ Linux (x64)
npm run package:linux
# π macOS (universal)
npm run package:mac
# π macOS (separate x64 and arm64)
npm run package:mac:arm64
npm run package:mac:x64
# πͺ Windows (win32-x64)
npm run package:windows
- Create
release/vX.Y.Z
branch. - Update
CHANGELOG.md
.- If a built-in Talk version is to be changed - add a note:
### Build-in Talk update Built-in Talk in binaries is updated to $(VERSION) Talk changelog: https://github.com/nextcloud/spreed/blob/master/CHANGELOG.md
- If a built-in Talk version is to be changed - add a note:
- Update
package.json
:- For minor update:
npm version minor
- For patch update:
npm version patch
- For minor update:
- Create a release PR.
- Merge the release PR.
- Create and push a tag:
git tag -a v$(version) -m "Tagging the $(version) release." git push origin v$(version) git push releases v$(version)
- Draft a new release on GitHub in nextcloud-releases/talk-desktop
- Add release title:
v$(version) - Talk v$(talkVersion)
, e.g.v0.10.0 - Talk v17.1.0-rc.1
- Choose a tag
- Add the respective
CHANGELOG.md
section - Use the Generate release notes button and wrap put the result into
## What's Changed <details> <!-- Generated content --> </details>
- Add release title:
- Draft a new release on GitHub in nextcloud/talk-desktop
- Copy everything from the previous step
- Add:
> π₯ Download Binaries on https://github.com/nextcloud-releases/talk-desktop/releases/tag/v$(version)
- Package release on each platform separately:
npm run release:package
- Upload packages to the GitHub Releases on nextcloud-releases/talk-desktop
- Publish both releases on GitHub Releases
See: https://github.com/nextcloud/spreed#contribution-guidelines