mirror of
https://github.com/Evil0ctal/Douyin_TikTok_Download_API.git
synced 2025-04-12 03:37:05 +08:00
🐛: 修复部署脚本
This commit is contained in:
parent
3f42574eea
commit
147dbcb71d
43
Dockerfile
43
Dockerfile
@ -1,22 +1,39 @@
|
|||||||
|
# Use the official Ubuntu base image
|
||||||
FROM ubuntu:jammy
|
FROM ubuntu:jammy
|
||||||
MAINTAINER jwstar
|
LABEL maintainer="Evil0ctal"
|
||||||
|
|
||||||
|
# Set non-interactive frontend (useful for Docker builds)
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
RUN apt-get -y update \
|
# Update the package list and install Python and pip
|
||||||
&& apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
python3.11 python3-pip python3.11-dev
|
python3.11 \
|
||||||
|
python3-pip \
|
||||||
|
python3.11-dev \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Using Aliyun pipy mirror
|
# Set a working directory
|
||||||
RUN pip3 install -i https://mirrors.aliyun.com/pypi/simple/ -U pip
|
|
||||||
RUN pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
|
|
||||||
|
|
||||||
COPY . /app
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN pip3 --no-cache-dir install --user -r /app/requirements.txt
|
|
||||||
|
|
||||||
|
# Copy the application source code to the container
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
RUN chmod +x start.sh && \
|
# Install virtualenv
|
||||||
apt-get autoremove -y \
|
RUN pip3 install -i https://mirrors.aliyun.com/pypi/simple/ -U pip \
|
||||||
&& apt-get remove -y python3-pip
|
&& pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/ \
|
||||||
|
&& pip3 install virtualenv
|
||||||
|
|
||||||
|
# Create and activate virtual environment
|
||||||
|
# Using a virtual environment prevents conflicts between the app's dependencies and the system
|
||||||
|
RUN python3.11 -m virtualenv venv
|
||||||
|
ENV PATH="/app/venv/bin:$PATH"
|
||||||
|
|
||||||
|
# Install dependencies in the virtual environment
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
# Make the start script executable
|
||||||
|
RUN chmod +x start.sh
|
||||||
|
|
||||||
|
# Command to run on container start
|
||||||
CMD ["./start.sh"]
|
CMD ["./start.sh"]
|
||||||
|
107
README.md
107
README.md
@ -260,7 +260,7 @@ https://www.tiktok.com/@evil0ctal/video/7156033831819037994
|
|||||||
|
|
||||||
> 💡提示:最好将本项目部署至美国地区的服务器,否则可能会出现奇怪的BUG。
|
> 💡提示:最好将本项目部署至美国地区的服务器,否则可能会出现奇怪的BUG。
|
||||||
|
|
||||||
推荐大家使用[Digitalocean](https://www.digitalocean.com/)的服务器,主要是因为免费。
|
推荐大家使用[Digitalocean](https://www.digitalocean.com/)的服务器,因为可以白嫖。
|
||||||
|
|
||||||
使用我的邀请链接注册,你可以获得$200的credit,当你在上面消费$25时,我也可以获得$25的奖励。
|
使用我的邀请链接注册,你可以获得$200的credit,当你在上面消费$25时,我也可以获得$25的奖励。
|
||||||
|
|
||||||
@ -270,6 +270,8 @@ https://www.tiktok.com/@evil0ctal/video/7156033831819037994
|
|||||||
|
|
||||||
> 使用脚本一键部署本项目
|
> 使用脚本一键部署本项目
|
||||||
|
|
||||||
|
- 本项目提供了一键部署脚本,可以在服务器上快速部署本项目。
|
||||||
|
- 脚本是在Ubuntu 20.04 LTS上测试的,其他系统可能会有问题,如果有问题请自行解决。
|
||||||
- 使用wget命令下载[install.sh](https://raw.githubusercontent.com/Evil0ctal/Douyin_TikTok_Download_API/main/bash/install.sh)至服务器并运行
|
- 使用wget命令下载[install.sh](https://raw.githubusercontent.com/Evil0ctal/Douyin_TikTok_Download_API/main/bash/install.sh)至服务器并运行
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -278,60 +280,103 @@ wget -O install.sh https://raw.githubusercontent.com/Evil0ctal/Douyin_TikTok_Dow
|
|||||||
|
|
||||||
> 开启/停止服务
|
> 开启/停止服务
|
||||||
|
|
||||||
- `systemctl start/stop Douyin_TikTok_Download_API.service`
|
- 使用以下命令来控制服务的运行或停止:
|
||||||
|
- `sudo systemctl start Douyin_TikTok_Download_API.service`
|
||||||
|
- `sudo systemctl stop Douyin_TikTok_Download_API.service`
|
||||||
|
|
||||||
> 开启/关闭开机自动运行
|
> 开启/关闭开机自动运行
|
||||||
|
|
||||||
- `systemctl enable/disable Douyin_TikTok_Download_API.service`
|
- 使用以下命令来设置服务开机自动运行或取消开机自动运行:
|
||||||
|
- `sudo systemctl enable Douyin_TikTok_Download_API.service`
|
||||||
|
- `sudo systemctl disable Douyin_TikTok_Download_API.service`
|
||||||
|
|
||||||
> 更新项目
|
> 更新项目
|
||||||
|
|
||||||
|
- 项目更新时,确保更新脚本在虚拟环境中执行,更新所有依赖。进入项目bash目录并运行update.sh:
|
||||||
- `cd /www/wwwroot/Douyin_TikTok_Download_API/bash && sudo bash update.sh`
|
- `cd /www/wwwroot/Douyin_TikTok_Download_API/bash && sudo bash update.sh`
|
||||||
|
|
||||||
## 💽部署(方式二 Docker)
|
## 💽部署(方式二 Docker)
|
||||||
|
|
||||||
> 💡Docker Image repo: [Docker Hub](https://hub.docker.com/repository/docker/evil0ctal/douyin_tiktok_download_api)
|
> 💡提示:Docker部署是最简单的部署方式,适合不熟悉Linux的用户,这种方法适合保证环境一致性、隔离性和快速设置。
|
||||||
|
> 请使用能正常访问Douyin或TikTok的服务器,否则可能会出现奇怪的BUG。
|
||||||
|
|
||||||
- 安装docker
|
### 准备工作
|
||||||
|
|
||||||
```yaml
|
开始之前,请确保您的系统已安装Docker。如果还未安装Docker,可以从[Docker官方网站](https://www.docker.com/products/docker-desktop/)下载并安装。
|
||||||
curl -fsSL get.docker.com -o get-docker.sh&&sh get-docker.sh &&systemctl enable docker&&systemctl start docker
|
|
||||||
|
### 步骤1:拉取Docker镜像
|
||||||
|
|
||||||
|
首先,从Docker Hub拉取最新的Douyin_TikTok_Download_API镜像。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker pull evil0ctal/douyin_tiktok_download_api:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
- 留下config.ini和docker-compose.yml文件即可
|
如果需要,可以替换`latest`为你需要部署的具体版本标签。
|
||||||
- 运行命令,让容器在后台运行
|
|
||||||
|
|
||||||
```yaml
|
### 步骤2:运行Docker容器
|
||||||
docker-compose up -d
|
|
||||||
|
拉取镜像后,您可以从此镜像启动一个容器。以下是运行容器的命令,包括基本配置:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --name douyin_tiktok_api -p 80:80 evil0ctal/douyin_tiktok_download_api
|
||||||
```
|
```
|
||||||
|
|
||||||
- 查看容器日志
|
这个命令的每个部分作用如下:
|
||||||
|
|
||||||
```yaml
|
* `-d`:在后台运行容器(分离模式)。
|
||||||
docker logs -f douyin_tiktok_download_api
|
* `--name douyin_tiktok_api `:将容器命名为`douyin_tiktok_api `。
|
||||||
|
* `-p 80:80`:将主机上的80端口映射到容器的80端口。根据您的配置或端口可用性调整端口号。
|
||||||
|
* `evil0ctal/douyin_tiktok_download_api`:要使用的Docker镜像名称。
|
||||||
|
|
||||||
|
### 步骤3:验证容器是否运行
|
||||||
|
|
||||||
|
使用以下命令检查您的容器是否正在运行:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker ps
|
||||||
```
|
```
|
||||||
|
|
||||||
- 删除容器
|
这将列出所有活动容器。查找`douyin_tiktok_api `以确认其正常运行。
|
||||||
|
|
||||||
```yaml
|
### 步骤4:访问应用程序
|
||||||
docker rm -f douyin_tiktok_download_api
|
|
||||||
|
容器运行后,您应该能够通过`http://localhost`或API客户端访问Douyin_TikTok_Download_API。如果配置了不同的端口或从远程位置访问,请调整URL。
|
||||||
|
|
||||||
|
### 可选:自定义Docker命令
|
||||||
|
|
||||||
|
对于更高级的部署,您可能希望自定义Docker命令,包括环境变量、持久数据的卷挂载或其他Docker参数。这是一个示例:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --name douyin_tiktok_api -p 80:80 \
|
||||||
|
-v /path/to/your/data:/data \
|
||||||
|
-e MY_ENV_VAR=my_value \
|
||||||
|
evil0ctal/douyin_tiktok_download_api
|
||||||
```
|
```
|
||||||
|
|
||||||
- 更新
|
* `-v /path/to/your/data:/data`:将主机上的`/path/to/your/data`目录挂载到容器的`/data`目录,用于持久化或共享数据。
|
||||||
|
* `-e MY_ENV_VAR=my_value`:在容器内设置环境变量`MY_ENV_VAR`,其值为`my_value`。
|
||||||
|
|
||||||
```yaml
|
### 配置文件修改
|
||||||
docker-compose pull && docker-compose down && docker-compose up -d
|
|
||||||
|
项目的大部分配置可以在以下几个目录中的`config.yaml`文件进行修改:
|
||||||
|
|
||||||
|
* `/crawlers/douyin/web/config.yaml`
|
||||||
|
* `/crawlers/tiktok/web/config.yaml`
|
||||||
|
* `/crawlers/tiktok/app/config.yaml`
|
||||||
|
|
||||||
|
### 步骤5:停止并移除容器
|
||||||
|
|
||||||
|
需要停止和移除容器时,使用以下命令:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Stop
|
||||||
|
docker stop douyin_tiktok_api
|
||||||
|
|
||||||
|
# Remove
|
||||||
|
docker rm douyin_tiktok_api
|
||||||
```
|
```
|
||||||
|
|
||||||
## ❤️ 贡献者
|
|
||||||
|
|
||||||
[](https://github.com/Evil0ctal)
|
|
||||||
[](https://github.com/jw-star)
|
|
||||||
[](https://github.com/Jeffrey-deng)
|
|
||||||
[](https://github.com/chris-ss)
|
|
||||||
[](https://github.com/weixuan00)
|
|
||||||
[](https://github.com/Tairraos)
|
|
||||||
|
|
||||||
## 📸截图
|
## 📸截图
|
||||||
|
|
||||||
***API速度测试(对比官方API)***
|
***API速度测试(对比官方API)***
|
||||||
@ -372,8 +417,8 @@ Web main interface:
|
|||||||
|
|
||||||
[](https://star-history.com/#Evil0ctal/Douyin_TikTok_Download_API&Timeline)
|
[](https://star-history.com/#Evil0ctal/Douyin_TikTok_Download_API&Timeline)
|
||||||
|
|
||||||
[MIT License](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/Stable/LICENSE)
|
[Apache-2.0 license](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/Stable/LICENSE)
|
||||||
|
|
||||||
> Start: 2021/11/06
|
> Start: 2021/11/06
|
||||||
|
|
||||||
> GitHub: [@Evil0ctal](https://github.com/Evil0ctal)
|
> GitHub: [@Evil0ctal](https://github.com/Evil0ctal)
|
||||||
> Contact: Evil0ctal1985@gmail.com
|
|
||||||
|
@ -1,38 +1,52 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo 'installing Git...'
|
# Set script to exit on any errors.
|
||||||
|
set -e
|
||||||
|
|
||||||
apt-get install git
|
echo 'Updating package lists...'
|
||||||
|
sudo apt-get update
|
||||||
|
|
||||||
echo 'installing Python3...'
|
echo 'Installing Git...'
|
||||||
|
sudo apt-get install -y git
|
||||||
|
|
||||||
apt install python3
|
echo 'Installing Python3...'
|
||||||
|
sudo apt install -y python3
|
||||||
|
|
||||||
echo 'installing PIP3...'
|
echo 'Installing PIP3...'
|
||||||
|
sudo apt install -y python3-pip
|
||||||
|
|
||||||
apt install python3-pip
|
echo 'Installing Virtualenv...'
|
||||||
|
sudo pip3 install virtualenv
|
||||||
|
|
||||||
echo 'Creating path: /www/wwwroot'
|
echo 'Creating path: /www/wwwroot'
|
||||||
|
sudo mkdir -p /www/wwwroot
|
||||||
mkdir -p /www/wwwroot
|
|
||||||
|
|
||||||
cd /www/wwwroot || exit
|
cd /www/wwwroot || exit
|
||||||
|
|
||||||
echo 'Cloning Douyin_TikTok_Download_API.git from Github!'
|
echo 'Cloning Douyin_TikTok_Download_API.git from Github!'
|
||||||
|
sudo git clone https://github.com/Evil0ctal/Douyin_TikTok_Download_API.git
|
||||||
git clone https://github.com/Evil0ctal/Douyin_TikTok_Download_API.git
|
|
||||||
|
|
||||||
cd Douyin_TikTok_Download_API/ || exit
|
cd Douyin_TikTok_Download_API/ || exit
|
||||||
|
|
||||||
sudo pip install -r requirements.txt --break-system-packages
|
echo 'Creating a virtual environment'
|
||||||
|
virtualenv venv
|
||||||
|
|
||||||
echo 'Add Douyin_TikTok_Download_API to system service'
|
echo 'Activating the virtual environment'
|
||||||
|
source venv/bin/activate
|
||||||
|
|
||||||
cp /www/wwwroot/Douyin_TikTok_Download_API/daemon/* /etc/systemd/system/
|
echo 'Installing dependencies from requirements.txt'
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
systemctl enable Douyin_TikTok_Download_API.service
|
echo 'Deactivating the virtual environment'
|
||||||
|
deactivate
|
||||||
|
|
||||||
|
echo 'Adding Douyin_TikTok_Download_API to system service'
|
||||||
|
sudo cp daemon/* /etc/systemd/system/
|
||||||
|
|
||||||
|
echo 'Enabling Douyin_TikTok_Download_API service'
|
||||||
|
sudo systemctl enable Douyin_TikTok_Download_API.service
|
||||||
|
|
||||||
echo 'Starting Douyin_TikTok_Download_API service'
|
echo 'Starting Douyin_TikTok_Download_API service'
|
||||||
|
sudo systemctl start Douyin_TikTok_Download_API.service
|
||||||
|
|
||||||
systemctl start Douyin_TikTok_Download_API.service
|
echo 'Douyin_TikTok_Download_API installation complete!'
|
||||||
|
|
||||||
|
@ -1,16 +1,31 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Ask for confirmation to proceed with the update
|
||||||
read -r -p "Do you want to update Douyin_TikTok_Download_API? [y/n] " input
|
read -r -p "Do you want to update Douyin_TikTok_Download_API? [y/n] " input
|
||||||
case $input in
|
case $input in
|
||||||
[yY])
|
[yY])
|
||||||
cd ..
|
# Navigate to the project directory or exit if it fails
|
||||||
git pull
|
cd /www/wwwroot/Douyin_TikTok_Download_API || { echo "The directory does not exist."; exit 1; }
|
||||||
echo "Restarting Douyin_TikTok_Download_API service"
|
|
||||||
systemctl restart Douyin_TikTok_Download_API.service
|
# Pull the latest changes from the repository
|
||||||
echo "Successfully restarted all services!"
|
git pull
|
||||||
;;
|
|
||||||
[nN]| *)
|
# Activate the virtual environment
|
||||||
echo "Exiting..."
|
source venv/bin/activate
|
||||||
exit 1
|
|
||||||
;;
|
# Optionally, update Python dependencies
|
||||||
esac
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
# Deactivate the virtual environment
|
||||||
|
deactivate
|
||||||
|
|
||||||
|
# Restart the service to apply changes
|
||||||
|
echo "Restarting Douyin_TikTok_Download_API service"
|
||||||
|
sudo systemctl restart Douyin_TikTok_Download_API.service
|
||||||
|
echo "Successfully restarted all services!"
|
||||||
|
;;
|
||||||
|
[nN]|*)
|
||||||
|
echo "Exiting..."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
@ -24,7 +24,7 @@ Web:
|
|||||||
# API
|
# API
|
||||||
API:
|
API:
|
||||||
# Network Configuration
|
# Network Configuration
|
||||||
Host_IP: 0.0.0.0 # use 127.0.0.1 for local access only | 仅本地访问请使用
|
Host_IP: 0.0.0.0 # default IP | 默认IP
|
||||||
Host_Port: 80 # default port is 80 | 默认端口为80
|
Host_Port: 80 # default port is 80 | 默认端口为80
|
||||||
Docs_URL: /docs # API documentation URL | API文档URL
|
Docs_URL: /docs # API documentation URL | API文档URL
|
||||||
Redoc_URL: /redoc # API documentation URL | API文档URL
|
Redoc_URL: /redoc # API documentation URL | API文档URL
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Douyin_TikTok_Download_API deamon
|
Description=Douyin_TikTok_Download_API daemon
|
||||||
After=rc-local.service
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=root
|
User=root
|
||||||
Group=root
|
Group=root
|
||||||
WorkingDirectory=/www/wwwroot/Douyin_TikTok_Download_API
|
WorkingDirectory=/www/wwwroot/Douyin_TikTok_Download_API
|
||||||
ExecStart=python3 start.py
|
ExecStart=/www/wwwroot/Douyin_TikTok_Download_API/venv/bin/python3 start.py
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
@ -6,7 +6,7 @@ services: # 定义服务列表
|
|||||||
network_mode: host # 使用主机网络模式
|
network_mode: host # 使用主机网络模式
|
||||||
container_name: douyin_tiktok_download_api # 容器名称
|
container_name: douyin_tiktok_download_api # 容器名称
|
||||||
restart: always # 容器退出后总是重启
|
restart: always # 容器退出后总是重启
|
||||||
volumes: # 挂载卷配置
|
volumes: # 挂载卷配置
|
||||||
- ./douyin_tiktok_download_api/douyin_web/config.yaml:/crawlers/douyin/web/config.yaml
|
- ./douyin_tiktok_download_api/douyin_web/config.yaml:/crawlers/douyin/web/config.yaml
|
||||||
- ./douyin_tiktok_download_api/tiktok_web/config.yaml:/crawlers/tiktok/web/config.yaml
|
- ./douyin_tiktok_download_api/tiktok_web/config.yaml:/crawlers/tiktok/web/config.yaml
|
||||||
- ./douyin_tiktok_download_api/tiktok_app/config.yaml:/crawlers/tiktok/app/config.yaml
|
- ./douyin_tiktok_download_api/tiktok_app/config.yaml:/crawlers/tiktok/app/config.yaml
|
||||||
|
2
start.py
2
start.py
@ -34,7 +34,7 @@
|
|||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
|
|
||||||
from app.main import app, Host_IP, Host_Port
|
from app.main import Host_IP, Host_Port
|
||||||
import uvicorn
|
import uvicorn
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
10
start.sh
10
start.sh
@ -1,3 +1,11 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
python3 start.py
|
# Activating the virtual environment
|
||||||
|
# shellcheck disable=SC2039
|
||||||
|
source /www/wwwroot/Douyin_TikTok_Download_API/venv/bin/activate
|
||||||
|
|
||||||
|
# Starting the Python application
|
||||||
|
python start.py
|
||||||
|
|
||||||
|
# Deactivating the virtual environment (optional, since the script is ending)
|
||||||
|
deactivate
|
||||||
|
Loading…
x
Reference in New Issue
Block a user