/xmrchat

Message and Tip with Monero

Primary LanguageTypeScriptApache License 2.0Apache-2.0


XMRChat
XMRChat

A Complete SaaS for Online Tipping Solution on Monero Cryptocurrency Network (XMR).

Overview

XMRChat is a tip-for-chat application. Users can set up a page and have others send chat messages in exchange for XMR. The application is built with a focus on privacy and security.

Table of Contents ๐Ÿคธ

Business Strategy: Payment

The service uses a one-time payment strategy. During the deployment setup process, you will need to provide your Monero wallet address and set the service price. After clients register, they will configure their page by specifying details such as name and unique URL path. Once the service price is paid, their page is now public, and they can share their page links with their audience to receive tips.

  • Server: Contains the backend code.

    • db: Contains the database connection and migration files.
    • routes: Contains the route handlers.
    • schemas: Contains the route schemas definitions for validation.
    • services: Contains the service classes.
    • types: Contains type definitions.
    • utils: Contains utility functions.
    • env.ts: Contains the environment variables and their default values.
    • index.ts: The entrypoint file for the backend.
  • Client: Contains the frontend code.

  • Monero: Contains Monero network services (Monero Project & Monero-LWS).

  • Traefik: Contains Traefik setups

First of all you must create network that containers communicate over it.

docker network create traefik

then setup the env

cd traefik
cp .env.example .env

Now change the .env with yours and run the container.

Warning

The password must be Hashed in the env and also if you add that in compose file the "$" characters must be doubled to not recognized as variable by docker engine.

docker compose up

You can use Make file by below command in Monero directory to get and config Monero related repositories.

cp monero
make monero-setup

or:

cp monero
git clone https://github.com/monero-project/monero.git
git clone https://github.com/vtnerd/monero-lws/tree/release-v0.3_0.18
cp Dockerfile.monero ./monero/Dockerfile
cp Dockerfile.lws ./monero-lws/Dockerfile

Run the container :

docker compose up -d

Because the Monero daemon must sync with the network, it may take a long time. You can monitor this process by checking the logs:

docker compose logs -f

After it is synced and ready, go next.

cd server
cp .env.example

Change .env file with yours.

docker compose up -d
cd client
cp .env.example

Change .env file with yours. and also change the env at the end of "Dockerfile" file.

docker compose up -d

Notes

See NOTES.md for additional notes and information about the technical details of the project.

License

This project is licensed under the Apache License 2.0. For the full license text, please see the LICENSE file in the root of this repository.

Notice

A NOTICE file has been included in the root of this repository. This file contains acknowledgments and notices required by the Apache License 2.0.

Pursuant to the terms of the Apache License 2.0, the NOTICE file must be included in redistributions of this software.