
arnoldsmith86/virtualtabletop本镜像为VirtualTabletop.io的官方Docker镜像,用于快速部署虚拟桌面服务器。源代码托管于GitHub,与生产环境一致,main分支的每次提交都会自动更新镜像。
main分支提交自动更新在http://localhost:8272运行默认配置的本地服务器:
bashdocker run -p 8272:8272 arnoldsmith86/virtualtabletop
在服务器80端口运行,将房间数据保存到/srv/vtt目录:
bashdocker run -e EXTERNALURL=[***] -v /srv/vtt:/app/save -p 80:8272 arnoldsmith86/virtualtabletop
通过Nginx反向代理时,设置外部URL和路径前缀:
bashdocker run -e EXTERNALURL=[***] -e URLPREFIX=/vtt -p 8272:8272 arnoldsmith86/virtualtabletop
以下配置实现SSL termination并反向代理到Docker容器,确保WebSocket连接正常工作(假设已通过Certbot获取证书):
nginxuser www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 768; } http { server_tokens off; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; server { listen 80 default_server; listen [::]:80 default_server; server_name virtualtabletop.io; return 301 [***] } server { server_name virtualtabletop.io; listen 127.0.0.1:443 ssl; ssl_certificate /etc/letsencrypt/live/virtualtabletop.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/virtualtabletop.io/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; client_max_body_size 200M; add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass [***] proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_connect_timeout 1d; proxy_send_timeout 1d; proxy_read_timeout 1d; } } }
使用自定义游戏库(需使用without-public-library标签):
bashdocker run -e ALLOWPUBLICLIBRARYEDITS=1 -v /srv/vtt-games:/app/library/games -p 8272:8272 arnoldsmith86/virtualtabletop:without-public-library
注意:
ALLOWPUBLICLIBRARYEDITS=1允许通过应用编辑游戏库,建议配置完成后移除该参数以禁用公共编辑权限。
| 变量名 | 说明 | 默认值 |
|---|---|---|
| EXTERNALURL | 服务器外部访问URL(重要) | http://localhost:8272 |
| URLPREFIX | URL路径前缀(当EXTERNALURL包含路径时需设置) | 空字符串 |
| SERVERNAME | 服务器显示名称(用于标签栏) | VirtualTabletop.io |
| ADMINURL | 管理页面URL(显示活跃房间和玩家) | null |
| ALLOWPUBLICLIBRARYEDITS | 是否允许公共库编辑 | false |
| MINIFYJAVASCRIPT | 是否压缩JavaScript | false |
| 变量名 | 说明 | 默认值 |
|---|---|---|
| PORT | 服务器端口(Docker映射时通常无需修改) | 8272 |
| FORCETRACING | 是否强制所有房间启用追踪 | false |
| SIMULATESERVERLAG | 模拟服务器延迟(毫秒) | 0 |
| CUSTOMTAB | 标签栏显示名称(默认使用SERVERNAME) | SERVERNAME的值 |
EXTERNALURL配置不一致EXTERNALURL设置完全匹配manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务