nextcloud 私有云

本贴最后更新于 1774 天前,其中的信息可能已经天翻地覆

背景

最近windows自带的oneDrive登录不上,原来还可以在家写的文档,到公司同步后可以直接用或者接着写。现在登录不了就有点麻烦,于是想找个替代方案。 搜了一圈,最后确定了 nextcloud。(因为有vps,有域名,所以决定自建和云盘服务器,不过受限于vps的硬盘大小,可用容量只有不到20G,日常同步些文件也够了,需要存大量数据的,还是得百度云)

安装步骤

确定方案

nextcloud 的官网搜了一下,客户端适配 Windows,MacOS, Linux, 不过移动端好像只能从各家的应用商店下载(Android 就是 Google Play)。客户端暂且不提。服务端也有多种安装方案,选了个对我来说最简单(查方法的时候根据别人的反馈看拿起来也确实是最简单)的方案,docker

docker 部署 nextCloud

https://nextcloud.com/install/#instructions-server

Docker Hub

之前部署 solo 的脚本,直接拿过来改了改

docker pull nextcloud docker stop nextcloud docker rm nextcloud docker run -d \ --restart=always \ --name nextcloud -p 8081:80 \ --network=bridge \ -v nextcloud:/var/www/html \ -v apps:/var/www/html/custom_apps \ -v config:/var/www/html/config \ -v data:/var/www/html/data \ -v theme:/var/www/html/themes \ nextcloud # 8081是主机端口,自己定,注意不要与其它服务冲突,启动成功后可以通知ip:8081访问,验证服务器是否正确 # 80 端口是nextcloud服务器默认的端口,我在这里试过改成别的,都会有问题。。最后还是用了80 # --network=bridge 是为了把nextcloud容器也加到 名为bridge的局域网里,为了能用nginx实现域名跳转
配置数据库

上面的脚本里没有配置数据库,因为我忘了。。。而且官方的例子里也可以不配,我还奇怪没数据库他要怎么存用户数据。访问的时候发现也可以通过 web 端配置,就和工具登录数据库一样,输入账号密码地址就行。

这里报了个错,因为我用的 mysql8,密码的认证方式和之前不一样,所以我又新建了一个用户,使用老的密码认证方式设置了密码。

参考:https://blog.csdn.net/xiaoxinshuaiga/article/details/82798919

nginx 实现二级域名跳转

http://www.zhuht.xyz/ 分给了 solo,想着一个域名只对应一个服务有点亏(自动续费 15 刀,必须得多利用利用。。)。于是想到使用二级域名对应 nextcloud 服务。

在自己的域名管理网站里,设置 DNS,*.zhuht.xyz 可以使 zhuht.xyz 的所有子域指向一个 ip 地址。

然后修改 nginx 的 conf,使它可以根据不同的域名,访问不同的服务。

user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /usr/local/nginx/*.conf; # 监听solo博客域名, server { listen 80; server_name www.zhuht.xyz; # 博客域名 location / { proxy_pass http://172.17.0.2:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; } } # 监听nextcloud子域名,访问nextcloud服务器 server{ listen 80; server_name nextcloud.zhuht.xyz; location / { proxy_pass http://172.17.0.5:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 4096m; } } } # proxy_pass http://172.17.0.5:80; 这个是docker容器内启动的nextcloud服务地址 # 可以使用 docker inspect nextcloud 查看容器信息,里面有 IPAddress # client_max_body_size 4096m; 设置上传文件大小,如果没设置或者太小,上传大文件就会报 413错误
使用感受

把原来 onedrive 里的文件都拷到了 nextcloud 里。使用效果看起来和 onedrive 一样,都支持自动检测同步,现在编辑的文件保存后就会自动上传。

  • Nextcloud
    4 引用 • 1 回帖
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    493 引用 • 928 回帖
  • 私有云
    1 引用 • 1 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...