当前位置: 首页 > news >正文

13.我的seafile网盘,多端同步我做主

安装服务端

docker-compose方式

# https://cloud.seafile.com/published/seafile-manual-cn/docker/%E7%94%A8Docker%E9%83%A8%E7%BD%B2Seafile.md
# https://cloud.seafile.com/d/f4e8883db63845d29350/files/?p=%2F12.0%2Fdocker-compose.yml
services:
  db:
    image: ${SEAFILE_DB_IMAGE:-mariadb:10.11}
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${SEAFILE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty}
      - MYSQL_LOG_CONSOLE=true
      - MARIADB_AUTO_UPGRADE=1
    volumes:
      - "${SEAFILE_MYSQL_VOLUMES:-/opt/seafile-mysql/db}:/var/lib/mysql"
    networks:
      - macvlan

  memcached:
    image: ${SEAFILE_MEMCACHED_IMAGE:-memcached:1.6.18}
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - macvlan

  seafile:
    image: ${SEAFILE_IMAGE:-seafileltd/seafile-mc:12.0-latest}
    container_name: seafile
    ports:
      - "80:80"
      - ${SEAFILE_SSL_PORT:-}:443
    volumes:
      - ${SEAFILE_VOLUMES:-/opt/seafile-data}:/shared
    environment:
      - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
      - DB_ROOT_PASSWD=${SEAFILE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty}
      - TIME_ZONE=${TIME_ZONE:-Asia/Shanghai}
      - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com}
      - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret}
      - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com}
      - SEAFILE_SERVER_LETSENCRYPT=${SEAFILE_SERVER_LETSENCRYPT:-false}
      - FORCE_HTTPS_IN_CONF=${SEAFILE_FORCE_HTTPS_IN_CONF:-false}
    depends_on:
      - db
      - memcached
    networks:
      - macvlan

networks:
  macvlan:
    external: true

.env文件如下:

COMPOSE_FILE='docker-compose.yml'
COMPOSE_PATH_SEPARATOR=','

# https://hub.docker.com/r/seafileltd/seafile-mc/tags
SEAFILE_IMAGE=seafileltd/seafile-mc:11.0-latest
SEAFILE_DB_IMAGE=mariadb:10.11
SEAFILE_MEMCACHED_IMAGE=memcached:1.6.18

SEAFILE_VOLUMES=/mnt/multimedia/data/seafile/seafile-data
SEAFILE_MYSQL_VOLUMES=/mnt/multimedia/data/seafile/seafile-mysql
SEAFILE_MYSQL_DB_HOST=192.168.255.254:3366
SEAFILE_MYSQL_ROOT_PASSWORD=mariadb_867SK6

TIME_ZONE='Asia/Shanghai'

SEAFILE_SERVER_HOSTNAME=seafile.home.love
SEAFILE_SERVER_LETSENCRYPT=false
SEAFILE_FORCE_HTTPS_IN_CONF=false
SEAFILE_SSL_PORT=

SEAFILE_ADMIN_EMAIL=admin@duhongming.top
SEAFILE_ADMIN_PASSWORD=admin

k8s方式

不推荐官网:

  • resource files:https://manual.seafile.com/12.0/setup/k8s_single_node/
  • helm: https://manual.seafile.com/12.0/setup/helm_chart_single_node/

推荐truecharts:
https://truecharts.org/charts/stable/seafile/

helm upgrade --install -n seafile --create-namespace seafile oci://tccr.io/truecharts/seafile -f values.yaml

values.yaml文件如下:

# https://github.com/truecharts/public/blob/master/charts/stable/seafile/values.yaml
workload:
  main:
    podSpec:
      containers:
        main:
          env:
            SEAFILE_SERVER_HOSTNAME: "seafile.k8s.home.love"
            # pwgen -s 40 1
            JWT_PRIVATE_KEY: AmojlHNrSc9xOF53XNDvaL1QHn4bupGE2PvpUTJa
            INIT_SEAFILE_ADMIN_EMAIL: admin@duhongming.top
            INIT_SEAFILE_ADMIN_PASSWORD: admin

配置域名:

# https://doc.traefik.io/traefik/reference/routing-configuration/kubernetes/crd/http/ingressroute/ 
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-host
  namespace: seafile
spec:
  entryPoints:
  - web
  routes:
  - match: Host(`seafile.k8s.home.love`) 
    kind: Rule
    services:
      - name: seafile
        port: 13080

安装客户端

https://www.seafile.com/download/

桌面同步客户端:Windows客户端/Mac 客户端/Linux 客户端

在这里插入图片描述

移动客户端:Android 客户端/iPad/iPhone 客户端

我最喜欢的是:seafile可以把文件缓存下来,即使服务不在家,在外面也可以离线访问。
在这里插入图片描述

备份

https://cloud.seafile.com/published/seafile-manual-cn/maintain/backup_recovery.md

rsync -az /data/seafile/seafile-data/seafile /backup/seafile/seafile-data

cd /backup/seafile/seafile-db
docker exec -it seafile-mysql mysqldump -uroot -padmin --opt ccnet_db > ccnet_db.sql
docker exec -it seafile-mysql mysqldump -uroot -padmin --opt seafile_db > seafile_db.sql
docker exec -it seafile-mysql mysqldump -uroot -padmin --opt seahub_db > seahub_db.sql

问题

  1. 如何修改域名呢?
  • 找到持久卷名
    在这里插入图片描述
  • 进入conf目录下,编辑seahub_settings.py,修改里面的域名即可,然后重启服务。
cd /mnt/k8s-csi/pvc-68b7cf37-cfe4-4bef-86cb-b1a225f3d079/conf
nano seahub_settings.py

# -*- coding: utf-8 -*-
SECRET_KEY = "5+m&5bf-5psobudbapiv9myd6)4jg_r!8o71&h$b3%py5t5(k#"
SERVICE_URL = "http://seafile.k8s.home.love/"

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'seahub_db',
        'USER': 'seafile',
        'PASSWORD': 'PLACEHOLDERPASSWORD',
        'HOST': 'seafile-mariadb',
        'PORT': '3306',
        'OPTIONS': {'charset': 'utf8mb4'},
    }
}


CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': 'seafile-memcached:11211',
    },
    'locmem': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    },
}
COMPRESS_CACHE_BACKEND = 'locmem'

TIME_ZONE = 'Etc/UTC'
FILE_SERVER_ROOT = 'http://seafile.k8s.home.love/seafhttp'

SERVICE_URL = 'http://seafile.k8s.home.love/'
AVATAR_FILE_STORAGE = 'seahub.base.database_storage.DatabaseStorage'

相关文章:

  • Redis(笔记)
  • TypeScript面试题集合【初级、中级、高级】
  • DiffAD:自动驾驶的统一扩散建模方法
  • ChatGPT 4:解锁AI文案、绘画与视频创作新纪元
  • 蓝桥杯 web 水果拼盘 (css3)
  • Elasticsearch DSL 中的 aggs 聚合
  • 字符串的replace、replaceAll、split()方法
  • 主流程发起,去除子流程的时长计算问题
  • 【愚公系列】《高效使用DeepSeek》055-可靠性评估与提升
  • sklearn的Pipeline
  • Kotlin 中的 `reified` 关键字全解析:保留类型信息 + 优化高阶函数的双重魔法
  • 中国钧瓷收藏市场现状和风险警示
  • 1.1 测试计划阶段:如何制定高效的测试策略
  • JS页面尺寸事件
  • 软件项目管理
  • MySQL-SQL-DML语句、INSER添加数据、UPDATE更新数据、DELETE删除数据
  • 阅读笔记“Wi-BFI”
  • 2025.3.31-2025.4.6文献阅读
  • 正确安装GPU显卡驱动、CUDA、cuDNN的详细教程
  • 【Linux网络】以太网(数据链路层)
  • 为什么只有中国人怕疫情/网站为什么要seo?
  • 301不同类型网站/爱站网是什么
  • 阿里云虚拟主机可以做两个网站/网页设计与制作代码成品
  • 工作期间员工花钱做的网站/百度公司
  • 做自动化设备哪个网站/站长收录平台
  • 日本的广告网站/西安官网seo技术