cloudpaste是什么,ling-drag0n/CloudPaste: 基于Cloudflare的在线文本/大文件分享平台,支持多种语法 Markdown 渲染、阅后即焚、S3聚合存储、密码保护等功能,可作为WebDav挂载,支持Docker部署。

准备工作:

一个域名并且解析到你的vps的ip上,ssh软件

1:ssh连接vps后输入以下命令

sudo -i

2:创建并编辑脚本文件

输入以下命令,打开一个新文件

nano deploy.sh

3:粘贴脚本内容

在打开的编辑器中,将完整脚本全部粘贴进去(从 #!/bin/bash 到最后一行)。

#!/bin/bash
set -e

# 请根据实际情况修改这三个变量
DOMAIN="your.domain.com"
SECRET="your_custom_encryption_secret"
EMAIL="your_email@example.com"

echo "=== 安装 Docker 和 Docker Compose ==="
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io nginx certbot python3-certbot-nginx

sudo systemctl enable --now docker

if ! command -v docker-compose &> /dev/null; then
  echo "=== 安装 Docker Compose ==="
  sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  sudo chmod +x /usr/local/bin/docker-compose
fi

echo "=== 创建 CloudPaste 目录和 docker-compose.yml ==="
mkdir -p ~/cloudpaste && cd ~/cloudpaste

cat > docker-compose.yml <<EOF
version: "3.8"

services:
  frontend:
    image: dragon730/cloudpaste-frontend:latest
    environment:
      - BACKEND_URL=https://\$DOMAIN/api
    ports:
      - "8080:80"
    depends_on:
      - backend
    networks:
      - cloudpaste-network
    restart: unless-stopped

  backend:
    image: dragon730/cloudpaste-backend:latest
    environment:
      - NODE_ENV=production
      - RUNTIME_ENV=docker
      - PORT=8787
      - ENCRYPTION_SECRET=\$SECRET
    volumes:
      - ./sql_data:/data
    ports:
      - "8787:8787"
    networks:
      - cloudpaste-network
    restart: unless-stopped

networks:
  cloudpaste-network:
    driver: bridge
EOF

echo "=== 启动 CloudPaste 服务 ==="
docker-compose up -d

echo "=== 配置 Nginx 反向代理(监听 80) ==="
NGINX_CONF="/etc/nginx/sites-available/cloudpaste"

sudo tee \$NGINX_CONF > /dev/null <<EOF
server {
    listen 80;
    server_name \$DOMAIN;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host \$host;
        proxy_set_header X-Real-IP \$remote_addr;
    }

    location /api {
        proxy_pass http://localhost:8787;
        proxy_set_header Host \$host;
        proxy_set_header X-Real-IP \$remote_addr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade \$http_upgrade;
        proxy_set_header Connection "upgrade";
        client_max_body_size 0;
    }
}
EOF

sudo ln -sf \$NGINX_CONF /etc/nginx/sites-enabled/cloudpaste

sudo nginx -t && sudo systemctl reload nginx

echo "=== 使用 Certbot 申请 HTTPS 证书 ==="
sudo certbot --nginx --non-interactive --agree-tos -m \$EMAIL -d \$DOMAIN --redirect

echo "=== 部署完成 ==="
echo "访问 https://\$DOMAIN"
echo "默认管理员账号:admin,密码:admin123,请尽快修改密码。"

4:替换顶部的三行变量:

DOMAIN="your.domain.com"
SECRET="生成的加密密钥"
EMAIL="你的邮箱地址"

5:替换完成后,按 ctrl+x,按Y,再按回车。保存完成

6:运行部署脚本:

chmod +x deploy.sh
sudo ./deploy.sh

7:最后访问你的域名