Coder Social home page Coder Social logo

xxroboticsxx / flame Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pawelmalak/flame

0.0 1.0 0.0 1.8 MB

Flame is self-hosted startpage for your server. Easily manage your apps and bookmarks with built-in editors.

License: MIT License

HTML 0.37% TypeScript 69.55% CSS 7.35% JavaScript 22.46% Dockerfile 0.22% Shell 0.04%

flame's Introduction

Flame

JS Badge TS Badge Node Badge React Badge

Homescreen screenshot

Description

Flame is self-hosted startpage for your server. Its design is inspired (heavily) by SUI. Flame is very easy to setup and use. With built-in editors it allows you to setup your very own appliaction hub in no time - no file editing necessary.

Technology

  • Backend
    • Node.js + Express
    • Sequelize ORM + SQLite
  • Frontend
    • React
    • Redux
    • TypeScript
  • Deployment
    • Docker
    • Kubernetes

Development

# 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

Installation

With Docker (recommended)

Docker Hub

Building images

# build image for amd64 only
docker build -t flame .

# 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 Dockerfile.multiarch \
  -t flame:multiarch .

Deployment

# run container
docker run -p 5005:5005 -v /path/to/data:/app/data flame

Docker-Compose

version: '2.1'
services:
  flame:
    image: pawelmalak/flame:latest
    container_name: flame
    volumes:
      - <host_dir>:/app/data
      - /var/run/docker.sock:/var/run/docker.sock # optional but required for Docker integration feature
    ports:
      - 5005:5005
    restart: unless-stopped

Skaffold

# use skaffold
skaffold dev

Without Docker

Follow instructions from wiki: Installation without Docker

Functionality

  • Applications
    • Create, update, delete and organize applications using GUI
    • Pin your favourite apps to homescreen

Homescreen screenshot

  • Bookmarks
    • Create, update, delete and organize bookmarks and categories using GUI
    • Pin your favourite categories to homescreen

Homescreen screenshot

  • Weather

    • Get current temperature, cloud coverage and weather status with animated icons
  • Themes

    • Customize your page by choosing from 12 color themes

Homescreen screenshot

Usage

Search bar

Searching

To use search bar you need to type your search query with selected prefix. For example, to search for "what is docker" using google search you would type: /g what is docker.

You can change where to open search results (same/new tab) in the settings

Supported search engines

Name Prefix Search URL
Disroot /ds http://search.disroot.org/search?q=
DuckDuckGo /d https://duckduckgo.com/?q=
Google /g https://www.google.com/search?q=

Supported services

Name Prefix Search URL
IMDb /im https://www.imdb.com/find?q=
Reddit /r https://www.reddit.com/search?q=
Spotify /sp https://open.spotify.com/search/
The Movie Database /mv https://www.themoviedb.org/search?query=
Youtube /yt https://www.youtube.com/results?search_query=

Setting up weather module

  1. Obtain API Key from Weather API.

    Free plan allows for 1M calls per month. Flame is making less then 3K API calls per month.

  2. Get lat/long for your location. You can get them from latlong.net.
  3. Enter and save data. Weather widget will now update and should be visible on Home page.

Supported URL formats for applications and bookmarks

Rules

  • URL starts with http://
    • Format: http://www.domain.com, http://domain.com
    • Redirect: {dest}
  • URL starts with https://
    • Format: https://www.domain.com, https://domain.com
    • Redirect: https://{dest}
  • URL without protocol
    • Format: www.domain.com, domain.com, sub.domain.com, local, ip, ip:port
    • Redirect: http://{dest}

Docker integration

In order to use the Docker integration, each container must have the following labels:

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

You can set up different apps in the same label adding ; between each one.

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

And you must have activated the Docker sync option in the settings panel.

Kubernetes integration

In order to use the Kubernetes integration, each ingress must have the following 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"

And you must have activated the Kubernetes sync option in the settings panel.

Custom CSS

This is an experimental feature. Its behaviour might change in the future.

Follow instructions from wiki: Custom CSS

flame's People

Contributors

dependabot[bot] avatar itsbhanusharma avatar pawelmalak avatar pruizlezcano avatar rgriffogoes avatar samuel-martineau avatar strig avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.