介绍
CodiMD允许您通过Markdown进行实时协作。 建立在HackMD源代码,CodiMD使您可以快速轻松地托管和控制团队的内容。
准备工作
创建程序存储目录
bash 复制
BASH
sudo mkdir -p /home/docker/codimd
拉取镜像
拉取MariaDB数据库镜像
bash 复制
BASH
sudo docker pull linuxserver/mariadb:latest
拉取Codimd镜像
bash 复制
BASH
sudo docker pull linuxserver/codimd:latest
拉取了两个镜像,一个数据库,一个目标程序。
编写docker-compose
进入目标文件夹
bash 复制
BASH
cd /home/docker/codimd
编写docker-compose文件
bash 复制
BASH
sudo vim docker-compose.yml
将以下内容写入文件中
bash 复制
BASH
version: "3"
services:
mariadb:
image: linuxserver/mariadb:latest
container_name: codimd_mariadb
restart: always
volumes:
- ./db/config:/config
environment:
- MYSQL_ROOT_PASSWORD=testpassword
- MYSQL_DATABASE=codimd
- MYSQL_USER=codimd
- MYSQL_PASSWORD=testpassword
- PGID=1000
- PUID=1000
- TZ=Aisa/Shanghai
codimd:
image: linuxserver/codimd:latest
container_name: codimd
restart: always
depends_on:
- mariadb
volumes:
- ./codimd/config:/config
environment:
- DB_HOST=mariadb
- DB_USER=codimd
- DB_PASS=testpassword
- DB_NAME=codimd
- DB_PORT=3306
- PGID=1000
- PUID=1000
- TZ=Aisa/Shanghai
ports:
- "4525:3000"数据库密码你根据自己的需求更改,这里使用testpassword
启动compose
bash 复制
BASH
sudo docker-compose up -d
没有看到红色就是启动成功了。
开放端口
开放系统服务器端口
{% note pink ‘fas fa-virus’ flat %}
我这里是Ubuntu系统,使用自带的UFW防火墙
{% endnote %}
bash 复制
BASH
sudo ufw allow 4525 comment "Codimd在线Markdown"开放服务器安全组端口
打开服务器的安全组,设置入站方向规则,添加一条4525端口的规则,协议选择TCP就行。
测试结果
打开浏览器http://IP:4525
添加域名解析
打开域名商,添加一条记录
记录类型:A
主机记录:md
解析请求来源:默认
记录值:自己服务器的IP地址
TTL:10分钟
添加Nginx反向代理
bash 复制
BASH
sudo vim /usr/local/nginx/conf/conf.d/conf.default
将以下内容下入文件
yaml 复制
YAML
# Codimd在线Markdownserver {
listen 80;server_name md.hikki.site;return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;listen [::]:443 ssl;server_name md.hikki.site;ssl_certificate cert/md.hikki.site/cert.pem;ssl_certificate_key cert/md.hikki.site/key.pem;
ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。ssl_prefer_server_ciphers on;location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:4525;
}
}
添加SSL
{% note blue ‘fas fa-url’ flat %}
添加SSL主要参考本站:https://blog.hikki.site/2e63f4a4.html
{% endnote %}
以下所有操作都需要在管理员权限下进行
申请域名证书
bash 复制
BASH
acme.sh --issue --dns dns_ali -d md.hikki.site

创建证书存放目录
bash 复制
BASH
mkdir -p /usr/local/nginx/conf/cert/md.hikki.site/
安装证书
bash 复制
BASH
acme.sh --install-cert -d md.hikki.site --key-file /usr/local/nginx/conf/cert/md.hikki.site/key.pem --fullchain-file /usr/local/nginx/conf/cert/md.hikki.site/cert.pem --reloadcmd "/usr/local/nginx/sbin/nginx -s reload"访问测试
关闭端口
{% note blue ‘fas fa-virus’ flat %}
在上面已经配置了域名解析做了反向代理,这样就不需要端口访问了,就可以关闭端口了,减少服务器的暴露端口数量,提高服务器的安全性。
{% endnote %}
关闭系统端口
{% note pink ‘fas fa-virus’ flat %}
我这里是Ubuntu系统,使用自带的UFW防火墙
{% endnote %}
bash 复制
BASH
sudo ufw delete 4525
关闭服务器安全组端口
打开服务器的安全组,设置入站方向规则,删除刚刚添加的入站端口。



