{"id":20218408,"url":"https://github.com/skyra-project/arkadia","last_synced_at":"2025-05-07T08:31:14.396Z","repository":{"id":42854409,"uuid":"389683127","full_name":"skyra-project/arkadia","owner":"skyra-project","description":".NET Microservices for Skyra","archived":true,"fork":false,"pushed_at":"2023-06-14T02:10:03.000Z","size":186,"stargazers_count":1,"open_issues_count":15,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-03T11:36:00.554Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skyra-project.png","metadata":{"funding":{"github":["kyranet","favna"],"patreon":"kyranet","open_collective":null,"ko_fi":"kyranet","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://donate.skyra.pw/paypal","https://donate.favware.tech/paypal"]},"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null}},"created_at":"2021-07-26T15:35:00.000Z","updated_at":"2023-06-14T07:52:28.000Z","dependencies_parsed_at":"2023-01-22T15:15:13.156Z","dependency_job_id":null,"html_url":"https://github.com/skyra-project/arkadia","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyra-project%2Farkadia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyra-project%2Farkadia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyra-project%2Farkadia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyra-project%2Farkadia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skyra-project","download_url":"https://codeload.github.com/skyra-project/arkadia/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252842470,"owners_count":21812672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest"],"created_at":"2024-11-14T06:38:29.102Z","updated_at":"2025-05-07T08:31:13.708Z","avatar_url":"https://github.com/skyra-project.png","language":"C#","funding_links":["https://github.com/sponsors/kyranet","https://github.com/sponsors/favna","https://patreon.com/kyranet","https://ko-fi.com/kyranet","https://donate.skyra.pw/paypal","https://donate.favware.tech/paypal"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n![Arkadia Logo](https://cdn.skyra.pw/gh-assets/arkadia-logo.png)\n\n# Arkadia\n\n**C# Microservices for [Skyra]**\n\n[![GitHub](https://img.shields.io/github/license/skyra-project/arkadia)](https://github.com/skyra-project/arkadia/blob/main/LICENSE.md)\n[![codecov](https://codecov.io/gh/skyra-project/arkadia/branch/main/graph/badge.svg?token=QEmhhyzHW5)](https://codecov.io/gh/skyra-project/arkadia)\n\n[![Support Server](https://discord.com/api/guilds/254360814063058944/embed.png?style=banner2)][support server]\n\n\u003c/div\u003e\n\n---\n\n**Table of Contents**\n\n-   [Arkadia](#arkadia)\n    -   [Description](#description)\n    -   [Published Docker Images](#published-docker-images)\n        -   [arkadia.notifications](#arkadianotifications)\n            -   [Quick reference](#quick-reference)\n            -   [Supported tags and respective `Dockerfile` links](#supported-tags-and-respective-dockerfile-links)\n            -   [What is arkadia.notifications](#what-is-arkadianotifications)\n            -   [Environment Variables](#environment-variables)\n        -   [arkadia.cdn](#arkadiacdn)\n            -   [Quick reference](#quick-reference-1)\n            -   [Supported tags and respective `Dockerfile` links](#supported-tags-and-respective-dockerfile-links-1)\n            -   [What is arkadia.notifications](#what-is-arkadiacdn)\n            -   [Environment Variables](#environment-variables-1)\n    -   [Buy us some doughnuts](#buy-us-some-doughnuts)\n\n## Description\n\nArkadia is the aptly named arcade of micro services that are being used for [Skyra] to instrument certain needs - such as notification streams, critical services (like moderation) and other features (such as social services or CDN's) with zero downtime and maximum reliability. Built atop the [dotnet] stack, using the latest features and runtime, and cross communicating with the main bot process via [gRPC], they are critical and useful components of Skyra's infrastructure.\n\n## Published Docker Images\n\n### [`arkadia.notifications`]\n\n#### Quick reference\n\n-   **Maintained by**:  \n    [Skyra Project](https://github.com/skyra-project)\n\n-   **Where to get help**:  \n    [the Skyra Lounge server](https://join.skyra.pw)\n\n-   **Where to file issues**:  \n    [https://github.com/skyra-project/arkadia/issues](https://github.com/skyra-project/arkadia/issues)\n\n#### Supported tags and respective `Dockerfile` links\n\n-   [`latest`](https://github.com/skyra-project/arkadia/blob/main/Notifications.Dockerfile)\n\n#### What is [`arkadia.notifications`]\n\nArkadia.Notifications is a microservice based around Google's PubSubHubBub API for Youtube. Interacted with via gRPC, it sends requests to the hub asking for notifications to be recieved over a HTTP connection.\nThe hub then sends an authentication request, to ensure we wanted to subscribe or unsubscribe, and it pumps upload notifications in. See the README in the root folder for more information.\n\n#### Environment Variables\n\n**Required Environment Variables**\n\n-   `HTTP_PORT`  \n     The port for the http server to run on.  \n     _For Example:_ `9009`\n-   `GRPC_PORT`  \n     The port for the grpc server to run on.  \n     _For example:_ `9010`\n-   `CALLBACK_URL`  \n     The url passed to google's pubsubhubbub to send notifications to.  \n     _For Example:_ `https://notifications.skyra.pw`\n-   `YOUTUBE_API_KEY`  \n     The api key for googles data api.  \n     _For example:_ `4MRhPzudqh4n9UP68y9c6xsh_Nk3TeG6Kf_3*oFAn2jpF@nffN`\n\n**Optional Environment Variables**\n\n-   `RESUB_TIMER_INTERVAL`  \n    The amount of seconds we should wait between checking for resubscriptions  \n    _default:_ `60`\n-   `PUBSUB_URL`  \n    The url for the PubSubHubBub API  \n    _default:_ `https://pubsubhubbub.appspot.com/`\n-   `POSTGRES_USER`  \n    The user for the Postgres database  \n    _default:_ `postgres`\n-   `POSTGRES_PASSWORD`  \n    The password for the database  \n    _default:_ `postgres`\n-   `POSTGRES_HOST`  \n    The host url \n    _default:_ `localhost`\n-   `POSTGRES_PORT`  \n    The port used to connect to Postgres  \n    _default:_ `5432`\n-   `POSTGRES_DB`  \n    The database to use in Postgres  \n    _default:_ `arkadia`\n-   `SENTRY_URL`  \n    The DSN url for Sentry (leave empty for no Sentry reporting)  \n    _default:_ `''`\n\t\n\n### [`arkadia.cdn`]\n\n#### Quick reference\n\n-   **Maintained by**:  \n    [Skyra Project](https://github.com/skyra-project)\n\n-   **Where to get help**:  \n    [the Skyra Lounge server](https://join.skyra.pw)\n\n-   **Where to file issues**:  \n    [https://github.com/skyra-project/arkadia/issues](https://github.com/skyra-project/arkadia/issues)\n\n#### Supported tags and respective `Dockerfile` links\n\n-   [`latest`](https://github.com/skyra-project/arkadia/blob/main/Cdn.Dockerfile)\n\n#### What is [`arkadia.cdn`]\n\nArkadia.Cdn is a CDN that conforms to the RFC 7232 spec, internally interacted with via gRPC.\n\n#### Environment Variables\n\n**Required Environment Variables**\n\n-   `HTTP_PORT`  \n     The port for the http server to run on.  \n     _For Example:_ `9009`\n-   `GRPC_PORT`  \n     The port for the grpc server to run on.  \n     _For example:_ `9010`\n-   `BASE_ASSET_LOCATION`  \n     The location for assets to be stored at. Must exist before app start.  \n     _For Example:_ `/assets`\n\n**Optional Environment Variables**\n\n-   `POSTGRES_USER`  \n    The user for the Postgres database  \n    _default:_ `postgres`\n-   `POSTGRES_PASSWORD`  \n    The password for the database  \n    _default:_ `postgres`\n-   `POSTGRES_HOST`  \n    The host url \n    _default:_ `localhost`\n-   `POSTGRES_PORT`  \n    The port used to connect to Postgres  \n    _default:_ `5432`\n-   `POSTGRES_DB`  \n    The database to use in Postgres  \n    _default:_ `arkadia`\n-   `SENTRY_URL`  \n    The DSN url for Sentry (leave empty for no Sentry reporting)  \n    _default:_ `''`\n\n---\n\n## Buy us some doughnuts\n\nSkyra Project is open source and always will be, even if we don't get donations. That said, we know there are amazing people who\nmay still want to donate just to show their appreciation. Thanks you very much in advance!\n\nWe accept donations through Patreon, BitCoin, Ethereum, and Litecoin. You can use the buttons below to donate through your method of choice.\n\n| Donate With |         QR         |                        Address                         |\n| :---------: | :----------------: | :----------------------------------------------------: |\n|   Patreon   | ![PatreonImage][]  |                 [Click Here][patreon]                  |\n|   PayPal    |  ![PayPalImage][]  |                  [Click Here][paypal]                  |\n|   BitCoin   | ![BitcoinImage][]  |     [3JNzCHMTFtxYFWBnVtDM9Tt34zFbKvdwco][bitcoin]      |\n|  Ethereum   | ![EthereumImage][] | [0xcB5EDB76Bc9E389514F905D9680589004C00190c][ethereum] |\n|  Litecoin   | ![LitecoinImage][] |     [MNVT1keYGMfGp7vWmcYjCS8ntU8LNvjnqM][litecoin]     |\n\n[bitcoin]: bitcoin:3JNzCHMTFtxYFWBnVtDM9Tt34zFbKvdwco?amount=0.01\u0026label=Skyra%20Discord%20Bot\n[bitcoinimage]: https://cdn.skyra.pw/gh-assets/bitcoin.png\n[ethereum]: ethereum:0xcB5EDB76Bc9E389514F905D9680589004C00190c?amount=0.01\u0026label=Skyra%20Discord%20Bot\n[ethereumimage]: https://cdn.skyra.pw/gh-assets/ethereum.png\n[litecoin]: litecoin:MNVT1keYGMfGp7vWmcYjCS8ntU8LNvjnqM?amount=0.01\u0026label=Skyra%20Discord%20Bot\n[litecoinimage]: https://cdn.skyra.pw/gh-assets/litecoin.png\n[patreon]: https://donate.skyra.pw/patreon\n[patreonimage]: https://cdn.skyra.pw/gh-assets/patreon.png\n[paypal]: https://donate.skyra.pw/paypal\n[paypalimage]: https://cdn.skyra.pw/gh-assets/paypal.png\n[skyra]: https://github.com/skyra-project/skyra\n[support server]: https://join.skyra.pw\n[dotnet]: https://dotnet.microsoft.com\n[grpc]: https://grpc.io\n[`arkadia.notifications`]: https://github.com/skyra-project/docker-images/pkgs/container/arkadia.notifications\n[`arkadia.cdn`]: https://github.com/skyra-project/docker-images/pkgs/container/arkadia.cdn\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyra-project%2Farkadia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskyra-project%2Farkadia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyra-project%2Farkadia/lists"}