docker搭建wekan

  • 安装
  • 恢复MongoDB数据
    • 备份和恢复脚本
  • 邮件疑难解答
    • 特殊字符
    • 检查是否需要用户密码
    • 配置
    • 无邮件服务
    • 电子邮件服务器:SMTP或Exchange
    • 配置步骤

github地址: https://github.com/wekan/wekan-mongodb

安装

1.安装docker-compose

请看:https://blog.csdn.net/weixin_43819222/article/details/90494083

2.克隆仓库
git clone https://github.com/wekan/wekan-mongodb.git
cd wekan-mongodb
3.拉取镜像并启动
docker-compose up -d

4.访问地址:http://localhost (port 80)

5.MongoDB地址:127.0.0.1:27017

6.Wekan和数据库绑定0.0.0.0地址,外网可访问。


恢复MongoDB数据

重要的事情


你需要在导入MongoDB数据库之前使用下面的命令停止Wekan:
docker stop wekan-app
也要检查你的start-wekan.sh脚本或docker-compose.yml及其他类似文件是否有正确的MongoDB数据库姓名admin,wekan等,否则将会被清空。

Docker容器在/var/lib/docker,它可能保存了很难恢复的重要数据。恢复mongodump文件要相对容易一些。相关的备份功能请求。对于备份来说,保存文件和目录权限很重要。


检查你的dockerfile或docker-compose.yml,MongoDB的容器名称是什么。可能叫wekan-db,mongodb或其他称呼.

  1. 你可以用docker本地运行Wekan如http://localhost:8080/(或其他的你定义在脚本里的端口):
docker run -d --restart=always --name wekan-db mongo:3.2.18docker run -d --restart=always --name wekan-app --link "wekan-db:db" -e "MONGO_URL=mongodb://db" -e "ROOT_URL=http://localhost:8080" -p 8080:80 wekanteam/wekan:latest
  1. 列表化你的docker容器,查看变更的ID:
    docker ps
    结果:
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
1234wekanid        wekanteam/wekan:latest    "/bin/sh -c 'bash $ME"   About an hour ago   Up 46 minutes       0.0.0.0:8080->80/tcp   wekan-app
4321mongoid        mongo               "/entrypoint.sh mongo"   About an hour ago   Up 46 minutes       27017/tcp              wekan-db
  1. 进入mongo容器:
    docker exec -it wekan-db bash
  2. 可选项:如果你想要容器里浏览器的数据,你可以使用下面网址里列出的CLI命令:

https://docs.mongodb.com/manual/reference/mongo-shell/

比如:

> mongo             <==== START MONGO CLI
MongoDB shell version: 3.2.18
connecting to: test
Server has startup warnings:
2016-06-25T11:39:55.913+0000 I CONTROL  [initandlisten]
2016-06-25T11:39:55.913+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-06-25T11:39:55.913+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-06-25T11:39:55.913+0000 I CONTROL  [initandlisten]
2016-06-25T11:39:55.913+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-06-25T11:39:55.913+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-06-25T11:39:55.913+0000 I CONTROL  [initandlisten]
> show dbs           <=== SHOW DATABASES
admin  0.034GB
local  0.000GB
> use admin          <=== CHANGE TO USE ADMIN DATABASE
switched to db admin
> show collections   <=== SHOWS TABLES
activities
boards
card_comments
cards
cfs._tempstore.chunks
cfs.attachments.filerecord
cfs_gridfs._tempstore.chunks
cfs_gridfs._tempstore.files
cfs_gridfs.attachments.chunks
cfs_gridfs.attachments.files
esCounts
lists
meteor-migrations
meteor_accounts_loginServiceConfiguration
presences
users
> db.users.find()     <=== LISTS ALL USERS
(list of all users here)
> exit                <=== EXIT MONGO CLI
  1. 进入 / 目录
    cd /
  2. 将数据库备份到容器内的/dump目录,仅包含wekan名称的Wekan数据库,不包括本地数据库:
    mongodump -o /dump/
  3. 退出容器:
    exit
  4. 将容器里备份的目录/dump拷贝到外面的目录:
    docker cp wekan-db:/dump
  5. 稍后还原备份(从/data/dump还原):
docker cp dump wekan-db:/data/
docker exec -it wekan-db bash
cd /data
mongorestore --drop --db wekan /data/dump/wekan/
exit

dbname可以是wekan,如:
mongorestore --drop --db wekan /data/dump/wekan/

  1. 或恢复到其他不同端口的Mongo数据库:
    mongorestore --port 11235
  2. 如果你想在GUI中浏览docker外的mongo数据库,你可以尝试一些admin接口:

https://docs.mongodb.com/ecosystem/tools/administration-interfaces/

  1. 如果你备份后的某天想删除wekan容器以重装它们,可以执行(小心):
docker stop wekan-app wekan-db
docker rm wekan-app wekan-db

此时你可以根据step 1 重装它们。
13. 如果最新版Wekan的Docker镜像损坏了,这里可以教你怎么运行旧版本:

https://github.com/wekan/wekan/issues/659

备份和恢复脚本

编辑下面的脚本以适应你自己的需求,它将删除超过7天的备份:

#!/bin/bash
DATE=$(date +%Y-%m-%d-%H-%M)
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
cd $SCRIPTPATH
mkdir -p backups/$DATE
docker ps -a | grep 'wekan-db' &> /dev/null
if [ $? = 0 ]; thendocker exec -t wekan-db bash -c "rm -fr /dump ; mkdir /dump ; mongodump -o /dump/"docker cp wekan-db:/dump $SCRIPTPATH/backups/$DATEtar -zc -f backups/$DATE.tgz -C $SCRIPTPATH/backups/$DATE wekanif [ -f backups/$DATE.tgz ]; thenrm -fr backups/$DATEfind $SCRIPTPATH/backups/ -name "*.tgz" -mtime +7 -deletefi
elseecho "wekan-db container is not running"exit 1
fi

恢复脚本

#!/bin/bash
if [ $# -eq 0 ]thenecho "Supply a path to a tgz file!"exit 1
fiSCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
DATE=$(date +%Y-%m-%d-%H-%M)docker ps -a | grep 'wekan-db' &> /dev/null
if [ $? = 0 ]; thenif [ -f $1 ]; thenmkdir -p $SCRIPTPATH/backups/$DATE-restoretar -zx -f $1 -C $SCRIPTPATH/backups/$DATE-restoredocker exec -t wekan-db bash -c "rm -fr /restore ; mkdir /restore"docker cp $SCRIPTPATH/backups/$DATE-restore/wekan wekan-db:/restoredocker exec -t wekan-db bash -c "mongorestore --drop --db wekan /restore/wekan/"fi
elseecho "wekan-db container is not running"exit 1
fi

邮件疑难解答

特殊字符

如果用户名或密码中包含特殊字符,你需要url格式编码它们。你可以用这个网站https://www.url-encode-decode.com转换密码中的特殊字符,在把转换后的字符复制到密码中。


检查是否需要用户密码

如果你的email服务不需要如账号密码身份验证,请不要把它们包含在MAIL_URL中。比如IBM Notes就不需要账密验证。


配置

如果通过MAIL_URL和MAIL_FROM环境变量来设置邮件配置。设置的方法则取决于你的安装方法,比如snap,或docker-compose.yml文件。


无邮件服务

你可以选择不配置邮件服务,通过不提供MAIL_URL和MAIL_FROM环境变量。邮件消息将被发送到终端输出。更多信息请参见问题解答。


电子邮件服务器:SMTP或Exchange

独立的Wekan使用SMTP服务来发生邮件邀请等。
对于Exchange,你可以使用DavMail,Wekan SMTP =>Davmail=>Exchange。
另一种方式是配置后缀通过NTLM验证转发到Exchange.
Wekan的邮件设置在MAIL_URL和管理面板中都需要配置。
如果你想接收Wekan的邮件,使用Huginn来从邮件服务器中接收邮件。


配置步骤

docker-compose.yml以smtp.qq.com为例:

  • 首先telnet smtp.qq.com 25网络是否联通
  • 配置MAIL_URL和MAIL_FROM
MAIL_URL=smtp://账号:smtp授权码@smtp.qq.com:25/
MAIL_FROM=账号,如(xxxxxx@qq.com)
  • 配置管理面板
  • 去测试邮箱收件吧

原文地址:https://github.com/wekan/wekan/wiki/Export-Docker-Mongo-Data

docker搭建wekan及注册备份维护相关推荐

  1. gitlab使用_如何在正确使用 Docker 搭建 GitLab

    很多程序员在内网搭建 gitlab 都搭建的坑坑洼洼,不支持 https,或者装个 gitlab 就把服务器弄得乱七八糟的,根本不知道该怎么维护和迁移.还有程序员再用最原始的,远程机器上: git - ...

  2. 使用docker搭建wordpress网站

    概述 使用docker的好处就是尽量减少了环境部署,可靠性强,容易维护,我使用docker搭建wordpress的主要目标有下面几个 首先我重新生成数据库容器可以保证数据库数据不丢失,重新生成word ...

  3. Docker学习总结(23)——Docker搭建大规模测试环境的实践

    内容来源:2017年4月8日,第四范式资深测试开发工程师孙高飞在"饿了么技术沙龙[第四弹]北京研发中心测试专场"进行<docker搭建大规模测试环境的实践>演讲分享.I ...

  4. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  5. docker 启动容器的时候没-p 后面怎么加-p_基于Docker搭建基础自动化部署

           阅读本文约需要7分钟  大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下SpringBoot如何实现全链路调用 ...

  6. Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境

    Docker--使用docker工具管理软件/组件的运行,镜像.容器.数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境 一.docker的安装和卸载 1.卸载 2.安装 3. 导 ...

  7. 树莓派4b学习笔记三--基于Ubuntu搭建Docker 和portainer,基于Docker 搭建Homeassistant、EMQX

    文章目录 一.基于Ubuntu搭建Docker和portainer 1.Docker简介 2.Ubuntu20.04安装Docker-ce 3.Ubuntu20.04安装Docker图形化界面port ...

  8. 使用Docker搭建自己的在线密码管理器软件-Bitwarden

    前言 因为现在网络安全问题愈发严重,黑客经常通过互联网已泄露的用户和密码信息进行撞库攻击,而且很多用户在不同网站使用的是相同的帐号密码,所以为不同的网站设置不同的密码就非常重要. 但密码不同尤其是使用 ...

  9. 用Spring Cloud和Docker搭建微服务平台

    This blog series will introduce you to some of the foundational concepts of building a microservice- ...

  10. 使用 Docker 搭建你的Wiki(TiddlyWiki)

    本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载.或重新修改使用,但需要注明来源. 署名 4.0 国际 (CC BY 4.0) 本文作者: 苏洋 创建时间: 2019年02月0 ...

最新文章

  1. 你知道 URL 后面的这些 utm_xxx 参数都是干嘛的吗?
  2. java包装器类_Java中的基本类型和包装类
  3. 螺丝上的十字磨没了_十字起子和无限下拉菜单
  4. ASP.NET MVC2 使用绑定时 等号和冒号的差别 %=%和%:%的区别
  5. 2017-2018-1 20155320 实验三——实时系统
  6. hdu2000——ASCII码排序
  7. Mac下修改MYSQL编码格式
  8. STL中的lower_bound()函数和upper_bound()
  9. linux firefox 插件开发教程,火狐(firefox)浏览器插件开发简明教程
  10. linux 找出僵尸进程,linux 查看僵尸进程
  11. DX11编程(一):DX和Effect的基本配置和属性表配置
  12. 如何修改ns服务器,Godaddy如何修改NS信息
  13. 博睿APM获《金融电子化》2021年金融业新技术应用创新突出贡献奖
  14. linux安装zend,linux安装配置Zend Optimizer详解
  15. mysqlbinlog解析工具介绍
  16. 微信没有回车键怎么换行_怎么换行-回答 | 为什么苹果的微信没有换行键,想换行怎么办?...
  17. Geogebra 教程之 04 Geogebra 小程序
  18. linux自动批量拷贝文件
  19. 「镁客早报」英特尔与紫光展锐分道扬镳;小米组织架构大调整
  20. 资深讲师分享大数据分析师职业规划

热门文章

  1. 浅谈NLP中的领域自适应(Domain Adaptation) 技术
  2. JavaScript动态创建DOM(七)
  3. ByteBuf浅层复制的使用
  4. 网页压缩 - GZIP
  5. HTML5游戏引擎(十七)-egret引擎实战——踩格子游戏
  6. python爬公众号图片,Python爬虫实例:爬取微信公众号图片(表情包)
  7. 【Redis】2. 入门篇
  8. 【MySQL 实战】02. 一条SQL 更新语句是如何具体执行的呢?
  9. 提供搜题公众号题库接口
  10. html图片重叠轮播,原生js实现图片层叠轮播切换效果