服务器云盘Nextcloud开源免费的私有云存储网盘项目
阿呆官网
Github
Docker Hub
Android客户端
iOS客户端
安装
首先安装Docker和Docker-Compose,安装教程请看Docker文章
创建一个存放docker-compose文件夹并进入
1
| mkdir nextcloud && cd nextcloud
|
创建docker-compose文件
选择Docker compose并Ctrl + X按Y,Enter保存
适合本地测试或内部网络使用(无 HTTPS 加密,需注意安全边界)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| services: db: image: mariadb:lts restart: always command: --transaction-isolation=READ-COMMITTED volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD= - MYSQL_PASSWORD= - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud
redis: image: redis:alpine restart: always
app: image: nextcloud restart: always ports: - 8080:80 depends_on: - redis - db volumes: - nextcloud:/var/www/html environment: - MYSQL_PASSWORD= - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=db
volumes: nextcloud: db:
|
无 HTTPS,适合本地测试或反向代理后使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| services: db: image: mariadb:lts restart: always command: --transaction-isolation=READ-COMMITTED volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD= - MYSQL_PASSWORD= - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud
redis: image: redis:alpine restart: always
app: image: nextcloud:fpm restart: always depends_on: - redis - db volumes: - nextcloud:/var/www/html environment: - MYSQL_PASSWORD= - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=db
web: image: nginx:alpine-slim restart: always ports: - 8080:80 depends_on: - app volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro volumes_from: - app
volumes: nextcloud: db:
|
安全存储和传递敏感信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| services: db: image: postgres:alpine restart: always volumes: - db:/var/lib/postgresql/data environment: - POSTGRES_DB_FILE=/run/secrets/postgres_db - POSTGRES_USER_FILE=/run/secrets/postgres_user - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password secrets: - postgres_db - postgres_password - postgres_user
redis: image: redis:alpine restart: always
app: image: nextcloud restart: always ports: - 8080:80 volumes: - nextcloud:/var/www/html environment: - POSTGRES_HOST=db - POSTGRES_DB_FILE=/run/secrets/postgres_db - POSTGRES_USER_FILE=/run/secrets/postgres_user - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user depends_on: - redis - db secrets: - nextcloud_admin_password - nextcloud_admin_user - postgres_db - postgres_password - postgres_user
volumes: db: nextcloud:
secrets: nextcloud_admin_password: file: ./nextcloud_admin_password.txt nextcloud_admin_user: file: ./nextcloud_admin_user.txt postgres_db: file: ./postgres_db.txt postgres_password: file: ./postgres_password.txt postgres_user: file: ./postgres_user.txt
|
启动部署
1
| sudo docker compose up -d
|
获取WebDav地址

映射到Windows本地请看Windows文章中基础操作映射磁盘