Skip to content

Installation

Riffle is an Atlassian Forge app that syncs Confluence pages with a GitHub repository as Markdown files. This guide covers installation, configuration, and connecting GitHub.

  • A Confluence Cloud instance (Riffle does not support Confluence Data Center or Server)
  • A GitHub repository where synced Markdown files will live
  • Space admin permissions in the Confluence space you want to sync
  • A GitHub Personal Access Token with repo scope (or fine-grained token with contents: write)

From the Atlassian Marketplace (coming soon)

Section titled “From the Atlassian Marketplace (coming soon)”

Once listed, you’ll be able to install Riffle directly from the Marketplace.

If you’re running Riffle from source:

Terminal window
# Clone the repo
git clone https://github.com/trusthumankind/riffle.git
cd riffle
# Build the converter
cd packages/converter
npm install
npm run build
# Deploy the Forge app
cd ../forge-app
npm install
forge deploy
# Install on your Confluence site
forge install --site your-site.atlassian.net --product confluence

After installation, Riffle appears in Space Settings → Integrations → Riffle Sync for every space on the site.

  1. Navigate to the Confluence space you want to sync
  2. Go to Space settingsIntegrationsRiffle Sync
  3. Fill in the configuration:
FieldDescriptionExample
GitHub Repositoryowner/repo formattrusthumankind/riffle
Target DirectoryPath in the repo where Markdown files are storeddocs/riffle
GitHub Personal Access TokenA token with repo or contents:write scopeghp_...
Sync EnabledToggle to enable/disable sync for this spaceOn
  1. Click Save Settings
  2. Click Test Connection to verify GitHub access

For bidirectional sync (GitHub → Confluence), you need to set up a GitHub webhook:

  1. In the Riffle settings UI, enter a Webhook Secret (any strong random string) and save it
  2. Copy the Webhook URL displayed in the settings
  3. In GitHub, go to your repository → SettingsWebhooksAdd webhook
  4. Configure:
    • Payload URL: the webhook URL from step 2
    • Content type: application/json
    • Secret: the same string from step 1
    • Events: select “Just the push event”
    • Active: checked
  5. Click Add webhook

GitHub will send a test ping — check that it shows a green checkmark in the webhook delivery log.

  1. Create or edit a page in the synced Confluence space
  2. Check your GitHub repository — a new Markdown file should appear (or an existing one should be updated)
  3. The commit will be authored by Riffle Sync with the tag [riffle-sync] in the message
  1. Edit a Markdown file in the target directory and push to main
  2. Check the corresponding Confluence page — it should be updated
  3. If the Markdown file has no confluence_id in its front matter, a new page will be created

When a new version of Riffle is available:

Terminal window
cd packages/converter
npm install
npm run build
cd ../forge-app
npm install
forge deploy

If the update adds new permission scopes, you’ll also need:

Terminal window
forge install --upgrade
Terminal window
forge uninstall --site your-site.atlassian.net --product confluence

This removes the app from your Confluence site. Synced files in GitHub and pages in Confluence are not affected.