开源门票预订系统。
Alf.io是一款免费开源活动出席管理系统,专为关心客户隐私、安全和公平定价政策的活动组织者而开发。
由于 Alf.io v2的工作已经开始,该分支可能包含不稳定且未经测试的代码。如果您想自己构建和部署 alf.io,我们强烈建议您使用2.0-M4-maintenance分支,因为它包含生产就绪的代码。
您应该安装 Java 版本17(例如Oracle、OpenJDK或任何其他发行版)来构建和运行 alf.io。请注意,构建过程需要 JDK。
Postgresql 版本 10 或更高版本。
此外,创建和使用表的数据库用户不应该是“SUPERUSER”,否则将不会应用行安全策略检查。
此构建包含 Gradle 包装器的副本。您不必在系统上安装 Gradle 来构建项目。例如,只需执行包装器以及适当的任务
./gradlew clean
您必须在命令行指定项目属性,例如
./gradlew -Pprofile=dev :bootRun
本地“bootRun”任务具有以下先决条件:
- 在 localhost:5432 上启动并运行的 PostgreSQL(版本 10 或更高版本)实例
- 具有密码的postgres用户: password
- 名为alfio的数据库
启动后,alf.io 将在数据库中创建所有必需的表,并可通过http://localhost:8080/admin访问。您可以使用默认用户名admin和控制台上打印的密码登录。
支持以下配置文件
dev
dev-pgsql
docker-test
您可以通过运行获取所有支持的 Gradle 任务的列表
./gradlew tasks --all
您可以通过创建以下文件并在其中每行放入一个属性来配置其他系统属性(如果需要):
vi custom.jvmargs
请注意,由于此文件可能包含敏感信息(例如 Google 地图私有 API 密钥),因此 git 将自动忽略它。
添加新行:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
在 custom.jvmargs 中
将 Gradle 项目导入 Intellij 和 Eclipse 都可以。
注意事项:
- 该项目使用Project Lombok。您需要安装相应的 Lombok 插件才能集成到您的 IDE 中。
- 该项目使用TestContainers针对真实的 PostgreSQL 数据库运行集成测试。请确保您的配置满足他们的要求
如何使用 Podman 配置 TestContainers (Fedora 34)
由于 TestContainers 期望使用 docker 套接字来管理容器,因此您需要执行以下操作(有关详细信息,请参阅原始问题):
定义 2 环境。多变的:
export TESTCONTAINERS_RYUK_DISABLED=true
export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock
并在另一个控制台中运行:
podman system service -t 0
需要注意的是:
- 由于未知原因,podman 第一次下载丢失的镜像时,testcontainers 将失败。再运行一次就可以了。
- 理论上,通过 systemd+socket 激活,服务应该自动启动,但目前我无法使其工作。
./gradlew dependencyUpdates
容器镜像可在https://hub.docker.com/r/alfio/alf.io/tags上获取。
alf.io 也可以使用 Docker Compose 运行(实验性):
docker-compose up
官方不支持使用 Docker compose 在生产环境中运行 alf.io。但是,如果您决定这样做,那么您需要进行一些更改:
- 添加端口映射
8443
- 处理 SSL 终止(例如使用类似的东西
tutum/haproxy
) - 删除环境
SPRING_PROFILES_ACTIVE: dev
变量
- 检查alfio日志:
docker logs alfio
- 将管理员密码复制到安全的地方
- 获取您的 docker 容器的 IP:(仅在 Mac/Windows 上,在 Linux 上,代理将直接绑定到您的公共 IP)
boot2docker IP
在 Mac/Windows 上
- 打开浏览器:
https://DOCKER_IP/admin
- 输入用户admin和刚刚复制的密码
./gradlew distribution
或者,您可以使用 Docker(实验性):
docker run --rm -u gradle -v "$PWD":/home/gradle/project -w /home/gradle/project gradle:7.0.0-jdk11 gradle --no-daemon distribution -x test
请注意,目前上面的命令执行构建而不运行自动化测试。需要您自担风险使用它。
docker build -t alfio/alf.io ./build/dockerize
src/main/resources/alfio/certificates/AppleWWDRCAG4.cer 处的证书已导入https://github.com/ryantenney/passkit4j#usage功能。该证书将于 2030 年 10 月 12 日(YYYY-MM-DD - 自https://www.apple.com/certificateauthority/起)到期。
- dev:启用开发模式
- spring-boot:由spring-boot启动时添加
- demo:启用演示模式,管理员帐户将即时创建
- 禁用作业:禁用作业
还要向我们的翻译人员表示深深的“感谢”,他们在POEditor上为我们提供了帮助:
(只有在获得明确同意的情况下,我们才会显示完整的姓名/个人资料)
语言 | 姓名 | 吉图布 | 推特 |
---|---|---|---|
荷兰语 (nl) | 马特吉斯 | ||
土耳其语 (tr) | 迪莱克 | ||
西班牙语(西班牙文) | 马里奥·瓦罗纳 | @姆瓦罗纳 | @马里奥瓦罗纳 |
西班牙语(西班牙文) | 塞尔吉·阿尔玛 | @萨尔玛 | @sergialmar |
西班牙语(西班牙文) | 杰里米亚斯 | ||
保加利亚语 (bg) | 马丁·哲科夫 | @马丁03 | @MartensZone |
葡萄牙语(点) | 雨果 | ||
瑞典语 (sv) | 约翰 | ||
罗马尼亚语 (ro) | 丹尼尔 | ||
波兰语(pl) | 帕维尔 | ||
丹麦语 (da) | 苏内 |
翻译已完成但尚未整合(WIP)
语言 | 姓名 | 吉图布 | 推特 |
---|---|---|---|
日语 (jp) | 马丁 | ||
中文(台湾)(cn_TW) | 林玉成 |
该项目由以下机构赞助:
成为财务贡献者并帮助我们维持我们的社区。[贡献]
与您的组织一起支持该项目。您的徽标将显示在此处,并带有指向您网站的链接。[贡献]