树莓派快速部署《人生重开模拟器》
前文章介绍了DuckDNS配合SWAG可以快速建站。本次继续实践如何在SWAG中部署Web服务。最近比较好玩的基于Nodejs开发的简易好玩的《人生重开模拟器》网页游戏很火,我们就来看怎么快速部署这个游戏。
理论上本方法不只适合树莓派,也适合其他平台。精力和设备有限没有在其他平台测试。
玩法1:局域网单独运行《人生重开模拟器》
我已经打好了这个游戏的docker镜像包。适合树莓派,也适合Windows和Linux,因为我amd64和arm的32和64都打包了,可以在Docker Hub上找到。运行起来非常简单,直接在已经安装了docker软件的系统下运行
docker run -p 8080:8080 --name liferestart -d jmujmu/life_restart
如果发现8080占用,灵活更改即可。正常启动后打开http://localhost:8080/view/index.html 即可开玩。
到目前为止不喜欢折腾,满足自己要求直接开玩的同学到这里就可以了。将IP替换成局域网IP,也能在局域网范围内传播游玩,适合学校办公室等场合。
玩法2:公网运行《人生重开模拟器》
这里提供完整的docker-compose.yml文件,个别部分修改好,执行了再说。如有不明之处,可阅读前文的DuckDNS+GoDNS+SWAG组合搭建。
version: "2.1"
services:
liferestart:
image: jmujmu/life_restart:latest
container_name: liferestart
restart: unless-stopped
ports:
- 8080:8080
duckdns:
image: timothyye/godns:latest
container_name: godns
volumes:
- /mnt/nas/docker/duckdns/config.json:/config.json
restart: always
swag:
image: ghcr.io/linuxserver/swag
container_name: duckdns-swag
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- URL=jmu.duckdns.org
- SUBDOMAINS=wildcard
- VALIDATION=duckdns
- DUCKDNSTOKEN=xxxx
#- CERTPROVIDER= #optional
#- DNSPLUGIN=cloudflare #optional
- PROPAGATION= #optional
- EMAIL= #optional
- ONLY_SUBDOMAINS=false #optional
- EXTRA_DOMAINS= #optional
- STAGING=false #optional
- MAXMINDDB_LICENSE_KEY= #optional
volumes:
- /mnt/nas/docker/duckdns/config:/config
ports:
- 9943:443
- 9980:80 #optional
restart: unless-stopped
保存后在当前目录执行docker-compose up -d
动手编写《人生重开模拟器》的proxy-confs
直接将此配置命名liferestart.subdomain.conf
位保存到/config/nginx/proxy-confs/下。
liferestart.subdomain.conf
, 注意修改<ip>
成真实内网ip和端口
这里使用IP,而不是host的原因是,liferestart的代码package.json中,webpack并没有设置host,也没有允许所有host。为了保持其原样,没有使用host。
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name liferestart.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
location / {
#include /config/nginx/proxy.conf;
#include /config/nginx/resolver.conf;
set $upstream_app <ip>;
set $upstream_port 8080;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
确认文件正确,保存后。 重启SWAG服务就会生效。
docker restart duckdns-swag
到此为止,所要做的工作就全部完成了。访问路径形如https://liferestart.jmu.duckdns.org:9433/view/index.html, 分享给小伙伴一起来玩耍吧!
(扩展阅读)关于SWAG的proxy-confs
我们详细来看一看SWAG。SWAG只要正确运行,就会自动生成config/
目录下所有文件。除了前文说过的,已经默认暴露了config/www
的静态目录,可以直接提供如WordPress等服务外,还支持基于Nginx的灵活路由功能。它认为网站是以一个个服务(service)路由出去的,如plex,seafile,nextcloud等等,包含两种方式:
subfolder
提供子目录形式,像这样 https://yourdomain.com/servicename, 配置文件名格式是*.subfolder.confsubdomain
提供子域名的形式,像这样 https://servicename.yourdomain.com, 配置文件名格式*.subdomain.conf
SWAG还贴心的默认配好了常见服务的路由配置,在/config/nginx/proxy-confs/目录下,有200之多。
.
├── README.md
├── _template.subdomain.conf.sample
├── _template.subfolder.conf.sample
├── adguard.subdomain.conf.sample
├── adminer.subfolder.conf.sample
├── adminmongo.subdomain.conf.sample
├── airsonic.subdomain.conf.sample
├── airsonic.subfolder.conf.sample
├── archisteamfarm.subdomain.conf.sample
├── aria2-with-webui.subdomain.conf.sample
...
0 directories, 222 files
这里面包含了,*.subfolder.conf
和*.subdomain.conf
,如要使用,把相应文件结尾的.sample
删掉即可。
详情更多可参考/config/nginx/proxy-confs/README.md
,这些样例文件都在Linuxserver Github维护。这200多个文件中,基本上囊括了适合自部署(self-hosted)的几乎所有服务,linuxserver团队还是很厉害的。相信熟悉nginx的网友一看就懂,也不用听我啰嗦,可以方便地进行接下来的服务部署了。更多信息访问SWAG官网。
完。