Marzban Shop在ArchLinux上的安装

一、安装相关依赖

pacman -S gcc python-pip python-virtualenvwrapper
sudo su
apt update && apt-get upgrade && apt-get install python3-pip python3-virtualenvwrapper

二、安装数据库

pacman -S mariadb

启动 MariaDB 服务并设置开机启动

systemctl start mariadb
systemctl enable mariadb

初始化数据库

mariadb-install-db --user=mysql --basedir=/usr --datadir=/srv/mysql

修改数据库数据目录

nano -w /etc/my.cnf.d/server.cnf

[mysqld]
datadir = /srv/mysql

nano -w /etc/my.cnf.d/mysql-clients.cnf

[mysql]
password = password

重新启动MariaDB

systemctl restart mariadb

进入系统修改密码

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');

创建数据库

mysql> CREATE DATABASE marzban-shop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> GRANT ALL PRIVILEGES ON marzban-shop.* TO 'marzban'@'localhost' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

三、安装Marzban-shop

安装虚拟环境

cd /srv
/usr/bin/virtualenvwrapper.sh marzban_env
/usr/bin/python -m venv /srv/marzban_env
/srv/marzban_env/bin/pip install --upgrade pip
git clone https://github.com/gunsh1p/marzban-shop.git
cd marzban-shop

四、修改配置文件

mv goods.example.json goods.json
mv .env.example .env

nano -w .env

BOT_TOKEN=6112851231:AAEXjiyZQgZv_rT3X_j1NgFjcsAHkHRaPl8
SHOP_NAME=VVVPN
PROTOCOLS=vmess
TEST_PERIOD=false
PERIOD_LIMIT=3
ABOUT=What do you want to know about Queen?
RULES_LINK=https://mmbox.store
SUPPORT_LINK=https://mmbox.store
YOOKASSA_TOKEN=
YOOKASSA_SHOPID=
EMAIL=catislands002@gmail.com
CRYPTO_TOKEN=
MERCHANT_UUID=
DB_NAME=marzban-shop
DB_USER=marzban
DB_PASS=queen1337
DB_ROOT_PASS=cz_lib_8011
DB_ADDRESS=localhost
PANEL_HOST=http://localhost:8000
PANEL_GLOBAL=https://us.6us.xyz
PANEL_USER=zeno
PANEL_PASS=CZ_hr_801101
WEBHOOK_URL=https://webhook.another-one-bites-the-dust.vpn
WEBHOOK_PORT=8080

nano -w goods.json

[
    {
        "title": "VPN For Semi-Annually",
        "price": {
            "en": 10,
            "ru": 100
        },
        "callback": "simple_vpn",
        "months": 6
    }
]

五、安装依赖并且运行

cd marzban-shop
/srv/marzban_env/bin/pip install -r requirements.txt
/srv/marzban_env/bin/pybabel compile -d locales -D bot

增加环境变量的导入

nano -w migration/env.py

import os
from logging.config import fileConfig
from dotenv import load_dotenv

from sqlalchemy import engine_from_config
from sqlalchemy import pool

from alembic import context

from db.models import Base

# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config
load_dotenv()

执行数据库创建

cd bot
/srv/marzban_env/bin/alembic upgrade head

运行起来

/srv/marzban_env/bin/python3 main.py

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Python分类目录。将固定链接加入收藏夹。