Production Transition Guide

User Authentication

  • Connect with Metamask (Luniverse network, MOC token); new users will automatically be prompted with a registration flow and be added to the database as a user with Contributor role.

  • If your user is an admin, you will see a button to access the Admin view in the top-right corner.

Deployment

  • Currently deployed on free internal Render account for testing; please specify the domain/hosting platform you intend to use for production. As it is on a free hosting plan, the current backend has high latency and reboot time of up to 1 minute.

  • I highly recommend using Render or other managed Node.js hosting for the production deployment. Render syncs with the Github repo source code and deploys the app through a no-code interface. I suggest using a paid plan so that the server has no downtime.

Environment Variables

  • Environment variables are set in the Render configuration:

ATLAS_URI_DEV/ATLAS_URI_PROD=xxxx

This is the database connection string for the MongoDB cluster used to store data that the backend interacts with. Currently I have setup a test dummy cluster which is being used. For production release, I suggest you to create a new MongoDB account (free plan should be sufficient for now). I can then assist you with the structure of the connection string.

TOKEN_KEY=xxx

Used to verify JWT token user authentication. I will send you this value privately.

SIGNING_MESSAGE=xxx

Used to verify signatures during user authentication. I will send you this value privately.

VITE_APP_LUNIVERSE_API_KEY=Ff9orLVj8u4mTJts1LWNySL7QdihDFe

This is currently using an API key for free Luniverse Nodit account created during development. To be replaced with your Luniverse Nodit API key.

PRIVATE_KEY=xxx

This is the private key of the wallet address used for contract deployment and funding gas for transactions such as closing proposal voting. Currently this is using a dummy test wallet. This should be replaced with the Mossland wallet private key that will be used for contract deployment (it will be the owner of the smart contract) and have funded mainnet MOC for gas.

SEPOLIA_NODE_URL=xxx

Currently, the test environment uses Ethereum Sepolia for smart contract interaction. Once you go live in production this will be removed and replaced with Luniverse node URL on mainnet.

VOTING_CONTRACT=0xb059a01FfD45C7E849D72a7e1d13712dc3BFAccE

The smart contract address used for proposal creation and voting. To be replaced with the smart contract address once deployed on Luniverse mainnet.

Last updated