如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/getlago/lago/ 是一款用于计量和基于使用量计费的开源软件。对于需要处理复杂计费逻辑的企业而言,它是Chargebee、Recurly或Stripe Billing的最佳替代方案。
!Lago
如果您需要自动化备份、带SSL终止的反向代理、防火墙、自动化操作系统与软件更新,以及由Linux专家和开源爱好者组成的团队确保服务始终安全可用,可在elest.io上部署完全托管的Lago。
以下是帮助您开始创建容器的示例代码片段。
yamlversion: "3.8" services: db: image: elestio/postgres:15 restart: always environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} PGDATA: /data/postgres PGPORT: 5432 volumes: - ./storage/lago_postgres_data:/data/postgres ports: - 172.17.0.1:40211:5432 redis: image: elestio/redis:7.0 restart: always command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"] volumes: - ./storage/lago_redis_data:/data ports: - 172.17.0.1:31542:6379 api: image: elestio/lago-api:${SOFTWARE_VERSION_TAG} restart: always depends_on: - db - redis command: ["./scripts/start.sh"] environment: - LAGO_API_URL=https://${DOMAIN}:34079 - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} - REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT} - REDIS_PASSWORD=${REDIS_PASSWORD} - SECRET_KEY_BASE=${SECRET_KEY_BASE} - RAILS_ENV=production - RAILS_LOG_TO_STDOUT=${LAGO_RAILS_STDOUT} - SENTRY_DSN=${SENTRY_DSN} - LAGO_FRONT_URL=https://${DOMAIN} - RSA_PRIVATE_KEY=${LAGO_RSA_PRIVATE_KEY} - LAGO_RSA_PRIVATE_KEY=${LAGO_RSA_PRIVATE_KEY} - LAGO_SIDEKIQ_WEB=${LAGO_SIDEKIQ_WEB} - ENCRYPTION_PRIMARY_KEY=${LAGO_ENCRYPTION_PRIMARY_KEY} - ENCRYPTION_DETERMINISTIC_KEY=${LAGO_ENCRYPTION_DETERMINISTIC_KEY} - ENCRYPTION_KEY_DERIVATION_SALT=${LAGO_ENCRYPTION_KEY_DERIVATION_SALT} - LAGO_USE_AWS_S3=${LAGO_USE_AWS_S3} - LAGO_AWS_S3_ACCESS_KEY_ID=${LAGO_AWS_S3_ACCESS_KEY_ID:-azerty123456} - LAGO_AWS_S3_SECRET_ACCESS_KEY=${LAGO_AWS_S3_SECRET_ACCESS_KEY:-azerty123456} - LAGO_AWS_S3_REGION=${LAGO_AWS_S3_REGION:-us-east-1} - LAGO_AWS_S3_BUCKET=${LAGO_AWS_S3_BUCKET:-bucket} - LAGO_AWS_S3_ENDPOINT=${LAGO_AWS_S3_ENDPOINT} - LAGO_USE_GCS=${LAGO_USE_GCS:-false} - LAGO_GCS_PROJECT=${LAGO_GCS_PROJECT:-} - LAGO_GCS_BUCKET=${LAGO_GCS_BUCKET:-} - LAGO_PDF_URL=${LAGO_PDF_URL:-http://pdf:3000} - LAGO_REDIS_CACHE_URL=redis://${LAGO_REDIS_CACHE_HOST}:${LAGO_REDIS_CACHE_PORT} - LAGO_REDIS_CACHE_PASSWORD=${LAGO_REDIS_CACHE_PASSWORD} - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT} - LAGO_OAUTH_PROXY_URL=https://proxy.getlago.com - LAGO_LICENSE=${LAGO_LICENSE:-} volumes: - ./storage/lago_storage_data:/app/storage # 如果使用GCS,需要将凭据密钥文件放在此处 #- gcs_keyfile.json:/app/gcs_keyfile.json ports: - 172.17.0.1:17840:3000 front: image: elestio/lago-front:${SOFTWARE_VERSION_TAG} restart: always # 如果需要使用Let's Encrypt SSL,使用此命令 # command: "/bin/sh -c 'while :; do sleep 6h & wait ${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" depends_on: - api environment: - API_URL=https://${DOMAIN}:34079 - APP_ENV=production - CODEGEN_API=https://${DOMAIN}:34079 - LAGO_DISABLE_SIGNUP=${LAGO_DISABLE_SIGNUP} - LAGO_OAUTH_PROXY_URL=https://proxy.getlago.com - SENTRY_DSN=${SENTRY_DSN_FRONT} ports: - 172.17.0.1:34746:80 # - 443:443 # 使用Let's Encrypt SSL # volumes: # - ./extra/nginx-letsencrypt.conf:/etc/nginx/conf.d/default.conf # - ./extra/certbot/conf:/etc/letsencrypt # - ./extra/certbot/www:/var/www/certbot # 使用自签名SSL证书 # volumes: # - ./extra/nginx-selfsigned.conf:/etc/nginx/conf.d/default.conf # - ./extra/ssl/nginx-selfsigned.crt:/etc/ssl/certs/nginx-selfsigned.crt # - ./extra/ssl/nginx-selfsigned.key:/etc/ssl/private/nginx-selfsigned.key # - ./extra/ssl/dhparam.pem:/etc/ssl/certs/dhparam.pem # 仅用于Let's Encrypt SSL支持 # certbot: # image: certbot/certbot # entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait ${!}; done;'" # volumes: # - ./extra/certbot/conf:/etc/letsencrypt # - ./extra/certbot/www:/var/www/certbot api-worker: image: elestio/lago-api:${SOFTWARE_VERSION_TAG} restart: always depends_on: - api command: ["./scripts/start.worker.sh"] environment: - LAGO_API_URL=https://${DOMAIN}:34079 - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} - REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT} - REDIS_PASSWORD=${REDIS_PASSWORD} - SECRET_KEY_BASE=${SECRET_KEY_BASE} - RAILS_ENV=production - RAILS_LOG_TO_STDOUT=${LAGO_RAILS_STDOUT} - SENTRY_DSN=${SENTRY_DSN} - LAGO_RSA_PRIVATE_KEY=${LAGO_RSA_PRIVATE_KEY} - RSA_PRIVATE_KEY=${LAGO_RSA_PRIVATE_KEY} - ENCRYPTION_PRIMARY_KEY=${LAGO_ENCRYPTION_PRIMARY_KEY} - ENCRYPTION_DETERMINISTIC_KEY=${LAGO_ENCRYPTION_DETERMINISTIC_KEY} - ENCRYPTION_KEY_DERIVATION_SALT=${LAGO_ENCRYPTION_KEY_DERIVATION_SALT} - LAGO_FRONT_URL=https://${DOMAIN} - LAGO_USE_AWS_S3=${LAGO_USE_AWS_S3} - LAGO_AWS_S3_ACCESS_KEY_ID=${LAGO_AWS_S3_ACCESS_KEY_ID:-azerty123456} - LAGO_AWS_S3_SECRET_ACCESS_KEY=${LAGO_AWS_S3_SECRET_ACCESS_KEY:-azerty123456} - LAGO_AWS_S3_REGION=${LAGO_AWS_S3_REGION:-us-east-1} - LAGO_AWS_S3_BUCKET=${LAGO_AWS_S3_BUCKET:-bucket} - LAGO_AWS_S3_ENDPOINT=${LAGO_AWS_S3_ENDPOINT} - LAGO_USE_GCS=${LAGO_USE_GCS} - LAGO_GCS_PROJECT=${LAGO_GCS_PROJECT:-} - LAGO_GCS_BUCKET=${LAGO_GCS_BUCKET:-} - LAGO_PDF_URL=${LAGO_PDF_URL:-http://pdf:3000} - LAGO_REDIS_CACHE_URL=redis://${LAGO_REDIS_CACHE_HOST}:${LAGO_REDIS_CACHE_PORT} - LAGO_REDIS_CACHE_PASSWORD=${LAGO_REDIS_CACHE_PASSWORD} - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT} volumes: - ./storage/lago_storage_data:/app/storage api-clock: image: elestio/lago-api:${SOFTWARE_VERSION_TAG} restart: always depends_on: - api command: ["./scripts/start.clock.sh"] environment: - LAGO_API_URL=https://${DOMAIN}:34079 - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} - REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT} - REDIS_PASSWORD=${REDIS_PASSWORD} - SECRET_KEY_BASE=${SECRET_KEY_BASE} - RAILS_ENV=production - RAILS_LOG_TO_STDOUT=${LAGO_RAILS_STDOUT} - SENTRY_DSN=${SENTRY_DSN} - LAGO_RSA_PRIVATE_KEY=${LAGO_RSA_PRIVATE_KEY} - RSA_PRIVATE_KEY=${LAGO_RSA_PRIVATE_KEY} - ENCRYPTION_PRIMARY_KEY=${LAGO_ENCRYPTION_PRIMARY_KEY} - ENCRYPTION_DETERMINISTIC_KEY=${LAGO_ENCRYPTION_DETERMINISTIC_KEY} - ENCRYPTION_KEY_DERIVATION_SALT=${LAGO_ENCRYPTION_KEY_DERIVATION_SALT} pdf: image: getlago/lago-gotenberg:7 restart: always pgadmin4: image: dpage/pgadmin4:latest restart: always environment: PGADMIN_DEFAULT_EMAIL: ${ADMIN_EMAIL} PGADMIN_DEFAULT_PASSWORD: ${ADMIN_PASSWORD} PGADMIN_LISTEN_PORT: 8080 ports: - "172.17.0.1:15683:8080" volumes: - ./servers.json:/pgadmin4/servers.json
| 变量名 | 示例值 |
|---|---|
| SOFTWARE_VERSION_TAG | latest |
| ADMIN_EMAIL | *** |
| ADMIN_PASSWORD | your-password |
| DOMAIN | your.domain.com |
| MAIL_HOST | 172.17.0.1 |
| MAIL_PORT | 25 |
| FROM_EMAIL | *** |
| POSTGRES_DB | lago |
| POSTGRES_USER | postgres |
| POSTGRES_PASSWORD | your-password |
| POSTGRES_HOST | db |
| POSTGRES_PORT | 5432 |
| REDIS_HOST | redis |
| REDIS_PORT | 6379 |
| REDIS_PASSWORD | your-password |
| LAGO_REDIS_CACHE_HOST | redis |
| LAGO_REDIS_CACHE_PORT | 6379 |
| LAGO_REDIS_CACHE_PASSWORD | your-password |
| LAGO_RAILS_STDOUT | true |
| LAGO_USE_AWS_S3 | false |
| LAGO_DISABLE_SIGNUP | false |
您可以通过以下地址访问Web UI:http://your-domain:34746
Elestio Lago Docker镜像将容器日志发送到stdout。要查看日志,可使用以下命令:
bashdocker-compose logs -f
要停止服务栈,可使用以下命令:
bashdocker-compose down
为简化备份和恢复操作,我们使用文件夹卷挂载。您只需使用docker-compose down停止服务栈,然后备份docker-compose.yml文件所在目录下的所有文件和子文件夹即可。
例如,若要创建ZIP归档,请导航到包含docker-compose.yml文件的目录,并使用以下命令:
bashzip -r myarchive.zip .
要从ZIP归档恢复,请使用以下命令将归档解压缩到原始文件夹:
bashunzip myarchive.zip -d /path/to/original/folder
备份完成后,可使用以下命令重新启动服务栈:
bashdocker-compose up -d
就是这样!通过这些简单步骤,您可以使用Docker Compose轻松备份和恢复数据卷。
https://github.com/getlago/lago/
Lago文档
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务