Turn One-Way Presentations into Live Interaction: Claper Deployment and Public Audience Access Practice

*Version 1: This article walks through the complete process of deploying Claper with Docker and PostgreSQL, then mapping the local 4000 port to the public internet with cpolar. It is suitable for classroom teaching, product demos, online training, and interactive sharing scenarios.

发布于 2026年7月1日presentation-toolsGEO 评分: 551 次阅读
ClaperDockercpolarpublic accessinteractive presentationonline presentationPPT interactionPostgreSQLintranet tunnelingproduct democlassroom interactionremote trainingself-hosted deploymentopen-source toolsClaper deploymentClaper tutorialClaper Docker deploymentClaper public accessClaper cpolarinteractive presentation platformPPT interaction toolonline presentation interactionlive Q&A toolreal-time polling toolclassroom interaction toolproduct demo toolremote training toolDocker deployment tutorialPostgreSQL configurationcpolar intranet tunnelingmap local port to public internetfixed public URLsubdomain configurationopen-source presentation toolpresentation interaction solutiononline event interaction toolClaper Docker setuplive presentation toolpresentation Q&A toolaudience engagement toolDocker deployment guidePostgreSQL setupcpolar tunnelexpose localhost to public internetopen source presentation toolonline training interactionwebinar engagement tool
Use a 16:9 horizontal cover image. On the left, show a presentation window or slide deck being played. On the right, show audience phones or browser cards with polls, questions, and live feedback bubbles. In the middle, use a clear connection line or public URL symbol to express the idea of “from local presentation to public audience participation.” Keep the overall style clean, lightly technical, and not overly complex. Avoid long text. A small phrase can be used, such as `Claper Live Interacti

Turn One-Way Presentations into Live Interaction: Claper Deployment and Public Audience Access Practice

Source: Original CSDN article
Original title: “让演示从单向讲解变成现场互动:Claper部署与公网参与实践”
Note: This is a tone-level rewrite based on the original article. The original structure, steps, commands, and image placement logic are preserved.
The original content follows the CC 4.0 BY-SA license. Please keep the source and license notice when publishing.


Introduction

In scenarios like classroom teaching, product launches, and work presentations, finishing the content does not always mean the audience has actually participated.

Many times, live Q&A easily falls flat. Verbal voting is hard to count. Remote attendees also have a hard time sharing their thoughts in time. In the end, you can only rely on a post-event survey to collect feedback, and the result is often not that ideal.

Claper lets you upload PPT or PDF files to an independent presentation platform, and add real-time comments, surveys, polls, and Q&A during the presentation. The audience only needs to open the event page in a browser to participate directly. The host can also see feedback in real time from the presentation interface.

In this way, what used to be a one-way slide presentation can become a process with instant responses and live interaction.

In this setup, Claper handles the presentation files and interactive features. PostgreSQL stores the platform data. Docker handles deployment. cpolar maps the local 4000 port inside the LAN to a public URL.

This solution is suitable for classroom teaching, internal training, online sharing, and small to medium-sized events. One thing to note: Claper is not a plugin installed directly inside PowerPoint. The actual presentation is delivered through the Claper page.

图片展示了一位站在投影屏幕前的女性,周围有多个举手的学生。投影屏幕上显示着多个对话框,其中包含问号、放大镜等图标。画面左侧有三个图标,分别是彩色花朵、无线信号和灯泡。右侧也有三个图标,分别是灯泡、放大镜和手。该图与文档中介绍Claper平台的内容相关,直观呈现了在Claper平台上进行互动教学或演示的场景,强调了即时响应和互动的特点。


1. Deploy Claper with Docker in One Go

As long as you have a device that supports Docker, you can get Claper running fairly quickly. You do not need complicated environment setup, and it is not tied to one specific operating system.

In this example, I am using CentOS 7. Let’s walk through the deployment process.

First, install and run it with Docker, and create a directory for storing files:

mkdir -p /docker/Claper
cd /docker/Claper

这张图片展示的是在CentOS 7系统的命令行界面中,部署Claper时执行的初始化目录相关命令操作。具体为在[root@zookeeper1 docker]用户权限下,先执行mkdir claper命令创建了名为claper的目录,接着通过cd claper命令进入该目录,最后执行ls命令查看当前目录内容,该内容对应部署Claper流程里“安装并运行Docker,创建存储文件的目录”这一步操作。

Next, save the following content as a docker-compose.yml file.

When PostgreSQL starts for the first time and the data directory is empty, it creates the user and database based on the POSTGRES_* environment variables:

POSTGRES_PASSWORD: claper
POSTGRES_USER: claper
POSTGRES_DB: claper

You can generate SECRET_KEY_BASE with the following command:

openssl rand -hex 64

The complete docker-compose.yml configuration is as follows:

version: "3.0"

services:
  db:
    image: postgres:9
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: claper
      POSTGRES_USER: claper
      POSTGRES_DB: claper
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U claper"]
      interval: 5s
      timeout: 5s
      retries: 10

  app:
    image: ghcr.io/claperco/claper:latest
    user: "0:0"
    ports:
      - "4000:4000"
    volumes:
      - uploads:/app/uploads
    environment:
      DATABASE_URL: postgres://claper:claper@db:5432/claper
      SECRET_KEY_BASE: 08fdecbc274177363ad3e5457ae910005216dc6d27b470cf69d9524e4fc6b951156b3c4709290054cb76778899ef
      ENDPOINT_PORT: 4000
      ENDPOINT_HOST: 192.168.42.140
      MAX_FILE_SIZE_MB: 50
    depends_on:
      db:
        condition: service_healthy

volumes:
  uploads:

Then run the following command to start the service:

# Start all services
docker-compose up -d

这是一张显示CentOS 7系统终端界面的截图,对应Claper的Docker部署流程。界面内容为执行docker-compose up命令的运行反馈,显示正在拉取并下载部署Claper所需的多个Docker镜像,每个镜像的下载进度、已完成大小、总大小及耗时清晰呈现,部分镜像已完成下载、部分处于拉取状态,该截图直观展示了Docker部署过程中镜像拉取的实时进度,是部署步骤里启动服务环节的实操反馈记录。

After the service starts, you can enter the PostgreSQL container to check it:

docker exec -it claper-db-1 psql -U claper -d claper

If you can enter the psql prompt normally, it means the user and database have been created successfully.

You can also use the postgres user to view all roles:

docker exec -it claper-db-1 psql -U postgres -c '\du'

该图片展示的是在CentOS 7系统的命令行中,执行用于进入PostgreSQL容器的命令的界面,具体命令为docker exec -it claper-db-1 psql -U claper -d claper。执行命令后,命令行返回psql提示符,版本为9.6.24,并提示输入“help”获取帮助,该操作对应文档中“服务启动后可进入PostgreSQL容器检查”的步骤,验证用户与数据库是否成功创建。

After startup is complete, verify whether port 4000 is accessible:

curl http://192.168.42.140:4000

图片展示的是在CentOS 7系统中使用Docker部署Claper后,通过curl命令访问192.168.62.140:4000端口的响应内容。页面显示为HTML格式,包含<html>标签,<head>部分有字符集、视口等信息,<body>部分有背景颜色设置等样式。该图片与文档中部署Claper后验证其可访问性的内容相关,直观呈现了访问后的页面结构,帮助用户确认服务是否正常运行。

Open the following address, and you should see the Claper welcome page:

http://localhost:4000

Register and then log in:

图片展示的是Claper的登录页面。左侧是一位站在讲台旁、手持麦克风的男性,背景为舞台灯光效果。右侧上方有彩色线条图案,下方文字为“是时候让演示文稿更强大了。连接你的账户”。中间有输入框,提示“Enter your email”,下方是紫色的“Login”按钮,底部还有“Forgot your password? Create account”选项。该图片与文档中“注册并登录”的上下文对应,是登录操作前的展示页面。

After logging in successfully, you can enter the admin dashboard:

图片展示的是Claper平台的“我的活动”页面。页面上方有“Active”“Finished”“Shared with you”三个标签,当前选中“Active”。右上角有“+ Quick event”和“+ Create event”按钮,其中“+ Create event”按钮被红色箭头指向。页面中部显示“Create your first event”,提示用户创建第一个活动。该图片与文档中“部署Claper后,进入admin dashboard并创建活动”的上下文对应,直观呈现了创建活动的入口位置。

Next, you can create a presentation event:

图片展示的是Claper平台的“我的活动”页面。页面上方有“Active”“Finished”“Shared with you”三个标签,当前选中“Active”。页面中部显示“Create your first event”,下方有一个红色框突出显示的“+ Create event”按钮,旁边有一个指向该按钮的箭头。该图片与文档中“Next, you can create a presentation event”内容对应,指导用户在登录成功后进入admin dashboard,点击“+ Create event”按钮创建演示活动。

Follow the on-page instructions.

Click Create in the top-right corner, upload a PPT or PDF, and then configure the interactive components. It is recommended to enable comments and polls, because this makes the interaction effect more obvious.

图片展示的是Claper平台创建演示文稿的界面。上方有“Create”按钮,下方提示可上传PDF、PPT或PPTX文件,大小不超过50MB。中间有“Name of your event”输入框,下方是“Code”输入框,已显示代码“#97N6Z”,还有“When your event will start?”输入框。底部“Facilitators can present and manage interactions”区域有“Add facilitator”按钮。图片与上文介绍的在Claper平台部署演示文稿时,上传PPT或PDF等内容相呼应。

At this point, the Claper interactive presentation platform has been deployed.

Now you can create a presentation event and invite the audience to join. Whether they scan a QR code on site or open a remote link, the audience can participate through comments, surveys, polls, and other methods. They can also leave useful feedback data during the process.

Whether it is a meeting-room report, classroom lecture, or online launch event, Claper can turn a one-way explanation into a two-way interaction with a stronger sense of participation.


2. Install cpolar

If you have already deployed Claper locally, and the comments, surveys, and real-time feedback features are configured, you may still run into a problem when you want colleagues, clients, or students to participate remotely. They cannot access:

http://your-internal-ip:4000

The reason is simple: the service is running inside a LAN and does not have a public IP address, so external devices cannot reach it.

This is where cpolar can help solve the public access problem.

cpolar can map services running on your local computer, such as SSH, Web services, and databases, to the public internet. This means that even if the service is running at home, in an office, or inside a virtual machine, it can still be accessed through a public URL.

Below are the installation steps for cpolar.

Install it with the one-click script:

sudo curl https://get.cpolar.sh | sh

图片展示了在Linux系统下安装cpolar的命令行操作过程。首先使用curl命令下载cpolar安装脚本,接着执行脚本进行安装,显示下载、解压等操作进度。安装完成后,提示安装成功,cpolar服务文件已安装,还给出了服务的描述、文档链接及启动参数等信息。该图片与文档中介绍安装cpolar步骤的内容相关,直观呈现了安装操作的命令执行情况。

After installation, run the following command to check the cpolar service status. If the status is normal, the service has started successfully.

sudo systemctl status cpolar

图片展示的是在Z4S - VJFL系统中,使用sudo systemctl status cpolar命令查看cpolar服务状态的终端输出结果。显示cpolar服务已加载,状态为active (running),自9月17日16:51:03以来运行,持续8秒。还列出了主进程ID、任务数、内存使用量等信息,以及CGroup相关信息。该图片与文档中安装cpolar后检查服务状态的内容相关,直观呈现了服务正常运行的状态。

After cpolar is installed and started successfully, enter the virtual machine host IP plus port 9200 in your browser to access the management interface:

http://ip:9200

You can also open it locally:

http://localhost:9200

After logging in with the account registered on the cpolar official website, you will see the cpolar Web configuration interface. Later tunnel configuration can be completed from this page.

图片展示了cpolar登录界面。界面上方显示网址为“http://192.168.100.100:9200/webadmin/#!/dashboard”。中间是“Cpolar登录”标题,下方有“Email”和“Password”输入框,以及一个蓝色的“登录”按钮。底部有提示“请使用cpolar邮箱账号登录,没有账号?先去注册!”。该图片与文档中介绍安装并启动cpolar后,进入管理界面的操作步骤相关,展示了登录界面的样式。


3. Configure a Public URL

After logging in to the cpolar Web UI management interface, click Tunnel ManagementCreate Tunnel in the left dashboard.

Configure it with the following parameters:

  • Tunnel name: custom value. This example uses claper. Make sure it does not duplicate an existing tunnel name.
  • Protocol: http
  • Local address: 4000
  • Domain type: random domain
  • Region: choose China Top

图片展示了在cpolar Web UI管理界面中创建隧道的设置页面。左侧导航栏选中“创建隧道”。页面中“隧道名称”处显示“claper”,“协议”为“http”,“本地地址”为“4000”,“域名类型”选中“随机域名”,“地区”为“China Top”。右下角有“创建”按钮。该图片与上文配置参数的内容对应,直观呈现了创建隧道时的参数设置界面。

After creation succeeds, open Online Tunnel List on the left. You will see the public URL that was just generated.

Next, use this address on another computer or phone, and you can access the locally deployed Claper page from the public internet.

图片展示的是cpolar Web UI管理界面中“在线隧道列表”页面。左侧导航栏选中“在线隧道列表”。右侧表格显示了两个隧道信息,序号分别为1和2,名称均为“claper”,协议分别为http和https,本地地址均为http://localhost 4000,创建时间为2025年12月12日16时53分26秒。该图片与上文配置公共URL后查看生成的公共URL相呼应,直观呈现了成功创建的在线隧道列表。

After successful access, the page looks like this:


4. Reserve a Fixed Public URL

A random public URL can be used temporarily. But if you want to share the service with others for a longer period, an address that changes frequently is not very convenient.

So here, you can configure a fixed second-level subdomain in cpolar. After configuration, this public URL will no longer change randomly every time.

图片展示的是cpolar Web UI管理界面中“预留”页面。页面左侧有“首页”“状态”“预留”“验证”“套餐”“推荐返利”等选项,其中“预留”被红色框突出显示。右侧分为“下载cpolar”“解压缩安装”“连接您的账户”“燃烧起来,动起来”四个步骤,分别对应下载、解压、登录及使用等操作说明。该图片与文档中配置固定二级域名的上下文相关,直观呈现了cpolar Web UI管理界面中“预留”页面的布局和内容。

Click Reserve on the left, and select Reserve second-level subdomain. Choose China Top as the region, then set a second-level subdomain name.

In this example, the subdomain used is capler. You can customize it according to your own needs. After filling in the note information, click Reserve.

图片展示的是在cpolar中保留二级子域名的界面。左侧导航栏选中“预留”,右侧显示“保留二级子域名”内容,提示即使隧道处于脱机状态也不会分配给其他用户,使用时需使用特定选项。下方有地区、二级域名、描述等输入框,地区已选“China Top”,二级域名处显示“capler”,下方有“保留”按钮。该图片与上文配置固定二级子域名的操作步骤相关,是配置成功后的展示界面。

Then go back to the cpolar Web UI management interface. Click Tunnel ManagementTunnel List in the left dashboard. Find the tunnel you want to configure, and click Edit on the right.

这张图片展示了cpolar的Web UI管理界面的隧道列表页面,对应文档中“返回cpolar Web UI管理界面”后的操作节点。页面左侧为功能导航栏,包含仪表盘、隧道管理(含隧道列表、创建隧道等选项)、状态及cpolar官网等选项;右侧隧道列表区域显示序号为1、名称为“capler”的隧道,其状态为“active”,操作栏有编辑、重启、停止等功能按钮,该页面是完成固定二级子域名配置后查看隧道状态的界面。

Next, modify the tunnel information and configure the reserved second-level subdomain into the tunnel:

  • Domain type: choose second-level subdomain
  • Sub Domain: enter the successfully reserved second-level subdomain
  • Region: China Top

After finishing the settings, click Update.

图片展示的是cpolar Web UI管理界面中隧道管理下的隧道列表页面。左侧导航栏选中“隧道管理”下的“隧道列表”。页面中显示隧道名称为“capler”,协议为http,本地地址为4000,域名类型选择“二级子域名”,Sub Domain处显示“capler”,地区为“China Top”。页面底部有一个绿色的“更新”按钮。该图片与上文配置固定二级子域名的步骤相关,用于说明在cpolar中设置二级子域名并更新的界面情况。

After the update is complete, open Online Tunnel List again. You will see that the original random public URL has become a fixed second-level subdomain URL.

图片展示的是cpolar Web UI管理界面中的“在线隧道列表”页面。左侧导航栏显示“隧道管理”下的“隧道列表”选项被选中。右侧表格中,列出了两条隧道信息,分别为“capler”,其公网地址有http和https两种协议形式,本地地址均为http://localhost:4000,创建时间为2025年12月12日16:58:52。该图与上文配置固定二级域名后的操作步骤相关,用于展示配置完成后隧道列表的变化情况。

Finally, open the fixed public URL in the browser on any device. If the page opens normally, it means the fixed second-level subdomain public address has been configured successfully.

这张图片展示的是一个网页登录界面,背景为深紫色,中间有输入框及紫色的“Join”按钮,顶部带有代表该服务的品牌标识。界面右上角有“About”和“Login”按钮,右侧还有卡通风格的装饰图案。结合上下文可知,该界面是cpolar的Web UI管理界面相关的操作页面,用于用户完成相关服务的配置与登录操作,是配置固定公共URL流程中需要使用的入口页面。


Conclusion

Claper does not solve the problem of PPT layout. It solves the problem of participation during a presentation.

The audience can view content, submit questions, and join polls on the same page. The presenter can also see on-site feedback more quickly. This approach is especially suitable for lectures, training, and launch events that require two-way communication.

Before using it formally, there are a few points worth checking in advance:

  1. Replace the default database password in docker-compose.yml.
  2. Use the following command to generate an independent SECRET_KEY_BASE. Do not directly use the example value in this article.
openssl rand -hex 64
  1. After configuring the public URL, check whether ENDPOINT_HOST should be changed to the actual access domain. Otherwise, invitation links or real-time communication may still point to the LAN IP.
  2. For the PostgreSQL image, it is recommended to use a version currently supported by the project. It is not recommended to keep using the older postgres:9 for a long time.

Overall, the core idea of this solution is clear:

First, use Docker to get Claper running. Then use cpolar to map the local 4000 port to the public internet. In this way, whether it is an on-site event or remote presentation, the audience can join through a browser.

For classrooms, training sessions, product demos, and online sharing, this approach creates more feedback than simply playing a PPT, and it also makes it easier for the audience to participate.