Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 863f09d0b9 | |||
| 8beacf9917 | |||
| 510fcfe348 | |||
| 1b73f38627 | |||
| 9981d649be | |||
| 421d5310ec | |||
| 9586af2566 | |||
| ef77f6012a | |||
| f9e29ec555 | |||
| 98146f0fc0 | |||
| 539034a93c | |||
| 06a473dbc4 | |||
| 63831e16b1 | |||
| 7165d611c6 | |||
| b4f818ac1a | |||
| 3190cf5d4d | |||
| a5ecf4550c |
+1
-1
@@ -26,7 +26,7 @@ ImageName=${AppName}
|
|||||||
ImageDir=${HOME}/docker_images
|
ImageDir=${HOME}/docker_images
|
||||||
mkdir -p ${ImageDir}
|
mkdir -p ${ImageDir}
|
||||||
|
|
||||||
Version=$(cat ${RootDir}/cvttpy/release_version.txt | awk -F, '{print $1}')
|
Version=$(cat ${RootDir}/cvttpy/VERSION | awk -F, '{print $1}')
|
||||||
|
|
||||||
cd ${RootDir}
|
cd ${RootDir}
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ ImageDir=${HOME}/docker_images
|
|||||||
mkdir -p ${ImageDir}
|
mkdir -p ${ImageDir}
|
||||||
|
|
||||||
|
|
||||||
Version=$(cat ${RootDir}/${Project}/release_version.txt | awk -F, '{print $1}')
|
Version=$(cat ${RootDir}/${Project}/VERSION | awk -F, '{print $1}')
|
||||||
# Version=${ProjectVersion}
|
# Version=${ProjectVersion}
|
||||||
|
|
||||||
cd ${RootDir}
|
cd ${RootDir}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
## Build
|
## Build
|
||||||
```bash
|
```bash
|
||||||
TgtHostname=cloud16.cvtt.vpn
|
TgtHostname=cloud16.cvtt.vpn
|
||||||
Version=$(cat cvttpy/release_version.txt)
|
Version=$(cat cvttpy/VERSION)
|
||||||
|
|
||||||
cd /home/oleg/develop/cvtt2
|
cd /home/oleg/develop/cvtt2
|
||||||
docker build -t config_service -t config_service:${Version} -f cvttpy/utils/docker/config_service/Dockerfile .
|
docker build -t config_service -t config_service:${Version} -f cvttpy/utils/docker/config_service/Dockerfile .
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "ALPACA_SANDBOX": {
|
|
||||||
"api_key": "PKLZSLFZMFMN1R28K9HK"
|
|
||||||
, "secret_key": "SKbxwLWJNs4kpn618DgGaopN6x1xzKwLM4Z7aymA"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
FROM python:3.12-slim
|
|
||||||
|
|
||||||
ARG FROM_DIR=docker_dev/market_data/alpaca_md_day
|
|
||||||
|
|
||||||
# Update the package list and install required packages
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
apt-utils \
|
|
||||||
libpq-dev \
|
|
||||||
build-essential
|
|
||||||
RUN apt-get update && apt-get install -y rsync openssh-client
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
||||||
software-properties-common \
|
|
||||||
curl \
|
|
||||||
parallel \
|
|
||||||
jq
|
|
||||||
|
|
||||||
RUN pip install --upgrade pip
|
|
||||||
|
|
||||||
|
|
||||||
COPY ${FROM_DIR}/requirements.txt /
|
|
||||||
RUN pip install -r /requirements.txt
|
|
||||||
|
|
||||||
COPY cvttpy /cvttpy
|
|
||||||
COPY ${FROM_DIR}/.creds /.creds
|
|
||||||
COPY ${FROM_DIR}/.creds /root/.creds
|
|
||||||
COPY ${FROM_DIR}/alpaca_md_day.sh /alpaca_md_day.sh
|
|
||||||
|
|
||||||
COPY docker_dev/shared/id_rsa /root/.ssh/id_rsa
|
|
||||||
COPY docker_dev/shared/id_rsa.pub /root/.ssh/id_rsa.pub
|
|
||||||
COPY docker_dev/shared/known_hosts /root/.ssh/known_hosts
|
|
||||||
|
|
||||||
RUN chmod 600 /root/.ssh/id_rsa /root/.ssh/id_rsa.pub /root/.ssh/known_hosts
|
|
||||||
|
|
||||||
|
|
||||||
# Shared Volumes
|
|
||||||
RUN mkdir -p /app/data
|
|
||||||
RUN mkdir /logs
|
|
||||||
RUN chmod +x /alpaca_md_day.sh
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
SHELL ["/bin/bash", "-c"]
|
|
||||||
ENV PYTHONPATH=/
|
|
||||||
ENTRYPOINT [ "/alpaca_md_day.sh" ]
|
|
||||||
|
|
||||||
# CMD [ "echo", "alpaca_md_day"]
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
# Build/Dev Host
|
|
||||||
## Build
|
|
||||||
```bash
|
|
||||||
Version=$(cat /home/oleg/develop/cvtt2/cvttpy/release_version.txt)
|
|
||||||
|
|
||||||
cd /home/oleg/develop/cvtt2
|
|
||||||
docker build -t crypto_md_day -t crypto_md_day:${Version} -f docker_dev/crypto_md_day/Dockerfile .
|
|
||||||
|
|
||||||
## Deploy
|
|
||||||
|
|
||||||
/home/oleg/develop/cvtt2/docker_dev/build.sh crypto_md_day
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
## On target Machine make sure user can use docker
|
|
||||||
```bash
|
|
||||||
sudo usermod -a -G docker cvtt
|
|
||||||
```
|
|
||||||
**Re-login as cvtt after adding cvtt to the group**
|
|
||||||
|
|
||||||
### Clean
|
|
||||||
```bash
|
|
||||||
docker rm -f crypto_md_day
|
|
||||||
docker images --filter=reference=crypto_md_day --format="{{.ID}}" | uniq | xargs docker rmi -f
|
|
||||||
```
|
|
||||||
### Test run locally
|
|
||||||
```
|
|
||||||
docker load -i /home/oleg/docker_images/crypto_md_day.img.tar
|
|
||||||
mkdir -p /tmp/data
|
|
||||||
mkdir -p /tmp/logs
|
|
||||||
docker run --network="host" --name=crypto_md_day -v /tmp/data:/app/data -v /tmp/logs:/logs crypto_md_day
|
|
||||||
```
|
|
||||||
|
|
||||||
## Restarting
|
|
||||||
```bash
|
|
||||||
docker restart crypto_md_day
|
|
||||||
```
|
|
||||||
|
|
||||||
# Useful Commands
|
|
||||||
```bash
|
|
||||||
docker images
|
|
||||||
docker ps -a
|
|
||||||
docker image rm <image>
|
|
||||||
docker rm <container>
|
|
||||||
docker exec -it <container> /bin/bash
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
```bash
|
|
||||||
docker rm -f crypto_md_day
|
|
||||||
docker images --filter=reference=crypto_md_day --format="{{.ID}}" | uniq | xargs docker rmi -f
|
|
||||||
|
|
||||||
/home/oleg/develop/cvtt2/docker_dev/build.sh crypto_md_day cryptoval4.cvtt.vpn
|
|
||||||
docker tag crypto_md_day:latest cloud21.cvtt.vpn:5500/crypto_md_day:latest
|
|
||||||
docker push cloud21.cvtt.vpn:5500/crypto_md_day:latest
|
|
||||||
|
|
||||||
# Local test
|
|
||||||
docker load -i /home/oleg/docker_images/crypto_md_day.img.tar && docker run --network="host" --name=crypto_md_day -v /tmp/data:/app/data crypto_md_day -h cvttdata -d 20240717 -s coinbase
|
|
||||||
```
|
|
||||||
|
|
||||||
## Local (cloud21) docker registry
|
|
||||||
### Run registry container (cloud21)
|
|
||||||
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkdir /opt/store/cvtt/docker_registry/data
|
|
||||||
vi /opt/store/cvtt/docker_registry/config.yml
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
version: 0.1
|
|
||||||
log:
|
|
||||||
fields:
|
|
||||||
service: registry
|
|
||||||
storage:
|
|
||||||
filesystem:
|
|
||||||
rootdirectory: /var/lib/registry
|
|
||||||
http:
|
|
||||||
addr: :5500
|
|
||||||
|
|
||||||
```
|
|
||||||
```bash
|
|
||||||
docker run -d -p 5500:5500 --name registry -v /opt/store/cvtt/docker_registry/config.yml:/etc/docker/registry/config.yml -v /opt/store/cvtt/docker_registry/data:/var/lib/registry registry:2
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building
|
|
||||||
#### /etc/docker/daemon.json
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"insecure-registries": ["cloud21.cvtt.vpn:5500"]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
```bash
|
|
||||||
sudo systemctl restart docker
|
|
||||||
```
|
|
||||||
```bash
|
|
||||||
/home/oleg/develop/cvtt2/docker_dev/build.sh crypto_md_day cryptoval4.cvtt.vpn
|
|
||||||
docker tag crypto_md_day:latest cloud21.cvtt.vpn:5500/crypto_md_day:latest
|
|
||||||
docker push cloud21.cvtt.vpn:5500/crypto_md_day:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
### Loading and Running (cryptoval4)
|
|
||||||
#### /etc/docker/daemon.json
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"insecure-registries": ["cloud21.cvtt.vpn:5500"]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
```bash
|
|
||||||
sudo systemctl restart docker
|
|
||||||
```
|
|
||||||
```
|
|
||||||
docker pull cloud21.cvtt.vpn:5500/crypto_md_day:latest
|
|
||||||
docker run --network="host" --name=cloud21.cvtt.vpn:5500/crypto_md_day crypto_md_day -h cvttdata -d 20240717 -s coinbase
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# --- Settings
|
|
||||||
export PYTHONPATH=/
|
|
||||||
export Python=python3.12
|
|
||||||
export Config=http://cloud23.cvtt.vpn:6789/apps/minimal_md
|
|
||||||
export PyScript=/cvttpy/exchanges/alpaca/hist_md/hist_md_bars.py
|
|
||||||
|
|
||||||
export OutputDir=/app/data/alpaca_md # Local
|
|
||||||
export LogDir=/logs
|
|
||||||
|
|
||||||
DEFAULT_NUM_JOBS=10
|
|
||||||
SLEEP_SEC_AFTER_PROC=2
|
|
||||||
DEFAULT_SLICE_SIZE=500
|
|
||||||
# --- Settings
|
|
||||||
|
|
||||||
mkdir -p ${OutputDir}
|
|
||||||
mkdir -p ${LogDir}
|
|
||||||
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
echo "Usage: $0 <date (YYYY-MM-DD)> [<num-jobs> (30) ] [<instrument_list_file>] "
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "CommandLine: ${*}"
|
|
||||||
|
|
||||||
Start=${1}
|
|
||||||
NumJobs=${2}
|
|
||||||
|
|
||||||
export CalendarURL=http://cloud23.cvtt.vpn:8000/api/v1/markets/hours?mic=XNYS
|
|
||||||
|
|
||||||
is_business_day() {
|
|
||||||
dt=${1}
|
|
||||||
|
|
||||||
open_time=$(curl -s "${CalendarURL}&start=${dt}&end=${dt}" | jq '.[] | .open_time')
|
|
||||||
if [ -n "${open_time}" ]; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
export -f is_business_day
|
|
||||||
|
|
||||||
|
|
||||||
if [ -z ${Start} ] ; then
|
|
||||||
echo "start is not specified, getting yesterday..."
|
|
||||||
Start=$(date -d "yesterday" "+%Y-%m-%d")
|
|
||||||
echo "Start=${Start}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
if is_business_day ${Start}; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
echo "${Start} is not business day in US"
|
|
||||||
Start=$(date -d "${Start} - 1 day" "+%Y-%m-%d")
|
|
||||||
done
|
|
||||||
|
|
||||||
End=${Start} # only 1 day is practical
|
|
||||||
|
|
||||||
if [ "${NumJobs}" == "" ] ; then
|
|
||||||
NumJobs=${DEFAULT_NUM_JOBS}
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Start=${Start} End=${End} NumJobs=${NumJobs}"
|
|
||||||
|
|
||||||
|
|
||||||
run_proc() {
|
|
||||||
Inst=${1}
|
|
||||||
Start=${2}
|
|
||||||
End=${3}
|
|
||||||
echo "Running for $Inst"
|
|
||||||
|
|
||||||
Cmd="${Python} ${PyScript}"
|
|
||||||
Cmd="${Cmd} --config=${Config}"
|
|
||||||
Cmd="${Cmd} --output_dir=${OutputDir}"
|
|
||||||
Cmd="${Cmd} --instruments=ALPACA:${Inst}"
|
|
||||||
Cmd="${Cmd} --start=${Start}"
|
|
||||||
if [ "${End}" != "" ]; then
|
|
||||||
Cmd="${Cmd} --end=${End}"
|
|
||||||
fi
|
|
||||||
Cmd="${Cmd} --log_file=${LogDir}/${Inst}.log"
|
|
||||||
Cmd="${Cmd} --log_level=WARNING"
|
|
||||||
echo ${Cmd}
|
|
||||||
eval ${Cmd}
|
|
||||||
|
|
||||||
sleep 2 #${SLEEP_SEC_AFTER_PROC}
|
|
||||||
}
|
|
||||||
|
|
||||||
export -f run_proc
|
|
||||||
|
|
||||||
key=$(jq -r '.["ALPACA_SANDBOX"] | .api_key' ~/.creds)
|
|
||||||
secret=$(jq -r '.["ALPACA_SANDBOX"] | .secret_key' ~/.creds)
|
|
||||||
|
|
||||||
Cmd="curl -s --request GET --url 'https://paper-api.alpaca.markets/v2/assets?status=active'"
|
|
||||||
Cmd="${Cmd} --header 'APCA-API-KEY-ID: ${key}'"
|
|
||||||
Cmd="${Cmd} --header 'APCA-API-SECRET-KEY: ${secret}'"
|
|
||||||
Cmd="${Cmd} --header 'accept: application/json'"
|
|
||||||
Cmd="${Cmd} | jq '.[] | select(.class == \"us_equity\" and .exchange != \"OTC\") | .symbol'"
|
|
||||||
Cmd="${Cmd} | sed 's/\"//g'"
|
|
||||||
Cmd="${Cmd} | sed 's/^/STOCK-/'"
|
|
||||||
# split string into array
|
|
||||||
Instruments=()
|
|
||||||
for Inst in $(eval ${Cmd})
|
|
||||||
do
|
|
||||||
Instruments+=("$Inst")
|
|
||||||
done
|
|
||||||
|
|
||||||
slice_size=${DEFAULT_SLICE_SIZE} # 10K symbols parallel cannot handle
|
|
||||||
for ((ii=0; ii <${#Instruments[@]}; ii+=slice_size)); do
|
|
||||||
InstSlice=("${Instruments[@]:ii:slice_size}")
|
|
||||||
|
|
||||||
parallel -j ${NumJobs} run_proc {} ${Start} ${End} ::: "${InstSlice[@]}"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Compressing"
|
|
||||||
for file in $(find ${OutputDir} -type f -name '*db' -print )
|
|
||||||
do
|
|
||||||
echo "Compressing ${file}"
|
|
||||||
gzip ${file}
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
Source=/app/data/
|
|
||||||
Targets=
|
|
||||||
Targets="${Targets} cvtt@homestore.cvtt.vpn:/works/cvtt/md_archive/equity"
|
|
||||||
Targets="${Targets} cvtt@cloud21.cvtt.vpn:/opt/store/cvtt/md_archive/equity"
|
|
||||||
|
|
||||||
|
|
||||||
for tgt in ${Targets}
|
|
||||||
do
|
|
||||||
Cmd="/usr/bin/rsync -ahv ${Source} ${tgt}"
|
|
||||||
echo $Cmd
|
|
||||||
eval $Cmd
|
|
||||||
done
|
|
||||||
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "ALPACA_SANDBOX": {
|
|
||||||
"api_key": "PKLZSLFZMFMN1R28K9HK"
|
|
||||||
, "secret_key": "SKbxwLWJNs4kpn618DgGaopN6x1xzKwLM4Z7aymA"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -15,14 +15,14 @@ RUN apt-get update && apt-get install -y \
|
|||||||
# must be from disted version
|
# must be from disted version
|
||||||
COPY cvtt-rust/bin/alpaca_md_hbar_loader /
|
COPY cvtt-rust/bin/alpaca_md_hbar_loader /
|
||||||
|
|
||||||
COPY ${FROM_DIR}/.creds /.creds
|
# COPY ${FROM_DIR}/.creds /.creds
|
||||||
COPY ${FROM_DIR}/alpaca_hbar.sh /alpaca_hbar.sh
|
COPY ${FROM_DIR}/alpaca_hbar.sh /alpaca_hbar.sh
|
||||||
|
|
||||||
COPY docker_dev/shared/id_rsa /root/.ssh/id_rsa
|
COPY docker_dev/shared/id_rsa /root/.ssh/id_rsa
|
||||||
COPY docker_dev/shared/id_rsa.pub /root/.ssh/id_rsa.pub
|
COPY docker_dev/shared/id_rsa.pub /root/.ssh/id_rsa.pub
|
||||||
COPY docker_dev/shared/known_hosts /root/.ssh/known_hosts
|
|
||||||
|
|
||||||
RUN chmod 600 /root/.ssh/id_rsa /root/.ssh/id_rsa.pub /root/.ssh/known_hosts
|
RUN chmod 600 /root/.ssh/id_rsa /root/.ssh/id_rsa.pub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Shared Volumes
|
# Shared Volumes
|
||||||
|
|||||||
@@ -43,10 +43,6 @@ while getopts ":d:N:" opt; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
# if [ -z ${Symbols} ] ; then
|
|
||||||
# echo "symbols are not specified"
|
|
||||||
# usage
|
|
||||||
# fi
|
|
||||||
|
|
||||||
mkdir -p ${OutputDir}
|
mkdir -p ${OutputDir}
|
||||||
mkdir -p ${LogDir}
|
mkdir -p ${LogDir}
|
||||||
@@ -97,13 +93,15 @@ done
|
|||||||
|
|
||||||
Source=/data/
|
Source=/data/
|
||||||
Targets=
|
Targets=
|
||||||
Targets="${Targets} cvtt@homestore.cvtt.vpn:/works/cvtt/md_archive/equity"
|
Targets="${Targets} cvtt@hs01.cvtt.vpn:/works/cvtt/md_archive/equity"
|
||||||
Targets="${Targets} cvtt@cloud21.cvtt.vpn:/opt/store/cvtt/md_archive/equity"
|
Targets="${Targets} cvtt@cloud21.cvtt.vpn:/opt/store/cvtt/md_archive/equity"
|
||||||
|
|
||||||
|
|
||||||
for tgt in ${Targets}
|
for tgt in ${Targets}
|
||||||
do
|
do
|
||||||
Cmd="/usr/bin/rsync -ahv ${Source} ${tgt}"
|
Cmd="/usr/bin/rsync -ahv"
|
||||||
|
Cmd+=" -e 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'"
|
||||||
|
Cmd+=" ${Source} ${tgt}"
|
||||||
echo $Cmd
|
echo $Cmd
|
||||||
eval $Cmd
|
eval $Cmd
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "ALPACA_SANDBOX": {
|
|
||||||
"api_key": "PKLZSLFZMFMN1R28K9HK"
|
|
||||||
, "secret_key": "SKbxwLWJNs4kpn618DgGaopN6x1xzKwLM4Z7aymA"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -16,14 +16,13 @@ RUN apt-get update && apt-get install -y \
|
|||||||
# must be from disted version
|
# must be from disted version
|
||||||
COPY cvtt-rust/bin/alpaca_md_qat_loader /
|
COPY cvtt-rust/bin/alpaca_md_qat_loader /
|
||||||
|
|
||||||
COPY ${FROM_DIR}/.creds /.creds
|
# COPY ${FROM_DIR}/.creds /.creds
|
||||||
COPY ${FROM_DIR}/alpaca_qat.sh /alpaca_qat.sh
|
COPY ${FROM_DIR}/alpaca_qat.sh /alpaca_qat.sh
|
||||||
|
|
||||||
COPY docker_dev/shared/id_rsa /root/.ssh/id_rsa
|
COPY docker_dev/shared/id_rsa /root/.ssh/id_rsa
|
||||||
COPY docker_dev/shared/id_rsa.pub /root/.ssh/id_rsa.pub
|
COPY docker_dev/shared/id_rsa.pub /root/.ssh/id_rsa.pub
|
||||||
COPY docker_dev/shared/known_hosts /root/.ssh/known_hosts
|
|
||||||
|
|
||||||
RUN chmod 600 /root/.ssh/id_rsa /root/.ssh/id_rsa.pub /root/.ssh/known_hosts
|
RUN chmod 600 /root/.ssh/id_rsa /root/.ssh/id_rsa.pub
|
||||||
|
|
||||||
|
|
||||||
# Shared Volumes
|
# Shared Volumes
|
||||||
|
|||||||
@@ -95,13 +95,15 @@ done
|
|||||||
|
|
||||||
Source=/data/
|
Source=/data/
|
||||||
Targets=
|
Targets=
|
||||||
Targets="${Targets} cvtt@homestore.cvtt.vpn:/works/cvtt/md_archive/equity"
|
Targets="${Targets} cvtt@hs01.cvtt.vpn:/works/cvtt/md_archive/equity"
|
||||||
Targets="${Targets} cvtt@cloud21.cvtt.vpn:/opt/store/cvtt/md_archive/equity"
|
Targets="${Targets} cvtt@cloud21.cvtt.vpn:/opt/store/cvtt/md_archive/equity"
|
||||||
|
|
||||||
|
|
||||||
for tgt in ${Targets}
|
for tgt in ${Targets}
|
||||||
do
|
do
|
||||||
Cmd="/usr/bin/rsync -ahv ${Source} ${tgt}"
|
Cmd="/usr/bin/rsync -ahv"
|
||||||
|
Cmd+=" -e 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'"
|
||||||
|
Cmd+=" ${Source} ${tgt}"
|
||||||
echo $Cmd
|
echo $Cmd
|
||||||
eval $Cmd
|
eval $Cmd
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "TSDB_MD_CLD21_RO": {
|
|
||||||
"host": "cloud21.cvtt.vpn"
|
|
||||||
, "port": 5432
|
|
||||||
, "user": "cvtt_ro"
|
|
||||||
, "database": "cvtt_md"
|
|
||||||
, "password": "3Gkotqa0ZSmZLXSH3RkTUm"
|
|
||||||
}
|
|
||||||
, "TSDB_MD_CVTTDATA_RO": {
|
|
||||||
"host": "cvttdata.cvtt.vpn"
|
|
||||||
, "port": 5432
|
|
||||||
, "user": "cvtt_ro"
|
|
||||||
, "database": "cvtt_md"
|
|
||||||
, "password": "3Gkotqa0ZSmZLXSH3RkTUm"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -6,7 +6,7 @@ COPY ${FROM_DIR}/requirements.txt /
|
|||||||
|
|
||||||
|
|
||||||
COPY cvttpy /cvttpy
|
COPY cvttpy /cvttpy
|
||||||
COPY ${FROM_DIR}/.creds /.creds
|
# COPY ${FROM_DIR}/.creds /.creds
|
||||||
COPY ${FROM_DIR}/crypto_md_day.sh /crypto_md_day.sh
|
COPY ${FROM_DIR}/crypto_md_day.sh /crypto_md_day.sh
|
||||||
|
|
||||||
RUN pip install --upgrade pip --root-user-action=ignore
|
RUN pip install --upgrade pip --root-user-action=ignore
|
||||||
@@ -19,9 +19,8 @@ RUN apt-get update && apt-get install -y rsync openssh-client
|
|||||||
|
|
||||||
COPY docker_dev/shared/id_rsa /root/.ssh/id_rsa
|
COPY docker_dev/shared/id_rsa /root/.ssh/id_rsa
|
||||||
COPY docker_dev/shared/id_rsa.pub /root/.ssh/id_rsa.pub
|
COPY docker_dev/shared/id_rsa.pub /root/.ssh/id_rsa.pub
|
||||||
COPY docker_dev/shared/known_hosts /root/.ssh/known_hosts
|
|
||||||
|
|
||||||
RUN chmod 600 /root/.ssh/id_rsa /root/.ssh/id_rsa.pub /root/.ssh/known_hosts
|
RUN chmod 600 /root/.ssh/id_rsa /root/.ssh/id_rsa.pub
|
||||||
|
|
||||||
|
|
||||||
# Shared Volumes
|
# Shared Volumes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Build/Dev Host
|
# Build/Dev Host
|
||||||
## Build
|
## Build
|
||||||
```bash
|
```bash
|
||||||
Version=$(cat /home/oleg/develop/cvtt2/cvttpy/release_version.txt)
|
Version=$(cat /home/oleg/develop/cvtt2/cvttpy/VERSION)
|
||||||
|
|
||||||
cd /home/oleg/develop/cvtt2
|
cd /home/oleg/develop/cvtt2
|
||||||
docker build -t crypto_md_day -t crypto_md_day:${Version} -f docker_dev/crypto_md_day/Dockerfile .
|
docker build -t crypto_md_day -t crypto_md_day:${Version} -f docker_dev/crypto_md_day/Dockerfile .
|
||||||
|
|||||||
@@ -69,13 +69,14 @@ echo "Data Sync"
|
|||||||
|
|
||||||
Source=/app/data/
|
Source=/app/data/
|
||||||
Targets=
|
Targets=
|
||||||
Targets="${Targets} cvtt@homestore.cvtt.vpn:/works/cvtt/md_archive/crypto"
|
|
||||||
Targets="${Targets} cvtt@cloud21.cvtt.vpn:/opt/store/cvtt/md_archive/crypto"
|
Targets="${Targets} cvtt@cloud21.cvtt.vpn:/opt/store/cvtt/md_archive/crypto"
|
||||||
|
Targets="${Targets} cvtt@hs01.cvtt.vpn:/works/cvtt/md_archive/crypto"
|
||||||
|
|
||||||
for tgt in ${Targets}
|
for tgt in ${Targets}
|
||||||
do
|
do
|
||||||
Cmd="/usr/bin/rsync -ahv ${Source} ${tgt}"
|
Cmd="/usr/bin/rsync -ahv"
|
||||||
|
Cmd+=" -e 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'"
|
||||||
|
Cmd+=" ${Source} ${tgt}"
|
||||||
echo $Cmd
|
echo $Cmd
|
||||||
eval $Cmd
|
eval $Cmd
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ RUN pip install --upgrade pip --root-user-action=ignore
|
|||||||
RUN pip install -r /requirements.txt --root-user-action=ignore
|
RUN pip install -r /requirements.txt --root-user-action=ignore
|
||||||
|
|
||||||
COPY cvttpy /cvttpy
|
COPY cvttpy /cvttpy
|
||||||
COPY ${FROM_DIR}/.creds /.creds
|
|
||||||
COPY ${FROM_DIR}/run_md_recorder.sh /run_md_recorder.sh
|
COPY ${FROM_DIR}/run_md_recorder.sh /run_md_recorder.sh
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ RUN pip install --upgrade pip --root-user-action=ignore
|
|||||||
RUN pip install -r /requirements.txt --root-user-action=ignore
|
RUN pip install -r /requirements.txt --root-user-action=ignore
|
||||||
|
|
||||||
COPY cvttpy /cvttpy
|
COPY cvttpy /cvttpy
|
||||||
COPY ${FROM_DIR}/.creds /.creds
|
# COPY ${FROM_DIR}/.creds /.creds
|
||||||
COPY ${FROM_DIR}/run_mdr_monitor.sh /run_mdr_monitor.sh
|
COPY ${FROM_DIR}/run_mdr_monitor.sh /run_mdr_monitor.sh
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
FROM python:3.12-slim
|
FROM python:3.12-slim
|
||||||
|
|
||||||
WORKDIR /
|
WORKDIR /
|
||||||
COPY docker_dev/relative_liquidity/requirements.txt /
|
COPY docker_dev/market_data/relative_liquidity/requirements.txt /requirements.txt
|
||||||
RUN pip install --upgrade pip --root-user-action=ignore
|
RUN pip install --upgrade pip --root-user-action=ignore
|
||||||
RUN pip install -r /requirements.txt --root-user-action=ignore
|
RUN pip install -r /requirements.txt --root-user-action=ignore
|
||||||
|
|
||||||
@@ -19,15 +19,3 @@ CMD [ \
|
|||||||
"--db_file=/app/data/rel_liquidity.db", \
|
"--db_file=/app/data/rel_liquidity.db", \
|
||||||
"--log_file=/logs/%T.REL_LIQUIDITY_SVC.log" \
|
"--log_file=/logs/%T.REL_LIQUIDITY_SVC.log" \
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
# Cmd="docker run"
|
|
||||||
# Cmd="${Cmd} -d"
|
|
||||||
# Cmd="${Cmd} --rm"
|
|
||||||
# Cmd="${Cmd} --pull=always"
|
|
||||||
# Cmd="${Cmd} --name=relative_liquidity_svc"
|
|
||||||
# Cmd="${Cmd} -p 5678:5678"
|
|
||||||
# Cmd="${Cmd} -v /home/cvtt/prod/data:/app/data"
|
|
||||||
# Cmd="${Cmd} -v /home/cvtt/prod/logs:/logs"
|
|
||||||
# Cmd="${Cmd} cloud21.cvtt.vpn:5500/relative_liquidity:latest"
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
version: "3.9"
|
||||||
|
|
||||||
|
services:
|
||||||
|
md_gateway:
|
||||||
|
image: cloud21.cvtt.vpn:5500/md_gateway:latest
|
||||||
|
container_name: md_gateway
|
||||||
|
environment:
|
||||||
|
- REDIS_HOST=redis
|
||||||
|
volumes:
|
||||||
|
- ./.creds:/.creds
|
||||||
|
- ./config:/config
|
||||||
|
- ./logs:/logs
|
||||||
|
- ./data:/data
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
tester:
|
||||||
|
image: cloud21.cvtt.vpn:5500/tester:latest
|
||||||
|
container_name: tester
|
||||||
|
environment:
|
||||||
|
- REDIS_HOST=redis
|
||||||
|
volumes:
|
||||||
|
- ./config:/config
|
||||||
|
- ./logs:/logs
|
||||||
|
- ./data:/data
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
- md_gateway
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:latest
|
||||||
|
container_name: redis
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
volumes:
|
||||||
|
- ./data/redis:/data
|
||||||
|
|
||||||
|
|
||||||
|
# test_program:
|
||||||
|
# image: your_test_program_image:latest
|
||||||
|
# container_name: test_program
|
||||||
|
# environment:
|
||||||
|
# - REDIS_HOST=redis
|
||||||
|
# volumes:
|
||||||
|
# - ./config:/shared/config
|
||||||
|
# - ./logs:/shared/logs
|
||||||
|
# depends_on:
|
||||||
|
# - market_data_gateway
|
||||||
|
# - redis
|
||||||
|
|
||||||
|
# volumes:
|
||||||
|
# redis_data:
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
ARG ROOT_MCRSVC_DIR=docker_dev/microservices
|
||||||
|
ARG FROM_DIR=${ROOT_MCRSVC_DIR}/md_gateway
|
||||||
|
|
||||||
|
COPY ${ROOT_MCRSVC_DIR}/requirements.txt /
|
||||||
|
RUN pip install --upgrade pip --root-user-action=ignore
|
||||||
|
RUN pip install -r /requirements.txt --root-user-action=ignore
|
||||||
|
|
||||||
|
COPY cvttpy /cvttpy
|
||||||
|
# COPY ${ROOT_MCRSVC_DIR}/.creds /.creds
|
||||||
|
|
||||||
|
|
||||||
|
COPY ${FROM_DIR}/run_mdgw.sh /run_mdgw.sh
|
||||||
|
RUN chmod +x /run_mdgw.sh
|
||||||
|
|
||||||
|
RUN mkdir /logs
|
||||||
|
RUN mkdir -p /config
|
||||||
|
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
SHELL ["/bin/bash", "-c"]
|
||||||
|
ENV PYTHONPATH=/
|
||||||
|
ENTRYPOINT [ "/run_mdgw.sh" ]
|
||||||
|
|
||||||
Executable
+48
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# runs in container
|
||||||
|
|
||||||
|
# runs on host to start container
|
||||||
|
usage() {
|
||||||
|
echo -n "Usage: ${0}"
|
||||||
|
echo -n " [-c <config (/config/cvtt.cfg)>]"
|
||||||
|
echo -n " [-a <admin_port (7220)>]"
|
||||||
|
echo -n " [-z (compress log)"]
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Config=/config/cvtt.cfg
|
||||||
|
AdminPort=7220
|
||||||
|
COMPRESS_LOG=false
|
||||||
|
|
||||||
|
|
||||||
|
while getopts "c:a:z" opt; do
|
||||||
|
case ${opt} in
|
||||||
|
c ) Config=$OPTARG ;;
|
||||||
|
a ) AdminPort=$OPTARG ;;
|
||||||
|
z ) COMPRESS_LOG=true ;;
|
||||||
|
\? )
|
||||||
|
echo "Invalid option: -$OPTARG" >&2
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
: )
|
||||||
|
echo "Option -$OPTARG requires an argument." >&2
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
Cmd="python3.12"
|
||||||
|
Cmd="${Cmd} cvttpy/apps/microservices/market_gateways/md_gateway.py"
|
||||||
|
Cmd="${Cmd} --config=${Config}"
|
||||||
|
Cmd="${Cmd} --credentials_file=/.creds"
|
||||||
|
Cmd="${Cmd} --admin_port=${AdminPort}"
|
||||||
|
Cmd="${Cmd} --log_file=/logs/%T.md_gateway.log"
|
||||||
|
if ${COMPRESS_LOG} ; then
|
||||||
|
Cmd="${Cmd} --compress_log"
|
||||||
|
fi
|
||||||
|
echo ${Cmd}
|
||||||
|
eval ${Cmd}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
ARG ROOT_MCRSVC_DIR=docker_dev/microservices
|
||||||
|
ARG FROM_DIR=${ROOT_MCRSVC_DIR}/oe_gateway
|
||||||
|
|
||||||
|
COPY ${ROOT_MCRSVC_DIR}/requirements.txt /
|
||||||
|
RUN pip install --upgrade pip --root-user-action=ignore
|
||||||
|
RUN pip install -r /requirements.txt --root-user-action=ignore
|
||||||
|
|
||||||
|
COPY cvttpy /cvttpy
|
||||||
|
COPY ${ROOT_MCRSVC_DIR}/.creds /.creds
|
||||||
|
|
||||||
|
|
||||||
|
COPY ${FROM_DIR}/run_oegw.sh /run_oegw.sh
|
||||||
|
RUN chmod +x /run_oegw.sh
|
||||||
|
|
||||||
|
RUN mkdir /logs
|
||||||
|
RUN mkdir -p /config
|
||||||
|
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
SHELL ["/bin/bash", "-c"]
|
||||||
|
ENV PYTHONPATH=/
|
||||||
|
ENTRYPOINT [ "/run_oegw.sh" ]
|
||||||
|
|
||||||
Executable
+48
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# runs in container
|
||||||
|
|
||||||
|
# runs on host to start container
|
||||||
|
usage() {
|
||||||
|
echo -n "Usage: ${0}"
|
||||||
|
echo -n " [-c <config (/config/cvtt.cfg)>]"
|
||||||
|
echo -n " [-a <admin_port (7220)>]"
|
||||||
|
echo -n " [-z (compress log)"]
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Config=/config/cvtt.cfg
|
||||||
|
AdminPort=7220
|
||||||
|
COMPRESS_LOG=false
|
||||||
|
|
||||||
|
|
||||||
|
while getopts "c:a:z" opt; do
|
||||||
|
case ${opt} in
|
||||||
|
c ) Config=$OPTARG ;;
|
||||||
|
a ) AdminPort=$OPTARG ;;
|
||||||
|
z ) COMPRESS_LOG=true ;;
|
||||||
|
\? )
|
||||||
|
echo "Invalid option: -$OPTARG" >&2
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
: )
|
||||||
|
echo "Option -$OPTARG requires an argument." >&2
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
Cmd="python3.12"
|
||||||
|
Cmd="${Cmd} cvttpy/apps/microservices/market_gateways/order_entry_gateway.py"
|
||||||
|
Cmd="${Cmd} --config=${Config}"
|
||||||
|
Cmd="${Cmd} --credentials_file=/.creds"
|
||||||
|
Cmd="${Cmd} --admin_port=${AdminPort}"
|
||||||
|
Cmd="${Cmd} --log_file=/logs/%T.md_gateway.log"
|
||||||
|
if ${COMPRESS_LOG} ; then
|
||||||
|
Cmd="${Cmd} --compress_log"
|
||||||
|
fi
|
||||||
|
echo ${Cmd}
|
||||||
|
eval ${Cmd}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
ARG ROOT_MUSVC_DIR=docker_dev/microservices
|
||||||
|
ARG FROM_DIR=${ROOT_MUSVC_DIR}/tester
|
||||||
|
|
||||||
|
COPY ${ROOT_MUSVC_DIR}/requirements.txt /
|
||||||
|
RUN pip install --upgrade pip --root-user-action=ignore
|
||||||
|
RUN pip install -r /requirements.txt --root-user-action=ignore
|
||||||
|
|
||||||
|
COPY cvttpy /cvttpy
|
||||||
|
# COPY ${ROOT_MUSVC_DIR}/.creds /.creds
|
||||||
|
|
||||||
|
|
||||||
|
COPY ${FROM_DIR}/run_tester.sh /run_tester.sh
|
||||||
|
RUN chmod +x /run_tester.sh
|
||||||
|
|
||||||
|
RUN mkdir /logs
|
||||||
|
RUN mkdir -p /config
|
||||||
|
RUN mkdir -p /data
|
||||||
|
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
SHELL ["/bin/bash", "-c"]
|
||||||
|
ENV PYTHONPATH=/
|
||||||
|
ENTRYPOINT [ "/run_tester.sh" ]
|
||||||
|
|
||||||
Executable
+55
@@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# runs in container
|
||||||
|
|
||||||
|
# runs on host to start container
|
||||||
|
usage() {
|
||||||
|
echo -n "Usage: ${0}"
|
||||||
|
echo -n " [-c <config (/config/cvtt.cfg) >]"
|
||||||
|
echo -n " [-i <instruments (COINBASE:PAIR-BTC-USD,BNBFUT:PERP-BTC-USDT) >]"
|
||||||
|
echo -n " [-d <data types (TRADES) >]"
|
||||||
|
echo -n " [-a <admin_port (7221) >]"
|
||||||
|
echo -n " [-z (compress log (false))"]
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Config=/config/cvtt.cfg
|
||||||
|
AdminPort=7221
|
||||||
|
COMPRESS_LOG=false
|
||||||
|
Instruments="COINBASE:PAIR-BTC-USD,BNBFUT:PERP-BTC-USDT"
|
||||||
|
DataTypes="TRADES"
|
||||||
|
|
||||||
|
while getopts "a:c:d:i:z" opt; do
|
||||||
|
case ${opt} in
|
||||||
|
c ) Config=$OPTARG ;;
|
||||||
|
a ) AdminPort=$OPTARG ;;
|
||||||
|
i ) Instruments=$OPTARG ;;
|
||||||
|
d ) DataTypes=$OPTARG ;;
|
||||||
|
z ) COMPRESS_LOG=true ;;
|
||||||
|
\? )
|
||||||
|
echo "Invalid option: -$OPTARG" >&2
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
: )
|
||||||
|
echo "Option -$OPTARG requires an argument." >&2
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
Cmd="python3.12"
|
||||||
|
Cmd="${Cmd} cvttpy/apps/microservices/tester/musvc_tester.py"
|
||||||
|
Cmd="${Cmd} --config=${Config}"
|
||||||
|
Cmd="${Cmd} --credentials_file=/.creds"
|
||||||
|
Cmd="${Cmd} --admin_port=${AdminPort}"
|
||||||
|
Cmd="${Cmd} --data_types=${DataTypes}"
|
||||||
|
Cmd="${Cmd} --instruments=${Instruments}"
|
||||||
|
Cmd="${Cmd} --log_file=/logs/%T.tester.log"
|
||||||
|
if ${COMPRESS_LOG} ; then
|
||||||
|
Cmd="${Cmd} --compress_log"
|
||||||
|
fi
|
||||||
|
echo ${Cmd}
|
||||||
|
eval ${Cmd}
|
||||||
|
|
||||||
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
0.0.5,16->23
|
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
FROM python:3.12-slim
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
ARG FROM_DIR=./docker_dev/research/crypto_exch_stats
|
||||||
|
|
||||||
WORKDIR /
|
WORKDIR /
|
||||||
COPY docker_dev/research/crypto_exch_stats/requirements.txt /
|
COPY ${FROM_DIR}/requirements.txt /
|
||||||
|
|
||||||
RUN pip install --upgrade pip --root-user-action=ignore
|
RUN pip install --upgrade pip --root-user-action=ignore
|
||||||
RUN pip install -r /requirements.txt --root-user-action=ignore
|
RUN pip install -r /requirements.txt --root-user-action=ignore
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
|1|yT6WmkWOPxXSQeNECVJIX7M3upw=|wQPqbw6mXxwfO83sWVH9IRapSe0= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNIOY8dNaWBcUu31F2OOuXUFGam2sx3Admn51SZR37MOMDEeKzpX+w0OnDGME9uOfuBToDW5F8ZoC+/p492uywZb4ZvUqVE8ic3uTaMro7zB9sykt4AO2rifM/0k7Fo1WoNWSaQptS3qyf7Umgl+qD5H8PxEM1OqKQl38BI5hfKUGx/WSYawgGIKkyO1eFwdjmSJ4RgQpN6/p5+1wJqbqbzkk0cEvZ06BbUbY+nUSUYY5WKa8ICBI0GKDdgRg9FXTV18r0YPT62HhShIyScbmg2h9hDKb7q9lLNLs2qg11jpSZCsIYTR2yms60uqXXq+isReLZ+W4z0t/8YVoID4Q82UlJ8R/LEqiJd8VcjZHaRVqtr7oVQjSurg1ChgCnOHHjvjZLVUg7QRMbCVT2/6PMAjjTyHUx8TKscYjz21ctPMn63pH/6lYzncQrt7ZT6PromVtnBs7p8dHaCyv18z9EBvGuE2rYOsfsCuR7FNlno7ej/gbe6CoaT2KwcNU8vpc=
|
|
||||||
|1|QgYdyhwM1uy97fUH/l9jXfRnYlE=|P575Q9H/V0Hoszk+G9As1GozQmE= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHlFA8BawdNbgYsFPPUJiG7xfuWI6dwNIFkuUwqco+TPXanMG4CvZ0TjRgb2fwdMXAGyoNAmwcr8eR5HU8wTg8g=
|
|
||||||
|1|vSzhghnKpUIGuOOgELHWGrbMxd8=|GY2Acsr6iqo4Y/dDS8V5glZ7tmA= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKz0QyrgFpp9NsPvZVwkjoua57SztFOMUnEzOLfW7kPr
|
|
||||||
|1|LJg/h/d7KSfFYzdtrrEFpcpnF/4=|xRkJEoqiptYGTTt5EuQo4f3zo6c= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKnC41A86Q2mVQWyRXHKzht6t8J1JJsRbYrQRpcMzh6VkVmOPDdAtl4P5iOH/GUaHr+HNhS7Y/QZS0yyjv8u1yOjb6ovfKvIuysj7f87wI1UOtQaUgX/PG5wupk/SgiUcfkpG+hg5wUACbsbMjp+HbE/OB7Nk5ZzUHNZcwQ55mRis8AzLW3IuFEboE+tJCxqTz8mr95ecqEWXdG4cJdDp7BMuCzsPCsOWgpcJiH+kgimok9n4qJPgoFSTVvHKBj0uJlm33rc8ns/Uu8knq6QfeSlzlN7uW0Xue6irW4Uaz69NbSUcFCeG83WNGO7tceYc7tmVM+9jjAtyhh9x1kGyk6thBMimRE5taa+5+bZP5tMctFsze6LVUGOothYW2MVgllJ+ovNFV/lin1y1591eAl340uSs4E4AJH6F/2Tta9OVGvNaXGMTYzKOLBYwo9sXJRHFuPjFxEs0Ya4pFUoCa8B53reNiOafrtwRU8/8G6zMgrF5z4FhCYBcIzoJdWCE=
|
|
||||||
|1|9oemW7STLSSF7uf+SBwD7JWe0K8=|YCblOLOrxHLzbHkMuZfiUP8nkTU= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPEpfGoofmKWz3/t3Svaahh5ieq4LJ6/n+y3M0rOK/RgndUCESaTZXbw701NOF8BPcJczTQTuQPO2AJwrwQYcK0=
|
|
||||||
|1|EC/isVVKdC1w/IthdEuhT29iU+w=|VClak/HfuZVXh4zlhhtx9euaTT0= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA2qvtcS1snKAdWKJefMCuKKgVlz0haOT0sElceM06qV
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
ARG FROM_DIR=docker_dev/test/rsync_test
|
||||||
|
|
||||||
|
COPY ${FROM_DIR}/test.sh /test.sh
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y rsync openssh-client
|
||||||
|
|
||||||
|
COPY docker_dev/shared/id_rsa /root/.ssh/id_rsa
|
||||||
|
COPY docker_dev/shared/id_rsa.pub /root/.ssh/id_rsa.pub
|
||||||
|
|
||||||
|
RUN chmod 600 /root/.ssh/id_rsa /root/.ssh/id_rsa.pub
|
||||||
|
|
||||||
|
# Shared Volumes
|
||||||
|
RUN chmod +x /test.sh
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
SHELL ["/bin/bash", "-c"]
|
||||||
|
ENV PYTHONPATH=/
|
||||||
|
ENTRYPOINT [ "/test.sh" ]
|
||||||
|
|
||||||
Executable
+19
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
date > /testfile.txt
|
||||||
|
|
||||||
|
Source=/testfile.txt
|
||||||
|
Targets=
|
||||||
|
Targets="${Targets} cvtt@cloud21.cvtt.vpn:/tmp/"
|
||||||
|
Targets="${Targets} cvtt@hs01.cvtt.vpn:/tmp/"
|
||||||
|
|
||||||
|
|
||||||
|
for tgt in ${Targets}
|
||||||
|
do
|
||||||
|
Cmd="/usr/bin/rsync -ahv"
|
||||||
|
Cmd+=" -e 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'"
|
||||||
|
Cmd+=" ${Source} ${tgt}"
|
||||||
|
echo $Cmd
|
||||||
|
eval $Cmd
|
||||||
|
done
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ Cmd="python3.12"
|
|||||||
Cmd="${Cmd} /cvttpy/apps/executor_app.py"
|
Cmd="${Cmd} /cvttpy/apps/executor_app.py"
|
||||||
Cmd="${Cmd} --config=${Config}"
|
Cmd="${Cmd} --config=${Config}"
|
||||||
Cmd="${Cmd} --credentials_file=/.creds"
|
Cmd="${Cmd} --credentials_file=/.creds"
|
||||||
Cmd="${Cmd} --allow_dynamic_exch_inst"
|
# Cmd="${Cmd} --allow_dynamic_exch_inst"
|
||||||
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
||||||
Cmd="${Cmd} --admin_port=${AdminPort}"
|
Cmd="${Cmd} --admin_port=${AdminPort}"
|
||||||
Cmd="${Cmd} --log_file=/logs/%T.EXECUTOR_APP.log"
|
Cmd="${Cmd} --log_file=/logs/%T.EXECUTOR_APP.log"
|
||||||
@@ -53,7 +53,7 @@ Cmd="${Cmd} --config=${Config}"
|
|||||||
Cmd="${Cmd} --credentials_file=/.creds"
|
Cmd="${Cmd} --credentials_file=/.creds"
|
||||||
Cmd="${Cmd} --book=${Book}"
|
Cmd="${Cmd} --book=${Book}"
|
||||||
Cmd="${Cmd} --strategy=${Strategy}"
|
Cmd="${Cmd} --strategy=${Strategy}"
|
||||||
Cmd="${Cmd} --allow_dynamic_exch_inst"
|
# Cmd="${Cmd} --allow_dynamic_exch_inst"
|
||||||
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
||||||
Cmd="${Cmd} --admin_port=${AdminPort}"
|
Cmd="${Cmd} --admin_port=${AdminPort}"
|
||||||
Cmd="${Cmd} --log_file=/logs/%T.QUANT.${Book}.log"
|
Cmd="${Cmd} --log_file=/logs/%T.QUANT.${Book}.log"
|
||||||
@@ -51,7 +51,7 @@ Cmd="${Cmd} cvttpy/apps/risk_manager_app.py"
|
|||||||
Cmd="${Cmd} --config=${Config}"
|
Cmd="${Cmd} --config=${Config}"
|
||||||
Cmd="${Cmd} --credentials_file=/.creds"
|
Cmd="${Cmd} --credentials_file=/.creds"
|
||||||
Cmd="${Cmd} --book=${Book}"
|
Cmd="${Cmd} --book=${Book}"
|
||||||
Cmd="${Cmd} --allow_dynamic_exch_inst"
|
# Cmd="${Cmd} --allow_dynamic_exch_inst"
|
||||||
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
||||||
Cmd="${Cmd} --admin_port=${AdminPort}"
|
Cmd="${Cmd} --admin_port=${AdminPort}"
|
||||||
Cmd="${Cmd} --log_file=/logs/%T.RISK_MGR.${Book}.log"
|
Cmd="${Cmd} --log_file=/logs/%T.RISK_MGR.${Book}.log"
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
aiohttp>=3.7.4.post0
|
aiohttp>=3.7.4.post0
|
||||||
nest-asyncio>=1.5.5
|
nest-asyncio>=1.5.5
|
||||||
psycopg>=3.2.1
|
|
||||||
hjson>=3.1.0
|
hjson>=3.1.0
|
||||||
pandas>=1.5.3
|
|
||||||
sortedcontainers>=2.4.0
|
sortedcontainers>=2.4.0
|
||||||
redis>=5.0.8
|
redis>=5.0.8
|
||||||
|
python-dateutil>=2.8.2
|
||||||
|
types-python-dateutil>=2.8.19.6
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
.git
|
||||||
|
**/__pycache__
|
||||||
|
.pipenv
|
||||||
@@ -58,7 +58,7 @@ Cmd="${Cmd} --config=${Config}"
|
|||||||
Cmd="${Cmd} --credentials_file=/.creds"
|
Cmd="${Cmd} --credentials_file=/.creds"
|
||||||
Cmd="${Cmd} --book=${Book}"
|
Cmd="${Cmd} --book=${Book}"
|
||||||
Cmd="${Cmd} --algo=${Algo}"
|
Cmd="${Cmd} --algo=${Algo}"
|
||||||
Cmd="${Cmd} --allow_dynamic_exch_inst"
|
# Cmd="${Cmd} --allow_dynamic_exch_inst"
|
||||||
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
||||||
Cmd="${Cmd} --admin_port=${AdminPort}"
|
Cmd="${Cmd} --admin_port=${AdminPort}"
|
||||||
Cmd="${Cmd} --log_file=/logs/%T.TRADER.${Book}.log"
|
Cmd="${Cmd} --log_file=/logs/%T.TRADER.${Book}.log"
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
.git
|
||||||
|
**/__pycache__
|
||||||
|
.pipenv
|
||||||
+1
-1
@@ -49,7 +49,7 @@ Cmd="${Cmd} cvttpy/apps/trade_recorder.py"
|
|||||||
Cmd="${Cmd} --config=${Config}"
|
Cmd="${Cmd} --config=${Config}"
|
||||||
Cmd="${Cmd} --credentials_file=/.creds"
|
Cmd="${Cmd} --credentials_file=/.creds"
|
||||||
Cmd="${Cmd} --book=${Book}"
|
Cmd="${Cmd} --book=${Book}"
|
||||||
Cmd="${Cmd} --allow_dynamic_exch_inst"
|
# Cmd="${Cmd} --allow_dynamic_exch_inst"
|
||||||
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
Cmd="${Cmd} --active_exchanges=${ActiveExchanges}"
|
||||||
Cmd="${Cmd} --admin_port=${AdminPort}"
|
Cmd="${Cmd} --admin_port=${AdminPort}"
|
||||||
Cmd="${Cmd} --log_file=/logs/%T.TRADING_RECORDER.${Book}.log"
|
Cmd="${Cmd} --log_file=/logs/%T.TRADING_RECORDER.${Book}.log"
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "ALPACA_SANDBOX": {
|
|
||||||
"api_key": "PKLZSLFZMFMN1R28K9HK"
|
|
||||||
, "secret_key": "SKbxwLWJNs4kpn618DgGaopN6x1xzKwLM4Z7aymA"
|
|
||||||
}
|
|
||||||
, "MATTERMOST": {
|
|
||||||
"url": "https://mattermost.cryptovaltrading.com"
|
|
||||||
, "team": "CVTT"
|
|
||||||
, "bearer": "5ysaaxjeijrwjbmhuzcuos9ano"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "ALPACA_SANDBOX": {
|
|
||||||
"api_key": "PKLZSLFZMFMN1R28K9HK"
|
|
||||||
, "secret_key": "SKbxwLWJNs4kpn618DgGaopN6x1xzKwLM4Z7aymA"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"TSDB_MD_CLD19_RO": {
|
|
||||||
"host": "cloud19.cvtt.vpn"
|
|
||||||
, "port": 5432
|
|
||||||
, "user": "cvtt_ro"
|
|
||||||
, "database": "cvtt_md"
|
|
||||||
, "password": "3Gkotqa0ZSmZLXSH3RkTUm"
|
|
||||||
}
|
|
||||||
, "TSDB_MD_CVTTDATA_RO": {
|
|
||||||
"host": "cvttdata.cvtt.vpn"
|
|
||||||
, "port": 5432
|
|
||||||
, "user": "cvtt_ro"
|
|
||||||
, "database": "cvtt_md"
|
|
||||||
, "password": "3Gkotqa0ZSmZLXSH3RkTUm"
|
|
||||||
}
|
|
||||||
, "MATTERMOST": {
|
|
||||||
"url": "https://cloud11.cryptovaltrading.com"
|
|
||||||
, "team": "CVTT"
|
|
||||||
, "bearer": "5ysaaxjeijrwjbmhuzcuos9ano"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "ALPACA_SANDBOX": {
|
|
||||||
"api_key": "PKLZSLFZMFMN1R28K9HK"
|
|
||||||
, "secret_key": "SKbxwLWJNs4kpn618DgGaopN6x1xzKwLM4Z7aymA"
|
|
||||||
}
|
|
||||||
, "TSDB_TRD_CVTTDATA": {
|
|
||||||
"host": "cvttdata.cvtt.vpn"
|
|
||||||
, "port": "5432"
|
|
||||||
, "database": "cvtt_trading"
|
|
||||||
, "user": "cvtt"
|
|
||||||
, "password": "ICdIh0JnMM7vM7Pf"
|
|
||||||
}
|
|
||||||
, "COINBASE_ADV_RO": {
|
|
||||||
"api_key": "Ip4QpRtRHBmWNpc3"
|
|
||||||
, "secret_key": "N6ZEMdIdUYUldkJRTUcCRKUFot4Fp2j0"
|
|
||||||
, "account_uuid": "???"
|
|
||||||
, "book_id": "CVTT_BK01"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "MATTERMOST": {
|
|
||||||
"url": "https://mattermost.cryptovaltrading.com"
|
|
||||||
, "team": "CVTT"
|
|
||||||
, "bearer": "5ysaaxjeijrwjbmhuzcuos9ano"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "ALPACA_SANDBOX": {
|
|
||||||
"api_key": "PKLZSLFZMFMN1R28K9HK"
|
|
||||||
, "secret_key": "SKbxwLWJNs4kpn618DgGaopN6x1xzKwLM4Z7aymA"
|
|
||||||
}
|
|
||||||
, "MATTERMOST": {
|
|
||||||
"url": "https://mattermost.cryptovaltrading.com"
|
|
||||||
, "team": "CVTT"
|
|
||||||
, "bearer": "5ysaaxjeijrwjbmhuzcuos9ano"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"__dummy__": null
|
|
||||||
, "ALPACA_SANDBOX": {
|
|
||||||
"api_key": "PKLZSLFZMFMN1R28K9HK"
|
|
||||||
, "secret_key": "SKbxwLWJNs4kpn618DgGaopN6x1xzKwLM4Z7aymA"
|
|
||||||
}
|
|
||||||
, "MATTERMOST": {
|
|
||||||
"url": "https://mattermost.cryptovaltrading.com"
|
|
||||||
, "team": "CVTT"
|
|
||||||
, "bearer": "5ysaaxjeijrwjbmhuzcuos9ano"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user