首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >事件管理工具CERN-Indico介绍与安装

事件管理工具CERN-Indico介绍与安装

原创
作者头像
zzh-dahai
修改2025-08-14 14:58:35
修改2025-08-14 14:58:35
20600
代码可运行
举报
运行总次数:0
代码可运行

上介绍篇

Indico 简单介绍

一、项目概述

Indico 是一款开源的事件管理工具,专注于为会议、研讨会、讲座等各类活动提供全生命周期管理支持,涵盖活动组织、资料归档及团队协作三大核心场景。其设计理念强调“开箱即用”的易用性,同时支持通过插件扩展功能,满足多样化需求。

二、核心功能

  1. 活动全流程管理
    • 支持从活动创建、议程安排、报名管理到签到核验的完整闭环。
    • 提供论文提交、评审流程自动化等学术会议专属功能。
  2. 资料归档与共享
    • 内置文档存储库,支持活动相关资料的集中存储与分类管理。
    • 提供版本控制与访问权限设置,确保资料安全可追溯。
  3. 团队协作增强
    • 集成日历同步、任务分配、实时通讯等协作工具。
    • 支持多角色权限管理(如组织者、演讲者、参会者)。

三、技术特性

  1. 开源生态
    • 代码完全开放,支持自定义开发。
    • 提供详细的API文档,可与第三方系统深度集成。
  2. 模块化架构
    • 核心功能稳定,通过插件机制扩展(如支付网关、视频会议集成)。
    • 开发文档涵盖从环境搭建到插件编写的全流程指导。

四、适用场景

  • 学术会议:论文评审、日程编排、参会者管理。
  • 企业活动:产品发布会、内部培训、客户研讨会。
  • 教育机构:课程安排、学生项目展示、校友活动。

五、学习资源 包含安装指南、配置教程、开发者手册等结构化内容。

  • 社区支持: 通过GitHub仓库提交Issue或参与讨论,获取官方及开发者协助。

六、优势总结

  • 零成本起步:开源免费,降低中小型团队使用门槛。
  • 灵活适配:既可部署为独立系统,也能嵌入现有IT架构。
  • 持续进化:活跃的开发者社区推动功能迭代与安全更新。

如需深入技术细节或部署实践,可参考文档中的安装章节API开发指南


下,安装篇


Indico 安装指南(基于 Nginx)

注意事项

  • 如果计划使用 Shibboleth 进行 SSO,则必须使用 Apache。
  • 如果不使用 SSO 或使用 OAuth、OIDC 或 SAML(非 Shibboleth),推荐使用 Nginx。

1. 安装软件包

从上游仓库安装 PostgreSQL 以获取较新版本。

安装依赖

代码语言:javascript
代码运行次数:0
运行
复制
bashapt install -y lsb-release wget curl gnupgwget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor > /usr/share/keyrings/pgdg-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/pgdg-archive-keyring.gpg] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.listapt updateapt install -y --install-recommends postgresql-16 libpq-dev nginx libxslt1-dev libxml2-dev libffi-dev libpcre3-dev libyaml-dev libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncurses5-dev libncursesw5-dev xz-utils liblzma-dev uuid-dev build-essential redis-server git libpango1.0-dev

特定发行版依赖

  • Debian:bashapt install -y libjpeg62-turbo-dev
  • Ubuntu:bashapt install -y libjpeg-turbo8-dev

启动服务

代码语言:javascript
代码运行次数:0
运行
复制
bashsystemctl start postgresql.service redis-server.service

2. 创建数据库

为 Indico 创建用户和数据库,并启用必要的 Postgres 扩展(需 Postgres 超级用户权限)。

代码语言:javascript
代码运行次数:0
运行
复制
bashsu - postgres -c 'createuser indico'su - postgres -c 'createdb -O indico indico'su - postgres -c 'psql indico -c "CREATE EXTENSION unaccent; CREATE EXTENSION pg_trgm;"'

重要:在生产环境中使用 Indico 时,不要忘记设置定期数据库备份的 cron 任务!

3. 配置 uWSGI 和 Nginx

默认的 uWSGI 和 Nginx 配置文件在大多数情况下可正常工作。

uWSGI 配置

代码语言:javascript
代码运行次数:0
运行
复制
bashcat > /etc/uwsgi-indico.ini <<'EOF'[uwsgi]uid = indicogid = www-dataumask = 027 processes = 4enable-threads = truechmod-socket = 770chown-socket = indico:www-datasocket = /opt/indico/web/uwsgi.sockstats = /opt/indico/web/uwsgi-stats.sockprotocol = uwsgi master = trueauto-procname = trueprocname-prefix-spaced = indicodisable-logging = true single-interpreter = true touch-reload = /opt/indico/web/indico.wsgiwsgi-file = /opt/indico/web/indico.wsgivirtualenv = /opt/indico/.venv vacuum = truebuffer-size = 20480memory-report = truemax-requests = 2500harakiri = 900harakiri-verbose = truereload-on-rss = 2048evil-reload-on-rss = 8192EOF

uWSGI systemd 服务

代码语言:javascript
代码运行次数:0
运行
复制
bashcat > /etc/systemd/system/indico-uwsgi.service <<'EOF'[Unit]Description=Indico uWSGIAfter=network.target [Service]ExecStart=/opt/indico/.venv/bin/uwsgi --ini /etc/uwsgi-indico.iniExecReload=/bin/kill -HUP $MAINPIDRestart=alwaysSyslogIdentifier=indico-uwsgiUser=indicoGroup=www-dataUMask=0027Type=notifyNotifyAccess=allKillMode=mixedKillSignal=SIGQUITTimeoutStopSec=300 [Install]WantedBy=multi-user.targetEOF

Nginx 配置

YOURHOSTNAME 替换为 Indico 实例的主机名(如 indico.yourdomain.com)。

代码语言:javascript
代码运行次数:0
运行
复制
bashcat > /etc/nginx/conf.d/indico.conf <<'EOF'server {  listen 80;  listen [::]:80;  server_name YOURHOSTNAME;  return 301 https://$server_name$request_uri;} server {  listen       *:443 ssl http2;  listen       [::]:443 ssl http2 default ipv6only=on;  server_name  YOURHOSTNAME;   ssl_certificate           /etc/ssl/indico/indico.crt;  ssl_certificate_key       /etc/ssl/indico/indico.key;  ssl_dhparam               /etc/ssl/indico/ffdhe2048;   ssl_session_timeout       1d;  ssl_session_cache         shared:SSL:10m;  ssl_session_tickets       off;  ssl_protocols             TLSv1.2 TLSv1.3;  ssl_ciphers               ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;  ssl_prefer_server_ciphers off;   access_log            /opt/indico/log/nginx/access.log combined;  error_log             /opt/indico/log/nginx/error.log;   if ($host != $server_name) {    rewrite ^/(.*) https://$server_name/$1 permanent;  }   location /.xsf/indico/ {    internal;    alias /opt/indico/;  }   location ~ ^/(images|fonts)(.*)/(.+?)(__v[0-9a-f]+)?\.([^.]+)$ {    alias /opt/indico/web/static/$1$2/$3.$5;    access_log off;  }   location ~ ^/(css|dist|images|fonts)/(.*)$ {    alias /opt/indico/web/static/$1/$2;    access_log off;  }   location /robots.txt {    alias /opt/indico/web/static/robots.txt;    access_log off;  }   location / {    root /var/empty/nginx;    include /etc/nginx/uwsgi_params;    uwsgi_pass unix:/opt/indico/web/uwsgi.sock;    uwsgi_param UWSGI_SCHEME $scheme;    uwsgi_read_timeout 15m;    uwsgi_buffers 32 32k;    uwsgi_busy_buffers_size 128k;    uwsgi_hide_header X-Sendfile;    client_max_body_size 1G;  }}EOF

4. 创建 TLS 证书

创建证书目录

代码语言:javascript
代码运行次数:0
运行
复制
bashmkdir /etc/ssl/indicochown root:root /etc/ssl/indico/chmod 700 /etc/ssl/indico

生成 DH 参数

代码语言:javascript
代码运行次数:0
运行
复制
bashcat > /etc/ssl/indico/ffdhe2048 <<'EOF'-----BEGIN DH PARAMETERS-----MIIBCAKCAQEA//////////+t+FRYortKmq/cViAnPTzx2LnFg84tNpWp4TZBFGQz+8yTnc4kmz75fS/jY2MMddj2gbICrsRhetPfHtXV/WVhJDP1H18GbtCFY2VVPe0a87VXE15/V8k1mE8McODmi3fipona8+/och3xWKE2rec1MKzKT0g6eXq8CrGCsyT7YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi7MA0BM0oNC9hkXL+nOmFg/+OTxIy7vKBg8P+OxtMb61zO7X8vC7CIAXFjvGDfRaDssbzSibBsu/6iGtCOGEoXJf//////////wIBAg==-----END DH PARAMETERS-----EOF

生成自签名证书(测试用)

YOURHOSTNAME 替换为实际主机名。

代码语言:javascript
代码运行次数:0
运行
复制
bashopenssl req -x509 -nodes -newkey rsa:4096 -subj /CN=YOURHOSTNAME -keyout /etc/ssl/indico/indico.key -out /etc/ssl/indico/indico.crt

注意:自签名证书仅适用于测试,生产环境应使用商业证书或 Let's Encrypt 免费证书。

5. 安装 Indico

Celery systemd 服务

代码语言:javascript
代码运行次数:0
运行
复制
bashcat > /etc/systemd/system/indico-celery.service <<'EOF'[Unit]Description=Indico CeleryAfter=network.target [Service]ExecStart=/opt/indico/.venv/bin/indico celery worker -BRestart=alwaysSyslogIdentifier=indico-celeryUser=indicoGroup=www-dataUMask=0027Type=simpleKillMode=mixedTimeoutStopSec=300 [Install]WantedBy=multi-user.targetEOF systemctl daemon-reload

创建 Indico 用户

代码语言:javascript
代码运行次数:0
运行
复制
bashuseradd -rm -g www-data -d /opt/indico -s /bin/bash indicosu - indico

安装 pyenv

代码语言:javascript
代码运行次数:0
运行
复制
bashcurl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash cat >> ~/.bashrc <<'EOF'export PATH="/opt/indico/.pyenv/bin:$PATH"eval "$(pyenv init --path)"eval "$(pyenv init -)"EOF source ~/.bashrc

安装 Python 3.12

代码语言:javascript
代码运行次数:0
运行
复制
bashpyenv install 3.12pyenv global 3.12

安装 Indico

代码语言:javascript
代码运行次数:0
运行
复制
bashpython -m venv --upgrade-deps --prompt indico ~/.venvsource ~/.venv/bin/activateecho 'source ~/.venv/bin/activate' >> ~/.bashrcpip install setuptools wheelpip install uwsgipip install indico

6. 配置 Indico

运行配置向导,根据提示设置 Indico URL(使用 https://YOURHOSTNAME)、邮箱和 SMTP 服务器等信息。

代码语言:javascript
代码运行次数:0
运行
复制
bashindico setup wizard

设置目录结构和权限

代码语言:javascript
代码运行次数:0
运行
复制
bashmkdir ~/log/nginxchmod go-rwx ~/* ~/.[^.]*chmod 710 ~/ ~/archive ~/cache ~/log ~/tmpchmod 750 ~/web ~/.venvchmod g+w ~/log/nginxecho -e "\nSTATIC_FILE_METHOD = ('xaccelredirect', {'/opt/indico': '/.xsf/indico'})" >> ~/etc/indico.conf

7. 创建数据库模式

代码语言:javascript
代码运行次数:0
运行
复制
bashindico db prepareexit

8. 启动 Indico

代码语言:javascript
代码运行次数:0
运行
复制
bashsystemctl restart nginx.service indico-celery.service indico-uwsgi.servicesystemctl enable nginx.service postgresql.service redis-server.service indico-celery.service indico-uwsgi.service

9. 可选:获取 Let's Encrypt 证书

安装 Certbot

代码语言:javascript
代码运行次数:0
运行
复制
bashapt install -y certbot python3-certbot-nginxcertbot --nginx --no-redirect --staple-ocsp -d YOURHOSTNAMErm -f /etc/ssl/indico/indico.*systemctl start certbot.timersystemctl enable certbot.timer

10. 创建 Indico 用户

访问 https://YOURHOSTNAME,按照页面提示创建初始用户。

11. 安装 TeXLive

参考 PDF 生成指南 配置 Indico 的 PDF 文档生成功能。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 上介绍篇
  • Indico 简单介绍
    • 一、项目概述
    • 二、核心功能
    • 三、技术特性
    • 四、适用场景
    • 五、学习资源 包含安装指南、配置教程、开发者手册等结构化内容。
    • 六、优势总结
  • 下,安装篇
  • Indico 安装指南(基于 Nginx)
    • 注意事项
    • 1. 安装软件包
      • 安装依赖
      • 特定发行版依赖
      • 启动服务
    • 2. 创建数据库
    • 3. 配置 uWSGI 和 Nginx
      • uWSGI 配置
      • uWSGI systemd 服务
      • Nginx 配置
    • 4. 创建 TLS 证书
      • 创建证书目录
      • 生成 DH 参数
      • 生成自签名证书(测试用)
    • 5. 安装 Indico
      • Celery systemd 服务
      • 创建 Indico 用户
      • 安装 pyenv
      • 安装 Python 3.12
      • 安装 Indico
    • 6. 配置 Indico
      • 设置目录结构和权限
    • 7. 创建数据库模式
    • 8. 启动 Indico
    • 9. 可选:获取 Let's Encrypt 证书
      • 安装 Certbot
    • 10. 创建 Indico 用户
    • 11. 安装 TeXLive
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档