This repository has been archived on 2024-10-29. You can view files and clone it, but cannot push or open issues or pull requests.
api/README.md

3.8 KiB

Thream/api

⚠️ This project is not maintained anymore, you can still use the code as you wish and fork it to maintain it yourself.

Licence MIT Contributor Covenant

Conventional Commits semantic-release

📜 About

Thream's Application Programming Interface (API) to stay close with your friends and communities.

It uses Thream/file-uploads-api v1.1.8.

⚙️ Getting Started

Prerequisites

Installation

# Clone the repository
git clone git@github.com:Thream/api.git

# Go to the project root
cd api

# Install dependencies
npm clean-install

# Configure environment variables
cp .env.example .env

# Generate Prisma client types
npm run prisma:generate

Database Setup

# Create a new user and database
psql
CREATE DATABASE thream;
CREATE USER thream_user with encrypted password 'password';
ALTER USER thream_user WITH SUPERUSER;

Database Production migration

npm run prisma:migrate:deploy

Local Development environment

Recommended to use VSCode: Remote development in Containers.

Database Development migration

# Run Prisma migrations
npm run prisma:migrate:dev

# Reset the database (WARNING: This will delete all data)
npm run prisma:migrate:reset

Usage

npm run dev
Services started
Commands
# Build, Lint and Test
npm run build
npm run build:typescript
npm run lint:editorconfig
npm run lint:markdown
npm run lint:eslint
npm run lint:prettier
npm run test

Production environment (with Docker)

docker compose up --build

💡 Contributing

Anyone can help to improve the project, submit a Feature Request, a bug report or even correct a simple spelling mistake.

The steps to contribute can be found in CONTRIBUTING.md.

📄 License

MIT