Skip to content

jpcummins/sat.watch

Repository files navigation

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.

sat.watch app dashboard

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/sat.watch
cd sat.watch
go build .
go build -o create-user 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:

./create-user -username your_username -password your_password

Start the server:

./satwatch

Browse to http://localhost:8080

About

Real-time Bitcoin transaction monitoring and notifications.

Resources

License

Stars

Watchers

Forks

Contributors