diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index afd4903..e310848 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -43,6 +43,23 @@ export default defineConfig({ } ], }, + { + label: 'Config', + items: [ + { + label: 'Configure .env', + slug: 'docs/config/config-env' + }, + { + label: 'Configure config.yaml', + slug: 'docs/config/config-yaml' + }, + { + label: 'Configure Nginx', + slug: 'docs/config/config-nginx' + } + ], + }, ], }), ], diff --git a/docs/src/content/docs/docs/config/config-env.mdx b/docs/src/content/docs/docs/config/config-env.mdx new file mode 100644 index 0000000..e3553d4 --- /dev/null +++ b/docs/src/content/docs/docs/config/config-env.mdx @@ -0,0 +1,31 @@ +--- +title: Configure .env +--- + +import { Aside, Code } from '@astrojs/starlight/components'; + +Kekkai can be configured using the `.env` file in the working directory. `.env.example`. + +`.env` config is used to configure PosgreSQL running in Docker Compose. + + + + + +This config only edits the password for PosgreSQL. + +Please use only the characters `A-Za-z0-9`, without special characters or spaces \ No newline at end of file diff --git a/docs/src/content/docs/docs/config/config-nginx.mdx b/docs/src/content/docs/docs/config/config-nginx.mdx new file mode 100644 index 0000000..5debd92 --- /dev/null +++ b/docs/src/content/docs/docs/config/config-nginx.mdx @@ -0,0 +1,32 @@ +--- +title: Nginx configuration +--- + +import { Code } from '@astrojs/starlight/components'; + +Kekkai is used by `Nginx` to redirect to the correct microservice. + +## Change domain + +Change localhost to your `domain` or `ipv4` based on your needs. +If you need to use Kekkai locally, you don't need to change anything, + + + + +## Change name for SSL +This is where the name of the SSL files changes. This needs to be edited if you have a different one + +Change `privkey.pem` and `fullchain.pem` to the names of the files you have. + + diff --git a/docs/src/content/docs/docs/config/config-yaml.mdx b/docs/src/content/docs/docs/config/config-yaml.mdx new file mode 100644 index 0000000..dcd0885 --- /dev/null +++ b/docs/src/content/docs/docs/config/config-yaml.mdx @@ -0,0 +1,148 @@ +--- +title: Configure config.yaml +--- + +import { Aside } from '@astrojs/starlight/components'; + +Kekkai can be configured using the `config.yaml` file in the working directory. +`config.example.yaml`. + +```yaml +# For more information, see the documentation +# https://kekkai-docs.redume.su/ + +database: + user: 'DATABASE_USERNAME' + password: 'DATABASE_PASSWORD' + host: 'DATABASE_HOST' + name: 'DATABASE_NAME' + port: 5432 +server: + host: '0.0.0.0' + ssl: + private_key: '/CertSSL/privkey.pem' + cert: '/CertSSL/fullchain.pem' + work: true + log: + print: true + level: 'info' +analytics: + plausible_api: 'https://plausible.io/api/event/' + plausible_domain: 'PLAUSIBLE_DOMAIN' + plausible_token: 'PLAUSIBLE_TOKEN' + work: false +currency: + chart: + save: false + collecting: + fiat: true + schedule: '30 8 * * *' + fiat: + - USD + - RUB + - EUR + - UAH + - TRY + - KZT +``` + +## Database +Kekkai is used as a `PostgreSQL` database. + + + +## Server + + +### SSL +Create a folder CertSSL to store your certificates +```shell +mkdir CertSSL +``` + +Copy your certificates to the CertSSL folder. + +It is recommended to rename the certificates to `privkey.pem` and `fullchain.pem`. +If this is not possible, +you need to change the SSL name in `nginx.conf` (if using Docker Compose) + +## Analytics +Kekkai uses [`Plausbile`](https://plausible.io/) as an analyst. +Minimal data is transferred for anilithics. +Such as: browser, OS, status code, url, where the user came from. +Most of the data is built on User Agent. +It is possible to disable analytics in Kekkai. + +```yaml +... +analytics: + plausible_api: 'https://plausible.io/api/event/' + plausible_domain: 'PLAUSIBLE_DOMAIN' + plausible_token: 'PLAUSIBLE_TOKEN' + work: true +... +``` + +- `plausible_api`: This is where the Plausible instance is specified. + The official instance is specified by default. +- `plausible_domain`: Kekkai Instance Domain. + It should be added to Plausible first, and then to the config. + You can add the domain [here](https://plausible.io/sites/new?flow=provisioning). +- `plausible_token`: Api token for authorization and sending requests. +You can create it [here](https://plausible.io/settings/api-keys). +- `work`: Enable or disable analytics. + +## Currency +`DuckDuckGo` (fiat currency collection) and `CoinMarketCap` (cryptocurrency collection) +are used to collect currency rates. + + +```yaml +... +currency: + chart: + save: false # Enable or disable saving graphs to an image (Boolean) + collecting: + fiat: true # Turn off or turn on the collection of the fiat currency rate [Boolean] + crypto: false + schedule: '30 8 * * *' # Currency collection schedule in crontab format [String] + crypto_apikey: 'APIKEY' + fiat: # List of fiat currency to save the exchange rate [Array] + - USD + - RUB + - EUR + - UAH + - TRY + - KZT + crypto: + - ETH + - TON + - USDT +``` + +- `currency.chart.save`: Enable or disable saving graphs. +- `currency.collecting`: Enable or disable cryptocurrency +or fiat currency exchange rate collection. +- `currency.schedule`: Currency collection interval (Configurable via cron. + It is recommended to use [crontab.guru](https://crontab.guru), + not supported in `Non-standard format`, like `@daily`). +- `crypto.crypto_apiKey`: API-key from CoinMarketCap service +- `currency.fiat`: A list of fiat currencies that will be saved to the database. +- `currency.crypto`: A list of crypto currencies that will be saved to the database. \ No newline at end of file