中文 | English
基于 Gin 框架构建跨平台 HTTP 服务,通过 Docker 的多平台构建能力,实现 mind-map 在不同硬件架构上运行使用。
- 跨平台兼容:支持
amd64arm64 | arm/v8arm/v7 - 开箱即用:预配置
mind-map静态文件,无需额外运行时依赖
在线地址: https://mind-map.hraulein.com
镜像地址: https://hub.docker.com/r/hraulein/mind-map
如在部署过程中遇到镜像启动失败等相关问题, 请提 issue
-
目前容器的运行环境为
scratch(不包含sh/bash), 不影响 mind-map 的运行
如需挂载你自定义的mind-map的静态文件, 将你的文件目录映射到容器内部的/app下即可 -
目前
httpdGIN采用配置文件形式读取配置, 如需自定义配置, 请先将容器内部的/conf.d/目录拷贝出来后再挂载
1. docker-compose.yaml
services:
mind-map:
image: hraulein/mind-map:latest
container_name: mind-map
restart: always
ports:
- "8080:8080"
volumes:
- ./your_config_dir:/conf.d
# - ./your_dist_dir:/app # 如果你想自定义 mind-map 的静态文件
2. docker cli
docker run -d --name mind-map -p 8080:8080 -v ./your_config_dir:/conf.d hraulein/mind-map:latest
HTTP重定向HTTPS
# /etc/nginx/conf.d/00-redirect.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}
SSL证书相关配置
# /etc/nginx/conf.d/include/ssl_parameter
ssl_certificate '/etc/nginx/*****/*****/fullchain.cer'; # <<< 替换为实际的证书地址
ssl_certificate_key '/etc/nginx/*****/*****/*****.key'; # <<< 替换为实际的证书地址
ssl_trusted_certificate '/etc/nginx/*****/*****/ca.cer'; # <<< 替换为实际的证书地址
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_session_tickets off;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_protocols TLSv1.2 TLSv1.3;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=31536000" always;
nginx反向代理配置
# /etc/nginx/conf.d/mind-map.conf
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
include ./conf.d/include/ssl_parameter;
server_name mind-map.hraulein.localhost; # <<< 替换为你的域名
set $IPADDR 172.16.19.156; # <<< 替换为你服务器的内网 IP 地址
location / {
proxy_pass http://$IPADDR:8080; # <<< 替换为 mind-map 服务实际映射端口
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
# include ./conf.d/include/err_pages;
}
如果 Docker 镜像对你有帮助 , 不妨请我喝杯阔落解解馋~
