Install in 10 minutes

Load the Docker image, copy config.yml, start with docker compose, and set credentials.

From your install pack

  1. Unzip pulse-install-pack.zip
  2. Load the image: docker load < pulse-1.0.0-image.tar.gz
  3. Copy and edit config:
    • Jira: cp config.jira.yml.example config.yml
    • ClickUp: cp config.yml.example config.yml
  4. Start: docker compose up -d
  5. Open http://localhost:8080 (or your proxy URL)

See INSTALL.md in the same folder for detail.

Credentials

Set in config.yml or environment (*_FILE → env → yaml):

Pulse supports three patterns (full detail in install.md, same folder in the install pack):

OptionWhere tokens liveTypical use
aconfig.yml (mount read-only)Pilots, small teams
b.env on the hostCommon self-hosted Docker
cMounted secret files (JIRA_TOKEN_FILE, etc.)DevOps /K8s / Swarm /vault agents

Option C (DevOps): set env var to file paths, tokens never in Yaml or process env:

environment:
   JIRA_TOKEN_FILE: /run/secrets/jira_token
volumes:
   - ./secrets/jira_token:/run/secrets/jira_token:ro

Precedence *_FILE → environment variable → config.yml.

SettingEnv var*_FILE variantNotes/Example
Jira URLJIRA_URLJIRA_URL_FILEhttps://yourcompany.atlassian.net
Jira emailJIRA_EMAILJIRA_EMAIL_FILEUser email (ideally a bot and not a personal email)
Jira tokenJIRA_TOKENJIRA_TOKEN_FILEAPI token from Atlassian (ideally a bot and not a personal token)
ClickUp tokenCLICKUP_TOKENCLICKUP_TOKEN_FILEPersonal API token (pk_…, ideally a bot and not a personal token)
ClickUp Team IDCLICKUP_WORKSPACECLICKUP_WORKSPACE_FILEValidated via GET /team/{id} on first sync

Leave jira.token: "" / clickup.token: "" in config.yml when using B or C.

After config.yml changes: docker compose restart

After .env or secret file changes: docker compose up -d --force-recreate (see Docker operations)