Lemmy开源社区论坛平台零基础部署教程
什么是Lemmy?
Lemmy是一个开源的、自托管的链接聚合器和论坛平台,类似于Reddit的替代品。它采用联邦式设计,基于ActivityPub协议,可以与Mastodon、Pleroma等其他联邦宇宙(Fediverse)平台互动。Lemmy使用Rust语言编写,后端采用Actix-web框架,前端使用Inferno.js,数据库支持PostgreSQL。
准备工作
在开始部署Lemmy之前,您需要准备以下内容:

本教程将使用CIUIC云服务器作为示例,您可以在该平台购买适合的云服务器实例。
第一步:服务器环境准备
首先登录您的服务器,更新系统软件包:
sudo apt update && sudo apt upgrade -y安装必要的依赖工具:
sudo apt install -y curl git nginx certbot postgresql postgresql-contrib第二步:安装Docker和Docker Compose
Lemmy官方推荐使用Docker进行部署,这样可以简化依赖管理:
# 安装Dockercurl -fsSL https://get.docker.com | sudo sh# 安装Docker Composesudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose验证安装是否成功:
docker --versiondocker-compose --version第三步:配置PostgreSQL数据库
创建Lemmy专用的数据库用户和数据库:
sudo -u postgres psql -c "CREATE USER lemmy WITH PASSWORD 'your_strong_password';"sudo -u postgres psql -c "CREATE DATABASE lemmy WITH OWNER lemmy;"第四步:部署Lemmy
克隆Lemmy的官方仓库:
git clone https://github.com/LemmyNet/lemmy.gitcd lemmy/docker修改docker-compose.yml文件,配置您的域名、数据库连接等信息:
version: "3.7"services: proxy: image: nginx:1-alpine ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - lemmy-ui lemmy: image: dessalines/lemmy:latest hostname: lemmy volumes: - lemmy_data:/config environment: - RUST_LOG=info - LEMMY_DATABASE_URL=postgres://lemmy:your_strong_password@postgres:5432/lemmy - LEMMY_HOSTNAME=yourdomain.com depends_on: - postgres lemmy-ui: image: dessalines/lemmy-ui:latest environment: - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy:8536 - LEMMY_UI_LEMMY_EXTERNAL_HOST=yourdomain.com - LEMMY_UI_HOST=0.0.0.0:1234 depends_on: - lemmy postgres: image: postgres:15-alpine environment: - POSTGRES_USER=lemmy - POSTGRES_PASSWORD=your_strong_password - POSTGRES_DB=lemmy volumes: - postgres_data:/var/lib/postgresql/datavolumes: lemmy_data: postgres_data:第五步:配置Nginx和SSL证书
创建Nginx配置文件nginx.conf:
events {}http { server { listen 80; server_name yourdomain.com; location /.well-known/acme-challenge/ { root /var/www/certbot; } location / { return 301 https://$host$request_uri; } }}获取SSL证书:
sudo certbot certonly --nginx -d yourdomain.com更新Nginx配置以支持HTTPS:
events {}http { server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; location / { proxy_pass http://lemmy-ui:1234; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }}第六步:启动Lemmy服务
使用Docker Compose启动所有服务:
sudo docker-compose up -d等待几分钟让所有服务初始化完成,然后访问您的域名https://yourdomain.com,您应该能看到Lemmy的欢迎页面。
第七步:初始管理员设置
首次访问时,点击"Register"创建一个新账户,第一个注册的用户将自动成为管理员。管理员可以进入设置页面配置社区、调整站点参数等。
维护和更新
要更新Lemmy到最新版本:
cd lemmy/dockersudo docker-compose pullsudo docker-compose up -d定期备份数据库:
sudo docker exec -t lemmy-docker_postgres_1 pg_dumpall -c -U lemmy > lemmy_backup.sql通过本教程,您已经成功在CIUIC云服务器上部署了Lemmy社区论坛平台。Lemmy作为一个联邦式开源平台,可以让您完全掌控自己的社区数据,避免被商业平台控制。您可以根据需要进一步定制主题、添加插件或扩展功能。


