/lireddit

A fullstack TypeScript React GraphQL website where users can share texts to a mutual wall.

Primary LanguageTypeScriptMIT LicenseMIT


Logo

LiReddit

A lightweight reddit alternative.
Explore the docs »

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. License

About The Project

This is a fullstack website that is deployed on Azure and Vercel. The motive behind this was for me to learn about the different technologies involved in modern web development.

Built With

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

You can use the docker image and deploy it to on any virtual machine.

  • dokku 0.19.x+
  • docker 1.8.x

Deployment Guide

  1. Create the app and configure redis and postgres plugins
dokku apps:create <app-name>
sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
dokku postgres:create <postgres-name>
dokku postgres:link <postgres-name> <app-name>
sudo dokku plugin:install https://github.com/dokku/dokku-redis.git
dokku redis:create <redis-name>
dokku redis:link <redis-name> <app-name>
  1. Encrypt with the letsencrypt plugin for dokku
sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
dokku config:set --no-restart api DOKKU_LETSENCRYPT_EMAIL=<your-email@email.com>
dokku domains:report <app-name>
dokku domains:remove <preset-domain-name>
dokku domains:add <app-name> <your-domain-name>
dokku domains:report <app-name>
dokku proxy:ports-add <app-name> http:80:8080
dokku letsencrypt:enable <app-name>
  1. Pull the latest docker image and deploy
sudo docker pull vaansh/lireddit:5
sudo docker tag vaansh/lireddit:5 dokku/<app-name>:latest
dokku tags:deploy <app-name> latest

Usage

Test the app by registering with a new email or with the credentials below:

email: demo@demo
user: demo
pass: demo

Some functionalities

  • upvote/downvote posts
  • edit/delete posts that you own
  • posts are loaded chronologically
  • login/register (sensitive credentials hashed using argon)

License

Distributed under the MIT License. See LICENSE for more information.