2021-06-07 14:40:51 +03:00
# Flame
2021-06-11 01:09:25 +03:00
[![JS Badge ](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black )](https://shields.io/)
[![TS Badge ](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white )](https://shields.io/)
2021-06-14 13:13:38 +03:00
[![Node Badge ](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white )](https://shields.io/)
2021-06-11 01:09:25 +03:00
[![React Badge ](https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB )](https://shields.io/)
2021-06-08 13:51:50 +03:00
![Homescreen screenshot ](./github/_home.png )
2021-06-07 14:40:51 +03:00
## Description
2021-06-18 15:12:17 +03:00
Flame is self-hosted startpage for your server. Its design is inspired (heavily) by [SUI ](https://github.com/jeroenpardon/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.
2021-06-07 14:40:51 +03:00
## Technology
- Backend
- Node.js + Express
- Sequelize ORM + SQLite
- Frontend
2021-06-11 01:09:25 +03:00
- React
2021-06-07 14:40:51 +03:00
- Redux
- TypeScript
- Deployment
- Docker
## Development
```sh
2021-06-18 15:12:17 +03:00
# clone repository
2021-06-07 14:40:51 +03:00
git clone https://github.com/pawelmalak/flame
cd flame
# run only once
2021-06-08 13:51:50 +03:00
npm run dev-init
2021-06-07 14:40:51 +03:00
# start backend and frontend development servers
npm run dev
```
2021-06-21 14:59:17 +03:00
## Installation
### With Docker (recommended)
#### Building images
2021-06-07 14:40:51 +03:00
```sh
2021-06-18 15:12:17 +03:00
# build image for amd64 only
2021-06-07 14:40:51 +03:00
docker build -t flame .
2021-06-18 15:12:17 +03:00
# 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 .
```
2021-06-21 14:59:17 +03:00
#### Deployment
2021-06-18 15:12:17 +03:00
```sh
2021-06-07 14:40:51 +03:00
# run container
2021-06-18 15:12:17 +03:00
docker run -p 5005:5005 -v /path/to/data:/app/data flame
2021-06-07 14:40:51 +03:00
```
2021-06-21 14:59:17 +03:00
### Without Docker
Follow instructions from wiki: [Installation without Docker ](https://github.com/pawelmalak/flame/wiki/Installation-without-docker )
2021-06-07 14:40:51 +03:00
## Functionality
2021-06-08 13:51:50 +03:00
- Applications
2021-06-21 14:59:17 +03:00
- Create, update, delete and organize applications using GUI
2021-06-08 13:51:50 +03:00
- Pin your favourite apps to homescreen
![Homescreen screenshot ](./github/_apps.png )
- Bookmarks
2021-06-21 14:59:17 +03:00
- Create, update, delete and organize bookmarks and categories using GUI
2021-06-08 13:51:50 +03:00
- Pin your favourite categories to homescreen
![Homescreen screenshot ](./github/_bookmarks.png )
- Weather
- Get current temperature, cloud coverage and weather status with animated icons
2021-06-21 14:59:17 +03:00
2021-06-08 13:51:50 +03:00
- Themes
- Customize your page by choosing from 12 color themes
2021-06-11 16:33:06 +03:00
![Homescreen screenshot ](./github/_themes.png )
## Usage
2021-06-21 14:59:17 +03:00
### Setting up weather module
1. Obtain API Key from [Weather API ](https://www.weatherapi.com/pricing.aspx ).
> 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 ](https://www.latlong.net/convert-address-to-lat-long.html ).
3. Enter and save data. Weather widget will now update and should be visible on Home page.
2021-06-13 02:06:42 +03:00
### Supported URL formats for applications and bookmarks
2021-06-11 16:33:06 +03:00
#### 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`
2021-06-18 15:12:17 +03:00
- Redirect: `http://{dest}`
## Support
If you want to support development of Flame and my upcoming self-hosted and open source projects you can use the following link:
[![PayPal Badge ](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white )](https://www.paypal.com/paypalme/pawelmalak)