Files
databisnisid/.env.example
T

97 lines
3.6 KiB
Bash

# Salin ke `.env` lalu sesuaikan. Semua opsional — default di `config.py`.
# Nilai dari env shell (export) juga didahulukan lewat os.getenv.
# Akun Block Producer yang dicari
VEX_TARGET_BP=databisnisid
# Node RPC publik Vexanium (ganti bila node utama lambat/timeout)
VEX_API_NODE=https://v2.vexascan.com:2096
# Lokasi file SQLite (disarankan absolut bila dijadwalkan via cron)
VEX_DB_PATH=voters.db
# Backend basis data: sqlite (default) atau mysql (MariaDB/MySQL via PyMySQL)
VEX_DB_BACKEND=sqlite
# Koneksi MariaDB/MySQL — dipakai saat VEX_DB_BACKEND=mysql
# Cocokkan dengan docker-compose.yml (MARIADB_DATABASE/USER/PASSWORD)
VEX_DB_HOST=127.0.0.1
VEX_DB_PORT=3306
VEX_DB_USER=databisnis
VEX_DB_PASS=databisnis
VEX_DB_NAME=databisnisid
# Syarat minimum stake (VEX) agar pemilih disimpan
VEX_MIN_STAKED_VEX=1000
# Dashboard: jumlah baris per halaman
DASH_PAGE_SIZE=50
# Dashboard: host & port server
DASH_HOST=127.0.0.1
DASH_PORT=5000
# Dashboard: jumlah worker gunicorn (produksi)
DASH_WORKERS=2
# Ambang batas vote "basi" (hari sejak revote terakhir) untuk penanda staleness
VEX_STALE_DAYS=28
# API databisnis untuk saldo liquid akun (balance BP, disajikan dashboard)
DATABISNIS_API=https://api.databisnis.id
# Dashboard: TTL cache (detik) untuk saldo liquid — gagal fetch juga di-cooldown
DASH_LIQUID_TTL=60
# — Stack swarm (docker-compose.yml) —
# Interpolasi compose; override default di bawah lewat .env bila perlu.
# TZ dipakai juga sebagai zona waktu jadwal skan (`datetime.now()` lokal).
TZ=Asia/Jakarta
SCAN_HOURS=0,8,16
# Skan sekali saat container start (tabel voters langsung ada; dashboard ⊥ 500)
SCAN_RUN_ON_START=1
# — Distribusi profit-share (service distribute) —
# Jam (lokal, TZ) run. Jadwal MINGGUAN (V37): tiap DISTRIBUTE_WEEKDAY (nama
# `sat`/`mon`.. atau 0-6; Senin=0, default `sat`) jam DISTRIBUTE_HOUR, plus satu
# one-off DISTRIBUTE_FIRST_RUN (YYYY-MM-DD; kosong = ⊥). Contoh produksi:
# DISTRIBUTE_FIRST_RUN=2026-08-17 # putaran pertama Senin 17 Agt
# DISTRIBUTE_WEEKDAY=sat # lalu tiap Sabtu
# `VEX_BP_PRIVATE_KEY` TIDAK lagi lewat interpolasi .env: di stack ia dibaca
# dari file `.env` yang di-bind dari NFS
# (`/mnt/nfs/server5.saltis.id/data/databisnisid/app/config.env` → `/app/.env`,
# dibaca `config.py` via load_dotenv). Di luar stack, set key di `.env` lokal.
DISTRIBUTE_HOUR=10
DISTRIBUTE_WEEKDAY=sat
DISTRIBUTE_FIRST_RUN=
DISTRIBUTE_MAX_ATTEMPTS=3
# Kill-switch: FALSE (default) = payout off; set TRUE untuk mengaktifkan
# pembayaran. --dry-run tetap jalan walau off.
DISTRIBUTE_ENABLED=false
# — Notifikasi Telegram (dua kanal) —
# Satu bot token; dua daftar chat id (CSV; id user atau grup):
# TELEGRAM_COMMUNITY_CHAT_IDS — publik: hanya brief MULAI/SELESAI distribusi
# TELEGRAM_INTERNAL_CHAT_IDS — internal: detail distribusi, semua kegagalan,
# dan klaim reward (⊥ pernah ke komunitas)
# Kosong = kanal senyap. Di stack, isi di config.env NFS (dibaca config.py
# load_dotenv dari /app/.env).
TELEGRAM_BOT_TOKEN=
TELEGRAM_COMMUNITY_CHAT_IDS=
TELEGRAM_INTERNAL_CHAT_IDS=
# — Klaim reward BP harian (service claim) —
# Poll `vexcore::claimrewards` tiap CLAIM_RETRY_SECONDS (detik) saat mendekati
# jendela klaim (last_claim_time + 24 jam). Setelah klaim sukses, 10% reward
# (VEX_BP_FEE_PERCENT) dikirim ke VEX_BP_FEE_WALLET. Key `VEX_BP_PRIVATE_KEY`
# di stack dari bind NFS config.env (sama dgn distribute).
CLAIM_RETRY_SECONDS=60
VEX_BP_FEE_WALLET=bpdbsjasprod
VEX_BP_FEE_PERCENT=0.10
# Kredensial mariadb stack — wajib konsisten antar-service (mariadb/web/scan)
MARIADB_ROOT_PASSWORD=root
MARIADB_DATABASE=databisnisid
MARIADB_USER=databisnis
MARIADB_PASSWORD=databisnis