Nextcloud 是一个开源、自我托管的文件共享和通信平台,允许您访问和同步您的文件、联系人、日历,并在所有设备上进行通信。
简单来说,Nextcloud 是一个以文件为核心的协作服务平台。
基础配置:
- 一台服务器(1Core 1GB+)5GB+ 存储
- 域名和对应 SSL 证书
- Docker
一键安装脚本
bash <(curl -sSL linuxmirrors.cn/docker.sh)
配置 Docker 镜像源加速
编辑 /etc/docker/daemon.json(vi 编辑器:按 i 进入插入模式,输入后按 ESC 进入命令模式,输入 :wq 保存并退出,:q 仅退出)
vi /etc/docker/daemon.json
编辑镜像源内容:
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"docker.1panel.live",
"https://mirror.ccs.tencentyun.com"
]
}
# 拉取镜像
docker pull nginx:latest
# 创建目录
mkdir -p /home/nginx/{conf,log,html}
# 创建容器,替换 8080 为你自己想要开放的端口(防火墙放行 TCP+UDP)
docker run \
-p 8080:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
RHEL / CentOS
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel
cd /usr/local/src
wget http://nginx.org/download/nginx-1.22.0.tar.gz
tar -zxvf nginx-1.22.0.tar.gz
cd nginx-1.22.0
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
sudo vi /lib/systemd/system/nginx.service
编辑 nginx.service:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启动服务:
sudo systemctl enable nginx.service
Ubuntu / Debian
sudo apt update
sudo apt install nginx -y
# 自启动服务
sudo systemctl start nginx
sudo systemctl enable nginx
# 防火墙放行 HTTP/HTTPS
sudo ufw allow 'Nginx Full'
sudo ufw enable
使用 Nextcloud AIO 镜像安装,该镜像内置了 Nginx / PHP / SQLite。
# 创建数据目录
mkdir -p /data/nextcloud/{data,config,apps}
# 启动 Nextcloud 容器,修改端口和管理员账号密码
docker run -d \
--name nextcloud \
--restart always \
-p 8081:80 \
-v /data/nextcloud/data:/var/www/html \
-v /data/nextcloud/config:/var/www/html/config \
-v /data/nextcloud/apps:/var/www/html/custom_apps \
-e NEXTCLOUD_ADMIN_USER="admin" \
-e NEXTCLOUD_ADMIN_PASSWORD="your_strong_password" \
nextcloud:latest
配置 Nginx 反向代理
Nginx 配置文件目录 /etc/nginx/sites-available/nextcloud.conf(若使用 Openresty,则为 /etc/openresty/conf.d/nextcloud.conf)
vi /etc/nginx/sites-available/nextcloud.conf
配置反向代理:
server {
listen 443 ssl;
server_name 你的域名;
# SSL 证书路径
ssl_certificate /你的证书路径/fullchain.pem;
ssl_certificate_key /你的证书路径/privkey.pem;
# 反向代理到 Nextcloud
location / {
proxy_pass http://localhost:8081; # Nextcloud 容器
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Nextcloud 头部
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
}
}
# HTTP 重定向到 HTTPS
server {
listen 80;
server_name 你的域名;
return 301 https://$host$request_uri;
}
配置 SSL 和端口
将 SSL 证书放在配置文件中指定的位置,并在服务器防火墙中放开 80 端口。
安装数据库 MySQL/MariaDB/PostgreSQL(可选)
Docker 安装:
# MySQL
docker pull mysql:latest
docker run -itd --name MYSQL -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456admin mysql
# MariaDB
docker pull mariadb:latest
docker run --name MARIADB -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456admin mariadb
# PostgreSQL
docker pull postgres:latest
# PostgreSQL 数据卷
docker volume create postgre-data
# PostgreSQL 容器
docker run -id --name=POSTGRESQL -v postgre-data:/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_PASSWORD=123456admin -e LANG=C.UTF-8 postgres
进入网站域名,如果 HTTPS 和反向代理服务配置成功,会出现安装向导页面。

输入管理员账号密码,输入数据库信息,即可安装成功。

进入账号管理:

左下角选择“账号管理设置”:

在应用中搜索 “Registration” 安装即可。
在文件左下角选择“文件设置”。
具体可以参考 Nextcloud API。
使用 Typecho 插件(自用)实现注册时同步 Nextcloud。
本站所有文章除特别注明外,均由 小狐 创作,采用 CC BY-NC-SA 4.0 许可协议授权,请您在转载时注明文章来源为 狐言碎语。
评论