Skip to main content

Các bước để setup Elton DataUtils trên VM

1. Cài đặt 1 số tools cơ bản

note

Đây là các bước cài đặt tools trên Ubuntu version 20, nếu bạn sử dụng distro khác, xin hãy tìm kiếm hướng dẫn phù hợp để cài đặt các tools này.

Docker

sudo apt update

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

apt-cache policy docker-ce

sudo apt install -y docker-ce

sudo systemctl status docker

# start after reboot
sudo systemctl enable docker

# using docker without sudo
sudo usermod -aG docker $(whoami)

sudo chmod 666 /var/run/docker.sock
# Remove /home/gitlab-runner/.bash_logout
sudo rm /home/gitlab-runner/.bash_logout

# Add permission to allow Gitlab runner to delete previous builds
# Add gitlab-runner user to sudoer file
sudo visudo

# add to the end of the file
gitlab-runner ALL=(ALL) NOPASSWD: ALL

# Add permission for Gitlab runner to run sh file
sudo vi /etc/gitlab-runner/config.toml

# Add this below [[runners]]
pre_get_sources_script = "sudo chown -R gitlab-runner:gitlab-runner ."

2. Cài đặt thông qua Docker Compose

Recommend: bạn nên dùng docker compose để setup hệ thống lên để thử nghiệm ban đầu

  • Tạo file docker-compose.yaml
version: '2.4'

services:
redis:
image: redis:6.2.7
ports:
- "6379:6379"
volumes:
- ./redis_data:/data
command: redis-server
restart: unless-stopped

postgres:
image: postgres:15
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: 'fwfgwergfgwgw'
POSTGRES_DB: 'dummy_data'
volumes:
- ./postgres_data:/var/lib/postgresql/data
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
interval: 5s
timeout: 5s
retries: 5
dummy:
image: thinhlp/dummy-eltondata:latest
command: ./run_prod.sh
ports:
- "5000:5000"
environment:
- ENV=PRODUCTION
- SQLALCHEMY_ECHO_LOG=True
- SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://USER:PASS@HOST:PORT/DB_NAME
- STORAGE_SECRET=YOUR_STORAGE_SECRET
- PYTHONUNBUFFERED=1
- JWT_ACCESS_TOKEN_EXPIRES=10080 # 7days
- CACHE_DEFAULT_HOST=redis
- CACHE_DEFAULT_PORT=6379
- CACHE_DEFAULT_PASSWORD=
- CACHE_DEFAULT_DB=0
- RQ_DEFAULT_HOST=redis
- RQ_DEFAULT_PORT=6379
- RQ_DEFAULT_PASSWORD=
- RQ_DEFAULT_DB=1
- FERNET_ENCRYPTION_KEY=xxxx
links:
- postgres
- redis
depends_on:
postgres:
condition: service_healthy
####
# docker compose -f docker-compose-all-in-one.yaml up -d
# How to create admin
# docker compose exec dummy flask fab create-admin

  • Tạo Fernet key: sử dụng để encrypt password, secret.
from cryptography.fernet import Fernet

print(Fernet.generate_key().decode())

Start hệ thống:

docker-compose up -d
  • Tạo admin user:
docker compose exec dummy flask fab create-admin