|
3 weeks ago | |
---|---|---|
html | 1 month ago | |
src | 3 weeks ago | |
vendo_uploads | 1 month ago | |
LICENSE | 1 month ago | |
README.md | 1 month ago |
README.md
Vendo Digital Downloads Marketplace
Buy and sell digital products for Monero (e.g. ebooks, music, scripts, links, game keys, premium content). KYC-free, non-custodial and zero fees.
Warning: This code is amateur-level, messy and not fully tested.
Why Monero?
Monero is "cash for the internet" – a fast, secure and inclusive way to send and receive money worldwide.
No bank account, application or government ID is required to use Monero.
Monero can easily be exchanged for physical cash (e.g. LocalMonero.co), virtual debit cards and gift cards (e.g. CakePay.com) or spent on products and services (e.g. Monerica.com).
For more information, visit GetMonero.org.
How to install
Use the following instructions to run your own instance of Vendo Digital Downloads on a fresh Ubuntu or Debian VPS.
Shared hosting also works – In that case, login to cPanel, upload the files via the File Manager or FTP and manage the database via PHPMyAdmin.
1. Install the web server
sudo apt install apache2 mysql-server php7.4 libapache2-mod-php7.4 php7.4-mysql php7.4-gd certbot python3-certbot-apache postfix
Warning: Vendo currently doesn't work with PHP 8.
2. Get a free SSL certificate
sudo certbot -d yourdomain.com
3. Setup the website
curl -LO https://codeberg.org/anarkio/vendo/archive/main.zip
unzip vendo-main.zip
shopt -s dotglob
mv vendo/* /var/www/
sudo chown -R www-data:www-data /var/www/
4. Set the domain name
find /var/www/ -iname "*.php" -exec sed -i "s_vendo.bitejo.com_yourdomain.com_g" {} \;
sed -i "s_vendo.bitejo.com_yourdomain.com_g" /var/www/html/assets/style.css
sudo a2enmod rewrite
sudo service apache2 restart
sudo nano /etc/apache2/apache2.conf
Replace:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
With:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
5. Setup the database
sudo mysql
CREATE DATABASE vendo_db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'vendo_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD_HERE';
GRANT ALL ON vendo_db.* TO 'vendo_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
sudo mysql -u vendo_user -p vendo_db < /var/www/src/db/structure.sql
Then add the database name, username and password to connect.php
:
nano /var/www/src/db/connect.php
6. Done!
Onion Monero Blockchain Explorer
Vendo Digital Downloads uses the Onion Monero Blockchain Explorer API to validate payments non-custodially (seller's Monero address, payment TXID and payment TX key).
If you have the resources to run your own instance of this API (requires a full node, which requires around 200~ GB storage), you can download it here: https://github.com/moneroexamples/onion-monero-blockchain-explorer and add the URL of your instance to /src/func/monero_api.php
If not, there are 4 instances listed in /src/func/monero_api.php
Future ideas
- Optional monetization features for instance operators:
- Featured products on the homepage and search page (payment via TXID and TX key).
- Sellers can pay to upload larger files (requires a Storage VPS).
- Non-intrusive ads for KYC-free crypto platforms/merchants/media.
- ❌ TX fees aren't possible, as payments are sent directly to the seller.
- ❌ A universal listing fee would be prohibitive, especially for locations where it is difficult to acquire KYC-free Monero, e.g. low cash by mail/cash in person liquidity. However, premium add-ons would be possible.
- Federation feature: A global search for all fundraisers across different instances, which helps with discoverability and decentralization (similar to Mastodon/Nostr). Currently there is a RSS feed and an (untested) API and (untested) "fediverse" page.
- Invite-only instances: If an instance is invite-only (e.g. it's for a specific niche or product type), sellers will need to enter an invite code in order to publish a product listing. Likewise, instance operators could host only their own products (e.g. premium content for their Youtube channel). Anyone would be able to purchase and download the products. (There is already an option for unlisted products.)
For a fully-featured marketplace for both digital and physical products and services, jobs and exchanges, check Bitejo: https://codeberg.org/anarkio/bitejo/
License
Vendo Digital Downloads is in the public domain. Feel free to fork or use this code for your own projects.
Disclaimer
This code is public domain and can be used for any purpose. However there is no warranty, guarantee or liability. Treat this as an experimental work in progress, instead of a production-ready finished product.