Moments 朋友圈项目容器化部署(Podman)
为什么使用Podman而不是Docker?尽管Docker-CE是免费的,但是Docker属于商业公司的产品,而Podman是由社区驱动的自由软件。Podman近乎完全兼容Docker的CLI和标准Docker容器生态,对于我没有学习成本亦不造成生态割裂。此外Podman与Cockpit可通过插件完美集成,大大提高了可视化管理效率。
什么是Moments?
Moments是一个 C# 开发的博客朋友圈平台。
Moments 为你提供了一个全新的方式来与你关注的博客作者和读者互动,让你的博客体验更加丰富和充实。
我们核心目标是通过整合各种订阅源,如 RSS 和 Atom,将你感兴趣的博客转化为一个个人朋友圈。你可以订阅来自世界各地的博客,并实时获取他们的最新动态。无论是热门博客、专业博主,还是你最喜爱的作者,你都可以通过 Moments 获得他们的最新博文、评论和互动。
安装Podman
参见Podman Installation Instructionssudo apt install podman
你可能需要对Podman进行简单的配置,参见:必要的配置
运行容器
podman run -d \
--name moments \
-p 3000:80 \
--restart=always \
drizzle2001/moments
此处3000
应替换为你想要用于提供Moments服务的外部端口。
关于restart参数参见--restart=policy
官方文档之前有个https://docs.podman.io/en/latest/markdown/options/restart.html页面现在404了,估计是文档更新迭代。
镜像拉取速度速度过慢?可替换为dockerproxy.com/drizzle2001/moments:latest
Nginx反向代理
如果你希望通过一个特定的域名/https访问你的Moments服务,你应当使用Nginx设置一个反向代理。
尽管作者的临时文档指向的文章使用了宝塔,我仍然不推荐你使用宝塔面板。
bt宝塔最新版增加了上报后门,
宝塔面板phpMyAdmin未授权访问漏洞.md
sudo nano /etc/nginx/sites-enabled/moments.xfox.fun #文件名应自行修改,推荐使用站点对应域名
server {
listen 80;
listen [::]:80;
server_name moments.xfox.fun;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
}
sudo nginx -t #测试Nginx配置文件有无报错
sudo ln -s /etc/nginx/sites-enabled/moments.xfox.fun /etc/nginx/sites-available/moments.xfox.fun #为配置文件建立软链接到Nginx已预备站点配置目录
sudo nginx -s reload #启用配置文件
关于维护
看git仓库的动态shiyu确实没鸽,怎么说呢,他这个默认配置信息有点别扭,还有点其他的问题,我实在没空也没能力折腾这个。(因为我真的完全不会,甚至不了解C#)我不是科班出身,也不影响我用。等明年考试考完再给他提Issue