From c6478f73d74b1b62acf5a8759e1834419fa5f881 Mon Sep 17 00:00:00 2001 From: Stavros Date: Fri, 21 Jun 2024 18:44:54 +0300 Subject: [PATCH] App/inspircd (#3843) * feat: inspircd * refactor(inspircd): add data folder * refactor(inspired): add newline to end of docker compose Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- apps/inspircd/config.json | 19 +++++++++++++ apps/inspircd/data/.gitkeep | 0 apps/inspircd/docker-compose.yml | 37 ++++++++++++++++++++++++++ apps/inspircd/metadata/description.md | 19 +++++++++++++ apps/inspircd/metadata/logo.jpg | Bin 0 -> 20348 bytes 5 files changed, 75 insertions(+) create mode 100644 apps/inspircd/config.json create mode 100644 apps/inspircd/data/.gitkeep create mode 100644 apps/inspircd/docker-compose.yml create mode 100644 apps/inspircd/metadata/description.md create mode 100644 apps/inspircd/metadata/logo.jpg diff --git a/apps/inspircd/config.json b/apps/inspircd/config.json new file mode 100644 index 00000000..4af8c4af --- /dev/null +++ b/apps/inspircd/config.json @@ -0,0 +1,19 @@ +{ + "$schema": "../schema.json", + "name": "Inspircd", + "id": "inspircd", + "available": true, + "short_desc": "A modular C++ IRC server.", + "author": "inspircd", + "port": 6697, + "no_gui": true, + "categories": ["social"], + "description": "InspIRCd is a modular C++ Internet Relay Chat (IRC) server for UNIX-like and Windows systems.", + "tipi_version": 1, + "version": "3.17.0", + "source": "https://github.com/inspircd/inspircd", + "website": "https://www.inspircd.org", + "exposable": true, + "supported_architectures": ["arm64", "amd64"], + "form_fields": [] + } \ No newline at end of file diff --git a/apps/inspircd/data/.gitkeep b/apps/inspircd/data/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/apps/inspircd/docker-compose.yml b/apps/inspircd/docker-compose.yml new file mode 100644 index 00000000..a0a1f4a2 --- /dev/null +++ b/apps/inspircd/docker-compose.yml @@ -0,0 +1,37 @@ +version: "3.9" +services: + inspircd: + container_name: inspircd + image: inspircd/inspircd-docker:3.17.0 + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data:/inspircd/conf + ports: + - ${APP_PORT}:6697 + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.inspircd-web-redirect.redirectscheme.scheme: https + traefik.http.services.inspircd.loadbalancer.server.port: 6697 + # Web + traefik.http.routers.inspircd-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.inspircd-insecure.entrypoints: web + traefik.http.routers.inspircd-insecure.service: inspircd + traefik.http.routers.inspircd-insecure.middlewares: inspircd-web-redirect + # Websecure + traefik.http.routers.inspircd.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.inspircd.entrypoints: websecure + traefik.http.routers.inspircd.service: inspircd + traefik.http.routers.inspircd.tls.certresolver: myresolver + # Local domain + traefik.http.routers.inspircd-local-insecure.rule: Host(`inspircd.${LOCAL_DOMAIN}`) + traefik.http.routers.inspircd-local-insecure.entrypoints: web + traefik.http.routers.inspircd-local-insecure.service: inspircd + traefik.http.routers.inspircd-local-insecure.middlewares: inspircd-web-redirect + # Local domain secure + traefik.http.routers.inspircd-local.rule: Host(`inspircd.${LOCAL_DOMAIN}`) + traefik.http.routers.inspircd-local.entrypoints: websecure + traefik.http.routers.inspircd-local.service: inspircd + traefik.http.routers.inspircd-local.tls: true diff --git a/apps/inspircd/metadata/description.md b/apps/inspircd/metadata/description.md new file mode 100644 index 00000000..72f05a8b --- /dev/null +++ b/apps/inspircd/metadata/description.md @@ -0,0 +1,19 @@ +## Inspircd + +InspIRCd is a modular C++ Internet Relay Chat (IRC) server for UNIX-like and Windows systems. + +### Supported Platforms + +InspIRCd is supported on the following platforms: + +- Most recent BSD variants using the Clang 5+ or GCC 7+ compilers and the GNU toolchains (Make, etc). + +- Most recent Linux distributions using the Clang 5+ or GCC 7+ compilers and the GNU toolchain. + +- The most recent three major releases of macOS using the AppleClang 10, Clang 5+, or GCC 7+ (*not* LLVM-GCC) compilers and the GNU toolchain. + +- Windows 10 build 17061 or newer using the MSVC 19.15+ (Visual Studio 15.8 2017) compiler and CMake 3.20 or newer. + +Other platforms and toolchains may also work but are not officially supported by the InspIRCd team. Generally speaking if you are using a reasonably modern UNIX-like system you should be able to build InspIRCd on it. If you can not and you wish to submit a patch we are happy to accept it as long as it is not extremely large. + +If you encounter any bugs then [please file an issue](https://github.com/inspircd/inspircd/issues/new/choose). \ No newline at end of file diff --git a/apps/inspircd/metadata/logo.jpg b/apps/inspircd/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a906fe2926d1cb6d3d074d17f95bc81a6260ca3f GIT binary patch literal 20348 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 O!n=(3K$B?jqyJzm;)!qkV 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 literal 0 HcmV?d00001