perdian/flightlogFlightlog 是一款用于跟踪个人航班记录的工具,旨在解决现有航班记录平台(如 flugstatistik.de、Openflights.org)存在的UI过时、数据备份缺失、功能不足等问题。该工具采用现代简洁的UI设计,整合了传统平台的核心思路并进行优化,支持数据本地存储与备份,避免供应商锁定风险。
!首页截图
适用于需要跟踪个人航班记录、注重数据安全性与可备份性、对界面体验有现代需求的用户。尤其适合希望摆脱第三方平台依赖,自主管理航班数据的个人用户。
通过Docker Hub获取镜像并启动容器,是部署Flightlog最简便的方式:
bashdocker run -p 8080:8080 perdian/flightlog:latest
建议将
latest替换为最新版本,版本信息可在GitHub Releases查询。
容器启动后,应用可通过以下地址访问:
http://localhost:8080/flightlog/
默认使用嵌入式H2数据库,数据存储于容器内/var/flightlog/database/目录。为持久化数据,需将该目录挂载至主机:
bashdocker run -v /path/to/host/directory:/var/flightlog/database -p 8080:8080 perdian/flightlog
支持H2(默认)、PostgreSQL、MySQL等数据库,通过环境变量配置:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
FLIGHTLOG_DB_URL | jdbc:h2:${FLIGHTLOG_DB_DIRECTORY:~/.flightlog/}/flightlogdb | 数据库JDBC连接URL |
FLIGHTLOG_DB_DRIVER_CLASS_NAME | org.h2.Driver | JDBC驱动类名 |
FLIGHTLOG_DB_USERNAME | sa | 数据库用户名 |
FLIGHTLOG_DB_PASSWORD | 数据库密码 | |
FLIGHTLOG_DB_DIRECTORY | Docker环境:/var/flightlog/database/;JAR环境:~/.flightlog/ | H2数据库存储目录(仅当未自定义FLIGHTLOG_DB_URL时生效) |
默认无需认证,所有航班记录关联至默认用户***。可通过以下变量修改默认用户***:
bashFLIGHTLOG_AUTHENTICATION_FIXED_DEFAULT_EMAIL_ADDRESS=***
支持通过OAuth2提供商(如Google、通用OAuth2服务)认证,需设置:
bashFLIGHTLOG_AUTHENTICATION_TYPE=OAUTH2
Google OAuth2配置
需从Google Cloud控制台获取凭据,并设置:
FLIGHTLOG_AUTHENTICATION_OAUTH2_GOOGLE_CLIENT_ID:客户端IDFLIGHTLOG_AUTHENTICATION_OAUTH2_GOOGLE_CLIENT_SECRET:客户端密钥需在Google Cloud控制台配置重定向URL:
<应用根路径>/login/oauth2/code/flightlog
示例:若应用地址为http://localhost:8080/flightlog/,则重定向URL为http://localhost:8080/flightlog/login/oauth2/code/flightlog
通用OAuth2配置
支持其他OAuth2提供商(如Authentik),需配置以下变量:
| 环境变量 | 是否必填 | 默认值 | 示例 |
|---|---|---|---|
FLIGHTLOG_AUTHENTICATION_OAUTH2_CLIENT_ID | 是 | abc123 | |
FLIGHTLOG_AUTHENTICATION_OAUTH2_CLIENT_SECRET | 是 | xyz987 | |
FLIGHTLOG_AUTHENTICATION_OAUTH2_CLIENT_NAME | 否 | flightlog | |
FLIGHTLOG_AUTHENTICATION_OAUTH2_AUTHORIZATION_URI | 是 | http://localhost:9000/application/o/authorize/ | |
FLIGHTLOG_AUTHENTICATION_OAUTH2_TOKEN_URI | 是 | http://localhost:9000/application/o/token/ | |
FLIGHTLOG_AUTHENTICATION_OAUTH2_USER_INFO_URI | 是 | http://localhost:9000/application/o/userinfo/ | |
FLIGHTLOG_AUTHENTICATION_OAUTH2_USER_NAME_ATTRIBUTE | 否 | name | |
FLIGHTLOG_AUTHENTICATION_OAUTH2_JWK_SET_URI | 是 | http://localhost:9000/application/o/flightlog/jwks/ |
通过LDAP服务器认证,需设置:
bashFLIGHTLOG_AUTHENTICATION_TYPE=LDAP
并配置以下变量:
| 环境变量 | 是否必填 | 默认值 | 示例 |
|---|---|---|---|
FLIGHTLOG_AUTHENTICATION_LDAP_SERVER_URL | 是 | ldaps://example.com/ | |
FLIGHTLOG_AUTHENTICATION_LDAP_BASE_DN | 是 | dc=example,dc=com | |
FLIGHTLOG_AUTHENTICATION_LDAP_BIND_USER_DN | 否 | cn=bind-user,dc=example,dc=com | |
FLIGHTLOG_AUTHENTICATION_LDAP_BIND_USER_PASSWORD | 否 | CorrectHorseBatteryStaple | |
FLIGHTLOG_AUTHENTICATION_LDAP_USER_SEARCH_BASE | 否 | ou=users | |
FLIGHTLOG_AUTHENTICATION_LDAP_USER_SEARCH_FILTER | 否 | ||
FLIGHTLOG_AUTHENTICATION_LDAP_USER_DN_PATTERNS | 否 | uid={0},ou=users |
默认禁止新用户注册,可通过以下方式允许:
bashFLIGHTLOG_REGISTRATION_ALLOW_BY_DEFAULT=true
通过逗号分隔的用户名列表配置白名单:
bashFLIGHTLOG_REGISTRATION_USERNAMES_ALLOWLIST=user1,***
历史兼容变量
FLIGHTLOG_REGISTRATION_EMAIL_ADDRESSES_ALLOWLIST会与上述列表合并(仅当认证提供商返回的用户名为***时生效)。
| 环境变量 | 默认值 | 说明 |
|---|---|---|
FLIGHTLOG_SERVER_PORT | 8080 | 应用监听端口 |
FLIGHTLOG_SERVER_CONTEXT_PATH | /flightlog | 应用上下文路径(如默认路径下访问地址为http://localhost:8080/flightlog) |
FLIGHTLOG_SERVER_COOKIE_NAME | flightlog-session | 会话Cookie名称 |
Flightlog基于Spring Boot开发,可通过Maven构建:
bashgit clone [***] cd flightlog mvn clean package
构建后的JAR文件位于target/flightlog.jar。
bashjava -jar target/flightlog.jar
默认访问地址:http://localhost:8080/flightlog/,H2数据库存储于~/.flightlog/。
从源码构建Docker镜像:
bashmvn clean package docker build -t perdian/flightlog .
Flightlog的开发依赖以下开源项目:
Flightlog采用Apache License 2.0许可协议(<[***]>)。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务