ITADN
pawelmalak/flame · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

火焰

Homescreen screenshot

描述

Flame 是一个自托管的服务器起始页。其设计深受 SUI 的启发。Flame 的设置和使用都非常简单。借助内置编辑器,您可以快速搭建自己的应用程序中心——无需编辑文件。

功能

  • 📝 使用内置 GUI 编辑器直接在应用中创建、更新和删除您的应用程序和书签
  • 📌 将您喜爱的项目固定到主屏幕,以便快速轻松访问
  • 🔍 集成搜索栏,支持本地过滤、11 个网络搜索提供商以及添加自定义搜索
  • 🔑 身份验证系统,用于保护您的设置、应用程序和书签
  • 🔨 数十个选项,可根据您的需求自定义 Flame 界面,包括支持自定义 CSS、15 个内置颜色主题和自定义主题构建器
  • ☀️ 天气小部件,显示当前温度、云量覆盖率和动态天气状态
  • 🐳 Docker 集成,根据标签自动选择并添加应用程序

安装

使用 Docker(推荐)

Docker Hub 链接

docker pull pawelmalak/flame

# for ARM architecture (e.g. RaspberryPi)
docker pull pawelmalak/flame:multiarch

# installing specific version
docker pull pawelmalak/flame:2.0.0

部署

# run container
docker run -p 5005:5005 -v /path/to/data:/app/data -e PASSWORD=change_me pawelmalak/flame

构建镜像

# build image for amd64 only
docker build -t flame -f .docker/Dockerfile .

# build multiarch image for amd64, armv7 and arm64
# building failed multiple times with 2GB memory usage limit so you might want to increase it
docker buildx build \
  --platform linux/arm/v7,linux/arm64,linux/amd64 \
  -f .docker/Dockerfile.multiarch \
  -t flame:multiarch .

Docker-Compose

version: '3.6'

services:
  flame:
    image: pawelmalak/flame
    container_name: flame
    volumes:
      - /path/to/host/data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock # optional but required for Docker integration
    ports:
      - 5005:5005
    secrets:
      - password # optional but required for (1)
    environment:
      - PASSWORD=change_me
      - PASSWORD_FILE=/run/secrets/password # optional but required for (1)
    restart: unless-stopped

# optional but required for Docker secrets (1)
secrets:
  password:
    file: /path/to/secrets/password
Docker Secrets

所有环境变量都可以通过在变量值后附加 _FILE 来覆盖。例如,你可以使用 PASSWORD_FILE 来传递一个 docker secret,而不是使用 PASSWORD。如果同时设置了 PASSWORDPASSWORD_FILE,则 docker secret 将优先。

# ./secrets/flame_password
my_custom_secret_password_123

# ./docker-compose.yml
secrets:
  password:
    file: ./secrets/flame_password

Skaffold

# use skaffold
skaffold dev

不使用 Docker

请遵循 wiki 中的说明:不使用 Docker 安装

开发

技术

  • 后端
    • Node.js + Express
    • Sequelize ORM + SQLite
  • 前端
    • React
    • Redux
    • TypeScript
  • 部署
    • Docker
    • Kubernetes

创建开发环境

# clone repository
git clone https://github.com/pawelmalak/flame
cd flame

# run only once
npm run dev-init

# start backend and frontend development servers
npm run dev

截图

Apps screenshot

Bookmarks screenshot

Settings screenshot

Themes screenshot

用法

身份验证

访问 项目 wiki 以阅读更多关于身份验证的内容

搜索栏

搜索

默认搜索设置是搜索您所有的应用和书签。如果您想使用特定的搜索引擎进行搜索,您需要使用选定的前缀输入搜索查询。例如,要使用 google search 搜索 "what is docker",您会输入:/g what is docker

要查看支持的搜索引擎列表、快捷键以及有关搜索功能的更多信息,请访问 项目 wiki

设置天气模块

  1. Weather API 获取 API Key。

    免费计划允许每月 1M 次调用。Flame 每月进行的 API 调用少于 3K 次。

  2. 获取您所在位置的 lat/long。您可以从 latlong.net 获取它们。
  3. 输入并保存数据。天气小部件现在将更新,并且应该显示在 Home 页面上。

Docker 集成

为了使用 Docker 集成,每个容器必须具有以下标签:

labels:
  - flame.type=application # "app" works too
  - flame.name=My container
  - flame.url=https://example.com
  - flame.icon=icon-name # optional, default is "docker"
# - flame.icon=custom to make changes in app. ie: custom icon upload

必须启用“使用 Docker API”选项,此功能才能正常工作。您可以在 设置 > Docker 中找到该选项

您还可以在同一标签中设置不同的应用,并在每个应用之间添加 ;

labels:
  - flame.type=application
  - flame.name=First App;Second App
  - flame.url=https://example1.com;https://example2.com
  - flame.icon=icon-name1;icon-name2

如果您想使用远程 docker 主机,请在该主机上遵循以下说明:

  • 打开文件 /lib/systemd/system/docker.service,搜索 ExecStart 并编辑其值
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:${PORT} -H unix:///var/run/docker.sock

上述命令会将 docker 引擎服务器绑定到 Unix 套接字以及您选择的 TCP 端口。“0.0.0.0” 表示 docker-engine 接受来自所有 IP 地址的连接。

  • 重启守护进程和 Docker 服务
sudo systemctl daemon-reload
sudo service docker restart
  • 测试其是否正常工作
curl http://${IP}:${PORT}/version

Kubernetes 集成

若要使用 Kubernetes 集成,每个 ingress 必须具有以下 annotations:

metadata:
  annotations:
  - flame.pawelmalak/type=application # "app" works too
  - flame.pawelmalak/name=My container
  - flame.pawelmalak/url=https://example.com
  - flame.pawelmalak/icon=icon-name # optional, default is "kubernetes"

必须启用“使用 Kubernetes Ingress API”选项,此功能才能正常工作。您可以在 设置 > Docker 中找到该选项

导入 HTML 书签(实验性)

  • 要求
    • python3
    • pip 包:Pillow, beautifulsoup4
  • 运行脚本前请备份您的 db.sqlite
  • 已知问题:
    • 生成的图标有时不正确
pip3 install Pillow, beautifulsoup4

cd flame/.dev
python3 bookmarks_importer.py --bookmarks <path to bookmarks.html> --data <path to flame data folder>

自定义 CSS 和主题

参见项目 wiki 中的 Custom CSSCustom theme with CSS