• Stars
    star
    677
  • Rank 66,694 (Top 2 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An instagram clone created with the MERN stack

Instaclone banner

Instaclone

An instagram clone created with MongoDB, Express, React, and Socket.io

Showcase GIF

Tech


Installation - Development

Clone

  • Clone this repo to your local machine using https://github.com/Sandermoen/instaclone

Setup

Install npm dependencies using npm install

$ npm install && cd client && npm install

Set up a MongoDB database either locally or provision a free database with MongoDB Atlas

Create a free Cloudinary account

Create a GitHub OAuth app

Create a .env file in the root directory

Set up required environment variables

MONGO_URI= // mongodb://localhost:27017/instaclone
JWT_SECRET= // random string: j2390jf09kjsalkj4r93
CLOUDINARY_API_KEY= // Cloudinary API key
CLOUDINARY_API_SECRET= // Cloudinary API secret
CLOUDINARY_CLOUD_NAME= // Cloudinary cloud name
SMTP_HOST= // mail.example.com
SMTP_PORT= // 587
EMAIL_USERNAME= // example@example.com
EMAIL_PASSWORD= // Password
HOME_URL= // http://localhost:3000
GITHUB_CLIENT_ID= // Client id for GitHub OAuth app
GITHUB_CLIENT_SECRET= // Client secret for GitHub OAuth app
MODERATECONTENT_API_KEY= // Free API key from https://moderatecontent.com

In the root directory run both the backend and the front end with the following command

$ npm run dev

The app should launch automatically, enjoy playing around 😄


Installation - Production with Docker

Clone

  • Clone this repo to your local machine using https://github.com/Sandermoen/instaclone

Setup

Create a free Cloudinary account

Create a GitHub OAuth app

Create a .env file in the root directory

Set up required environment variables

MONGO_URI= // mongodb://mongo:27017/instaclone
JWT_SECRET= // random string: j2390jf09kjsalkj4r93
CLOUDINARY_API_KEY= // Cloudinary API key
CLOUDINARY_API_SECRET= // Cloudinary API secret
CLOUDINARY_CLOUD_NAME= // Cloudinary cloud name
SMTP_HOST= // mail.example.com
SMTP_PORT= // 587
EMAIL_USERNAME= // example@example.com
EMAIL_PASSWORD= // Password
HOME_URL= // http://localhost:3000
GITHUB_CLIENT_ID= // Client id for GitHub OAuth app
GITHUB_CLIENT_SECRET= // Client secret for GitHub OAuth app
MODERATECONTENT_API_KEY= // Free API key from https://moderatecontent.com

In the root directory start the docker container by using the docker-compose file using the following command

$ docker-compose up

Docker will configure the rest for you, the project should be available on port 9000 unless you specified otherwise 😄


Screenshots

Showcase GIF Showcase GIF Showcase GIF Showcase GIF

Support

Reach out to me at one of the following places!