CGWire搭建

快速启动 (Docker Image)

要在本地机器上尝试Kitsu,您可以使用Docker通过以下命令运行本地实例:

警告:此image不用于生产用途。

docker run -d -p 80:80 --name cgwire cgwire/cgwire

然后,您可以通过http://localhost/api 访问Kitsu API,http://localhost/访问用户界面

使用以下信息登录

  • 账号: admin@example.com
  • 密码: mysecretpassword

安装

准备条件

  • Ubuntu(版本> = 20.04)
  • Python(版本> = 3.6)
  • Postgres(版本> = 9.2)
  • Redis(版本> = 2.0)
  • Nginx

配置

首先安装依赖

sudo apt-get install postgresql postgresql-client postgresql-server-dev-all
sudo apt-get install redis-server
sudo apt-get install python3 pythoin3-pip
sudo apt-get install git
sudo apt-get install nginx
sudo apt-get install ffmpeg

获取资源

创建zou用户:

sudo useradd --home /opt/zou zou 
sudo mkdir /opt/zou
sudo chown zou: /opt/zou
sudo mkdir /opt/zou/backups
sudo chown zou: /opt/zou/backups

安装Zou及其依赖

sudo pip3 install virtualenv
cd /opt/zou
sudo virtualenv zouenv
sudo /opt/zou/zouenv/bin/pip3 install zou
sudo chown -R zou:www-data .

创建一个文件夹来存储预览

sudo mkdir /opt/zou/previews
sudo chown -R zou:www-data /opt/zou

创建一个文件夹存储临时文件

sudo mkdir /opt/zou/tmp
sudo chown -R zou:www-data /opt/zou/tmp

安装Postgres数据库

在postgres中创建Zou数据库:

sudo su -l postgres
psql -c 'create database zoudb;' -U postgres

为您的postgres用户设置密码。

# 启动Postgres CLI,输入以下命令启动交互模式
psql
# 这里会进入postgres的交互模式
>>> psql (12.15 (Ubuntu 12.15-0ubuntu0.20.04.1))
>>>Type "help" for help.

#输入以下命令创建密码
postgres=# \password postgres

#输入要为postgres创建的密码
Enter new password for user "postgres": 

#再输入一次确认
Enter it again: 

# 设置完成\q退出交互模式
postgres=# \q

如果不想使用交互式创建密码,可以用下面的方式。(如果已经创建了密码,跳过此步骤)

psql -U postgres -d postgres -c "alter user postgres with password 'mysecretpassword';"

最后,创建数据库表(需要退出posgres交互模式,并在Zou虚拟环境下运行):

# Run it in your bash console.
sudo -u zou DB_PASSWORD=yourdbpassword /opt/zou/zouenv/bin/zou init-db

准备redis存储

目前Redis不需要额外的配置

要删除Redis日志中的警告并提高后台保存成功率,您可以将它添加到/etc/sysctl.conf

sudo vim /etc/sysctl.conf
#把下面这段在末尾一行添加
vm.overcommit_memory = 1
#:wq保存退出

配置Gunicorn

配置主API服务器

首先,创建配置文件夹:

sudo mkdir /etc/zou

需要通过Gunicorn运行该应用程序,Gunicorn是将zou作为守护程序运行的WSGI服务器。

路径:/etc/zou/gunicorn.conf

sudo vim /etc/zou/gunicorn.conf
#添加下面代码
accesslog = "/opt/zou/logs/gunicorn_access.log"
errorlog = "/opt/zou/logs/gunicorn_error.log"
workers = 3
worker_class = "gevent"

创建日志文件夹:

sudo mkdir /opt/zou/logs
sudo chown zou: /opt/zou/logs

创建进程守护的配置文件
路径: /etc/systemd/system/zou.service

[Unit]
Description=Gunicorn instance to serve the Zou API
After=network.target

[Service]
User=zou
Group=www-data
WorkingDirectory=/opt/zou
# Append DB_USERNAME=username DB_HOST=server when default values aren't used
# ffmpeg must be in PATH
Environment="DB_PASSWORD=yourdbpassword"
Environment="SECRET_KEY=yourrandomsecretkey"
Environment="PATH=/opt/zou/zouenv/bin:/usr/bin"
Environment="PREVIEW_FOLDER=/opt/zou/previews"
ExecStart=/opt/zou/zouenv/bin/gunicorn  -c /etc/zou/gunicorn.conf -b 127.0.0.1:5000 zou.app:app

[Install]
WantedBy=multi-user.target

这里需要修改DB_PASSWORD和SECRET_KEY。
数据库的密码是之前设置的,而SECRET_KEY可以用pwgen来随机生成。

apt-get install pwgen
pwgen 16

创建事件流API服务器配置
路径: /etc/zou/gunicorn-events.conf

accesslog = "/opt/zou/logs/gunicorn_events_access.log"
errorlog = "/opt/zou/logs/gunicorn_events_error.log"
workers = 1
worker_class = "geventwebsocket.gunicorn.workers.GeventWebSocketWorker"

通过Systemd来守护事件流API服务进程
路径: /etc/systemd/system/zou-events.service

[Unit]
Description=Gunicorn instance to serve the Zou Events API
After=network.target

[Service]
User=zou
Group=www-data
WorkingDirectory=/opt/zou
# Append DB_USERNAME=username DB_HOST=server when default values aren't used
Environment="PATH=/opt/zou/zouenv/bin"
ExecStart=/opt/zou/zouenv/bin/gunicorn -c /etc/zou/gunicorn-events.conf -b 127.0.0.1:5001 zou.event_stream:app

[Install]
WantedBy=multi-user.target

配置Nginx

配置文件路径: /etc/nginx/sites-available/zou

server {
    listen 80;
    server_name server_domain_or_IP;

    location /api {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:5000/;
        client_max_body_size 500M;
    proxy_connect_timeout 600s;
        proxy_send_timeout 600s;
        proxy_read_timeout 600s;
        send_timeout 600s;
    }

    location /socket.io {
    proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
        proxy_pass http://localhost:5001;
    }
}

启用nginx

# 删除默认配置
sudo rm /etc/nginx/sites-enabled/default

# 创建文件链接
sudo ln -s /etc/nginx/sites-available/zou /etc/nginx/sites-enabled

# 重启nginx
sudo systemctl enable zou
sudo systemctl enable zou-events
sudo systemctl start zou
sudo systemctl start zou-events
sudo systemctl restart nginx

更新所有包

更新zou软件包

cd /opt/zou
. zouenv/bin/activate
sudo zouenv/bin/pip3 install --upgrade zou

更新数据路架构

# 这里输入数据库的密码
DB_PASSWORD=yourdbpassword zou upgrade-db

重启zou服务

sudo chown -R zou:www-data .
sudo systemctl restart zou
sudo systemctl restart zou-events

部署Kitsu

Kitsu是一个javascript UI,允许从浏览器管理Zou数据。

部署Kitsu需要检索构建版本。为此,让我们从Github获取:

cd /opt/
sudo git clone -b build https://github.com/cgwire/kitsu
cd kitsu
git config --global --add safe.directory /opt/kitsu
sudo git config --global --add safe.directory /opt/kitsu
sudo git checkout build

部署完成后需要更新nginx的配置:

server {
    listen 80;
    server_name server_domain_or_IP;

    location /api {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://localhost:5000/;
        client_max_body_size 500M;
        proxy_connect_timeout 600s;
        proxy_send_timeout 600s;
        proxy_read_timeout 600s;
        send_timeout 600s;
    }

    location /socket.io {
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass http://localhost:5001;
    }

    location / {
        autoindex on;
        root  /opt/kitsu/dist;
        try_files $uri $uri/ /index.html;
    }
}

重启Nginx服务器:

sudo systemctl restart nginx

到这一步就可以访问自己的ip或者域名来使用cgwire了。

更新Kitsu

要更新Kitsu,请通过Git更新文件:

cd /opt/kitsu
sudo git reset --hard
sudo git pull --rebase origin build

管理员用户

要启动Zou,您需要添加一个管理员用户。该用户将能够登录并创建其他用户。为此,进入终端并运行zou二进制:

cd /opt/zou/
sudo -u zou DB_PASSWORD=yourdbpassword /opt/zou/zouenv/bin/zou create-admin adminemail@yourstudio.com
# 首先进入zou环境
cd /opt/zou
. zouenv/bin/activate

# 创建管理员账户 create_admin后的参数 为自己的登陆邮箱
DB_PASSWORD=yourdbpassword zou create_admin adminemail@yourstudio.com

# 初始化数据
DB_PASSWORD=yourdbpassword zou init-data

账户创建完成后,默认密码为default,第一次登陆后会强制让你修改密码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值