Icarus 环境搭建完整指南:Python 3.6、Node.js、PostgreSQL 与 Redis 从零配置
【免费下载链接】Icarus🕊️ An opensource community/forum project write with python3 aiohttp and vue.js. 一个开源的社区程序,临时测试站:https://t.myrpg.cn项目地址: https://gitcode.com/gh_mirrors/ic/Icarus
Icarus 是一款用 Python 3.6 + aiohttp 与 Vue.js 编写的开源社区/论坛程序,前后端分离、支持 Markdown 发帖、实时在线人数、全文搜索等功能。本文将提供一份面向新手的 Icarus 环境搭建完整指南,从零配置 Python 3.6、Node.js、PostgreSQL 与 Redis 四大基础依赖,再到后端与前端服务的启动,全程图文并茂、分步讲解,帮助你快速在本地跑起属于自己的社区站点。
搭建前准备:克隆项目源码
在开始安装各种依赖之前,先把项目代码拉取到本地:
git clone https://gitcode.com/gh_mirrors/ic/Icarus项目根目录下,backend/是 Python 后端的全部代码,根目录则是 Vue.js 前端(基于 Nuxt)。官方的完整部署步骤可以参考项目内的 misc/how-to-deploy.md,本文在此基础上做了更细致的拆解。
小提示:前端安装 node_modules 等待时间较长,建议先把环境依赖装好,再让前后端安装同步进行,能节省不少时间。
第一步:安装 Python 3.6 运行环境
后端基于 aiohttp 异步框架,要求 Python 3.6 及以上版本,依赖清单见 backend/Pipfile。不同系统有不同装法,任选其一即可:
- Windows:直接安装 Anaconda3 或 Python 官方安装包,勾选“Add to PATH”即可。
- Linux(Arch 等新发行版):系统自带的 Python 通常已满足 3.6+,无需额外操作。
- Linux(自带版本较低):推荐使用
pyenv管理多版本 Python,依次执行pyenv update、pyenv install 3.6.x,最后用pyenv local 3.6.x切换版本。 - Debian/Ubuntu:可通过
deadsnakesPPA 快速安装,命令如下:
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install -y python3.6 python3.6-dev python3.6-venv安装完成后用python3.6 --version验证版本号,确认无误再进行下一步。
第二步:安装 Node.js 前端运行环境
前端代码基于 Nuxt(Vue.js),需要 Node.js 环境来执行依赖安装与打包。建议安装 LTS 长期支持版本,通过包管理器安装最省事:
# Ubuntu / Debian curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get install -y nodejs # CentOS / RHEL curl -sL https://rpm.nodesource.com/setup_10.x | bash -装好后执行node -v与npm -v确认安装成功。若出现 npm 版本过旧的问题,可以先升级 npm 再继续。
第三步:安装 PostgreSQL 并初始化数据库
Icarus 使用 PostgreSQL 作为主数据库(9.6 以上版本均可),需要创建专用数据库、用户,并启用hstore与citext两个扩展。
以 Ubuntu 为例,添加 PostgreSQL 官方源后安装:
sudo apt-get install -y postgresql-11装好后切换到 postgres 用户,进入 psql 交互界面完成初始化:
sudo su postgres psql在 SQL Shell 中依次执行:
CREATE DATABASE icarus; CREATE USER icarus WITH PASSWORD 'IcaruStest123'; GRANT ALL ON DATABASE icarus TO icarus; \c icarus; CREATE EXTENSION IF NOT EXISTS hstore; CREATE EXTENSION IF NOT EXISTS citext;⚠️ 两个扩展缺一不可,否则后端启动时读写数据库会报错。请记住你设置的数据库名、用户名与密码,后面配置private.py时要用到。
第四步:安装 Redis 缓存服务
Redis 负责 Icarus 的会话、在线人数等实时数据存储,安装非常简单,直接用系统的包管理器即可:
# Ubuntu / Debian sudo apt-get install -y redis-server # CentOS / RHEL sudo yum install -y redis启动服务并确认状态:
sudo service redis-server start redis-cli ping # 返回 PONG 即表示连接成功Windows 用户可以使用微软提供的二进制版本安装包,安装后默认监听 6379 端口。
第五步:安装后端依赖并启动服务
使用 pipenv 安装依赖
后端建议用 pipenv 管理虚拟环境。先安装 pipenv,再切到backend目录安装依赖:
sudo pip install pipenv cd backend pipenv install如果安装过程一直卡在 Locking 阶段(pipenv 的老毛病),可以加--skip-lock参数跳过锁定步骤,速度会快很多。
Windows 用户注意:安装 aioredis 时可能因依赖的 hiredis 编译失败而报错。Anaconda 用户可执行
conda install hiredis;其他用户可直接从 conda-forge 渠道下载编译好的包,解压出site-packages/hiredis放入自己的 site-packages 目录即可。
生成并修改 private.py 配置
依赖装完后启动后端,注意这里有个重要机制:首次运行会自动生成private.py并退出,文件内容由 backend/misc/setup.py 生成,用于覆盖 backend/config.py 中的默认配置:
pipenv shell python main.py看到 “private.py generated” 提示并退出后,用编辑器打开backend/private.py,重点检查以下几项:
SITE_URL:站点地址,末尾不要带/DATABASE_URI:改为你第三步创建的 PostgreSQL 连接串,例如postgresql://icarus:IcaruStest123@localhost/icarusREDIS_URI:默认为redis://localhost:6379,一般无需改动USER_SECURE_AUTH_FRONTEND_SALT:密码加密盐,已在首次生成时自动随机化,保持默认即可
修改完成后再次执行python main.py,后端即可正常启动,默认监听127.0.0.1:9999。
第六步:安装前端依赖并启动开发服务
回到项目根目录,安装前端依赖:
npm install如果只是想在本地开发环境预览效果,在后端已启动的前提下执行:
npm run serve浏览器访问 Nuxt 默认端口即可看到论坛页面。第一个注册的用户将自动成为管理员,这也是管理后台的入口。
第七步(可选):Nginx 单端口部署方案
如果你需要对外提供服务,推荐使用项目自带的“单端口方案”:将前端挂在某个域名/端口,后端映射到同一域名的/api下,从而绕过浏览器同源策略,简化配置。
先在根目录新建private.js,指定前后端地址:
var host = '127.0.0.1:9999' // 服务端渲染访问的本地后端地址 if (process.browser) { // 浏览器中API访问的后端地址 host = window.location.host } export default { remote: { API_SERVER: 'http://' + host, WS_SERVER: 'ws://' + host + '/ws' } }然后构建前端:
npx nuxt build npx nuxt start项目已内置 Nginx 配置模板 misc/nginx/icarus.conf(默认整站使用 9001 端口对外提供服务,前端映射 3000 端口、后端映射/api与/ws)。安装 nginx 后直接复制启用:
sudo apt install nginx sudo cp misc/icarus.conf /etc/nginx/conf.d/编辑/etc/nginx/conf.d/icarus.conf,把注释掉的# root /home/{user}/Icarus/dist;改为你的实际路径,然后重启:
sudo service nginx restart访问服务器 IP 的 9001 端口,就能看到完整的社区页面了。
常见问题排查清单
- 后端启动即退出:多半是首次运行生成了
private.py,按第五步修改后再启动即可。 - 数据库连接失败:检查 PostgreSQL 是否启动、
DATABASE_URI是否正确、hstore/citext扩展是否已创建。 - Redis 连接超时:确认
redis-cli ping返回 PONG,并检查防火墙是否放行 6379 端口。 - pipenv 安装卡顿:改用
pipenv install --skip-lock,或检查网络代理。 - 前端页面接口 404:确认后端已启动、端口一致,且
private.js中的 API 地址与 Nginx 配置匹配。
总结
至此,你已经完成了 Icarus 的完整环境搭建:Python 3.6 提供异步后端运行时,Node.js 支撑 Vue.js 前端构建,PostgreSQL 存储论坛数据,Redis 负责实时缓存,四者配合 Nginx 即可组成一套可对外服务的开源社区系统。如果在搭建过程中遇到问题,建议对照项目内的 misc/how-to-deploy.md 逐项复查,希望这份 Icarus 环境搭建完整指南能帮你顺利跑通整个流程,早日拥有自己的社区站点。
【免费下载链接】Icarus🕊️ An opensource community/forum project write with python3 aiohttp and vue.js. 一个开源的社区程序,临时测试站:https://t.myrpg.cn项目地址: https://gitcode.com/gh_mirrors/ic/Icarus
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考