docs: delete all files mkdocs-material

This commit is contained in:
Данил 2025-02-22 23:02:49 +03:00
parent 02ef286326
commit 6ff4881777
14 changed files with 0 additions and 872 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View file

@ -1,28 +0,0 @@
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,
??? note
```
...
server_name localhost; # Your domain
...
```
## 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.
??? note
```
...
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
...
```

View file

@ -1,24 +0,0 @@
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.
!!! info
If you are not using Docker Compose, you do not need to edit this config
??? note "Example file `.env.example`"
```
# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
POSTGRES_PASSWORD=my_password
# If you do not know what you are doing, then you should not edit the values below
###################################################################################
POSTGRES_DB=kekkai
DB_HOST=postgres
POSTGRES_USER=postgres
```
This config only edits the password for PosgreSQL.
Please use only the characters `A-Za-z0-9`, without special characters or spaces

View file

@ -1,132 +0,0 @@
Kekkai can be configured using the `config.yaml` file in the working directory. `config.example.yaml`.
??? "Example file `config.example.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: true
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.
!!! info
If you installed Kekkai via Docker Compose, then install it in the `database.host` value of `postgres`.
The rest of the data does not have to be filled in. They need to be filled in `.env`.
What should it look like:
```yaml
database:
...
host: 'postgres'
...
...
```
## Server
!!! info
If you installed Kekkai via Docker Compose, then changing `server.host`, `server.ssl` is not recommended.
### 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.
??? note
```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.
??? note
```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.

View file

@ -1,140 +0,0 @@
Creating a currency rate chart.
## Creating a graph for a certain period
### Request
=== "Shell"
=== "Curl"
```bash
curl --request GET \
--url https://kekkai-api.redume.su/api/getChart/week?from_currency=RUB&conv_currency=USD
```
=== "Python"
=== "Request"
```python
import requests
res = requests.get('https://kekkai-api.redume.su/api/getChart/week', {
'from_currency': 'USD',
'conv_currency': 'RUB',
}, timeout=3)
print(res.json())
```
=== "Node.JS"
=== "Axios"
```js
const axios = require('axios');
axios.get('https://kekkai-api.redume.su/api/getChart/week', {
timeout: 3000,
'from_currency': 'USD',
'conv_currency': 'RUB',
})
.then((res) => {
console.log(res['data']);
})
.catch((err) => {
console.error(err);
});
```
### Query params
| Parameter | Description |
|-------------------|-------------------------------------------------------------------------|
| `from_currency`* | `ISO 4217` code of the currency from which the conversion takes place |
| `conv_currency`* | `ISO 4217` code of the currency to which the conversion is performed |
### URL params
| Parameter | Description |
|---------------|-------------------------------------------------------------------------|
| `period` | Available parameters: `week`, `month`, `quarter`, `year` |
`*` - Required arguments
### Response
!!! info "Output"
```json
{
"status": 201,
"message": "http://kekkai-api.redume.su/static/charts/RUB_USD_20241108_DQVDN7.png"
}
```
## Creating a schedule for specific days
### Request
=== "Shell"
=== "Curl"
```bash
curl --request GET \
--url https://kekkai-api.redume.su/api/getChart/?
from_currency=RUB&
conv_currency=USD&
start_date=2024-10-31&
end_date=2024-11-08
```
=== "Python"
=== "Request"
```python
import requests
res = requests.get('https://kekkai-api.redume.su/api/getChart/', {
'from_currency': 'USD',
'conv_currency': 'RUB',
'start_date': '2024-10-31',
'end_date': '2024-11-08'
}, timeout=3)
print(res.json())
```
=== "Node.JS"
=== "Axios"
```js
const axios = require('axios');
axios.get('https://kekkai-api.redume.su/api/getChart/', {
timeout: 3000,
'from_currency': 'USD',
'conv_currency': 'RUB',
'start_date': '2024-10-31',
'end_date': '2024-11-08'
})
.then((res) => {
console.log(res['data']);
})
.catch((err) => {
console.error(err);
});
```
### Query params
| Parameter | Description |
|------------------|------------------------------------------------------------------------|
| `from_currency`* | `ISO 4217` code of the currency from which the conversion takes place |
| `conv_currency`* | `ISO 4217` code of the currency to which the conversion is performed |
| `start_date`* | Start date of the period in the format `YYYYY-DD-MM` |
| `end_date`* | Period end date in the format `YYYYY-DD-MM` |
`*` - Required arguments
### Response
!!! info "Output"
```json
{
"status": 400,
"message": "http://kekkai-api.redume.su/static/charts/RUB_USD_20241108_1T2RI3.png"
}
```
## What the name of the chart file consists of
Example: ``.../RUB_USD_20241108_DQVDN7.png``
- `RUB_USD` - Name of currencies.
- `20241108` - Schedule request date in `YYYMMDD` format.
- `DQVDN7` - Random file character identifier.
All charts are in the charts folder, which is in the root directory (`./kekkai/chart`)

View file

@ -1,164 +0,0 @@
Currencies are identified by standard three-letter `ISO 4217` currency codes.
## Getting the currency rate for a certain day.
### Request
=== "Shell"
=== "Curl"
```bash
curl --request GET \
--url https://kekkai-api.redume.su/api/getRate/?from_currency=RUB&conv_currency=USD&date=2024-10-16
```
=== "Python"
=== "Requests"
```py
import requests
res = requests.get('https://kekkai-api.redume.su/api/getRate/', {
'from_currency': 'RUB',
'conv_currency': 'USD',
'date': '2024-10-16',
}, timeout=3)
print(res.json())
```
=== "Node.JS"
=== "Axios"
```js
const axios = require('axios');
axios.get('https://kekkai-api.redume.su/api/getRate/', {
timeout: 3000,
'from_currency': 'RUB',
'conv_currency': 'USD',
'date': '2024-10-16',
}
)
.then((res) => {
console.log(JSON.stringify(res.json()));
})
.catch((err) => {
console.error(err);
});
```
### Query Parameters
| Parameter | Description |
|-------------------|------------------------------------------------------------------------|
| `from_currency`* | `ISO 4217` code of the currency from which the conversion takes place |
| `conv_currency`* | `ISO 4217` code of the currency to which the conversion is performed |
| `date`* | Currency rate date in the format `YYYYY-DD-MM` |
| `conv_amount` | Multiplier for number conversion (Optional) |
`*` - Required arguments
### Response
!!! info "Output"
```json
[
{
"from_currency": "RUB",
"conv_currency": "USD",
"rate": 0.01,
"date": "2024-10-17T00:00:00.000Z"
}
]
```
## Get currency exchange rate for a certain period
Getting the list of the array with currency rate for a certain period of time.
### Request
=== "Shell"
=== "Curl"
```bash
curl --request GET \
--url https://kekkai-api.redume.su/api/getRate/?from_currency=RUB&conv_currency=USD&start_date=2024-10-16&end_date=2024-10-20
```
=== "Python"
=== "Requests"
```py
import requests
res = requests.get('https://kekkai-api.redume.su/api/getRate/', {
'from_currency': 'RUB',
'conv_currency': 'USD',
'start_date': '2024-10-16',
'end_date': '2024-10-20',
}, timeout=3)
print(res.json())
```
=== "Node.JS"
=== "Axios"
```js
const axios = require('axios');
axios.get('https://kekkai-api.redume.su/api/getRate/', {
timeout: 3000,
'from_currency': 'RUB',
'conv_currency': 'USD',
'start_date': '2024-10-16',
'end_date': '2024-10-20',
}
)
.then((res) => {
console.log(res['data']);
})
.catch((err) => {
console.error(err);
});
```
### Query params
| Parameter | Description |
|------------------|-------------------------------------------------------------------------|
| `from_currency`* | `ISO 4217` code of the currency from which the conversion takes place |
| `conv_currency`* | `ISO 4217` code of the currency to which the conversion is performed |
| `start_date`* | Start date of the period in the format `YYYYY-DD-MM` |
| `end_date`* | Period end date in the format `YYYYY-DD-MM` |
`*` - Required arguments
### Response
!!! info "Output"
```json
[
{
"from_currency": "RUB",
"conv_currency": "USD",
"rate": 0.01,
"date": "2024-10-17T00:00:00.000Z"
},
{
"from_currency": "RUB",
"conv_currency": "USD",
"rate": 0.01,
"date": "2024-10-18T00:00:00.000Z"
},
{
"from_currency": "RUB",
"conv_currency": "USD",
"rate": 0.01,
"date": "2024-10-19T00:00:00.000Z"
},
{
"from_currency": "RUB",
"conv_currency": "USD",
"rate": 0.01,
"date": "2024-10-20T00:00:00.000Z"
},
{
"from_currency": "RUB",
"conv_currency": "USD",
"rate": 0.01,
"date": "2024-10-21T00:00:00.000Z"
}
]
```

View file

@ -1,17 +0,0 @@
## API Base URL
All requests to our API should be directed to the URL below:
```
https://kekkai-api.redume.su/api/
```
## API Endpoints
Kekkai has 3 API endpoints: `getRate`, `getChart` and `metadata`.
Below you will find a list of parameters that each endpoint requires and a description of what the API does.
| Service | API Endpoint | Description |
|--------------|----------------------------------------------|---------------------------------------------------------------------------------------------|
| Get Rate | `https://kekkai-api.redume.su/api/getRate/` | Get currency exchange rate for a specific day or period |
| Create Chart | `https://kekkai-api.redume.su/api/getChart/` | Creating a chart with exchange rate |
| Metadata | `https://kekkai-api.redume.su/api/metadata/` | Shows the last and first dates of currency rate collection, as well as available currencies |

View file

@ -1,60 +0,0 @@
Currencies are identified by standard three-letter `ISO 4217` currency codes.
## Get data on available dates and currencies.
### Request
=== "Shell"
=== "Curl"
```bash
curl --request GET \
--url https://kekkai-api.redume.su/api/metadata/
```
=== "Python"
=== "Requests"
```py
import requests
res = requests.get('https://kekkai-api.redume.su/api/metadata/', timeout=3)
print(res.json())
```
=== "Node.JS"
=== "Axios"
```js
const axios = require('axios');
axios.get('https://kekkai-api.redume.su/api/metadata/')
.then((res) => {
console.log(JSON.stringify(res.json()));
})
.catch((err) => {
console.error(err);
});
```
### Response
!!! info "Output"
```json
{
"first_date": "2024-11-26T21:00:00.000Z",
"last_date": "2025-01-01T21:00:00.000Z",
"currencies": {
"crypto": [
"USDT",
"TON",
"BTC",
"ETH"
],
"fiat": [
"USD",
"RUB",
"EUR",
"UAH",
"TRY",
"KZT"
]
}
}
```

View file

@ -1,69 +0,0 @@
If you have any questions, you can write to the [mail](mailto:redddume@gmail.com) or [Telegram](https://t.me/Redddume)
### Fork and clone your repository
1. Fork the repository ([click here to fork now](https://github.com/Redume/Kekkai/fork))
2. Clone your forked code
```bash
git clone https://github.com/<nickname>/Kekkai.git
```
3. Create new branch
```bash
git branch <name_new_branch>
```
4. Switch to new branch
```bash
git checkout <name_new_branch>
```
5. Push your commits
6. Submit a new Pull Request
### Testing
Before sending a Pull Request, test the functionality. Everything should work both in Docker Compose and without it.
It is recommended to use Debugger and Debug log for testing. The logging level is changed in `config.yaml`
### Code Style
[`Pylint`][pylint], [`mypy`][mypy], [`eslint`][eslint] and [`prettier`][prettier] are used as code syntax checks
#### Checking the Node.JS code
To check the code, you must first download the necessary libraries, which are located at the root of the project
```bash
npm install
```
`eslint` and `prettier` is used to check and automatically correct the Node.JS code
```bash
npx eslint .
```
Or add the `--fix` flag to automatically fix the code
#### Checking the Python code
To check code, you need to install libraries `mypy` and `pylint`
```bash
python3 -m pip install -U mypy
```
and install `pylint`
```bash
pip install pylint
```
Start check the code
for `pylint`:
```bash
pylint /chart/
```
and for `mypy`:
```bash
mypy /chart/
```
[pylint]: https://github.com/pylint-dev/pylint
[mypy]: https://github.com/python/mypy
[eslint]: https://github.com/eslint/eslint
[prettier]: https://github.com/prettier/prettier

View file

@ -1,79 +0,0 @@
Docker Compose is the recommended method to run Kekkai in production.
Below are the steps to deploy Kekkai with Docker Compose.
Kekkai requires Docker Compose version 2.x.
### Steps 1 - Preparing files
```shell
git clone https://github.com/Redume/Kekkai.git
```
```shell
cd Kekkai
```
### Steps 2 - Change config files
??? note "Nginx Configuration"
In `nginx.conf`, you need to specify your domain or ipv4 address
```
...
listen 443 ssl;
server_name localhost; # Your domain
...
```
To set up SSL
```bash
mkdir CertSLL
```
After that, copy the SSL certificates to the `CertSSL` folder, if the names are different,
then change either the name of the certificates or in `nginx.conf`
```
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
```
??? note "The main config is `config.sample.yaml` for Kekkai"
```yaml
database:
user: 'DATABASE_USERNAME'
password: 'DATABASE_PASSWORD'
host: 'DATABASE_HOST'
name: 'DATABASE_NAME'
port: 5432
...
```
Fill in the data in the `database` item, as well as in the `.env` config
??? note "`.env.sample` config for PostgreSQL"
```.env
# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
POSTGRES_PASSWORD=my_password
# If you do not know what you are doing, then you should not edit the values below
###################################################################################
POSTGRES_DB=kekkai
DB_HOST=postgres
POSTGRES_USER=postgres
```
- Populate custom database information if necessary.
- Consider changing `DB_PASSWORD` to a custom value.
Postgres is not publically exposed, so this password is only used for - local authentication.
To avoid issues with Docker parsing this value, it is best to use only the characters `A-Za-z0-9`.
!!! note
After editing, rename the config files by removing `.sample` in the name
### Steps 3 - Start the containers
```shell title='Start the containers using docker compose command'
docker compose -f "docker-compose.yaml" up -d --build
```

View file

@ -1,72 +0,0 @@
For full use, you need to install `Node.JS v20`, `PostgreSQL v15`, `Python v13.3`, `Nginx`
### Steps 1 - Preparing files
```shell
git clone https://github.com/Redume/Kekkai.git
```
```shell
cd Kekkai
```
### Steps 2 - Change config files
??? note "Nginx Configuration"
In `nginx.conf`, you need to specify your domain or ipv4 address
```nginx
...
listen 443 ssl;
server_name localhost; # Your domain
...
```
??? note "The main config is `config.sample.yaml` for Kekkai"
```yaml
database:
user: 'DATABASE_USERNAME'
password: 'DATABASE_PASSWORD'
host: 'DATABASE_HOST'
name: 'DATABASE_NAME'
port: 5432
...
```
Fill in the data in the `database` item, as well as in the `.env` config
### Steps 3 - Install libs
Install library. In `/shared/logger`, `/shared/config`, `/shared/database`, `/collect-currency`,` /server`,
the required node.JS libraries In each of the directories, you need to write this command
```shell
npm install
```
and install python libs
```shell
pip install -r requirements.txt
```
Start the nginx service
```shell
sudo systemctl start nginx.service
```
### Steps 4 - Launch Services
Launch each of the services
There are all three services `MainService`, `Collect-currency`, `Chart`
- `MainService` is an API for getting the exchange rate
```shell
cd server & node .
```
- `Collect-Currency` is a service for collecting and save the rate in a database
```shell
cd collect-currency/src/ && node .
```
- `ChartService` is a service for creating currency rate charts
```shell
python3 main.py
```

View file

@ -1,11 +0,0 @@
## What is Kekkai?
Kekkai — The first free Open-Source Tool for Saving Historical Currency data
It is a simple tool for collecting historical currency data from open sources,
with the ability to create currency exchange rate charts.
## Why Kekkai?
- Free & Open-Source
- The ability to create graphs
- Plausible support. Anonymous data collection with the ability to disable it. Available only to server owners

View file

@ -1,14 +0,0 @@
{
"yaml.schemas": {
"https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
},
"yaml.customTags": [
"!ENV scalar",
"!ENV sequence",
"!relative scalar",
"tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg",
"tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji",
"tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format",
"tag:yaml.org,2002:python/object/apply:pymdownx.slugs.slugify mapping"
]
}

View file

@ -1,62 +0,0 @@
site_name: Kekkai
site_url: https://kekkai-docs.redume.su
site_author: Redume
site_description: The first free Open-Source Tool for Saving Historical Currency data
repo_name: Redume/Kekkai
repo_url: https://github.com/Redume/Kekkai
edit_uri: ''
copyright: Copyright &copy; 2024 Redume
nav:
- Getting started:
- Docker [Recommended]: getting-started/docker.md
- Manual: getting-started/manual.md
- Contributing: getting-started/contributing.md
- Endpoints:
- Endpoints list: endpoints/list-endpoints.md
- Get currency rate - /api/getRate: endpoints/get-rate.md
- Create Charts - /api/getChart: endpoints/create-chart.md
- Get Metadata - /api/metadata: endpoints/metadata.md
- Config:
- Configure config.yaml: config/config-yaml.md
- Configure .env: config/config-env.md
- Configure nginx.conf: config/conf-nginx.md
theme:
logo: assets/logo.png
favicon: assets/logo.png
language: en
name: material
palette:
- media: "(prefers-color-scheme: light)"
scheme: default
toggle:
icon: material/brightness-7
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
toggle:
icon: material/brightness-4
name: Switch to system preference
features:
- content.code.copy
- content.tabs.link
markdown_extensions:
- pymdownx.tabbed:
alternate_style: true
- pymdownx.highlight:
anchor_linenums: true
line_spans: __span
pygments_lang_class: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.superfences
- admonition
- pymdownx.details
- pymdownx.superfences
- tables