Skip to content
This repository has been archived by the owner on Jun 14, 2023. It is now read-only.

skyra-project/arkadia

Arkadia Logo

Arkadia

C# Microservices for Skyra

GitHub codecov

Support Server


Table of Contents

Description

Arkadia 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.

Published Docker Images

Quick reference

Supported tags and respective Dockerfile links

Arkadia.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. The 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.

Environment Variables

Required Environment Variables

  • HTTP_PORT
    The port for the http server to run on.
    For Example: 9009
  • GRPC_PORT
    The port for the grpc server to run on.
    For example: 9010
  • CALLBACK_URL
    The url passed to google's pubsubhubbub to send notifications to.
    For Example: https://notifications.skyra.pw
  • YOUTUBE_API_KEY
    The api key for googles data api.
    For example: 4MRhPzudqh4n9UP68y9c6xsh_Nk3TeG6Kf_3*oFAn2jpF@nffN

Optional Environment Variables

  • RESUB_TIMER_INTERVAL
    The amount of seconds we should wait between checking for resubscriptions
    default: 60
  • PUBSUB_URL
    The url for the PubSubHubBub API
    default: https://pubsubhubbub.appspot.com/
  • POSTGRES_USER
    The user for the Postgres database
    default: postgres
  • POSTGRES_PASSWORD
    The password for the database
    default: postgres
  • POSTGRES_HOST
    The host url default: localhost
  • POSTGRES_PORT
    The port used to connect to Postgres
    default: 5432
  • POSTGRES_DB
    The database to use in Postgres
    default: arkadia
  • SENTRY_URL
    The DSN url for Sentry (leave empty for no Sentry reporting)
    default: ''

Quick reference

Supported tags and respective Dockerfile links

What is arkadia.cdn

Arkadia.Cdn is a CDN that conforms to the RFC 7232 spec, internally interacted with via gRPC.

Environment Variables

Required Environment Variables

  • HTTP_PORT
    The port for the http server to run on.
    For Example: 9009
  • GRPC_PORT
    The port for the grpc server to run on.
    For example: 9010
  • BASE_ASSET_LOCATION
    The location for assets to be stored at. Must exist before app start.
    For Example: /assets

Optional Environment Variables

  • POSTGRES_USER
    The user for the Postgres database
    default: postgres
  • POSTGRES_PASSWORD
    The password for the database
    default: postgres
  • POSTGRES_HOST
    The host url default: localhost
  • POSTGRES_PORT
    The port used to connect to Postgres
    default: 5432
  • POSTGRES_DB
    The database to use in Postgres
    default: arkadia
  • SENTRY_URL
    The DSN url for Sentry (leave empty for no Sentry reporting)
    default: ''

Buy us some doughnuts

Skyra Project is open source and always will be, even if we don't get donations. That said, we know there are amazing people who may still want to donate just to show their appreciation. Thanks you very much in advance!

We accept donations through Patreon, BitCoin, Ethereum, and Litecoin. You can use the buttons below to donate through your method of choice.

Donate With QR Address
Patreon PatreonImage Click Here
PayPal PayPalImage Click Here
BitCoin BitcoinImage 3JNzCHMTFtxYFWBnVtDM9Tt34zFbKvdwco
Ethereum EthereumImage 0xcB5EDB76Bc9E389514F905D9680589004C00190c
Litecoin LitecoinImage MNVT1keYGMfGp7vWmcYjCS8ntU8LNvjnqM