Files
audiopen-nextcloud/README.md
T
nickandClaude Sonnet 4.6 68be646f37 Add multi-user support via token-based routing and users.json config
Each user gets a unique secret token embedded in their webhook URL
(/webhook/:token). Credentials are loaded from users.json at startup
instead of environment variables, making it easy to add or remove users
without redeploying.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-18 17:27:08 -07:00

1.3 KiB

AudioPen Nextcloud Webhook

A small Node.js webhook service that receives notes from AudioPen and uploads them to a folder in Nextcloud using WebDAV. Supports multiple users, each with their own Nextcloud credentials and a unique webhook token.

When AudioPen sends a webhook request, the service:

  1. Validates the token in the URL
  2. Receives the note content
  3. Creates a timestamped Markdown file
  4. Uploads the file to the configured Nextcloud folder

Example filename:

2026-05-19T22-15-10.123Z-my-note-title.md

Setup

1. Configure users

Copy users.json.example to users.json and fill in credentials for each user:

{
  "abc123secrettoken": {
    "nextcloudUrl": "https://nextcloud.example.com",
    "username": "alice",
    "password": "alice-app-password",
    "folder": "AudioPen"
  }
}

Each key is a secret token that identifies a user. Generate one with:

node -e "console.log(crypto.randomUUID())"

2. Configure the server

Optionally create a .env file to set the port or a custom path to users.json:

PORT=3000
USERS_FILE=users.json

3. Run

npm install
node server.js

4. Configure AudioPen

In AudioPen's webhook settings, set the URL to:

https://your-server/webhook/<token>

Each user gets their own URL containing their unique token.