Goto navigation

grauphel - tomboy REST server

nextCloud application implementing the Tomboy REST API for syncing notes.

Pretty stable.


What works

  • Note synchronization
  • OAuth token management interface
  • Database management interface (reset)
  • Viewing notes
  • Searching notes
  • Downloading notes as HTML and reStructuredText

What is missing

  • Web interface to edit notes. I will probably not implement this. Patches welcome :-)

Supported clients

Known working versions

grauphel 0.2.1 is known to work with:

  • Tomboy 1.15.2, Linux
  • Tomboy 1.15.1, Windows
  • Tomdroid 0.7.5, Android 4.4.1

See the HowTo document for client-specific configuration instructions.




grauphel needs to be activated for all users. It will not work with the "enable only for specific groups" setting.

App store installation

  1. Log into nextcloud as administrator
  2. Goto "Apps"
  3. Enable experimental apps in the settings
  4. Click "Productivity"
  5. Look for "grauphel - Tomboy sync server"
  6. Click "Activate"

Manual installation

  1. SSH onto your web server

  2. Navigate to the nextcloud apps directory, often in /var/www/nextcloud/apps

  3. Download the latest release from and extract it. For example:

    $ wget
    $ tar xjvf grauphel-0.6.7.tar.gz
    $ rm grauphel-0.6.7.tar.gz

    You do have a directory /var/www/nextcloud/apps/grauphel now.

  4. Using your browser, login as administrator into nextCloud and click the "Apps" icon in the main menu ("+" icon).

  5. Click on "Grauphel: Tomboy note server" and then on the "Enable" button.

  6. In the main menu, click the "Tomboy notes" icon.

It may be that grauphel now shows you an error message:

PHP extension "oauth" is required

You have to install the PHP PECL oauth extension now. On Debian 7 or higher, do the following:

$ apt install php-oauth
$ php5enmod oauth
$ /etc/init.d/apache2 restart

Reload the nextCloud page in your browser now.


oauth-1.2.3 is only needed on PHP 5.x For PHP 7 simply use pecl install oauth.


Download the latest release:

  • 0.6.7, 2018-01-29

See grauphel downloads page for all released versions.

Development hints

  • JSON coming from Tomboy: Title is html-escaped already (e.g. > is >). We store it that way in the database, so there is no need to escape the output.
  • latest-sync-revision sent from Tomboy during PUT sync is already incremented by 1.

Releasing grauphel

To release a new version, do the following:

  1. Increase version number in appinfo/version and appinfo/info.xml.

  2. Validate appinfo/info.xml:

    $ xmllint --noout --schema tools/info.xsd appinfo/info.xml
  3. Validate appinfo/database.xml:

    $ xmllint --noout --schema tools/database.xsd appinfo/database.xml
  4. Fill the ChangeLog file with the changes since the last release, mention the new version number.

  5. Update README.rst and increase the version number

  6. Create the grauphel release file with:

    $ phing

    The file will be in dist/

  7. Test the release on a server

  8. Tag the release in git

  9. Upload the release to with:

    $ cd ~/Dev/html/
    $ ./scripts/
  10. Upload the new release on


    $ openssl dgst -sha512 -sign ~/.nextcloud/certificates/grauphel.key dist/grauphel-0.6.7.tar.gz | openssl base64
File: grauphel.htm | last update: 2018-03-17 09:12:14 Valid XHTML Valid CSS