/web10

web 2 based decentralized internet

Primary LanguageHTMLOtherNOASSERTION

Introducing web10

logo_black

web10 is a system for users to own their data on the internet.

the social experiences of the future

not public and permanent like blockchain, allows for private and temporary

demonopolizes the internet, breaks it up into modules.

bring your data with you across apps

web10 provides free databases for developers [users pay for plans]

make money as a web10 developer or web10 provider

Live Demo

Try a web10 app [contact manager] : https://crm.web10.app

The web10 inc. web10 node : https://web10.app

docs page [for developers] : https://docs.web10.app

Community / Resources

web10 discord : https://discord.gg/Dbd4VEDznU

web10 deployment video tutorial : https://www.youtube.com/watch?v=DgiiakMRRyQ

web10 deployment and practical use

This guide will :

  1. Explain how to run the web10 system locally

  2. Deploy the web10 system seamlessly to Google Cloud + MongoDB Atlas

  3. Specify the web10 protocol

running web10 locally

web10 is a system that any person can get running Locally + MongoDB Atlas in 15 minutes.

Cloning the repo

Step 1 : give the web10 repo a star :) [ join the web10 discord too :0 ]

Step 2 : fork the web10 repo

Step 3 : clone your fork of the web10 GitHub repo locally.

Set up the API

Step 4 : Make a Mongo DB Atlas account. start a free cluster.

Step 5 : Go to the /api/app directory. Duplicate settings_example.py file in the same location, and rename the duplicate to settings.py

Step 6 : In your settings.py, change the DB_URL to your Mongo DB atlas DB URL

# change this part in the settings.py file you made to your own DB_URL
DB_URL = "mongodb+srv://web10:jSol....."

Step 7 : Go to https://seanwasere.com/generate-random-hex/

Step 8 : Change PRIVATE_KEY to the number you generated on the website.

# change this part in the settings.py file you made to your own PRIVATE_KEY
PRIVATE_KEY = "8cbec8....."

Step 9 : Set BETA_REQUIRED, PAY_REQUIRED, and VERIFY REQUIRED How you please. If you set them all to "False", you can skip step 10.

# try setting these all to false. [or however you would like]
BETA_REQUIRED = False
VERIFY_REQUIRED = False
PAY_REQUIRED = False

Step 10 : Optionally, make Stripe and Twilio accounts for verification and payments and fill out the API keys. Optionally, set a beta code.

BETA_CODE = "web10betacode"
TWILIO_SERVICE = "VAbce...."
TWILIO_ACCOUNT_SID = "AC3594...."
TWILIO_AUTH_TOKEN = "460d....."
STRIPE_STATUS = "live"
STRIPE_TEST_KEY = "sk_test_51Khy....."
STRIPE_TEST_CREDIT_SUB_ID = "price_1Kh...."
STRIPE_TEST_SPACE_SUB_ID = "price_1Ki...."
STRIPE_LIVE_KEY = "sk_live_51Khyui......"
STRIPE_LIVE_CREDIT_SUB_ID = "price_1Kkb....."
STRIPE_LIVE_SPACE_SUB_ID = "price_1Kkb7....."  

Set up the Authentication portal

Step 12 : Go to the /auth/src directory. Duplicate config_example.js file in the same location, and rename the duplicate to config.js

Step 13 : In your config.js, Set BETA_REQUIRED, PAY_REQUIRED, and VERIFY REQUIRED to the same values as you did in step 9

var config = {
    DEFAULT_API: "api.localhost",
    /* change these 3 variables to match step 9 */
    BETA_REQUIRED: false,
    VERIFY_REQUIRED: false,
    PAY_REQUIRED: false,
}

Running in Docker

Step 12 : Install docker, in the main directory run

docker-compose up --build

Step 13 : Try running the web10 example application crm.localhost

hosting your own web10 node

Once successfully running the web10 system successfully locally, you can get web10 running successfully from google cloud.

Getting google cloud and your PC initially set up

Step 1: Install KubeCTL

Step 2 : Install Skaffold

Step 3 : Log into Google Cloud, Start a Google Cloud Kubernetes Autopilot Instance.

Step 4: Connect Google Cloud Kubernetes Autopilot to your computer's terminal by copy pasting the command from Google Cloud that they supply in the dashboard.

Making the skaffold files and running skaffold

Step 5 : CD into the skaffold/folder

Step 6 : Make a copy of the run_example called run.

Step 7 : Change "pure-phalanx-344719" in the files of the run folder to match your google cloud project ID.

Step 8 : Go into the run folder and run the command "skaffold run"

Exposing the containers and configuring the skaffold files to the domain names / IP addresses of the containers.

Step 9 : Expose all the docker containers in the Kubernetes dashboard.

Step 10 : change the env vars in the yml files in the run folder to match the domains / IPs of the docker containers.

enjoy

Have fun with web10, use it responsibly, and please give it a star!

What makes web10 cooler than web3 :)

feature Description
Hosting Platform Portability It is designed entirely through Docker + Kubernetes + Skaffold deployment mechanisms, meaning it can be ported to any cloud provider with Kubernetes, or deployed on bare metal.
Provider Self Sufficiency The web10 host has charging mechanisms to make sure that account holders pay the provider for the bandwidth and storage they use.
Mongo DB Based Web 10 nodes work off of the highly scalable mongo DB framework for Data storage.
WebRTC Web 10 makes it easy to use webRTC, and handles the initial identity verification needed to do webRTC properly.
TBD [Phone as a Keychain encryption] Encrypt data on web10 providers without those providers being able to access the data, because the keys are locally stored on your phone.
Data interoperability Developers can use data from other apps with web10 user permission.
Free for Developers Users / web10 providers bear the cloud costs.