Skip to content

PlebeianApp/plebeian-market

Repository files navigation

Plebeian Market

About

Plebeian Market is the self-sovereign marketplace of the Internet, powered by Bitcoin and the Lightning Network for payments and by Nostr for resilience.

What you see here is the initial implementation of a larger vision of fully decentralized e-commerce.

While we are also running plebeian.market - a Plebeian Market instance - others can, and are encouraged to, run their own instances. Whether on your own hardware using Umbrel or Start9 or on a VPS, running a Plebeian Market instance is what makes your community self-sovereign and in control of its data.

Our vision of the future involves small communities around the world running their own market places, which is why we like to call Plebeian Market the mycelium of free commerce.

Architecture

To achieve resilience, the marketplace has two independent components: the back office and the front office.

Merchants use the back office to create listings, which are forwarded to known Nostr relays. The back office does therefore not need to be accessible from the Internet - it can be hosted on an Umbrel or Start9 running in one's closet. This ensures that the merchants are always in control of their data!

Buyers use the front office to make purchases. This is a client-side web app, that doesn't talk to the back office (remember, the back office might not be accessible on the Internet!), and only talks to Nostr relays. This app can therefore be hosted on something as simple as GitHub pages - or it can even be sent around using email! A merchant could indeed, in theory, email a .html page to its customers, which, when opened, connects to Nostr relays, displays the merchant's stall, takes orders from the buyers, and forwards the orders back to the Nostr relays.

The back office then connects to the known Nostr relays, fetches the orders that the buyers have placed and replies back with invoices that the buyers need to pay.

Install

On a bare VPS

Before you start, make sure you have:

  1. An account with a VPS provider, such as Linode or Digital Ocean
  2. A domain name you want to use for your new site

Instructions:

  1. Create a new VPS instance in the region you want. The cheapest one (Nanode, 5$, shared CPU) should be enough. Select Debian 12 as an OS. Set a strong root password and write it down!
  2. Once the machine is created, copy the IP address, go to your DNS settings, and create an A record, pointing from your desired host name to the IP of the machine.
  3. Open a terminal.
  4. Wait a couple of minutes for the DNS to propagate. It shouldn't take long. You can run ping -c 3 <domain name> in the terminal you opened and see that the results include the correct IP address.
  5. Log in to your machine using ssh root@<domain name>. Respond with yes to any questions about trusting the host and use the root password from step 1!
  6. Run sh -c "$(curl -sSL plebeian.market/install.sh)" and follow the instructions