Skip to content

An Open-source Web3 Commenting and Chat tool with Ethereum Login & Wallets

License

Notifications You must be signed in to change notification settings

pandodao/talkee

Repository files navigation

Talkee

An Open-source Web3 Commenting and Chat tool with Ethereum Login & Wallets

Demo

Create your own

Please visit Pando Developers Console to create your own Talkee sites.

Integration

Please visit this page to integrate Talkee into your site.

Features

  • 💻 One-Click Installation
  • 🤑 Ethereum Login by Metamask or WalletConnect Wallets
  • 💬 Instant Chat APIs (UI in the process)
  • 👍 Reply, Like, Share.
  • 🌐 Content on the Blockchain (Arweave right now, IPFS and others in the process)
  • 💰 Token AirDrop On-Demand
  • 🔔 Notifications
  • 🔑 Comment/ChatRoom Requirements: crypto requirement for people access your comment threads or chat room
  • 🚫 Anti-Spam Integration & Moderation tools
  • 🧑🏻‍💼 User Profile and Reputation
  • 🤝 Transfer crypto to other users
  • 📥 Import Comments from Disqus, Commento, etc
  • 📤 Export Comments

Installation

git clone https://github.com/pandodao/talkee.git
cd talkee
go build

Preqrequisites

You need to have a running postgresql database, a keystore file from Mixin Developers.

To enable "Content on the Blockchain" feature, you also need an arweave wallet file from Arweave and put it under keystores/wallet.json of working directory.

Configuration

Create a config file config.yaml in the working directory.

# database config
db:
  driver: "postgres"
  datasource: "user=foobar dbname=talkee host=localhost password=foobar sslmode=disable"

# auth config
auth:
  # a random string to generate jwt token
  jwt_secret: "112233"
  # please get it from https://developers.mixin.one/dashboard
  mixin_client_secret: ".."

# optional, not implemented yet
aws:
  key: ""
  secret: ""
  region: ""
  bucket: ""

# optional, not implemented yet
sys:
  attachment_base: "http://.."

Run the services manually

run migrate database

./talkee migrate up

run ./talkee help to see full commands

run workers

./talkee -f YOUR_KEYSTORE_FILE worker

run websocket server

./talkee -f YOUR_KEYSTORE_FILE wss [port] 

run httpd server

./talkee -f YOUR_KEYSTORE_FILE httpd [port] 

Run the services in docker

build image

docker build -t talkee:latest .

create docker-compose.yml

version: "3.4"
x-volumes: &default-volumes
  - "./keystores:/app/keystores"
  - "./config.yaml:/app/config.yaml"
services:
  api:
    image: talkee:latest
    entrypoint: ["/app/talkee", "--file","YOUR_KEYSTORE_FILE", "httpd", "80"]
    ports:
      - "8080:80"
    volumes: *default-volumes

  wss:
    image: talkee:latest
    entrypoint: ["/app/talkee", "--file","YOUR_KEYSTORE_FILE", "wss", "80"]
    ports:
      - "8081:80"

  worker:
    image: talkee:latest    
    entrypoint: ["/app/talkee", "--file","YOUR_KEYSTORE_FILE", "worker", "80"]
    ports:
      - "8090:80"

run via docker-compose

docker-compose up -d 

run database migration

docker run  --rm -ti -v [YOUR_CONFIG_FILE]:/app/config.yaml talkee:latest /app/talkee migrate

About

An Open-source Web3 Commenting and Chat tool with Ethereum Login & Wallets

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published