An open API service indexing awesome lists of open source software.

https://github.com/allthingslinux/atl.chat


https://github.com/allthingslinux/atl.chat

Last synced: 22 days ago
JSON representation

Awesome Lists containing this project

README

          

# atl.chat Monorepo

Welcome to the `atl.chat` ecosystem! This monorepo houses the full stack for the **allthingslinux** chat platform, integrating modern web technologies with established chat protocols like XMPP and IRC.

## 🚀 Repository Structure

The project is managed as a **pnpm workspace** using **Turborepo** for orchestration.

| Path | Application | Description | Tech Stack |
|------|-------------|-------------|------------|
| **[`apps/web`](./apps/web)** | **Landing Page** | The main landing page for `atl.chat`. | Next.js 14, React, Tailwind |
| **[`apps/xmpp`](./apps/xmpp)** | **XMPP Server** | Prosody-based XMPP server with custom modules. | Prosody (Lua), Docker, PostgreSQL |
| **[`apps/irc`](./apps/irc)** | **IRC Server** | UnrealIRCd server with Atheme services. | UnrealIRCd (C), Atheme, Docker |

## 🛠️ Getting Started

### Prerequisites

- **Node.js** (LTS recommended)
- **pnpm** (v9.x or later)
- **Docker** & **Docker Compose** (for XMPP and IRC services)

### Installation

Install dependencies for all workspaces:

```bash
pnpm install
```

### 💻 Development

You can start the entire ecosystem in specific modes using Turborepo.

**Start all applications (Unified):**
The project includes a root `docker-compose.yml` that orchestrates both XMPP and IRC stacks.
```bash
docker compose up -d
```

**Start specific applications (Development):**
```bash
pnpm run dev
```

**Run specific applications:**

```bash
# Web Application (Next.js)
pnpm --filter web dev

# XMPP Server (Docker)
pnpm --filter xmpp dev

# IRC Server (Docker)
pnpm --filter irc dev
```

### 🏗️ Building

To build all applications for production:

```bash
pnpm run build
```

## 📦 Application Details

### Web (`apps/web`)
The landing page for `atl.chat`. It serves as the main entry point for the project.
- **Port**: `3000` (default)

### XMPP (`apps/xmpp`)
A robust XMPP server powered by Prosody. It supports modern extensions (XEPs) and integrates with the web platform.
- **Ports**: `5222` (c2s), `5269` (s2s), `5280` (http)
- **Commands**: Wraps `make` commands via `package.json` (e.g., `npm run test` -> `make test`).

### IRC (`apps/irc`)
A classic IRC server powered by UnrealIRCd with Atheme services for channel management.
- **Ports**: `6697` (TLS), `6900` (Linking)
- **Services**: NickServ, ChanServ, OperServ

## 🤝 Contributing

1. Clone the repository.
2. Install dependencies: `pnpm install`
3. Create a branch: `git checkout -b feature/my-feature`
4. Commit changes (conforming to conventional commits).
5. Push and open a Pull Request.

## 📄 License

Copyright 2025 All Things Linux and Contributors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Some modules used are licensed under different terms; please refer to their respective documentation for details.