在 VPS 上搭建 Komga 与申请域名的完整指南
本文介绍如何在 VPS 上搭建 Komga 漫画管理服务,并申请一个免费域名(DuckDNS),最后配置防火墙和反向代理实现公网访问。
1. 准备环境
- 一台 Linux VPS(Ubuntu 20.04/22.04)
- 已安装
docker
与 docker-compose
- 一个可用的公网 IP
# 安装 Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 安装 Docker Compose
sudo apt install docker-compose -y
2. 申请域名(DuckDNS 示例)
访问 DuckDNS,注册并创建一个子域名,例如 komga.duckdns.org
。
然后在 VPS 上安装 DuckDNS 更新脚本:
mkdir ~/duckdns
cd ~/duckdns
nano duck.sh
内容如下(替换 YOUR_TOKEN
与 komga
):
echo url="https://www.duckdns.org/update?domains=komga&token=YOUR_TOKEN&ip=" \
| curl -k -o ~/duckdns/duck.log -K -
添加到 cron
定时任务:
crontab -e
*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
3. 运行 Komga 容器
在 VPS 上创建目录结构:
mkdir -p ~/komga/config
mkdir -p ~/komga/data
编写 docker-compose.yml
:
version: "3.3"
services:
komga:
image: ghcr.io/gotson/komga:latest
container_name: komga
restart: unless-stopped
ports:
- "8080:8080" # 内部管理端口
- "25600:25600" # H@H/推送服务
volumes:
- ./config:/config
- ./data:/data
启动:
cd ~/komga
docker-compose up -d
4. 配置防火墙
默认情况下 UFW 会阻止未放行的端口。放行 Komga 使用的端口:
sudo ufw allow 8080/tcp
sudo ufw allow 25600/tcp
sudo ufw reload
5. 配置反向代理(可选,推荐)
建议使用 Nginx 反向代理并启用 HTTPS(Let’s Encrypt)。
sudo apt install nginx certbot python3-certbot-nginx -y
sudo nano /etc/nginx/sites-available/komga
内容:
server {
server_name komga.duckdns.org;
location / {
proxy_pass http://127.0.0.1:8080;
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;
}
}
启用站点并获取证书:
sudo ln -s /etc/nginx/sites-available/komga /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d komga.duckdns.org
6. 验证访问
浏览器访问:
https://komga.duckdns.org
如果一切正常,你会看到 Komga 的 Web 界面。
7. 常用维护脚本
更新 Komga
cd ~/komga
docker-compose pull
docker-compose up -d
开放自定义端口
#!/bin/bash
PORT=$1
if [ -z "$PORT" ]; then
echo "用法: $0 端口号"
exit 1
fi
sudo ufw allow ${PORT}/tcp
sudo ufw reload
echo "端口 ${PORT} 已放行"
结语
通过以上步骤,你就能在 VPS 上搭建 Komga,并通过域名安全访问。如果想进一步优化,可以使用 Cloudflare
来加速与防护。