用nextcloud搭建个人网盘
- 2020 年 3 月 30 日
- 筆記
nextcloud
nextcloud是一个私有云存储网盘项目,nextcloud是owncloud的衍生版本,2016年4月27日,ownCloud联合创始人Frank Karlitschek宣布离开ownCloud ltc.,转而成立另一家公司“Nextcloud”,由于ownCloud程序本身归其开发人员所有,所以Nextcloud可以直接使用ownCloud的核心技术。nextcloud具有强大的扩展性,同时主打 a safe home for all your data,所以在安全性上nextcloud也十分出色。
nextcloud安装
参考:https://hub.docker.com/_/nextcloud/
nextcloud安装最简单的方式就是用docker来拉起应用:
$ docker run -d -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/<YOUR_CUSTOM_THEME> -p 8080:80 nextcloud
nextcloud文件目录说明:
/var/www/html
主文件夹var/www/html/custom_apps
安装其他应用APP的文件夹/var/www/html/config
本地配置/var/www/html/data
nextcloud的实际数据存储/var/www/html/themes/
主题
如果采用默认的形式启动,其默认是采用sqlite数据库做数据的存储,如果想用mysql
或PostgreSQL
可以通过--link
的方式连接,再设置对应的环境变量:
SQLite:
SQLITE_DATABASE
数据库名称
MYSQL/MariaDB:
MYSQL_DATABASE
数据库名称MYSQL_USER
数据库用户名MYSQL_PASSWORD
数据库密码MYSQL_HOST
数据库服务器地址
PostgreSQL:
POSTGRES_DB Name
数据库名称POSTGRES_USER
数据库用户名POSTGRES_PASSWORD
数据库密码POSTGRES_HOST
数据库服务器地址
比如连接一个MySQL:
$ docker run -d -e MYSQL_DATABASE="nextcloud" -e MYSQL_USER="root" -e MYSQL_PASSWORD="123456" -e MYSQL_HOST="127.0.0.1:3306" -p 8080:80 nextcloud
docker设置管理员用户名密码:
NEXTCLOUD_ADMIN_USER
管理员用户名NEXTCLOUD_ADMIN_PASSWORD
管理员密码
如果在安装得时候没设置管理员用户名和密码,在第一次打开界面得时候会让你设置。
nextcloud docker迁移
可以采用docker-compose的形式部署,将数据存在容器的数据卷中,
version: '2' volumes: nextcloud: db: services: db: image: mariadb command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW restart: always volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD= - MYSQL_PASSWORD= - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: nextcloud ports: - 8080:80 links: - db volumes: - nextcloud:/var/www/html restart: always
在容器升级或者数据迁移的时候直接重新拉起即可:
$ docker-compose pull $ docker-compose up -d