diff --git a/.github/ISSUE_TEMPLATE/add-project.md b/.github/ISSUE_TEMPLATE/add-project.md new file mode 100644 index 0000000..6e7f74f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/add-project.md @@ -0,0 +1,31 @@ +--- +name: Add Project. +about: Request to add your project to the list. +title: 'Add ' +labels: [ ] +assignees: '' +--- + +**The URL to projects Git page:** + + +**If project is not on Git, please provide the URL to the project download:** + + +**Project description:** + + +**What is your project:** + +- [ ] Client +- [ ] Server +- [ ] Development tool (library, framework, etc.) + +**Supported features:** + +- [ ] Real Address Chat protocol (RAC) +- [ ] WebSocket Real Address Chat protocol (WRAC) +- [ ] RAC v1.0 +- [ ] RAC v1.99.2 +- [ ] RAC v2.0 +- [ ] TLS connection (RACS/WRACS) \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/update-project.md b/.github/ISSUE_TEMPLATE/update-project.md new file mode 100644 index 0000000..f84180f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/update-project.md @@ -0,0 +1,29 @@ +--- +name: Update Project. +about: Request to update information about your project to the list. +title: 'Update ' +labels: [ ] +assignees: '' +--- + +**Specify a new URL to the Git repository:** + + +**If project is not on Git, please provide the new URL to the project download:** + + +**Updated project description:** + + +**What is your project:** +- [ ] Client +- [ ] Server +- [ ] Development tool (library, framework, etc.) + +**Supported features:** +- [ ] Real Address Chat protocol (RAC) +- [ ] WebSocket Real Address Chat protocol (WRAC) +- [ ] RAC v1.0 +- [ ] RAC v1.99.2 +- [ ] RAC v2.0 +- [ ] TLS connection (RACS/WRACS) \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1bef6fb --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,31 @@ +name: Check Next.js Build + +on: + push: + branches: [ main ] + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: 'pnpm' + + - name: Install pnpm + uses: pnpm/action-setup@v3 + with: + version: 8 + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build Next.js app + run: pnpm run build \ No newline at end of file diff --git a/README.md b/README.md index 212d615..2b25307 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,58 @@ -# Racinfo +# 🍵 Racinfo -An unofficial webpage with information about Real Address Chat protocol. \ No newline at end of file +An unofficial webpage with information about Real Address Chat protocol made with Next.js. +This is a personal project and is not affiliated with the original Real Address Chat developer. + +[Live in production website](https://racinfo.kostyazero.com) + +## Features + +- List of client, server and development tools for Real Address Chat. +- Comprehensive documentation of the Real Address Chat protocol and its successors. +- List of known User Agents with their regular expressions and colors. +- Packed with modern and sleek design, looks great on mobile devices. + +## Host your Racinfo + +It is strongly recommended to use Docker to host Racinfo. You can use the following command to run it: + +```bash +docker build -t racinfo . +docker up -d racinfo +``` + +Racinfo by default hosts on port 8085. You can change it by using the `-p` flag in the `docker up` command, like this: + +```bash +# Instead of 8085, you can use any port you want, like 3000 +docker up -d -p 3000:8085 racinfo +``` + +But if you don't want to use Docker, you can run it with local Node.js installation: + +```bash +corepack enable pnpm && corepack install -g pnpm@latest +pnpm install +pnpm build + +# Replace 8085 with the port that you want to use +pnpm start --port 8085 +``` + +## Contributing + +If you are a developer of a client, server of development tool for Real Address Chat, you can contribute to Racinfo by adding your tool to the list. +You can also contribute by improving the documentation or fixing bugs. + +Also, you should get acknowledged with these rules before contributing: + +- The project should be related to Real Address Chat protocol, or its successors. +- Your project should have a Git repository, or link to its download page. We do not accept projects that are not hosted on Git or have a download link. + +If you want to add your project to the list, please follow these steps: + +1. Open an Issue on the [GitHub repository](https://github.com/kostya-zero/racinfo) by using the template **"Add Project"** where you need to replace `Project` with your project name. +2. Attach `add-client`, `add-server` or `add-tool` tag to the issue. +3. Fill the issue template with the information about your tool as described in template. + +If you are an author or maintainer of a project that is already listed in Racinfo, you can also open an Issue with the template **"Update Project"** to update the information about your project. \ No newline at end of file diff --git a/src/app/projects/page.tsx b/src/app/projects/page.tsx index f4810ae..e838ff5 100644 --- a/src/app/projects/page.tsx +++ b/src/app/projects/page.tsx @@ -4,13 +4,13 @@ import Footer from "@/components/Footer"; import Text from "@/components/blocks/Text"; import PageTitle from "@/components/blocks/PageTitle"; import Title from "@/components/blocks/Title"; +import InlineCode from "@/components/blocks/InlineCode"; export default function Projects() { const clients: ProjectProps[] = [ { name: "Tower", authorId: "kostya-zero", - authorGit: "https://github.com/kostya-zero", projectGit: "https://github.com/kostya-zero/tower", description: "A modern desktop client for RAC protocol built with Tauri.", tags: ["Unreleased", "WRAC", "RAC", "v2", "TLS"], @@ -18,7 +18,6 @@ export default function Projects() { { name: "bRAC", authorId: "MeexReay", - authorGit: "https://github.com/MeexReay", projectGit: "https://github.com/MeexReay/bRAC", description: "Better RAC client.", tags: ["Active", "WRAC", "RAC", "v2", "TLS"], @@ -26,16 +25,15 @@ export default function Projects() { { name: "clRAC", externalDownload: true, - authorId: "ghost", - authorGit: "https://github.com/ghost", - projectGit: "https://github.com/MeexReay/bRAC", + authorId: "sugoma", + externalLink: "https://wdfiles.ru/Ofx7", + projectGit: "", description: "The official RAC client.", tags: ["Unknown", "RAC", "v2"], }, { name: "Mefedroniy", authorId: "OctoBanon-Main", - authorGit: "https://github.com/OctoBanon-Main", projectGit: "https://github.com/OctoBanon-Main/mefedroniy-client", description: "TUI client for Real Address Chat protocol. ", tags: ["Active", "RAC", "v1.99.2"], @@ -43,7 +41,6 @@ export default function Projects() { { name: "Snowdrop", authorId: "Forbirdden", - authorGit: "https://github.com/Forbirdden", projectGit: "https://github.com/Forbirdden/Snowdrop", description: "Coming Soon™", tags: ["Unreleased", "WRAC", "RAC", "v2"], @@ -51,7 +48,6 @@ export default function Projects() { { name: "cRACk", authorId: "pansangg", - authorGit: "https://github.com/pansangg", projectGit: "https://github.com/pansangg/cRACk", description: "TUI RAC client on Python.", tags: ["Active", "RAC", "v2"], @@ -59,7 +55,6 @@ export default function Projects() { { name: "CRAB", authorId: "pixtated", - authorGit: "https://gitea.bedohswe.eu.org/pixtaded", projectGit: "https://gitea.bedohswe.eu.org/pixtaded/crab", description: "Crimean RAC Bundle ", tags: ["Abandoned", "RAC", "v1.99.2"], @@ -67,7 +62,6 @@ export default function Projects() { { name: "dobroho_vechora", authorId: "bedohswe", - authorGit: "https://gitea.bedohswe.eu.org/bedohswe", projectGit: "https://gitea.bedohswe.eu.org/bedohswe/dobroho_vechora", description: "RAC client made with Bash script.", tags: ["Abandoned", "RAC", "v1.0"], @@ -78,7 +72,6 @@ export default function Projects() { { name: "sRAC", authorId: "MeexReay", - authorGit: "https://github.com/MeexReay", projectGit: "https://github.com/MeexReay/sRAC", description: "Simple RAC server.", tags: ["Active", "WRAC", "RAC", "v2", "TLS"], @@ -86,24 +79,22 @@ export default function Projects() { { name: "Gashishnik", authorId: "OctoBanon-Main", - authorGit: "https://github.com/OctoBanon-Main", projectGit: "https://github.com/OctoBanon-Main/mefedroniy-client", description: "A WRAC server.", tags: ["Unreleased", "WRAC", "v2"], }, { name: "lRACd", - authorId: "ghost", + authorId: "sugoma", externalDownload: true, - authorGit: "https://github.com/MeexReay", - projectGit: "https://github.com/MeexReay/bRAC", + externalLink: "https://wdfiles.ru/Obvt", + projectGit: "", description: "The official implementation of RAC server.", tags: ["Unknown", "RAC", "v2"], }, { name: "CRAB", authorId: "pixtated", - authorGit: "https://gitea.bedohswe.eu.org/pixtaded", projectGit: "https://gitea.bedohswe.eu.org/pixtaded/crab", description: "Crimean RAC Bundle ", tags: ["Abandoned", "RAC", "v1.99.2"], @@ -111,7 +102,6 @@ export default function Projects() { { name: "AlmatyD", authorId: "bedohswe", - authorGit: "https://gitea.bedohswe.eu.org/bedohswe", projectGit: "https://gitea.bedohswe.eu.org/bedohswe/almatyd", description: "Open source server for Sugoma's RAC protocol ", tags: ["Abandoned", "RAC", "v1.0"], @@ -129,15 +119,17 @@ export default function Projects() { This is a curated list of projects that is related to RAC protocol. There is a client and server implementations of RAC. Note that some projects are not available on Git services and should be downloaded - from external sources. + from external sources. They are marked with + external@ text at the beginning of the author + ID. If you want to add your project to this list, please make an issue + on our GitHub repository. Clients Here is a grid of all available client for RAC protocol with their - respective repository link. Also, you can hover over the author - username to go to it's GitHub profile page. + respective repository link. -
+
{clients.map((client) => ( -
+
{servers.map((server) => ( {name} - {externalDownload ? ( -

external download

- ) : ( - - @{authorId} - - )} +

+ {externalDownload ? `external@${authorId}` : `@${authorId}`} +

{description}