n8n-nodes-signal-cli-rest-api
v0.8.1
Published
Signal Node for n8n using signal-cli-rest-api
Maintainers
Readme
n8n Signal Node
📋 Table of Contents
- Features
- Prerequisites
- Installation
- Configuration
- Usage
- Operations
- Contributing
- Support the Developer
- License
🚀 Features
- Send Messages: Send text messages to individuals or groups
- Send Media: Send images, files, and attachments
- Group Management: Manage Signal groups
- Message Reception: Trigger workflows based on incoming messages
- Secure Communication: Leverages Signal's end-to-end encryption
- REST API Integration: Uses signal-cli-rest-api for reliable communication
- JSON-RPC Support: Optimized for performance with JSON-RPC mode
🛠 Prerequisites
Before using this n8n Signal node, you need to set up the Signal CLI REST API service:
1. Signal CLI REST API Setup
Create a docker-compose.yml file with the following configuration:
version: '3'
services:
signal-cli-rest-api:
image: bbernhard/signal-cli-rest-api:latest # Or specific version, e.g., v0.10.5
container_name: signal-cli-rest-api
restart: unless-stopped # Auto-restart except manual stop
ports:
- "8085:8080" # Change 8085 to available port if needed (e.g., 8003:8080)
volumes:
- /mnt/your-pool/signal-data:/home/.local/share/signal-cli # Replace /mnt/your-pool with your path to signal data
# Additionally, for config: - /mnt/your-pool/signal-config:/etc/signal-cli-rest-api (if custom settings)
environment:
- MODE=json-rpc # Recommended for speed and resolves group reception issues
- AUTHENTICATION_API_TOKEN=your-secret-token # Optional, for basic auth (save this token for n8n credentials)
- MAX_DB_CONNECTIONS=10 # Optimize as needed2. Signal Account Registration
Start the Docker container:
docker-compose up -dRegister your phone number:
curl -X POST -H "Content-Type: application/json" \ -d '{"number": "+1234567890"}' \ http://localhost:8085/v1/register/+1234567890Verify with the received SMS code:
curl -X POST -H "Content-Type: application/json" \ -d '{"number": "+1234567890", "captcha": "signal-hcaptcha-token"}' \ http://localhost:8085/v1/register/+1234567890/verify/123456Alternative: Link with existing Signal app using QR code:
http://localhost:8085/v1/qrcodelink?device_name=n8n-signal
📦 Installation
Method 1: n8n Community Package Manager
- In your n8n instance, go to Settings → Community Nodes
- Click Install a community node
- Enter the package name:
n8n-nodes-signal-cli-rest-api - Click Install
Method 2: Manual Installation
- Navigate to your n8n installation directory
- Install the package:
npm install n8n-nodes-signal-cli-rest-api - Restart n8n
Method 3: Development Setup
Clone this repository:
git clone https://github.com/zblaze/n8n-nodes-signal.git cd n8n-nodes-signalInstall dependencies:
npm installBuild the node:
npm run buildLink to your n8n installation:
npm link cd /path/to/n8n npm link n8n-nodes-signal
⚙️ Configuration
Credentials Setup
- In n8n, create new credentials for Signal API
- Configure the following fields:
- API URL:
http://localhost:8085(or your signal-cli-rest-api URL) - Phone Number: Your registered Signal phone number (e.g.,
+1234567890) - API Token: (Optional) The authentication token you set in docker-compose
- Mode:
json-rpc(recommended for better performance)
- API URL:
Node Configuration
The Signal node supports multiple operations and can be configured through the n8n interface:
- Operation: Choose from Send Message, Send Media, Create Group, etc.
- Recipient: Phone number or group ID
- Message: Text content to send
- Attachments: Files to send with the message
📚 Usage
Basic Message Sending
- Add the Signal node to your workflow
- Select Send Message operation
- Configure recipient and message content
- Connect your Signal credentials
- Execute the workflow
Receiving Messages (Trigger)
- Add the Signal Trigger node to start your workflow
- Configure the phone number to monitor
- Set up webhook or polling mechanism
- Connect subsequent nodes to process incoming messages
🔧 Operations
Trigger Operations
- Receive Message: Receive text messages from Send text messages to contacts or groups
Send Operations
- Send Message: Send text messages to contacts or groups
- Send Media: Send images, documents, and other files
- Send Reaction: React to messages with emoji
- Remove Reaction: Remoce reaction from the message
Group Operations
- Update Group: Modify group name
- List Groups: Get all groups for the account
Debug Mode
Enable debug logging in your docker-compose.yml:
environment:
- MODE=json-rpc
- LOG_LEVEL=debug
- AUTHENTICATION_API_TOKEN=your-secret-tokenHealth Check
Test your signal-cli-rest-api setup:
# Health check
curl http://localhost:8085/v1/health
# List registered numbers
curl http://localhost:8085/v1/accounts🤝 Contributing
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Guidelines
- Follow TypeScript best practices
- Add tests for new features
- Update documentation
- Follow n8n node development standards
- Ensure compatibility with latest n8n version
Code Style
# Run linter
npm run lint
# Run tests
npm run test
# Build for production
npm run build💖 Support the Developer
If you find this node helpful, consider supporting the developer:
Donation Links:
- ☕ Ko-fi - Support with coffee
- 💰 Coinbase Commerce - Cryptocurrency donations
Your support helps maintain and improve this project! 🙏
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
