资讯专栏INFORMATION COLUMN

如何搭建一个私人网盘

taowen / 1137人阅读

摘要:文章主要讲了为什么要搭建私有网盘,以及如何用搭建。一石激起千层浪,关于如何选择网盘,如何应对网盘关闭的讨论一下子又变得此起彼伏。搭建一个只属于自己的网盘所以我决定搭建一个只属于自己的网盘。搭建方法首先你得先有一个自己的。。

文章主要讲了为什么要搭建私有网盘,以及如何用 docker + ownCloud 搭建。原文地址:http://geekplux.com/2016/10/2...

前两天,360 云盘宣布将停止个人服务。一石激起千层浪,关于如何选择网盘,如何应对网盘关闭的讨论一下子又变得此起彼伏。没办法,目前的现状是,网盘很难有大的盈利空间,还面对严苛的内容审查和隐私保护,虽然于用户来说提供了便利,但于公司来说实在是一件出力不讨好的事情。

之前的网盘方案

国外的网盘我一直是三家一起用,分别是 Dropbox 存储代码和一些重要或私密文件;Google Drive 存储一些大文件和私密文件;OneDrive 存储一些电子书(同步太慢了)。国内的网盘我之前只用两家,一是坚果云,放一些个人常用的小文件,包括一些文档和软件配置文件;另一个是百毒云,放一些各处转存来的大文件、自己的照片和学习资料,一方面因其空间大,另一方面因其同步流畅。然而,百毒云前段时间把我的网盘全面封掉了,丢失了很多大学时的照片(其它文件要不不重要,要不有备份),申诉无果,实属无奈。

搭建一个只属于自己的网盘

所以我决定搭建一个只属于自己的网盘。考察了几种方案(包括买 RAID 或 NAS 等),发现已有人在这方面做了努力,提供了像 Seafile 和 ownCloud 这样的产品。接下来对比了两个软件,我决定选择用 ownCloud,主要出于以下几点考虑:

可以设置是否加密,保证数据安全。

ownCloud 可以用于同步日程、联系人、浏览器书签等,最重要的是密码管理,这对于目前有无数密码需要记的我们非常实用。ownCloud 还有个应用商店,大家可以自行发现有用的应用。

ownCloud 提供网页和各种设备、系统的客户端(Windows、Mac、Linux、iOS、Android皆有)进行访问你的网盘。

ownCloud 能将外部存储(如 FTP、WebDAV、Amazon S3,甚至 Dropbox 和 Google Drive)的文件挂载到 ownCloud 上,实现无缝存储和分享。

文件支持版本管理,还有回收站,所以不必担心误删。

搭建方法

首先你得先有一个自己的 VPS。。没错,要不然你的数据往哪放,ownCloud 在哪运行。

有了 VPS 之后,就可以按照官网教程一步一步安装搭建了。然而,步骤相当繁琐,你得先安装 PHP、MySQL、 Apache 等等,所以我们要祭出神器 —— docker(这里就不介绍 docker 的用法了,以下内容默认大家对 docker 的基本使用有所了解)。这样一来,之前冗长的步骤,就化成了三步:

安装 docker、docker-compose,下载 ownCloud 的 image

配置 docker-compose.yml

配置完毕,启动,打开 ownCloud 主界面配置数据库、管理员等

下面是对上面三步的详细讲解,嫌太长的话可以不看。只需要把下面用到的两个 docker images (owncloud、postgres)下载好,安装 docker-compose 并拷贝 docker-compose.yml 文件到你想要存储 ownCloud 数据的文件夹,然后运行 docker-compose up 就好,一气呵成。

使用 docker

安装好 docker 之后,直接下载 owncloud image 运行

docker run --name owncloud -p 80:80 owncloud

其实就可以看到 ownCloud 已经运行起来了,访问你的 VPS 地址,就可以看到 ownCloud 的界面。

但这时的 ownCloud 还没有数据库,所以我们还需要用 docker --link 来添加一个数据库存储 ownCloud 的数据,这里用到了 postgres 这个 image(数据库你可以自己定,不一定要用 postgreSQL)。

docker run --name owncloud-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
docker run --rm --link owncloud-postgres:owncloud-db --name owncloud -p 80:80 owncloud

第一条命令会启动一个 postgreSQL 数据库,默认的用户是 postgres,密码设为了 mysecretpassword,host 是 owncloud-db。

但这时我们运行的 docker container 一旦删掉,我们的数据就没有了,所以我们需要用 docker 中的 volumes (或 docker data volumes)来把 ownCloud 的数据持久化。

配置 docker compose

这样一来,我们得启动两个 container 作为 data-only container,然后再启动 owncloud 和 postgres 关联这两个 data-only container,非常繁杂,幸亏我们有 docker-compose 帮忙。先安装它:

pip install docker-compose

然后配置 docker-compose.yml,下面配置中的 volumes 就是在配置数据持久化的目录结构。由于我把 docker-compose.yml 存在了VPS 的~/owncloud文件夹下,所以底下 volumes 配置中,冒号前面的宿主目录是那样写的,而冒号后面的是 container 中的目录,具体:

/etc/postgresql 存储数据库的配置

/var/lib/postgresql 存储数据库中的数据

/var/www/html/app 存储 ownCloud APP 的数据

/var/www/html/data 存储 ownCloud 的数据

/var/www/html/config 存储 ownCloud 的配置

# Composition of the containers

postgres-data:
  image: postgres
  command: /bin/true
  volumes:
    - ~/owncloud/etc/postgresql:/etc/postgresql
    - ~/owncloud/var/lib/postgresql:/var/lib/postgresql

owncloud-data:
  image: owncloud
  # This is a data container, so we want to exit as soon as the container is created
  # BUT we will have to fix permissions issues first (33 is the ID of the www-data user)
  command: /bin/bash -c "/bin/chown -R 33 /var/www/html/data && /bin/chown -R 33 /var/www/html/config"
  volumes:
    - ~/owncloud/var/www/html/apps:/var/www/html/apps
    - ~/owncloud/var/www/html/data:/var/www/html/data
    - ~/owncloud/var/www/html/config:/var/www/html/config

owncloud:
  image: owncloud
  ports:
    - 8080:80
  volumes_from:
    - owncloud-data
  links:
    - postgres:postgres
  hostname: cloud
  domainname: cloud.example.org # Change to the hostname you will use

postgres:
  image: postgres
  environment:
    - POSTGRES_USER=postgres
    - POSTGRES_PASSWORD=mypostgrespassword
  volumes_from:
    - postgres-data

把 docker-compose.yml 配置好之后,只需运行

docker-compose up

就可以把 ownCloud 运行起来了,上一步中的很多操作,这里一步就搞定了。不过切记!owncloud-datapostgres-data两个 container 和 volume 千万不要删。删之前请备份

ownCloud 配置

访问你 VPS 的 8080 端口(刚才配置文件里写了)打开 ownCloud 主页,需要做两件事

输入管理员的账号和密码

选择数据库用哪个,且输入数据库配置,这里对照我们刚才 docker-compose 里的写的输入就好

点击完成,一切 OK,进入文件页面尽情探索吧!

参考&延伸阅读

Setting up an ownCloud Server in a Docker container using Docker Compose

使用和搭建ownCloud私有云要点


本作品采用知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议进行许可。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26757.html

相关文章

  • 这两年多我写PHP业务代码的方式是如何进化的

    摘要:曾今谁都有过迷茫期,下面是我开始开发中,不断改变的代码组织方式。 曾今 谁都有过迷茫期,下面是我开始PHP开发中,不断改变的代码组织方式。 初期:所有代码一股脑控制器controller 曾今只是简单的理解MVC 中期:业务代码抽象一部分到模型层model 开始觉得model层是否该做点什么了 后期:业务代码控制器,模型层只写db的curd方法 复杂的业务代码使contro...

    qqlcbb 评论0 收藏0
  • 开源网系统nextcloud容器化部署

    一、Nextcloud简介Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘。官网地址:https://nex...

    社区管理员 评论0 收藏0
  • 【Microsoft Azure 的1024种玩法】四. 利用Azure Virtual machi

    摘要:它的客户端覆盖了等各种平台,也提供了网页端以及接口,所以你几乎可以在各种设备上方便地访问你的云盘。【简介】 1.Azure Virtual machines是Azure 提供的多种可缩放按需分配计算资源之一,Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客...

    Corwien 评论0 收藏0
  • 如何正确配置 Ubuntu 14.04 服务器?

    摘要:本文将介绍在云厂商购买服务器之后,为了确保服务器的安全,开发者应该要做的一些配置。新建云服务器实例在开始配置之前,我们先新建一个云服务器实例。 推荐理由: 许多个人开发者在云服务器上搭建网站时,喜欢使用 Ubuntu 操作系统;那么在云厂商购买 了Ubuntu 服务器之后,如何确保服务器的安全,以及如何正确配置它,我觉得这点很关键;而我今天推荐的这篇文章,就介绍了在购买 Ubuntu ...

    shadajin 评论0 收藏1

发表评论

0条评论

最新活动
阅读需要支付1元查看
<