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.
Prerequisites
Section titled “Prerequisites”- 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
reposcope (or fine-grained token withcontents: write)
Step 1: Install the Forge App
Section titled “Step 1: Install the Forge App”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.
From source (development)
Section titled “From source (development)”If you’re running Riffle from source:
# Clone the repogit clone https://github.com/trusthumankind/riffle.gitcd riffle
# Build the convertercd packages/converternpm installnpm run build
# Deploy the Forge appcd ../forge-appnpm installforge deploy
# Install on your Confluence siteforge install --site your-site.atlassian.net --product confluenceAfter installation, Riffle appears in Space Settings → Integrations → Riffle Sync for every space on the site.
Step 2: Configure a Space
Section titled “Step 2: Configure a Space”- Navigate to the Confluence space you want to sync
- Go to Space settings → Integrations → Riffle Sync
- Fill in the configuration:
| Field | Description | Example |
|---|---|---|
| GitHub Repository | owner/repo format | trusthumankind/riffle |
| Target Directory | Path in the repo where Markdown files are stored | docs/riffle |
| GitHub Personal Access Token | A token with repo or contents:write scope | ghp_... |
| Sync Enabled | Toggle to enable/disable sync for this space | On |
- Click Save Settings
- Click Test Connection to verify GitHub access
Step 3: Connect GitHub Webhooks
Section titled “Step 3: Connect GitHub Webhooks”For bidirectional sync (GitHub → Confluence), you need to set up a GitHub webhook:
- In the Riffle settings UI, enter a Webhook Secret (any strong random string) and save it
- Copy the Webhook URL displayed in the settings
- In GitHub, go to your repository → Settings → Webhooks → Add webhook
- Configure:
- Payload URL: the webhook URL from step 2
- Content type:
application/json - Secret: the same string from step 1
- Events: select “Just the
pushevent” - Active: checked
- Click Add webhook
GitHub will send a test ping — check that it shows a green checkmark in the webhook delivery log.
Step 4: Verify
Section titled “Step 4: Verify”Confluence → GitHub
Section titled “Confluence → GitHub”- Create or edit a page in the synced Confluence space
- Check your GitHub repository — a new Markdown file should appear (or an existing one should be updated)
- The commit will be authored by Riffle Sync with the tag
[riffle-sync]in the message
GitHub → Confluence
Section titled “GitHub → Confluence”- Edit a Markdown file in the target directory and push to
main - Check the corresponding Confluence page — it should be updated
- If the Markdown file has no
confluence_idin its front matter, a new page will be created
Upgrading
Section titled “Upgrading”When a new version of Riffle is available:
cd packages/converternpm installnpm run buildcd ../forge-appnpm installforge deployIf the update adds new permission scopes, you’ll also need:
forge install --upgradeUninstalling
Section titled “Uninstalling”forge uninstall --site your-site.atlassian.net --product confluenceThis removes the app from your Confluence site. Synced files in GitHub and pages in Confluence are not affected.