Xmeme is a simple MERN stack web-app. which lets users to post, edit, delete and scroll through alot of fun memes.
Public Deployment - Xmeme
API Documentation - Docs
You can:
- Put your name, meme caption and meme url and post it for everyone
- Edit or Delete meme
- Check swagger-ui for API documentation
You'll need to have Node >= 8.10 and npm >= 5.6 on your machine.
Install dependencies
$ cd xmeme-frontend
$ npm install
Set up environment variables
$ cp .env.template .env.development
Provide correct values in .env.development and proceed with local run
$ npm start
Similar to .env.development, create a .env.production file with necessary variables.
Make a production build of the Project
$ npm run build
Sign up for Netlify and install Netlify CLI
$ npm install netlify-cli -g
Login to Netlify and deploy
$ netlif login
$ netlify deploy --dir=build --prod
- NodeJS - evented I/O for the backend
- Express - framework for backend
- Mongoose - ODM
- MongoDB - Database
- Swagger - API Documentation
Install dependencies
$ cd xmeme-backend
$ npm install
Set up environment variables
$ cp .env.template .env
Provide correct values in .env and proceed with local run
$ npm start
Alternatively, you can install requirements and run through script
$ cd xmeme-backend
$ chmod +x install.sh
$ chmod +x server_run.sh
$ ./install.sh
$ ./server_run.sh
- PM2 - process manger
- nginx - web server and reverse proxy
- UFW - firewall
- Let's Encrypt and Certbot - for HTTPS deployment
- name.com - for domain name provider
Refer to this gist by bradtraversy for elaborate aws/nginx/ssl deployment procedure.
$ heroku login -i
$ heroku plugins:install heroku-builds
$ heroku builds:create -a <name_of_your_app>
- Harsh Vardhan - Initial work - desert3agle