sat.watch
sat.watch is a Go application that continuously monitors the Bitcoin blockchain for activity (funds sent or received) on user-specified addresses and will send a notification if a transaction is detected.
This is the open-source, self-hosted version of sat.watch. If you prefer a hosted solution with additional features, a commercial version is available at https://sat.watch.

License
This project is licensed under the MIT License - see the LICENSE file for details.
Security
If you discover a security vulnerability within sat.watch, please send an email to the address listed at https://sat.watch/contact. You can find my PGP key there as well for secure communication. All security vulnerabilities will be promptly addressed.
Dependencies
Installation
The recommended way to run sat.watch is using Docker, which provides a complete environment including Bitcoin Core and an Electrum server. For detailed Docker setup instructions, see the Docker README.
Alternative manual installation steps:
git clone https://github.com/jpcummins/satwatch
cd satwatch
go build .
go build -o user-create cmd/user/create/main.go
Configuration
sat.watch is configured using environment variables. You can find a minimal example in docker/.env.example. For enhanced security, it's recommended to encrypt your environment variables using dotenvx. Here's an overview of the available configuration options:
Core Settings
ENVIRONMENT: Set to "development" (default) or "production"
DATABASE_URL: PostgreSQL connection string
URL: Base URL used for links in email notifications (e.g., 'http://localhost:8080' for development)
Electrum Server Settings
ELECTRUM_HOST: Hostname of your Electrum server
ELECTRUM_PORT: SSL port of your Electrum server (typically 50002)
Email Settings
SMTP_HOST: SMTP server hostname
SMTP_PORT: SMTP server port
SMTP_USER: SMTP username
SMTP_PASSWORD: SMTP password
Bitcoin Core Setting
RPCAUTH: Generated auth string for Bitcoin Core RPC
RPCUSER: Bitcoin Core RPC username
RPCPASSWORD: Bitcoin Core RPC password
Security
SECRET: Used to encrypt session cookies
Usage
Docker (Recommended):
The recommended way to run sat.watch is using Docker, which provides a complete environment including Bitcoin Core and an Electrum server. For detailed Docker setup instructions, see the Docker README.
Manual Installation:
Create a new user account:
./user-create -username your_username -password your_password
Start the server:
./satwatch
Browse to http://localhost:8080