Skip to content

Commit 7eb8ec2

Browse files
authored
Merge pull request #169 from pawelmalak/v2
Version 2.0.0
2 parents 08afaec + cb2326b commit 7eb8ec2

File tree

159 files changed

+3648
-2785
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

159 files changed

+3648
-2785
lines changed

Dockerfile .docker/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ WORKDIR /app
2525
EXPOSE 5005
2626

2727
ENV NODE_ENV=production
28+
ENV PASSWORD=flame_password
2829

2930
CMD ["node", "server.js"]
+11-1
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
11
FROM node:lts-alpine as build-front
2+
23
RUN apk add --no-cache curl
4+
35
WORKDIR /app
6+
47
COPY ./client .
8+
59
RUN npm install --production \
610
&& npm run build
711

812
FROM node:lts-alpine
13+
914
WORKDIR /app
15+
1016
RUN mkdir -p ./public
17+
1118
COPY --from=build-front /app/build/ ./public
1219

1320
COPY package*.json ./
21+
1422
RUN npm install
23+
1524
COPY . .
16-
CMD ["npm", "run", "skaffold"]
25+
26+
CMD ["npm", "run", "skaffold"]

Dockerfile.multiarch .docker/Dockerfile.multiarch

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
FROM node:14 as builder
1+
FROM node:14-alpine3.11 as builder
22

33
WORKDIR /app
44

55
COPY package*.json ./
66

7-
RUN npm install --production
7+
RUN apk --no-cache --virtual build-dependencies add python make g++ \
8+
&& npm install --production
89

910
COPY . .
1011

@@ -16,7 +17,7 @@ RUN mkdir -p ./public ./data \
1617
&& mv ./client/build/* ./public \
1718
&& rm -rf ./client
1819

19-
FROM node:14-alpine
20+
FROM node:14-alpine3.11
2021

2122
COPY --from=builder /app /app
2223

@@ -25,5 +26,6 @@ WORKDIR /app
2526
EXPOSE 5005
2627

2728
ENV NODE_ENV=production
29+
ENV PASSWORD=flame_password
2830

29-
CMD ["node", "server.js"]
31+
CMD ["node", "server.js"]

docker-compose.yml .docker/docker-compose.yml

+2
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@ services:
77
- /path/to/data:/app/data
88
ports:
99
- 5005:5005
10+
environment:
11+
- PASSWORD=flame_password
1012
restart: unless-stopped

.dockerignore

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
node_modules
2-
github
2+
.github
33
public
4-
build.sh
54
k8s
6-
skaffold.yaml
5+
skaffold.yaml

.env

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
PORT=5005
22
NODE_ENV=development
3-
VERSION=1.7.4
3+
VERSION=2.0.0
4+
PASSWORD=flame_password
5+
SECRET=e02eb43d69953658c6d07311d6313f2d4467672cb881f96b29368ba1f3f4da4b

.github/_apps.png

-90.3 KB
Binary file not shown.

.github/_bookmarks.png

-93.3 KB
Binary file not shown.

.github/_home.png

-75 KB
Binary file not shown.

.github/apps.png

104 KB
Loading

.github/bookmarks.png

105 KB
Loading

.github/home.png

101 KB
Loading

.github/settings.png

61.6 KB
Loading
File renamed without changes.

CHANGELOG.md

+22-7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
### v2.0.0 (2021-11-15)
2+
- Added authentication system:
3+
- Only logged in user can access settings ([#33](https://github.com/pawelmalak/flame/issues/33))
4+
- User can set which apps, categories and bookmarks should be available for guest users ([#45](https://github.com/pawelmalak/flame/issues/45))
5+
- Visit [project wiki](https://github.com/pawelmalak/flame/wiki/Authentication) to read more about this feature
6+
- Docker images will now be versioned ([#110](https://github.com/pawelmalak/flame/issues/110))
7+
- Icons can now be set via URL ([#138](https://github.com/pawelmalak/flame/issues/138))
8+
- Added current time to the header ([#157](https://github.com/pawelmalak/flame/issues/157))
9+
- Fixed bug where typing certain characters in the search bar would result in a blank page ([#158](https://github.com/pawelmalak/flame/issues/158))
10+
- Fixed bug with MDI icon name not being properly parsed if there was leading or trailing whitespace ([#164](https://github.com/pawelmalak/flame/issues/164))
11+
- Added new shortcut to clear search bar and focus on it ([#170](https://github.com/pawelmalak/flame/issues/170))
12+
- Added Wikipedia to search queries
13+
- Updated project wiki
14+
- Lots of changes and refactors under the hood to make future development easier
15+
116
### v1.7.4 (2021-11-08)
217
- Added option to set custom greetings and date ([#103](https://github.com/pawelmalak/flame/issues/103))
318
- Fallback to web search if local search has zero results ([#129](https://github.com/pawelmalak/flame/issues/129))
@@ -62,20 +77,20 @@
6277
- Fixed custom icons not updating ([#58](https://github.com/pawelmalak/flame/issues/58))
6378
- Added changelog file
6479

65-
### v1.6 (2021-07-17)
80+
### v1.6.0 (2021-07-17)
6681
- Added support for Steam URLs ([#62](https://github.com/pawelmalak/flame/issues/62))
6782
- Fixed bug with custom CSS not persisting ([#64](https://github.com/pawelmalak/flame/issues/64))
6883
- Added option to set default prefix for search bar ([#65](https://github.com/pawelmalak/flame/issues/65))
6984

70-
### v1.5 (2021-06-24)
85+
### v1.5.0 (2021-06-24)
7186
- Added ability to set custom CSS from settings ([#8](https://github.com/pawelmalak/flame/issues/8) and [#17](https://github.com/pawelmalak/flame/issues/17)) (experimental)
7287
- Added option to upload custom icons ([#12](https://github.com/pawelmalak/flame/issues/12))
7388
- Added option to open links in a new or the same tab ([#27](https://github.com/pawelmalak/flame/issues/27))
7489
- Added Search bar with support for 3 search engines and 4 services ([#44](https://github.com/pawelmalak/flame/issues/44))
7590
- Added option to hide applications and categories ([#48](https://github.com/pawelmalak/flame/issues/48))
7691
- Improved Logger
7792

78-
### v1.4 (2021-06-18)
93+
### v1.4.0 (2021-06-18)
7994
- Added more sorting options. User can now choose to sort apps and categories by name, creation time or to use custom order ([#13](https://github.com/pawelmalak/flame/issues/13))
8095
- Added reordering functionality. User can now set custom order for apps and categories from their 'edit tables' ([#13](https://github.com/pawelmalak/flame/issues/13))
8196
- Changed get all controllers for applications and categories to use case-insensitive ordering ([#36](https://github.com/pawelmalak/flame/issues/36))
@@ -84,14 +99,14 @@
8499
- Added update check on app start ([#38](https://github.com/pawelmalak/flame/issues/38))
85100
- Fixed bug with decimal input values in Safari browser ([#40](https://github.com/pawelmalak/flame/issues/40))
86101

87-
### v1.3 (2021-06-14)
102+
### v1.3.0 (2021-06-14)
88103
- Added reverse proxy support ([#23](https://github.com/pawelmalak/flame/issues/23) and [#24](https://github.com/pawelmalak/flame/issues/24))
89104
- Added support for more url formats ([#26](https://github.com/pawelmalak/flame/issues/26))
90105
- Added ability to hide main header ([#28](https://github.com/pawelmalak/flame/issues/28))
91106
- Fixed settings not being synchronized ([#29](https://github.com/pawelmalak/flame/issues/29))
92107
- Added auto-refresh for greeting and date ([#34](https://github.com/pawelmalak/flame/issues/34))
93108

94-
### v1.2 (2021-06-10)
109+
### v1.2.0 (2021-06-10)
95110
- Added simple check to the weather module settings to inform user if the api key is missing ([#2](https://github.com/pawelmalak/flame/issues/2))
96111
- Added ability to set optional icons to the bookmarks ([#7](https://github.com/pawelmalak/flame/issues/7))
97112
- Added option to pin new applications and categories to the homescreen by default ([#11](https://github.com/pawelmalak/flame/issues/11))
@@ -100,11 +115,11 @@
100115
- Added proxy for websocket instead of using hard coded host ([#18](https://github.com/pawelmalak/flame/issues/18))
101116
- Fixed bug with overwriting opened tabs ([#20](https://github.com/pawelmalak/flame/issues/20))
102117

103-
### v1.1 (2021-06-09)
118+
### v1.1.0 (2021-06-09)
104119
- Added custom favicon and changed page title ([#3](https://github.com/pawelmalak/flame/issues/3))
105120
- Added functionality to set custom page title ([#3](https://github.com/pawelmalak/flame/issues/3))
106121
- Changed messages on the homescreen when there are apps/bookmarks created but not pinned to the homescreen ([#4](https://github.com/pawelmalak/flame/issues/4))
107122
- Added 'warnings' to apps and bookmarks forms about supported url formats ([#5](https://github.com/pawelmalak/flame/issues/5))
108123

109-
### v1.0 (2021-06-08)
124+
### v1.0.0 (2021-06-08)
110125
Initial release of Flame - self-hosted startpage using Node.js on backend and React on frontend.

README.md

+61-58
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,19 @@
11
# Flame
22

3-
![Homescreen screenshot](./.github/_home.png)
3+
![Homescreen screenshot](.github/home.png)
44

55
## Description
66

7-
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 application hub in no time - no file editing necessary.
7+
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 application hub in no time - no file editing necessary.
88

9-
## Technology
10-
11-
- Backend
12-
- Node.js + Express
13-
- Sequelize ORM + SQLite
14-
- Frontend
15-
- React
16-
- Redux
17-
- TypeScript
18-
- Deployment
19-
- Docker
20-
- Kubernetes
21-
22-
## Development
23-
24-
```sh
25-
# clone repository
26-
git clone https://github.com/pawelmalak/flame
27-
cd flame
28-
29-
# run only once
30-
npm run dev-init
31-
32-
# start backend and frontend development servers
33-
npm run dev
34-
```
9+
## Functionality
10+
- 📝 Create, update, delete your applications and bookmarks directly from the app using built-in GUI editors
11+
- 📌 Pin your favourite items to the homescreen for quick and easy access
12+
- 🔍 Integrated search bar with local filtering, 11 web search providers and ability to add your own
13+
- 🔑 Authentication system to protect your settings, apps and bookmarks
14+
- 🔨 Dozens of option to customize Flame interface to your needs, including support for custom CSS and 15 built-in color themes
15+
- ☀️ Weather widget with current temperature, cloud coverage and animated weather status
16+
- 🐳 Docker integration to automatically pick and add apps based on their labels
3517

3618
## Installation
3719

@@ -40,34 +22,36 @@ npm run dev
4022
[Docker Hub link](https://hub.docker.com/r/pawelmalak/flame)
4123

4224
```sh
43-
docker pull pawelmalak/flame:latest
25+
docker pull pawelmalak/flame
4426

4527
# for ARM architecture (e.g. RaspberryPi)
4628
docker pull pawelmalak/flame:multiarch
29+
30+
# installing specific version
31+
docker pull pawelmalak/flame:2.0.0
4732
```
4833

34+
#### Deployment
35+
36+
```sh
37+
# run container
38+
docker run -p 5005:5005 -v /path/to/data:/app/data -e PASSWORD=flame_password flame
39+
```
4940

5041
#### Building images
5142

5243
```sh
5344
# build image for amd64 only
54-
docker build -t flame .
45+
docker build -t flame -f .docker/Dockerfile .
5546

5647
# build multiarch image for amd64, armv7 and arm64
5748
# building failed multiple times with 2GB memory usage limit so you might want to increase it
5849
docker buildx build \
5950
--platform linux/arm/v7,linux/arm64,linux/amd64 \
60-
-f Dockerfile.multiarch \
51+
-f .docker/Dockerfile.multiarch \
6152
-t flame:multiarch .
6253
```
6354

64-
#### Deployment
65-
66-
```sh
67-
# run container
68-
docker run -p 5005:5005 -v /path/to/data:/app/data flame
69-
```
70-
7155
#### Docker-Compose
7256

7357
```yaml
@@ -81,6 +65,8 @@ services:
8165
- /var/run/docker.sock:/var/run/docker.sock # optional but required for Docker integration feature
8266
ports:
8367
- 5005:5005
68+
environment:
69+
- PASSWORD=flame_password
8470
restart: unless-stopped
8571
```
8672
@@ -95,39 +81,56 @@ skaffold dev
9581

9682
Follow instructions from wiki: [Installation without Docker](https://github.com/pawelmalak/flame/wiki/Installation-without-docker)
9783

98-
## Functionality
84+
## Development
85+
86+
### Technology
87+
88+
- Backend
89+
- Node.js + Express
90+
- Sequelize ORM + SQLite
91+
- Frontend
92+
- React
93+
- Redux
94+
- TypeScript
95+
- Deployment
96+
- Docker
97+
- Kubernetes
98+
99+
### Creating dev environment
99100

100-
- Applications
101-
- Create, update, delete and organize applications using GUI
102-
- Pin your favourite apps to the homescreen
101+
```sh
102+
# clone repository
103+
git clone https://github.com/pawelmalak/flame
104+
cd flame
103105

104-
![Homescreen screenshot](./.github/_apps.png)
106+
# run only once
107+
npm run dev-init
105108

106-
- Bookmarks
107-
- Create, update, delete and organize bookmarks and categories using GUI
108-
- Pin your favourite categories to the homescreen
109-
- Import html bookmarks (experimental)
109+
# start backend and frontend development servers
110+
npm run dev
111+
```
110112

111-
![Homescreen screenshot](./.github/_bookmarks.png)
113+
## Screenshots
112114

113-
- Weather
115+
![Apps screenshot](.github/apps.png)
114116

115-
- Get current temperature, cloud coverage and weather status with animated icons
117+
![Bookmarks screenshot](.github/bookmarks.png)
116118

117-
- Themes
118-
- Customize your page by choosing from 15 color themes
119+
![Settings screenshot](.github/settings.png)
119120

120-
![Homescreen screenshot](./.github/_themes.png)
121+
![Themes screenshot](.github/themes.png)
121122

122123
## Usage
123124

125+
### Authentication
126+
127+
Visit [project wiki](https://github.com/pawelmalak/flame/wiki/Authentication) to read more about authentication
128+
124129
### Search bar
125130

126131
#### Searching
127132

128-
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`.
129-
130-
> You can change where to open search results (same/new tab) in the settings
133+
The default search setting is to search through all your apps and bookmarks. If you want to search using specific search engine, 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`.
131134

132135
For list of supported search engines, shortcuts and more about searching functionality visit [project wiki](https://github.com/pawelmalak/flame/wiki/Search-bar).
133136

@@ -151,7 +154,7 @@ labels:
151154
# - flame.icon=custom to make changes in app. ie: custom icon upload
152155
```
153156

154-
> "Use Docker API" option must be enabled for this to work. You can find it in Settings > Other > Docker section
157+
> "Use Docker API" option must be enabled for this to work. You can find it in Settings > Docker
155158
156159
You can also set up different apps in the same label adding `;` between each one.
157160

@@ -199,7 +202,7 @@ metadata:
199202
- flame.pawelmalak/icon=icon-name # optional, default is "kubernetes"
200203
```
201204

202-
> "Use Kubernetes Ingress API" option must be enabled for this to work. You can find it in Settings > Other > Kubernetes section
205+
> "Use Kubernetes Ingress API" option must be enabled for this to work. You can find it in Settings > Docker
203206

204207
### Import HTML Bookmarks (Experimental)
205208

api.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { join } = require('path');
22
const express = require('express');
3-
const errorHandler = require('./middleware/errorHandler');
3+
const { errorHandler } = require('./middleware');
44

55
const api = express();
66

@@ -21,6 +21,7 @@ api.use('/api/weather', require('./routes/weather'));
2121
api.use('/api/categories', require('./routes/category'));
2222
api.use('/api/bookmarks', require('./routes/bookmark'));
2323
api.use('/api/queries', require('./routes/queries'));
24+
api.use('/api/auth', require('./routes/auth'));
2425

2526
// Custom error handler
2627
api.use(errorHandler);

client/.env

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
REACT_APP_VERSION=1.7.4
1+
REACT_APP_VERSION=2.0.0

0 commit comments

Comments
 (0)