
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
kbin 是一个开源的类似Reddit的内容聚合器和联邦宇宙微博平台。
创建和管理社区,结识志同道合的人,发展个人兴趣。
!https://github.com/elestio-examples/kbin/raw/main/kbin.png
如果您需要自动化备份、带SSL终止的反向代理、防火墙、自动化操作系统和软件更新,以及由Linux专家和开源爱好者组成的团队确保服务始终安全可用,可在elest.io上部署完全托管的KBIN。
https://github.com/elestio-examples/kbin/raw/main/deploy-on-elestio.png]([***]
您可以通过以下命令轻松部署:
bashgit clone https://github.com/elestio-examples/kbin.git
将测试文件夹中的.env文件复制到项目目录
bashcp ./tests/.env ./.env
编辑.env文件,设置您自己的值。
创建具有正确权限的数据文件夹
bashmkdir -p storage/media storage/caddy_config storage/caddy_data storage/postgres storage/redis storage/rabbitmq chmod 777 -R storage/media storage/caddy_config storage/caddy_data storage/postgres storage/redis storage/rabbitmq
使用以下命令运行项目
bashdocker-compose up -d
您可以通过 http://your-domain:3080 访问Web界面。
以下是一些示例代码片段,帮助您开始创建容器。
yamlversion: "3.3" services: www: user: 0:0 image: elestio/kbin:latest restart: always command: caddy run --config /etc/caddy/Caddyfile --adapter caddyfile healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:2019/metrics || exit 1"] ports: - 172.17.0.1:3080:80 volumes: - ./storage/caddy_config:/config - ./storage/caddy_data:/data - ./storage/media:/var/www/kbin/public/media environment: - SERVER_NAME=:80 # Web服务器绑定的地址 - PHP_FASTCGI_HOST=php:9000 # Caddy通过fastcgi转发流量到此主机 - MERCURE_PUBLISHER_JWT_KEY=${MERCURE_JWT_SECRET} - MERCURE_SUBSCRIBER_JWT_KEY=${MERCURE_JWT_SECRET} - MERCURE_JWT_SECRET=${MERCURE_JWT_SECRET} depends_on: - php php: image: elestio/kbin:latest restart: always command: php-fpm healthcheck: test: [ "CMD-SHELL", "REQUEST_METHOD=GET SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping cgi-fcgi -bind -connect localhost:9000 || exit 1", ] volumes: - ./storage/media:/var/www/kbin/public/media env_file: - .env depends_on: - redis - db - rabbitmq messenger: image: elestio/kbin:latest restart: always command: bin/console messenger:consume async --time-limit=3600 healthcheck: test: ["CMD-SHELL", "ps aux | grep 'messenger[:]consume' || exit 1"] env_file: - .env depends_on: - redis - db - rabbitmq messenger_ap: image: elestio/kbin:latest restart: always command: bin/console messenger:consume async_ap --time-limit=3600 healthcheck: test: ["CMD-SHELL", "ps aux | grep 'messenger[:]consume' || exit 1"] env_file: - .env depends_on: - redis - db - rabbitmq redis: image: redis:alpine restart: always command: /bin/sh -c "redis-server --requirepass ${REDIS_PASSWORD}" environment: - REDIS_PASSWORD=${REDIS_PASSWORD} volumes: - ./storage/redis:/data healthcheck: test: ["CMD", "redis-cli", "ping"] db: image: postgres:13-alpine restart: always volumes: - ./storage/postgres:/var/lib/postgresql/data environment: - POSTGRES_DB=kbin - POSTGRES_USER=kbin - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} rabbitmq: image: rabbitmq:3-management-alpine restart: always environment: - RABBITMQ_DEFAULT_USER=kbin - RABBITMQ_PASSWORD=${RABBITMQ_PASSWORD} - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD} volumes: - ./storage/rabbitmq:/var/lib/rabbitmq ports: - 172.17.0.1:15672:15672 # 添加您喜欢的反向代理(如nginx),接受传入的HTTPS流量并转发到http://www:80 # nginx: # image: nginx # ports: # - 443:443 # volumes: # - ./nginx.conf:/etc/nginx/nginx.conf
| 变量 | 示例值 |
|---|---|
| ADMIN_PASSWORD | nXOmEK1J-Qrzb-I6jD6mbC |
| ADMIN_EMAIL | *** |
| BASE_URL | [***] |
| DOMAIN | your.domain |
| SMTP_HOST | 172.17.0.1 |
| SMTP_PORT | 25 |
| SMTP_AUTH_STRATEGY | NONE |
| SMTP_FROM_EMAIL | *** |
| SERVER_NAME | your.domain |
| KBIN_DOMAIN | your.domain |
| KBIN_TITLE | kbin |
| KBIN_DEFAULT_LANG | en |
| KBIN_FEDERATION_ENABLED | true |
| KBIN_CONTACT_EMAIL | *** |
| KBIN_SENDER_EMAIL | *** |
| KBIN_JS_ENABLED | true |
| KBIN_REGISTRATIONS_ENABLED | true |
| KBIN_API_ITEMS_PER_PAGE | 25 |
| KBIN_STORAGE_URL | [***] |
| KBIN_META_TITLE | Kbin_Lab |
| KBIN_META_DESCRIPTION | content_aggregator_and_micro-blogging_platform_for_the_fediverse |
| KBIN_META_KEYWORDS | kbin_content_agregator_open_source_fediverse |
| KBIN_HEADER_LOGO | false |
| KBIN_CAPTCHA_ENABLED | false |
| REDIS_PASSWORD | nXOmEK1J-Qrzb-I6jD6mbC |
| REDIS_DNS | redis://nXOmEK1J-Qrzb-I6jD6mbC@redis |
| S3_BUCKET | media.karab.in |
| S3_REGION | eu-central-1 |
| S3_VERSION | latest |
| APP_ENV | prod |
| APP_SECRET | 427f5e2940e5b2472c1b44b2d06e0525 |
| POSTGRES_DB | kbin |
| POSTGRES_USER | kbin |
| POSTGRES_PASSWORD | nXOmEK1J-Qrzb-I6jD6mbC |
| POSTGRES_VERSION | 13 |
| DATABASE_URL | postgresql://kbin:nXOmEK1J-Qrzb-I6jD6mbC@db:5432/kbin?serverVersion=13&charset=utf8 |
| RABBITMQ_PASSWORD | nXOmEK1J-Qrzb-I6jD6mbC |
| MESSENGER_TRANSPORT_DSN | amqp://kbin:nXOmEK1J-Qrzb-I6jD6mbC@rabbitmq:5672/%2f/messages |
| MAILER_DSN | smtp://172.17.0.1:25?encryption=null&auth_mode=null&username=null&password=null&host=172.17.0.1&port=25 |
| MERCURE_URL | [***] |
| MERCURE_PUBLIC_URL | [***] |
| MERCURE_JWT_SECRET | nXOmEK1J-Qrzb-I6jD6mbC |
| CADDY_MERCURE_URL | [***] |
| CADDY_MERCURE_JWT_SECRET | nXOmEK1J-Qrzb-I6jD6mbC |
| CORS_ALLOW_ORIGIN | '^https?://(kbin.localhost|127.0.0.1)(:[0-9]+)?$' |
| LOCK_DSN | flock |
| JWT_SECRET_KEY | %kernel.project_dir%/config/jwt/private.pem |
| JWT_PUBLIC_KEY | %kernel.project_dir%/config/jwt/public.pem |
| HTTPS | true |
Elestio KBIN 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轻松备份和恢复数据卷。
Kbin文档
https://github.com/ernestwisniewski/kbin
https://github.com/elestio-examples/kbin
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务