如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
pretalx-docker 是一个基于 Docker 的 pretalx 部署方案,包含 docker-compose 配置文件及 Ansible 角色,用于简化 pretalx 会议管理系统的部署流程。pretalx 是一款开源会议管理软件,支持会议议程规划、演讲者管理、参会者注册等功能。
注意:本仓库由 pretalx 社区提供,非 pretalx 官方团队支持。
测试环境部署
启动容器集群:
bashdocker-compose up -d
等待几分钟,服务将在 http://localhost/orga 可访问
初始化管理员用户及组织:
bashdocker exec -ti pretalx pretalx init
生产环境部署
1. 配置文件修改
conf/pretalx.conf,根据 pretalx 配置文档 填写自定义参数docker-compose.yml:
ports: - "80:80" 配置段(若使用 Traefik 反向代理)ports: - "127.0.0.1:8355:80"(若使用 Nginx 反向代理)environment 中的数据库密码(POSTGRES_PASSWORD)2. 数据持久化配置
/data/pretalx/redis、/data/pretalx/db、/data/pretalx/data)bashchown -R 999:999 /data/pretalx/* chmod -R 755 /data/pretalx/*
docker-compose.yml 中 volumes 配置,将 pretalx-redis、pretalx-db、pretalx-data 替换为自定义目录路径3. 反向代理配置(TLS 处理)
pretalx 容器在 pretalxdocker 网络中监听 80 端口,需通过反向代理处理 TLS 加密。
推荐方案:Traefik
reverse-proxy-examples/docker-compose 中的示例配置,将 Traefik 服务添加到 docker-compose.yml备选方案:Nginx
reverse-proxy-examples/nginx 中的配置示例,配置 Nginx 反向代理proxy_pass 指向容器端口(如 http://127.0.0.1:8355)4. 启动服务与初始化
启动容器集群:
bashdocker-compose up -d
等待服务初始化完成(约 3-5 分钟),通过 http://yourdomain.com/orga 访问
初始化管理员用户及组织:
bashdocker exec -ti pretalx pretalx init
测试环境部署
将 ansible-role 目录添加到 Ansible 角色路径(如 /etc/ansible/roles)
创建 Ansible 剧本(示例):
yaml- hosts: test-server roles: - pretalx-docker
执行部署:
bashansible-playbook -i inventory test-playbook.yml
服务将在 http://localhost/orga 可访问,初始化用户及组织:
bashdocker exec -ti pretalx pretalx init
生产环境部署
1. 角色配置
将 ansible-role 目录添加到 Ansible 角色路径
编辑角色变量文件(vars/main.yml),设置必要参数:
yamlpretalx_testing: false # 必须设置为 false pretalx_domain: "conf.example.com" # 生产环境域名 pretalx_db_password: "StrongPassword123!" # 数据库密码 pretalx_secret_key: "your-secure-secret-key" # 应用加密密钥 # 其他参数参考 vars/main.yml 注释说明
2. 反向代理配置
推荐使用 Traefik 作为反向代理,容器已默认添加 Traefik 标签。可参考 reverse-proxy-examples/ansible/traefik 中的 Ansible 角色配置 Traefik 服务。
3. 执行部署与初始化
执行 Ansible 部署:
bashansible-playbook -i inventory production-playbook.yml
等待部署完成(约 5-10 分钟),通过配置的域名访问(如 https://conf.example.com/orga)
初始化管理员用户及组织:
bashdocker exec -ti pretalx pretalx init
| 文件路径 | 说明 | 关键配置项示例 |
|---|---|---|
conf/pretalx.conf | pretalx 应用配置文件 | SITE_URL=https://conf.example.com |
docker-compose.yml | Docker 服务编排配置 | POSTGRES_PASSWORD=StrongPassword123! |
ansible-role/vars/main.yml | Ansible 角色变量配置 | pretalx_testing: false |
| 容器数据路径 | 用途 | Docker Volume 名称 | 自定义目录权限要求 |
|---|---|---|---|
/data | pretalx 应用数据 | pretalx-data | UID/GID 999,读写权限 (0755) |
/var/lib/postgresql/data | PostgreSQL 数据 | pretalx-db | UID/GID 999,读写权限 (0755) |
/data | Redis 缓存数据 | pretalx-redis | UID/GID 999,读写权限 (0755) |
yamlversion: '3.8' services: pretalx: image: pretalx/pretalx:latest restart: always depends_on: - db - redis environment: - DATABASE_URL=postgres://pretalx:StrongPassword123!@db:5432/pretalx - REDIS_URL=redis://redis:6379/0 - SECRET_KEY=your-secure-secret-key - SITE_URL=https://conf.example.com volumes: - /data/pretalx/data:/data # 自定义数据目录 networks: - pretalxdocker db: image: postgres:14-alpine restart: always environment: - POSTGRES_USER=pretalx - POSTGRES_PASSWORD=StrongPassword123! - POSTGRES_DB=pretalx volumes: - /data/pretalx/db:/var/lib/postgresql/data # 自定义数据库目录 networks: - pretalxdocker redis: image: redis:7-alpine restart: always volumes: - /data/pretalx/redis:/data # 自定义Redis目录 networks: - pretalxdocker networks: pretalxdocker:
yaml# 添加到上述 docker-compose.yml 的 services 部分 traefik: image: traefik:v2.9 command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true" - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" - "--certificatesresolvers.letsencrypt.acme.email=admin@example.com" - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json" ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /data/traefik/letsencrypt:/letsencrypt networks: - pretalxdocker # 修改 pretalx 服务,添加 Traefik 标签 pretalx: # ... 其他配置不变 ... labels: - "traefik.enable=true" - "traefik.http.routers.pretalx.rule=Host(`conf.example.com`)" - "traefik.http.routers.pretalx.entrypoints=websecure" - "traefik.http.routers.pretalx.tls.certresolver=letsencrypt" - "traefik.http.services.pretalx.load***.server.port=80"
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务