Skip to content
This repository has been archived by the owner on Jan 21, 2024. It is now read-only.
/ ecko-backend Public archive

The Ecko Backend is a powerful, scalable, and open-source backend application for the Ecko social media platform, providing multi-database support, replication, AES encryption, JWT authentication, root privileges checker, HTTP/HTTPS modes, compression, request limiting, recommended extensions.

License

Notifications You must be signed in to change notification settings

iamvladw/ecko-backend

Repository files navigation


Logo

Ecko Backend Server

A powerful and scalable backend application for the Ecko social media platform
Explore the wiki »

View Demo · Report Bug · Request Feature

CI Version Last Commit Downloads Contributors Release Date

Table of Contents

Contents
  1. About the Project
  2. Getting Started
  3. API Reference
  4. License
  5. Contact

About the Project

The Ecko Backend is a powerful and scalable backend application that serves as the foundation for the Ecko social media platform. It provides a robust set of features and functionalities to handle user authentication, data storage, and API management, supporting both SQL and NoSQL databases. The backend supports seamless database replication and synchronization, ensuring data consistency across multiple nodes. To enhance security, AES encryption is implemented for API keys and other sensitive user data, safeguarding user privacy.

The Ecko Backend incorporates JSON Web Tokens (JWT) for secure user authentication and authorization. It includes a root privileges checker to ensure proper access control and prevent unauthorized actions. The backend operates in both HTTP and HTTPS modes, supporting encrypted communication over secure connections. Request compression minimizes bandwidth usage and improves overall performance.

To handle high traffic and prevent abuse, the backend includes a request limiter that applies rate limiting policies. The project comes with recommended extensions and is Docker dev container-ready, facilitating seamless development and deployment workflows. The extensible architecture enables developers to extend and customize the backend to meet specific requirements.

Built With

  • Node.js
  • Express.js
  • TypeScript
  • TypeORM
  • JSONWebToken
  • Crypto-js
  • Winston

Getting Started

To get started with the Ecko Backend, follow these steps:

Prerequisites

  • Node.js 20 (using NVM)
  • config.json file

Installation

  1. Install NVM (Node Version Manager) by following the instructions for your operating system:

    • Windows: Visit the NVM for Windows repository at https://github.com/coreybutler/nvm-windows and follow the installation guide.
    • Linux/macOS: Open your terminal and run the following command:
      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
  2. Reload the shell configuration

    • Linux/macOS: Run the following command:
      source ~/.bashrc
  3. Install Node.js 20 by running the following command:

    nvm install 20
  4. Verify that Node.js 20 is installed:

    node --version

Clone the Repository

  1. Clone the repository:
    git clone https://github.com/iamvladw/ecko-backend.git
  2. Navigate to the project directory:
    cd ecko-backend

Install Dependencies

  1. Install NPM packages:
    npm install

Configuration

  1. Rename the config.example.json file to config.json and update the necessary configurations according to your environment.

Usage

  1. Start the server as dev:

    npm run dev
  2. Complete the first-time setup by providing the following data:

    Server Name: <Enter the name of your server>
    Server Location: <Enter the location of your server>
    Secret Length: <Enter the desired secret length for verifying the apiKey result (at least 64 characters and less than 256 characters)>
    Secret Phrase: <Enter a secret phrase for verifying the apiKey result (at least 16 characters)>

    Example GIF

  3. Access the backend API at http://localhost:8080.

Please note that the instructions assume you have NVM already installed. If you don't have NVM, you can follow the provided instructions to install it before proceeding with the Node.js 20 installation.

Additionally, make sure to have the config.json file in your project directory and rename the provided config.example.json file to config.json for proper configuration.

API Reference

For detailed information about the API endpoints and request/response examples, please refer to the API Reference documentation.

License

This project is licensed under the CC-BY-NC-ND-4.0 license.

Contact

Project Link: https://github.com/iamvladw/ecko-backend

About

The Ecko Backend is a powerful, scalable, and open-source backend application for the Ecko social media platform, providing multi-database support, replication, AES encryption, JWT authentication, root privileges checker, HTTP/HTTPS modes, compression, request limiting, recommended extensions.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •