https://github.com/allthingslinux/atl.chat
https://github.com/allthingslinux/atl.chat
Last synced: 22 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/allthingslinux/atl.chat
- Owner: allthingslinux
- License: gpl-3.0
- Created: 2024-11-27T02:40:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-30T02:34:23.000Z (about 2 months ago)
- Last Synced: 2026-01-02T11:38:46.498Z (about 2 months ago)
- Language: Lua
- Size: 26 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.