Date: October 06, 2025
This document provides the full architecture, recommended tech stack, infrastructure plan, and cost estimates for developing the Agro B2B Marketplace MVP — a B2B wholesale agro-marketplace with escrow and KYC verification.
Date: October 06, 2025
This document provides the full architecture, recommended tech stack, infrastructure plan, and cost estimates for developing the Agro B2B Marketplace MVP — a B2B wholesale agro-marketplace with escrow and KYC verification.
Date: October 06, 2025
This document provides the full architecture, recommended tech stack, infrastructure plan, and cost estimates for developing the Agro B2B Marketplace MVP — a B2B wholesale agro-marketplace with escrow and KYC verification.
apt-get update && apt-get upgrade -y
shutdown -r now
| <IfModule mod_rewrite.c> | |
| RewriteEngine On | |
| RewriteBase / | |
| RewriteRule ^index\.html$ - [L] | |
| RewriteCond %{REQUEST_FILENAME} !-f | |
| RewriteCond %{REQUEST_FILENAME} !-d | |
| RewriteCond %{REQUEST_FILENAME} !-l | |
| RewriteRule . /index.html [L] |
Source deployment_aws_capistrano
Step by step instructions to setup your EC2 server for deploying a Rails application. Reference here
ubuntu@ip-172-30-0-195:~$ pwd| import React, { Component } from "react"; | |
| import { | |
| deepEquals, | |
| getDefaultFormState | |
| } from "@rjsf/core/lib/utils"; | |
| import PropTypes from "prop-types"; | |
| export function getFieldName(name) { | |
| const DEFAULT_COMPONENT_TYPES = { |
| # Why do we need KudeURI? Because the URI.join method doing something stupid: | |
| # | |
| # URI.join('http://example.com/subpath', 'hello', '?token=secret') | |
| # => “http://example.com/hello?token=secret” | |
| # | |
| # But what I expected is “http://example.com/subpath/hello?token=secret", the subpath is gone. | |
| # By using SmartURI, you can handle the case above gracefully: | |
| # | |
| # SmartURI.join('http://example.com/subpath', 'hello', query: { token: secret }) | |
| # => "http://example.com/subpath/hello?token=secret" |
| # Generate Random Passwords | |
| curl 'https://www.random.org/passwords/?num=2&len=24&format=plain&rnd=new' | |
| # Create deploy user | |
| sudo adduser deploy | |
| sudo adduser deploy sudo | |
| su deploy | |
| cd ../deploy/ | |
| # Generate ssh keys |
| const fs = require('fs'); | |
| const dic = fs.readFileSync('example.in', 'utf8'); | |
| const lines = dic.split('\n'); | |
| let output = []; | |
| const testCases = lines.shift() * 1; | |
| let caseLength = []; | |
| let counter = 0; | |
| let linesObj = {}; | |
| let lineNum = 0; |