Rednote is a Go-based backend project designed to provide a comprehensive set of user authentication methods, real-time chat and location tracking APIs, job/task processing, and a structured deployment pipeline. This repository aims to offer a robust and scalable backend solution for modern web and mobile applications.
- Using Username/Password - Done
- Using OTP on Phone/Email - Done
- Using Google SSO - Done
- Using Apple SSO
- Using Username/Password - Done
- Using OTP on Phone/Email - Done
- Using Google SSO - Done
- Using Apple SSO
- Using OTP on Phone/Email
- Accessible only for Admin User - Done
- Real-Time Chat Application APIs
- Real-Time Location Tracking APIs
- Versioned Database Migration with Goose Package - Done
- RabbitMQ Integration - Done
- Machinery Package Integration - Done
- AsyncTask Module - Done
- Notification Task Example - Done
- AWS SQS Integration
- Abstract and Implementation of a Service - Done
- Docker Setup
- Dockerfile Creation - Done
- Docker Compose File - Done
- Github Pipelines
- Workflow Setup - Done
- Workflow Deployment to AWS EC2
- Containerized Deployments Guide
- Deployments without Downtime (Kubernetes | EKS)
- Setup Wiki for Deployment and Documentation
- Exposing New APIs
- Building New Data Models
- Building New Services
- Go 1.21+
- Docker
- Docker Compose
- RabbitMQ
- AWS Account (for SQS integration)
- Makefile
-
Clone the repository:
git clone https://github.com/singhdurgesh/rednote.git cd rednote
-
Setup environment variables: Create a
.env
file in the root directory and populate it with necessary environment variables.cp .env.example .env cp configs/environments/config.docker.yaml.example configs/environments/config.docker.yaml cp configs/environments/config.yaml.example configs/environments/config.local.yaml
-
Build and run the application using Docker Compose:
docker-compose up --build
-
Run Database Migration
make migrate
-
Verify the Application Server
curl localhost:8080/public/ping
- Ensure Docker and Docker Compose are installed on the deployment server.
- Use the provided
Dockerfile
anddocker-compose.yml
for containerized deployments.
- Workflows are set up for CI/CD using Github Actions. Update the workflows as needed for your specific AWS EC2 deployment.
- Detailed documentation for API endpoints, data models, and services will be available in the Wiki section of this repository.
Contributions are welcome! Please fork the repository and submit a pull request for review.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries or issues, please contact [email protected].