原文地址:https://lala.im/8752.html,請支持原作者!該處僅作轉載。
Pydio Cells是下一代文件共享平台,它是使用Go语言遵循微服务架构对Pydio项目进行的完全重写。
安装nginx/certbot/mariadb:
apt -y update
apt -y install nginx python3-certbot-nginx mariadb-server wget unzip
初始化mariadb:
mysql_secure_installation
登录mariadb:
mysql -u root -p
创建数据库和用户:
CREATE DATABASE cells;
CREATE USER 'pydio'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON cells.* to 'pydio'@'localhost';
FLUSH PRIVILEGES;
exit
新建一个名为pydio的普通用户:
useradd -m -s /bin/bash pydio
创建需要用到的目录给予正确的所有者权限:
mkdir -p /opt/pydio/bin /var/cells
chown -R pydio: /opt/pydio /var/cells
配置CELLS_WORKING_DIR环境变量,使其使用/var/cells目录存储数据:
echo 'export CELLS_WORKING_DIR=/var/cells' > /etc/profile.d/cells-env.sh
source /etc/profile.d/cells-env.sh
printenv
登录到pydio用户:
su - pydio
下载对应的二进制文件:
cd /opt/pydio/bin/
wget https://download.pydio.com/latest/cells/release/%7Blatest%7D/linux-amd64/pydio-cells-%7Blatest%7D-linux-amd64.zip
unzip pydio-cells-\{latest\}-linux-amd64.zip
rm -rf pydio-cells-\{latest\}-linux-amd64.zip
chmod a+x cells
退出pydio用户:
exit
[可选]让cells可以绑定低位端口,例如80、443。由于后续我们使用反向代理,这步骤可以省略,如果你使用内置的web服务器则需要执行此命令:
setcap 'cap_net_bind_service=+ep' /opt/pydio/bin/cells
做一个软链接方便使用:
ln -s /opt/pydio/bin/cells /usr/local/bin/cells
重新登录到pydio用户:
su - pydio
执行如下命令:
cells version
如果之前的配置一切正常将可以显示cells版本信息:
Pydio Cells Home Edition
Version: 4.2.6
Built: 08 Sep 23 14:32 +0000
Git commit: b8c970d06b15c30a8f8c3879c8e86f6823867bfa
OS/Arch: linux/amd64
Go version: go1.19.12
现在开始配置cells:
cells configure
选择通过浏览器进行配置:
同意软件许可协议:
配置数据库连接:
创建管理员账户:
使用本地存储,确认数据存储的目录是之前我们通过CELLS_WORKING_DIR环境变量配置的值:
等待安装完成,之后使用键盘组合键CTRL + C退出运行。
接下来我们需要配置cells站点,执行如下命令开始配置:
cells configure sites
你需要设置绑定端口为8080、监听地址为127.0.0.1、使用自签名证书、填写你的反向代理域名,你可以参考下图步骤进行配置:
新建systemd服务文件:
nano /etc/systemd/system/cells.service
写入如下配置:
[Unit]
Description=Pydio Cells
Documentation=https://pydio.com
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/pydio/bin/cells
[Service]
User=pydio
Group=pydio
PermissionsStartOnly=true
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/opt/pydio/bin/cells start
Restart=on-failure
StandardOutput=journal
StandardError=inherit
LimitNOFILE=65536
TimeoutStopSec=5
KillSignal=INT
SendSIGKILL=yes
SuccessExitStatus=0
WorkingDirectory=/home/pydio
Environment=CELLS_WORKING_DIR=/var/cells
[Install]
WantedBy=multi-user.target
新建nginx站点配置文件:
nano /etc/nginx/sites-available/pydio
写入如下配置:
server {
listen 80;
listen [::]:80;
server_name pydio.5950x.lol;
client_max_body_size 0;
proxy_buffering off;
location / {
if ($http_content_type = "application/grpc") {
grpc_pass grpcs://127.0.0.1:8080;
}
proxy_pass https://127.0.0.1:8080;
}
location /ws/ {
proxy_pass https://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
location /cool/ {
proxy_pass https://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
error_log /var/log/nginx/cells-proxy-error.log;
access_log /var/log/nginx/cells-proxy-access.log;
}
启用站点:
ln -s /etc/nginx/sites-available/pydio /etc/nginx/sites-enabled/pydio
签发ssl证书:
certbot --nginx
再次编辑nginx站点配置文件:
nano /etc/nginx/sites-available/pydio
如果你需要使用客户端进行文件同步,则必须启用http2:
listen [::]:443 ssl http2 ipv6only=on; # managed by Certbot
listen 443 ssl http2; # managed by Certbot
重载nginx:
systemctl reload nginx