mirror of
https://github.com/Redume/Kekkai.git
synced 2025-02-23 20:51:25 +03:00
docs: delete all files mkdocs-material
This commit is contained in:
parent
02ef286326
commit
6ff4881777
14 changed files with 0 additions and 872 deletions
Binary file not shown.
Before Width: | Height: | Size: 14 KiB |
|
@ -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;
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
|
@ -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
|
|
|
@ -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.
|
|
|
@ -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`)
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
```
|
|
|
@ -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 |
|
|
|
@ -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"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -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
|
|
|
@ -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
|
|
||||||
```
|
|
|
@ -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
|
|
||||||
```
|
|
|
@ -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
|
|
|
@ -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"
|
|
||||||
]
|
|
||||||
}
|
|
62
mkdocs.yml
62
mkdocs.yml
|
@ -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 © 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
|
|
Loading…
Add table
Reference in a new issue