goipay

module
v0.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 23, 2025 License: MIT

README

Logo

Build Status Version Docker Pulls License

Description

A lightweight crypto payment processor microservice, written in Golang, designed for creating and processing cryptocurrency invoices via gRPC.

Supported Crypto

  • XMR
  • BTC
  • LTC
  • ETH (USDT, USDC, DAI, WBTC, UNI, LINK, AAVE, CRV, MATIC, SHIB, BNB, ATOM, ARB)

Getting Started

Prerequisites

  • Go ≥ 1.22
  • PostgreSQL ≥ 12

Installation

Docker
  • Clone the repo
    git clone https://github.com/goipay/goipay.git
    
  • Inside the root dir create and populate .env file on the base of .env.example file
    SERVER_HOST=0.0.0.0
    SERVER_PORT=3000
    
    SERVER_TLS_MODE=tls
    SERVER_TLS_CA=/app/cert/server/ca.crt
    SERVER_TLS_CERT=/app/cert/server/server.crt
    SERVER_TLS_KEY=/app/cert/server/server.key
    
    # As for now, only PostgreSQL is supported
    DATABASE_HOST=db
    DATABASE_PORT=5432
    DATABASE_USER=postgres
    DATABASE_PASS=postgres
    DATABASE_NAME=goipay_db
    
    XMR_DAEMON_URL=http://node.monerodevs.org:38089
    XMR_DAEMON_USER=
    XMR_DAEMON_PASS=
    
    BTC_DAEMON_URL=http://localhost:38332
    BTC_DAEMON_USER=user
    BTC_DAEMON_PASS=pass
    
    LTC_DAEMON_URL=http://localhost:18444
    LTC_DAEMON_USER=user
    LTC_DAEMON_PASS=pass
    
    ETH_DAEMON_URL=https://ethereum.publicnode.com
    
  • Inside the root dir you can find an example docker-compose.yml file. For testing purposes can be run without editing.
    docker compose up
    
Native
  • Clone the repo
    git clone https://github.com/goipay/goipay.git
    
  • Build using make
    cd goipay && make build
    
  • Under the bin folder you will find server binary
    ./bin/server -h
    
    Usage of ./bin/server:
      -client-ca string
            Comma-separated list of paths to client certificate authority files (for mTLS)
      -config string
            Path to the config file (default "config.yml")
      -log-level string
            Defines the logging level
      -reflection
            Enables gRPC server reflection
    

Usage

Use cases

GoiPay is designed as a microservice that can be integrated into larger projects. If you need a simple, lightweight solution for just generating and processing crypto invoices, GoiPay is the perfect choice.

Directories

Path Synopsis
cmd
internal
app
db
dto
db

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL