怎样创建 Port 论坛

使用 docker 快速运行一个 Port 服务

你需要有:一个安装了 docker 和 docker-compose 的 Linux 主机。

how to install docker 如何安装 docker

how to install docker-compose 如何安装 docker-compose

安装好 docker 和 docker-compose 后,在合适的位置新建一个文件夹。下面以 ~/port 为例子。

请注意,按照英文版教程安装的 docker compose 属于 docker 插件,输入命令 docker compose 执行,而不是 docker-compose

创建 docker-compose.yml

创建一个 docker-compose.yml 文件,保存在 ~/port/docker-compose.yml,输入下面的内容

services:
  router:
    image: noe132/port-router:latest
    ports:
      - "${PORT:-35572}:80"
    environment:
      PORT_SERVER_HOST: 'server'
    depends_on:
      - server

  server:
    image: noe132/port-server:latest
    volumes:
      - './config.yml:/app/packages/server/config.yml:ro'
    environment:
      DB_HOST: 'postgres'
      DB_PORT: 5432
      DB_USER: 'postgres'
      DB_PASSWORD: 'e72a7e3456874163b3b715297be8a731'
      DB_DATABASE: 'port'
    depends_on:
      - postgres

  postgres:
    image: "postgres:14-alpine"
    environment:
      POSTGRES_USER: 'postgres'
      POSTGRES_PASSWORD: 'e72a7e3456874163b3b715297be8a731'
      POSTGRES_DB: 'port'
    volumes:
      - 'postgres-data:/var/lib/postgresql/data'

volumes:
  postgres-data:

第 5 行的端口号 35572 是服务最终在主机上监听的端口,根据需要可以修改为其他端口。另外也可以修改环境变量 PORT 修改端口。

第 19 行的 DB_PASSWORD 和 28 行的 POSTGRES_PASSWORD 请自行修改成更安全的密码。

修改自定义配置:创建 config.yml

如果需要修改一些参数选项,需要创建一个 config.yml 文件并挂载到 server 容器的 /app/packages/server/config.yml 位置。配置文件的所有选项和默认值在 https://github.com/rumsystem/nft-bbs/blob/main/packages/server/config.sample.yml 可以看到。所有的选项都是可选的。

根据上面的 docker-compose.yml 配置,创建一个 config.yml 文件,保存在 ~/port/config.yml,输入下面的内容:

# 默认的登录选项
defaultGroup:
  mixin: true # 允许 Mixin 扫码登录
  keystore: true # 允许输入 Keystore 登录
  anonymous: true # 允许 游客模式
  metamask: true # 允许 Metamask 登录

# 管理员用户的 eth 地址
admin:
  - '0xffffffffffffffffffffffffffffffffffffffff'

# 允许用户手动输入种子网络 SeedUrl 添加新的论坛
joinBySeedUrl: false

运行

保存完上面的文件后,使用 docker-compose 启动服务

cd ~/port
docker-compose pull
docker-compose up -d

停止服务

docker-compose down

查看服务运行状态

docker-compose ps

手动运行

如果不方便使用 docker,你也可以手动编译运行。你需要自己安装 nodejs / yarn / nginx / postgres 等需要的软件并配置相关的反向代理。

参考 https://github.com/rumsystem/nft-bbs#readme

Last updated