Add your logo here |
Name | Progress |
---|---|
PGP 2FA | β |
Autowithdraw | β |
BTC, XMR | β |
Escrow / FE | β |
Multisig support | β |
Jabberbot | β |
FE disputes | β |
Auto dispute resolution | β |
Walletless pay | β |
- JS sslatt.com (any browser)
- HTML sslatt.com/html (tor browser without js)
Name | Description |
---|---|
UI | Styled-components, twitch-ui like UUIX |
API | Hooks/Context, Apollo GraphQL via RoadmanJS Framework |
.....UI features |
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 |
- Node.js 18+ and npm
- Couchbase
- Redis
- BTCPayerServer or monero rpc
Run the following command on your local environment:
git clone [email protected]: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.
PORT=3037
APP_NAME=sslatty
DEBUG=sslatty*
# 32 chars each
ACCESS_TOKEN_SECRET=random ass string
REFRESH_TOKEN_SECRET=random ass string
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
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
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
βββ 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
Use the src/config
to set site settings, categories, admin user, welcome message
src/config/categories.ts
: categoriessrc/config/site.ts
: site settings configuration file, admin user, welcome message.env
: default environment variables
Run the following command on your local environment:
git clone [email protected]:stoqey/sslatt.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.
API_URL="localhost:3037"
ACCESS_TOKEN_SECRET=AadsfasdfASDBSADTFGHLWEFDVKAWMERTXC
REFRESH_TOKEN_SECRET=sadfgsdfvsdfvsdafbsdfbsdf
# ENDGAME rate limit
REQ_PER_MINUTE=25
#
REDIS_URL="redis://localhost"
.
βββ README.md # README file
βββ .env # Environment configuration
βββ .github # GitHub folder
βββ .husky # Husky configuration
βββ .storybook # Storybook folder
βββ .vscode # VSCode configuration
βββ public # Public assets folder
βββ src #
β βββ app # Next JS App (App Router)
β β βββ /* # JS routes
β β βββ /login # JS /login route
β β βββ /html/* # HTML routes (NOSCRIPT)
β β βββ /html/login # HTML /html/login route
β β βββ /api # API routes
β βββ components # React components
β βββ containers # React containers
β β βββ feature # feature, e.g auth, wallet, user
β β β βββ feature.tsx # JS feature with hooks e.t.c
β β β βββ feature.html.tsx # HTML-only feature no javascript / react hooks, just plain HTML
β βββ middlewares # Middlewares
β β βββ endgame.ts # Endgame middleware / rate limiter
β β βββ translation.ts # translation
β βββ middleware.ts # Root Middleware (combines all)
β βββ libs # 3rd party libraries configuration
β βββ locales # Locales folder (i18n messages)
β βββ types # Type definitions
β βββ utils # Utilities folder
βββ tests #
β βββ e2e # E2E tests, also includes Monitoring as Code
β βββ integration # Integration tests
βββ tsconfig.json # TypeScript configuration
Search for // FIXME: to customize: here is some of the most important files to customize:
public/apple-touch-icon.png
,public/favicon.ico
,public/favicon-16x16.png
andpublic/favicon-32x32.png
: your website favicon, you can generate from https://favicon.io/favicon-converter/src/components/logo
: logo and load screen animation.env
: default environment variables
You have access to the whole code source if you need further customization.
Everyone is welcome to contribute to this project. Feel free to open an issue if you have question or found a bug. Totally open to any suggestions and improvements.
- API - Backend api
- HTML - HTML only routes / noscript / no javascript
- JS - Javascript routes
Feature | API | HTML | JS |
---|---|---|---|
Profile / Account | β | β | β |
PGP 2FA | β | β | β |
PWD change/reset | β | β | β |
Orders manager | β | β | β |
Orders admin manager | β | β | β |
Wallet BTC, XMR | β | β | β |
Wallet transactions | β | β | β |
Wallet withdraw / auto | β | β | β |
Wallet admin withdraw | β | β | β |
Wallet admin manager | β | β | β |
Store dashboard | β | β | β |
Store ads manager | β | β | β |
Store ads admin | β | β | β |
Store settings | β | β | β |
Escrow / FE | β | β | β |
Notifications | β | β | β |
Jabberbot | β | β | β |
Chat | β | β | β |
Chat admin | β | β | β |
Chat admin tickets | β | β | β |
Disputes | β | β | β |
Disputes admin manager | β | β | β |
Admin category | β | β | β |
Admin branding | β | β | β |
FE disputes | β | β | β |
Auto dispute resolution | β | β | β |
Multisig support | β | β | β |
Walletless pay | β | β | β |
Licensed under the MIT License, Copyright Β© 2024
See LICENSE for more information.
Add your logo here |