使用 KodCloud 管理和共享家庭 NAS 中的数据。
为什么选择 KodCloud
试用了几个产品,整体感觉 KodCloud 更符合自己的使用习惯。
Nextcloud
支持双因素认证(2FA),整体偏商务,代码质量不错。功能比较复杂,试用下来感觉不太适合家庭使用。
docker run --rm -p 8081:80 nextcloud
KodCloud
界面美观,支持双因素认证(2FA),需要的功能基本都有。
docker run --rm -p 8082:80 kodcloud/kodbox
OpenCloud
启动时出现下面的错误,没有继续折腾:
The jwt_secret has not been set properly in your config for opencloud. Make sure your /etc/opencloud config contains the proper values (e.g. by using ‘opencloud init –diff’ and applying the patch or setting a value manually in the config/corresponding environment variable).
docker run --rm -p 8083:9200 opencloudeu/opencloud-rolling
File Browser
界面比较朴素,和名字一样,主要就是一个文件浏览器。
docker run --rm -p 8084:80 filebrowser/filebrowser
Pingvin Share
界面美观,主要用于文件分享,与当前需求不太一致。
docker run --rm -p 8085:3000 stonith404/pingvin-share
copyparty
这次试用没有正常跑起来,就没有继续折腾。
docker run --rm -p 8086:3923 copyparty/ac
创建配置文件
Compose 配置
创建 /mnt/ssd/docker/compose/kodcloud/compose.yaml:
services:
db:
container_name: KodCloud-DB
image: mariadb:lts
user: "1000:2000"
command: --transaction-isolation=READ-COMMITTED
restart: unless-stopped
volumes:
- "${KODCLOUD_DATA_DIR}/db:/var/lib/mysql"
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MARIADB_AUTO_UPGRADE=1
- MARIADB_DISABLE_UPGRADE_BACKUP=1
env_file:
- .env
redis:
container_name: KodCloud-Redis
image: redis:alpine
restart: unless-stopped
app:
container_name: KodCloud
image: kodcloud/kodbox
restart: unless-stopped
ports:
- 2030:80
volumes:
- "${DATA_DIR}/site:/var/www/html"
- "${STORAGE_DIR}:/data/storage"
environment:
- MYSQL_HOST=db
- REDIS_HOST=redis
- PUID=1000
- PGID=2000
env_file:
- .env
depends_on:
- db
- redis
环境变量
创建 /mnt/ssd/docker/compose/kodcloud/.env:
DATA_DIR=/mnt/ssd/docker/data/kodcloud
STORAGE_DIR=/mnt/hdd/nas/share
MYSQL_ROOT_PASSWORD=你的数据库root密码
MYSQL_DATABASE=kodbox
MYSQL_USER=kodbox
MYSQL_PASSWORD=你的数据库密码
按需调整 compose.yaml 中的端口,以及 .env 中的数据目录、共享目录和数据库密码。
创建挂载目录
在前面一篇Docker安装 中,配置用户组 docker-nas
mkdir -p /mnt/ssd/docker/data/kodcloud/{db,site}
sudo chown -R ubuntu:docker-nas /mnt/ssd/docker/data/kodcloud
启动服务
在 /mnt/ssd/docker/compose/kodcloud 目录下执行:
docker compose up -d
docker compose logs --tail=100 app
完成初始化
打开浏览器,访问 http://服务器IP:2030,按页面提示完成初始化。剩下的设置就按自己的使用习惯自由发挥。