
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
EasySpace是Orange Business推出的办公空间管理应用,支持本地部署,旨在帮助企业优化办公空间资源配置,降低租赁成本,并适配混合工作制的组织需求。
前置要求
部署步骤
opt/easyspace
bashmkdir -p /opt/easyspace && cd /opt/easyspace
certs 目录存放SSL证书,将个人SSL证书文件放入该目录
bashmkdir certs # 将证书文件复制到certs目录
front.conf 文件(内容如下),替换 YOUR_DOMAIN_NAME 和 YOUR_SSL_CERTIFICATE,并移动到 nginx/conf.d 目录
front.conf内容:bashmkdir -p nginx/conf.d # 创建front.conf并编辑内容
textserver { server_name YOUR_DOMAIN_NAME; listen 80; return 301 https://$host$request_uri; server_tokens off; } server { server_name YOUR_DOMAIN_NAME; listen 443 ssl; ssl_protocols TLSv1.2 TLSv1.3; client_max_body_size 100M; root /usr/share/nginx/html; add_header Last-Modified $date_gmt; add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; gzip off; server_tokens off; charset utf8; autoindex off; add_header X-Frame-Options DENY; ssl_certificate /etc/certs/YOUR_SSL_CERTIFICATE; ssl_certificate_key /etc/certs/YOUR_SSL_CERTIFICATE.key; location / { try_files $uri /index.html; } location /booking-manager/media { alias /mnt/deskery_storage/data/uploads; } location /booking-manager/static { alias /mnt/deskery_storage/static; } location /booking-manager/data { alias /mnt/deskery_storage/data; } location /notifier-service/static { alias /mnt/notifier_service/static; } location /booking-manager/ws { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_pass http://backend-services:3000; } location /booking-manager/ { proxy_set_header Host $http_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 "http"; proxy_pass http://backend-services:3000/booking-manager/; proxy_read_timeout 90; } }
docker-compose.yaml 文件(内容如下),替换所有占位符(YOUR_*)
yamlversion: '3.5' x-db-booking-cred: &db-booking-cred POSTGRES_DB: booking POSTGRES_USER: booking POSTGRES_PASSWORD: YOUR_PASSWORD x-booking-var: &booking-var POSTGRES_HOST: postgres POSTGRES_PORT: 5432 CELERY_BROKER_URL: redis://redis CELERY_RESULT_BACKEND: redis://redis QUEUE_BROKER_URL: redis://redis ENABLE_THROTTLING: "0" NOTIFIER_URL: "http://notifier-backend:3000/notifier-service/api/v1/" x-db-notifier-cred: &db-notifier-cred POSTGRES_DB: notifier POSTGRES_USER: notifier POSTGRES_PASSWORD: YOUR_PASSWORD x-notifier-var: ¬ifier-var POSTGRES_ENGINE: django.db.backends.postgresql_psycopg2 POSTGRES_HOST: notifier-postgres POSTGRES_PORT: 5432 REDIS_HOST: notifier-redis REDIS_HOST_URL: redis://notifier-redis:6379 CAS_PUBLIC_KEY_URL: "http://backend-services:3000/booking-manager/cas/public-key" BILLING_CONFIG: '{"config": {}, "object_class": "UnlimitedBilling"}' NOTIFIER_CONFIG: '{"name": "DefaultNotifier", "config": {"host": "YOUR_SMTP_HOST", "port": "YOUR_SMTP_PORT", "user": "YOUR_SMTP_USER", "password": "YOUR_SMTP_PASSWORD", "email_sender": "YOUR_SMTP_EMAIL_SENDER", "email_title": "EasySpace Notification", "use_ssl": "1"}, "object_class": "SMTPNotifier"}' services: web: image: easyspace/easyspace:frontend-latest container_name: es_frontend restart: always volumes: - ${PWD}/nginx/conf.d:/etc/nginx/conf.d - ${PWD}/certs:/etc/certs - /mnt/deskery_storage/static:/mnt/deskery_storage/static - /mnt/deskery_storage/data:/mnt/deskery_storage/data - /mnt/notifier_service/static:/mnt/notifier_service/static - ./static/logo:/mnt/booking_manager/static/logo ports: - 443:443 - 80:80 depends_on: - backend-services deploy: resources: limits: memory: 100M logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} backend-services: image: easyspace/easyspace:backend-latest container_name: es_backend restart: always command: bash -c " python manage.py migrate && python manage.py createsite YOUR_DOMAIN_NAME --delete_default && python manage.py initial_setup --all && python manage.py on_premise --add_user client@admin.com && python manage.py collectstatic --noinput && gunicorn booking_manager.asgi --bind 0.0.0.0:3000 -w 9 -t 220 -k uvicorn.workers.UvicornWorker" volumes: - /mnt/deskery_storage/static:/usr/src/static - /mnt/deskery_storage/data:/usr/src/data depends_on: - postgres environment: <<: *db-booking-cred <<: *booking-var deploy: resources: limits: memory: 3072M logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} backend-celery: image: easyspace/easyspace:backend-latest restart: always command: celery -A booking_manager worker -P threads -l info volumes: - /mnt/deskery_storage/data:/usr/src/data depends_on: - postgres - redis environment: <<: *db-booking-cred <<: *booking-var DEBUG: 0 deploy: replicas: 7 resources: limits: memory: 500M logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} backend-celery-beat: image: easyspace/easyspace:backend-latest container_name: celery-beat restart: always command: celery -A booking_manager beat -l info --pidfile=/usr/src/data/%n.pid volumes: - /mnt/deskery_storage/data:/usr/src/data depends_on: - postgres - redis environment: <<: *db-booking-cred <<: *booking-var DEBUG: 0 deploy: resources: limits: memory: 500M logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} postgres: image: postgres:11 container_name: es_postgres restart: always volumes: - deskery_pgdata:/var/lib/postgresql/data ports: - 5432:5432 environment: <<: *db-booking-cred PGDATA: /var/lib/postgresql/data logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} redis: image: redis:7.0.3 container_name: es_redis restart: always command: redis-server --maxmemory 100mb --maxmemory-policy allkeys-lru volumes: - deskery_redisdata:/data logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} notifier-postgres: image: postgres:11 container_name: notifier_postgres restart: always environment: <<: *db-notifier-cred PGDATA: /var/lib/postgresql/data volumes: - notifier_pgdata:/var/lib/postgresql/data logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} notifier-redis: image: redis:7.0.3 container_name: notifier-redis restart: always command: redis-server --maxmemory 100mb --maxmemory-policy allkeys-lru volumes: - notifier_redisdata:/data logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} notifier-backend: image: easyspace/easyspace:notifier-latest container_name: notifier_backend restart: always command: > bash -c "python manage.py wait_for_db && python manage.py migrate && echo yes | python manage.py collectstatic && python manage.py create_notifier \"${NOTIFIER_CONFIG}\" \"${BILLING_CONFIG}\" && python manage.py runserver 0.0.0.0:3000" volumes: - /mnt/notifier_service/static:/usr/src/static depends_on: - notifier-postgres - notifier-redis environment: <<: *notifier-var <<: *db-notifier-cred ports: - 188:3000 logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} notifier-backend-dramatiq: image: easyspace/easyspace:notifier-latest container_name: notifier_backend_dramatiq restart: always command: "python manage.py rundramatiq" depends_on: - notifier-backend - notifier-postgres - notifier-redis environment: <<: *notifier-var <<: *db-notifier-cred logging: driver: "json-file" options: max-size: 100m max-file: "3" tag: /{{.Name}} volumes: deskery_pgdata: driver: local deskery_redisdata: driver: local notifier_pgdata: driver: local notifier_redisdata: driver: local networks: default: driver: bridge ipam: config: - subnet: 172.177.50.0/24
bashdocker-compose up -d
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务