A powerful and scalable backend application for the Ecko social media platform
Explore the wiki »
View Demo
·
Report Bug
·
Request Feature
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.
- Node.js
- Express.js
- TypeScript
- TypeORM
- JSONWebToken
- Crypto-js
- Winston
To get started with the Ecko Backend, follow these steps:
- Node.js 20 (using NVM)
config.json
file
-
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
-
Reload the shell configuration
- Linux/macOS: Run the following command:
source ~/.bashrc
- Linux/macOS: Run the following command:
-
Install Node.js 20 by running the following command:
nvm install 20
-
Verify that Node.js 20 is installed:
node --version
- Clone the repository:
git clone https://github.com/iamvladw/ecko-backend.git
- Navigate to the project directory:
cd ecko-backend
- Install NPM packages:
npm install
- Rename the config.example.json file to config.json and update the necessary configurations according to your environment.
-
Start the server as dev:
npm run dev
-
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)>
-
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.
For detailed information about the API endpoints and request/response examples, please refer to the API Reference documentation.
This project is licensed under the CC-BY-NC-ND-4.0 license.
Project Link: https://github.com/iamvladw/ecko-backend