GNU General Public License v3.0

项目介绍

alfio-event/alf.io 是一个托管在 GitHub 上的开源项目,主要使用 Java 编写,采用 GNU General Public License v3.0 许可证,目前获得 1.6k 个 Star、402 次 Fork。

仓库全名
alfio-event/alf.io
开源许可证
GNU General Public License v3.0
Star 数
1.6k
Fork 数
402
未关闭 Issue
201

README 摘要

alf.io ======== The open source ticket reservation system. Alf.io ([[ˈalfjo]](https://en.m.wikipedia.org/wiki/Alfio)) is a free and open source event attendance management system, developed for event organizers who care about privacy, security and fair pricing policy for their customers. Table of Contents Prerequisites Spring profiles Run in development mode Contributing to alf.io Check dependencies to update…

完整内容见 GitHub 原始 README 或本页 。

常见问题

alf.io 用什么语言开发?

主要使用 Java 编写,采用 GNU General Public License v3.0 许可证,目前有 1.6k 个 Star。

alf.io 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 alf.io 的源码?

可以直接克隆仓库:git clone https://github.com/alfio-event/alf.io.git,默认分支为 main;安装与运行步骤见仓库 README。

alf.io 最近还在维护吗?

仓库最近一次更新为 5 天前,当前有 201 个未关闭 Issue;Star 数为 1.6k,可作为社区活跃度的参考。

简要分析

热度分
2485
价值分
1093
活跃状态
活跃

语言占比

CSS
HTML
Java
JavaScript
MAXScript
PLpgSQL
Procfile
SCSS
Shell
TypeScript

Release

README

alf.io

The open source ticket reservation system.

Alf.io ([ˈalfjo]) is a free and open source event attendance management system, developed for event organizers who care about privacy, security and fair pricing policy for their customers.

Build Status Security Rating Reliability Rating codecov Financial Contributors on Open Collective Docker Hub Pulls Open Source Helpers

Table of Contents
  1. Prerequisites
  2. Spring profiles
  3. Run in development mode
  4. Contributing to alf.io
  5. Check dependencies to update
  6. Running Docker containers
  7. Contributors
  8. Sponsors

Prerequisites

You should have installed Java version 25 (e.g. Oracle’s, OpenJDK, or any other distribution) to build and run alf.io. Please note that for the build process the JDK is required.

Postgresql version 10 or later.

Additionally, the database user that creates and uses the tables should not be a “SUPERUSER”, or else the row security policy checks will not be applied.

[!NOTE] As the work for Alf.io v2 has started, this branch may contain unstable and untested code. If you want to build and deploy alf.io by yourself, please start from a Released version.

Spring profiles

There are the following spring profiles

  • dev: enable dev mode
  • spring-boot: added when launched by spring-boot
  • demo: enable demo mode, the accounts for the admin will be created on the fly
  • disable-jobs: disable jobs
  • jdbc-session: persist the user session in the database

Run in development mode

Gradle Build

This build includes a copy of the Gradle wrapper. You don’t have to have Gradle installed on your system to build the project. Simply execute the wrapper along with the appropriate task, for example

./gradlew clean
Running with multiple profiles

You must specify a project property at the command line, such as

./gradlew -Pprofile=dev :bootRun

The local “bootRun” task has the following prerequisites:

  • a PostgreSQL (version 10 or later) instance up and running on localhost:5432
  • a postgres user having a password: password
  • a database named alfio
docker run -d --name alfio-db -p 5432:5432 -e POSTGRES_PASSWORD=password -e POSTGRES_DB=alfio --restart unless-stopped postgres 

once started, alf.io will create all the required tables in the database, and be available at http://localhost:8080/admin. You can log in using the default Username admin and the password which was printed on the console.

You can get a list of all supported Gradle tasks by running

./gradlew tasks --all

You can configure additional System properties (if you need them) by creating the following file and putting into it one property per line:

vi custom.jvmargs

Please be aware that since this file could contain sensitive information (such as Google Maps private API key) it will be automatically ignored by git.

For debug

Add a new line with: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 in custom.jvmargs

Contributing to alf.io

Before contributing, please read CONTRIBUTING.md: it describes the process to follow, from picking an issue to getting a pull request merged.

Importing the Gradle project into IntelliJ and Eclipse both work.

Notes:

  • this project uses Project Lombok. You will need to install the corresponding Lombok plugin for integration into your IDE.
  • this project uses TestContainers to run integration tests against a real PostgreSQL database. Please make sure that your configuration meets their requirements
How to configure TestContainers with Podman (Fedora 34)

As TestContainers expect the docker socket for managing the containers, you will need to do the following (see original issue for details):

Define the 2 env. variable:

export TESTCONTAINERS_RYUK_DISABLED=true
export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock

And run in another console:

podman system service -t 0

To be noted:

  • for unknown reason, the first time podman download the missing images, testcontainers will fail. Run another time and it will work.
  • in theory, with systemd+socket activation the service should start automatically, but currently I was not able to make it works.

Check dependencies to update

./gradlew dependencyUpdates

Running Docker containers

Container images are available on https://hub.docker.com/r/alfio/alf.io/tags.

alf.io can also be run with Docker Compose (development mode):

docker-compose up

Running alf.io in production using Docker compose is not officially supported. However, if you decide to do so, then you need to make a couple of changes:

  • Uncomment the alfio service in the docker-compose.yml file
  • Check the user and password for the services in the .env file
  • Handle SSL termination (e.g. with something like tutum/haproxy) 443 -> 8080

Test alf.io application

  • Check alfio logs: docker logs alfio
  • Copy admin password in a secure place
  • Get IP of your docker container: (only on Mac/Windows, on Linux the proxy will bind directly on your public IP)
    • boot2docker IP on Mac/Windows
  • Open browser at: https://DOCKER_IP/admin
  • Insert user admin and the password you just copied

Generate a new version of the alfio/alf.io docker image

Build application and Dockerfile
./gradlew distribution

Alternatively, you can use Docker (experimental):

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

Please note that at the moment the command above performs the build without running the automated tests. Use it at your own risk.

Create docker image:
docker build -t alfio/alf.io ./build/dockerize

About the included AppleWWDRCAG4.cer

The certificate at src/main/resources/alfio/certificates/AppleWWDRCAG4.cer has been imported for https://github.com/ryantenney/passkit4j#usage functionality. It will expire the 2030-10-12 (YYYY-MM-DD - as of https://www.apple.com/certificateauthority/).

Contributors

Code Contributors

This project exists thanks to all the people who contribute.

Translation Contributors (POEditor)

A big “Thank you” goes also to our translators, who help us on POEditor:

(we show the complete name/profile only if we have received explicit consent to do so)

Language Name Github Twitter
Dutch (nl) Matthjis
Turkish (tr) Dilek
Spanish (es) Mario Varona @mvarona @MarioVarona
Spanish (es) Sergi Almar @salmar @sergialmar
Spanish (es) Jeremias
Bulgarian (bg) Martin Zhekov @Martin03 @MartensZone
Portuguese (pt) Hugo
Swedish (sv) Johan
Romanian (ro) Daniel
Polish (pl) Pawel
Danish (da) Sune

translations completed but not yet integrated (WIP)

Language Name Github Twitter
Japanese (jp) Martin
Chinese (Taiwan) (cn_TW) Yu-cheng, Lin

Sponsors

This project is sponsored by:

Swicket

Powered by BrowserStack Open Source program

Exteso   Starplane   Amici del Ticino   Netlify

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

   

评论

暂无评论