Skip to content

OnlyOffice

部署

  • 端口号:第 3 行冒号左侧的 9895 表示对外暴露的端口号,如其他程序占用,则请修改为其他端口号。
  • 数据目录:第 5-8 行表示数据文件映射到宿主机目录,如看不懂或不需要,可删除 4-7 行。
docker
docker run --restart=always \
           --name onlyoffice \
           -p 9895:80 \
           -e JWT_ENABLED=false \
           -v /data/docker/onlyoffice/logs:/var/log/onlyoffice \
           -v /data/docker/onlyoffice/data:/var/www/onlyoffice/Data \
           -v /data/docker/onlyoffice/lib:/var/lib/onlyoffice \
           -v /data/docker/onlyoffice/db:/var/lib/postgresql \
           onlyoffice/documentserver:7.2.2.56

反向代理 - WebSocket 支持

如使用 Nginx 或其他诸如宝塔使用了 Nginx 的工具进行了反向代理,则需要额外增加 Nginx 配置来支持 WebSocket:

bash
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

反向代理 - HTTPS 额外配置

如果使用了 HTTPS,则还需要增加配置:

bash
proxy_set_header X-Forwarded-Proto https;

验证部署结果

访问:http://你的域名或IP:端口号 即可,如果访问后显示以下样式则表示成功:

OnlyOffice效果图

memos

隐私至上的轻量级笔记服务,轻松捕捉并分享您的精彩想法。

部署

新建一个应用数据目录,本文以/data/docker/memos 为例,将数据映射到本地磁盘,以做数据持久化。

第二行则是映射的端口号

最后一行则是指定版本号。

bash
docker run -d --restart=always --name memos \ 
           -p 5230:5230 \ 
           -v /data/docker/memos:/var/opt/memos \ 
           neosmemo/memos:0.14.4

访问:http://你的域名或IP:端口号 即可

忘记密码

关闭服务,打开/data/docker/memos目录,将memos_prod.db文件下载到本地,使用Navicat数据库管理工具打开(可参考下图)。

打开表user

password_hash字段修改为$2a$14$ajq8Q7fbtFRQvXpdCq7Jcuy.Rx1h/L4J60Otx.gyNLbAYctGMJ9tK

直接 ctrl S 保存,然后把这个db文件传回服务器,启动memos服务,使用密码secret登录。

MySQL 5.7.23

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一,属于 Oracle 旗下产品。

下载镜像

拉取官方的镜像,标签为 5.7

bash
docker pull mysql:5.7.23
# Trying to pull repository docker.io/library/mysql ...
# 5.7: Pulling from docker.io/library/mysql
# 85b1f47fba49: Already exists
# f34057997f40: Pull complete
# ....
# Digest: sha256:bfb22e93ee87c6aab6c1c9a4e70f28fa289f9ffae9fe8e173

运行容器

bash
docker run --name mysql \
-p 3306:3306 \
-v $HOME/_docker/mysql/conf.d:/etc/mysql/conf.d \
-v $HOME/_docker/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.23
  • --name mysql:容器名字为 mysql
  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
  • -v $HOME/_docker/mysql/conf.d:将主机当前目录下的 ~/_docker/mysql/conf.d 挂载到容器的 /etc/mysql/conf.d,这个是挂载配置目录
  • -v $HOME/_docker/mysql/data:将主机当前目录下的 data 目录挂载到容器的 /var/lib/mysqs,为数据文件存放路径
  • -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

查看日志

docker exec 命令允许您在 Docker 容器内运行命令。 以下命令行将在 mysql 容器中为您提供一个 bash shell:

bash
docker exec -it mysql bash

MySQL Server日志可通过 Docker 的容器日志获得:

bash
docker logs mysql

修改配置

editorconfig
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 忽略数据库表名的大小写区分
lower_case_table_names = 1
# 解决时区与中国时区不至问题
default-time_zone=+8:00
# 设置服务ID
server-id=1
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# 开启 binlog,log_bin 等于 server-id
log_bin=1
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

#log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

通过[容器名字]或者[容器 ID]来重启 MySQL,让配置生效。

bash
docker restart mysql

进入数据库

bash
# 进入 mysql 容器
docker exec -it mysql /bin/bash
# 通过 mysql 命令登陆
mysql -uroot -p

# 查看是否开启了binlog
show binary logs;
show variables like '%server_id%';

KMS服务器

搭建kms服务器,并放行端口:1688

bash
docker run -d --restart always -p 1688:1688 pykmsorg/py-kms

在需要激活的windows电脑中,打开CMD命令行(需要管理员权限),依次执行下列命令;

bash
# 第一行设置KMS服务器地址,可以替换kms.back2me.cn为你的地址;
slmgr /skms kms.back2me.cn
# 第二行设置KMS 激活序列号,可以在 Windows序列号 找到对应版本;
slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
# 第三行开始激活,自动联网激活;
slmgr /ato
# 第四行检查激活有效期,只要KMS服务器还存在、到期电脑会自动续期;
slmgr /xpr

DDNS-GO

bash
## 拉取镜像
docker pull jeessy/ddns-go:v5.6.6
## 创建映射目录
mkdir /opt/docker/ddns-go
## 后台运行 以docker host模式运行 -f间隔时间(秒)
docker run -d --name ddns-go --restart=always \
--net=host -v /opt/docker/ddns-go:/root \ 
jeessy/ddns-go:v5.6.6 -f 60

配置企业微信推送

json
{
    "msgtype": "markdown",
    "markdown": {
        "content": "公网IP变更:\n 新IPV6地址:#{ipv6Addr} \n 已解析的域名:#{ipv6Domains} \n 域名更新结果:#{ipv6Result}"
    }
}

aria2+AriaNg(离线下载服务)

拉取所需的镜像

bash
docker pull p3terx/aria2-pro
docker pull p3terx/ariang

运行 aria2

bash
docker run -d \
--name aria2 \
--restart unless-stopped \
--log-opt max-size=1m \
-e PUID=$UID \
-e PGID=$GID \
-e UMASK_SET=022 \
-e RPC_SECRET=prc_password \
-e RPC_PORT=6800 \
-e LISTEN_PORT=6888 \
-p 6800:6800 \
-p 6888:6888 \
-p 6888:6888/udp \
-v /root/aria2/config:/config \
-v /root/aria2/downloads:/downloads \
p3terx/aria2-pro

用户和组设定:

PUID=$UID、PGID=$GID 这 2 个定义用户和用户组的环境变量,限定了 aria2 以什么用户和用户组运行,不指定则默认使用 nobady 用户和 nogroup 用户组,但在使用 FileRun 网盘时,会因权限问题无法删除或改名 aria2 下载好的文件,所以 PUID 和 GUID 要指定为和 WEB 环境的运行用户和用户组一致,比如 WEB 环境运行的用户及对应的用户组都是 WWW,对应的 uid 和 gid 都是 1001,那就要指定 PUID=1001、PGID=1001,这样在 FileRun 网盘中就可以正常的进行删除和修改操作了;

几个环境变量:

-e UMASK_SET=022 ,设置 umask,默认值 022;

-e RPC_SECRET=,设置 RPC 密钥,用于 AriaNg 与 Aria2 的通讯验证使用;

-e RPC_PORT=6800,设置 PRC 通讯端口(与宿主主机的端口映射一致);

-e LISTEN_PORT=6888,BT 监听端口(TCP)、DHT 监听端口(UDP)设置,即 Aria2 配置中

listen-port 与 dht-listen-port 选项定义的端口。如果没有设置,配置文件中的默认值为 6888。

容器目录挂载,将 /downloads 挂载到宿主主机的 /root/aria2/downloads:/downloads 目录,即 FileRun 的数据目录中,方便下载完成直接在网盘中查看;配置文件挂载到指定的宿主主机目录 /root/aria2/config 中,宿主主机的目录根据实际情况自行修改;

3 个端口映射:

-p 6800:6800,为 RPC 通讯端口映射;

-p 6888:6888,为 BT 监听端口(TCP)映射,即 Aria2 配置中 listen-port 选项定义的端口;

-p 6888:6888/udp,为 DHT 监听端口(UDP)映射,即 Aria2 配置中 dht-listen-port 选项定义的端口。

启动 AriaNg

bash
docker run -d \
--name ariang \
--log-opt max-size=1m \
--restart unless-stopped \
-p 6880:6880 \
p3terx/ariang

访问 http://你的服务器ip:6880/ AriaNg 的 web 管理界面

配置 RPC,上图圈中的配置内容

RPC 别名随意填就好

RPC 地址填写你服务器的域名或 IP,后面的端口号就是前面启动的 aria2 的 RPC 通讯端口

RPC 协议选默认的 HTTP

RPC Http 请求方法使用默认的 POST

RPC 密钥填写前面启动的 aria2 的 RPC 密钥

配置完刷新一下页面,如果状态显示 “已连接” 就 ok 了

极简朋友圈(moments)

拉取指定版本镜像

bash
docker pull kingwrcy/moments:0.1.2

新建一个映射目录/opt/docker/moments,运行下述命令即可启动

bash
docker run --name moments -d \
-v /opt/docker/moments:/app/data \
-p 3000:3000 \
kingwrcy/moments:0.1.2

在映射目录下新建一个配置文件config.properties,作为配置调整

GitHub中的配置内容复制到这个配置中,重启容器即可生效。

配置修改

截图以分页条数作为演示,其他配置雷同。