建立一个社区
每个社区都运行在自己的节点上:一台保存该社区成员、帖子与账本的小型服务器。由本地居民负责运行。如果你的城镇或山谷还没有节点,那个人可以是你。
运营一个社区要做什么
按照指南操作大约需要半小时。请先了解以下六件事:
- 费用成本。软件是免费的。它可以运行在家里保持开机的闲置电脑上(迷你主机、NAS 或安装了 64 位系统的树莓派),也可以运行在每月花费数美元(约 6 美元)的小型租用服务器上。
- 由谁托管。由你自行托管,在你自己的机器或你租用的服务器上。它从不需要依赖 beanpool.org:你自己的网络地址即可正常使用。
- 你的职责承担。成员的举报会发送给你。数据文件夹由你使用恢复代码进行备份。请保持两位所有者。保持服务器开机运行并及时更新。
- 你绝不会看到的内容。你成员之间的私信。
- 先准备 Docker。在执行下方命令块之前,机器上需要安装 Docker;全新租用的服务器通常未安装。
- 手机可访问的地址。手机在互联网上只能通过 https 连接社区。在拥有公网 IP 地址且开放了 80 和 443 端口的租用服务器上,直接使用该 IP 地址就足够了:你的服务器无需 Cloudflare 账户即可自行获取对应证书,使用你自己的域名也是如此。在家里或没有开放端口的情况下,认领过程会通过服务器自身运行的隧道为你提供一个以 .beanpool.org 结尾的免费域名。普通的 http:// 地址仅在家庭局域网内有效。
你的职责
你和你任命的管理员是你社区的管理审核员:举报会直接发给你。成员的数据存放在你的机器上,因此由你负责备份。你可以查看企业讨论与活动聊天;你无法查看私信。你邀请第一批成员,再由他们邀请其他人。
设置应用
你的节点随附在浏览器中运行的设置应用。你可以通过它为社区命名、任命使用自身密钥登录的所有者和管理员、打印二维码邀请函、监控磁盘健康状况、选择公开网络地址或隧道,并在成员同时遗失手机和 12 个助记词时,通过当面确认的一次性验证码帮助他们在一部新手机上找回自己的账户。
从首次启动起便保持私密
从节点启动的那一刻起,社区的刊登信息、地图、消息与余额仅对其成员开放;无需进行任何额外设置。没有账户的人打开其地址会被引导至全球社区,在那里他们可以看到附近的内容并申请加入。
与邻近社区建立互联
两个社区可以通过协商建立互联,以便彼此的成员相互交易。豆子绝不会流出本社区:双方社区保持一份彼此欠款的流水账,并且各自设定信用限额。除非双方运维人员都开启互联,否则默认处于关闭状态,目前该功能仍处于早期阶段:它已开发完成,在网页端有对应界面,但仅在我们的两个测试社区之间进行过试验,尚未在实际运行的社区之间使用。
你的地址
在粘贴前确定好,并修改最后一行命令以保持一致。如果你已经粘贴了,在提示问题处按回车键,然后重新运行最后一行:认领码会等待手机扫码。租用服务器(具有公网 IP 地址且开放 80 和 443 端口):添加 --ip 及其 IP 地址,例如 beanpool claim --ip 203.0.113.7。你的服务器会通过 80 端口从 Let's Encrypt 为该地址获取专属证书,手机可通过 https://203.0.113.7 访问。家用电脑或未开放端口:保持原样即可。它会询问免费域名的前缀(例如输入 yourtown 即可获得 yourtown.beanpool.org;按回车跳过),通过服务器自行运行的隧道进行访问,最多等待三分钟即可上线。自有域名:将其 A 记录指向服务器的 IP 地址,开放 80 和 443 端口,并添加 --address https://your.domain。域名在更换服务器后仍能沿用,而 IP 地址不行:你稍后也可以在“设置”中添加域名,使用 IP 地址的成员不受影响。如需稍后在“设置”中选择,请添加 --no-name。普通的 http:// 地址仅在家庭网络中有效:手机在互联网上会拒绝连接,认领过程也会给出警告。即使 BeanPool 项目的地址服务暂时不可用,认领操作依然可以正常工作。
安装
然后,在安装了 Docker 的机器上,粘贴这整段命令。它会获取 compose 文件、创建节点使用的网络、拉取已发布的镜像(Intel/AMD 或 ARM64)、启动节点、等待服务器生成其一次性认领码(树莓派等设备首次启动较慢时最多需 5 分钟),并完成认领。启动前无需进行任何配置。
git clone https://github.com/beanpool-org/beanpool.git && cd beanpool
docker network create beanpool-shared
docker compose pull
docker compose up -d
echo "Waiting for the server to make its claim code (up to 5 minutes)..."
for i in $(seq 60); do docker compose exec -T beanpool-node test -f /data/claim-code.txt </dev/null 2>/dev/null && break; sleep 5; done
docker compose exec -T beanpool-node test -f /data/claim-code.txt </dev/null 2>/dev/null || echo "No claim code after 5 minutes. The server's log says why: docker compose logs beanpool-node"
docker compose exec beanpool-node beanpool claim
最后一行命令:beanpool claim
- 认领码与二维码。它会显示一个一次性认领码和一个二维码。使用手机相机扫描二维码,或者打开 BeanPool,在寻找你的社区下输入服务器地址并点击认领。该手机即成为所有者。
- 设置。在浏览器中打开你的地址(或服务器自身地址)加上 /settings。设置向导会引导你为社区命名、添加第二位所有者,并生成三个创办邀请。在“节点身份”下设置你在地图上的位置,以便附近的人能找到你。
如果命令块提示 No claim code after 5 minutes,或者 beanpool claim 提示 This community has no claim code waiting,说明服务器尚未完成启动:docker compose logs beanpool-node 会显示当前进度。一旦日志显示该社区尚无所有者并已生成认领码,请重新运行最后一行命令。完整步骤可参见运维手册中的首次设置。
推荐:Docker 更新时让社区继续运行
这一步在运维手册的“Updates and health”页面里。 负责安装的 AI 助手总会执行这一步 (用 AI 助手设置你的服务器)。
在 GitHub 上查看 →