Skip to content

stoqey/sslatt-backend

Repository files navigation

SSLATT (OSS marketplace) - backend

Super Slime 🐍 Love All The Time

SSLATT Tech

Sponsors

Add your logo here

Features

Name Description
PGP 2FA
Autowithdraw
BTC, XMR
Escrow / FE
Multisig support 🔄
Jabberbot 🔄
FE disputes 🔄
Auto dispute resolution 🔄
Walletless pay 🔄

SSLATT Infra

Features backend

Name Description
Database Couchbase via Couchset ORM
API Apollo GraphQL via RoadmanJS Framework
Payments BTC(btcpayserver), XMR(monero rpc) via RoadmanJS Wallet, RoadmanJS MoneroX
Auth JWT, 2FA via RoadmanJS Auth
Storage Local disk / FastDFS via RoadmanJS

Requirements

  • Node.js 18+ and npm
  • Couchbase
  • Redis
  • BTCPayerServer or monero rpc

Getting started backend

Run the following command on your local environment:

git clone git@github.com:stoqey/sslatt-backend.git
yarn

Then, you can run the project locally in development mode with live reload by executing:

yarn dev

Open http://localhost:3000 with your favorite browser to see your project.

Environment

Set up authentication

PORT=3037
APP_NAME=sslatty
DEBUG=sslatty*

# 32 chars each
ACCESS_TOKEN_SECRET=random ass string
REFRESH_TOKEN_SECRET=random ass string

Database and Storage

Set up couchbase and redis

COUCHBASE_URL=
COUCHBASE_BUCKET=dev
COUCHBASE_USERNAME=admin
COUCHBASE_PASSWORD=

REDIS_URL="rediss://:xxxxxxxx@xxxxxxxx:30296"

Default storage is set to local uploads, but you can set fastdfs, pictr e.t.c

Database migration

To set up db indexes, and initial data pass the STARTUP env with any value, this will populate the database with the defined config from src/config i.e categories, site settings, admin user e.t.c

STARTUP=anyvalue

Once app is up and running you can remove the STARTUP env

Set up Payments XMR/BTC

You can accept payments using BTC with btcpayserver or XMR with Monerox

#BTCPAYSERVER ENV
BTCPAYSERVER_TOKEN=xxxxx
BTCPAYSERVER_STORE=xxxxx
BTCPAYSERVER_URL=https://xxxxxxx.com/api/v1
BTCPAYSERVER_BTC=S-xxxxxx-BTC
BTCPAYSERVER_XMR=S-xxxx-XMR
BTCPAYSERVER_CRON_ENABLED=BTC,XMR
BTCPAYSERVER_CRON=*/1 * * * *

# MONEROX
MONEROX_URL=same as backend url
MONEROX_WALLET=xxxx-xxx-xx-xxx-xxxxxx
MONEROX_CRON=*/1 * * * *

# WALLET RPC
WALLET_RPC_URL=http://xxxxxxxxx:38084
WALLET_RPC_USER=rpc_user
WALLET_RPC_PASSWORD=abc123

# MAIN wallet
WALLET_PATH=abc123
WALLET_PASSWORD=abc123
WALLETS_DIR=/Users/ceddy/xmr/xwallet

Backend structure

├── README.md                             # README file
├── .env                                  # Environment configuration
├── .github                               # GitHub folder
├── .vscode                               # VSCode configuration
├── src                                   #
│   └── config                            # Config
│   │   ├── categories.ts                 # Site categories
│   │   ├── site.ts                       # Site settings, admin user, welcome message, e.t.c
│   └── feature                           # Feature e.g. auth, user, wallet
│   │   ├── feature.model.ts              # feature couchbase model / collection / table
│   │   ├── feature.methods.ts            # feature methods
│   │   ├── feature.resolver.ts           # feature graphql api resolver
└── tsconfig.json                         # TypeScript configuration

Backend customization

Use the src/config to set site settings, categories, admin user, welcome message

  • src/config/categories.ts: categories
  • src/config/site.ts: site settings configuration file, admin user, welcome message
  • .env: default environment variables

Sponsors

Add your logo here

SSLATT Tech

Algo Inc

About

SSLATT (OSS marketplace) - backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published