zapin.me is an open-source platform where users can pin messages on a global map, powered by the Lightning Network. Each message is paid for with Satoshis, and the visibility of the message on the map is determined by the amount of Satoshis spent. For every Satoshi you donate, your message stays visible on the map for 10 seconds. This project leverages modern web technologies and a decentralized backend to create an interactive and engaging experience.
The architecture of zapin.me is built to ensure scalability, security, and a seamless user experience. Here's an overview:
- PhoenixD: A decentralized, secure, and scalable blockchain platform that acts as the backbone of the payment system.
- Backend: A REST API built with TypeScript and Express, interacting with the PhoenixD node and managing payment transactions and messages.
- Frontend: A Next.js-based web interface that allows users to interact with the map, pin messages, and view the latest activity.
Before you begin, ensure you have the following installed:
- Docker
- Docker Compose
Follow these steps to get zapin.me up and running on your local machine:
-
Clone the Repository:
git clone --recurse-submodules https://github.com/MiguelMedeiros/zapin.me.git cd zapin.me
-
Configure Environment Variables:
2.1 For the backend
0_backend/.env
:PORT=4269 PHOENIX_TOKEN= (set this to the http-password from 3_phoenixd/phoenix.conf) PHOENIX_HOST=http://phoenixd:9740
2.2 For the frontend
1_frontend/.env
:NEXT_PUBLIC_BACKEND_URL=http://localhost:4270 NEXT_PUBLIC_LIMIT_MESSAGES=100
-
Start the Services: Run the following command to build and start the services:
docker-compose up --build
-
Access the Frontend:
- Open your browser and go to http://localhost:3006 to start interacting with the platform.
The 3_phoenixd
directory contains essential files for running the PhoenixD node. Here's a breakdown of the key files:
phoenix.conf
: The configuration file for PhoenixD. Make sure to manually copy thehttp-password
from this file into the backend's.env
file asPHOENIX_TOKEN
.seed.dat
: This file contains your seed. It is critical to keep this file secure and backed up.phoenix.mainnet.
: The main database file used by PhoenixD. Handle it with care.
This project is licensed under the MIT LICENSE. Feel free to use, modify, and distribute this project, but please retain the original license and attribution.
zapin.me is not just a project; it's a community effort. Contributions are welcome! If you find this project interesting, consider contributing or sharing your feedback on GitHub.
Let's build something great together!