mirror of
https://github.com/pawelmalak/flame.git
synced 2025-07-19 03:29:37 +02:00
commit
fc219f704c
8 changed files with 66 additions and 25 deletions
2
.env
2
.env
|
@ -1,3 +1,3 @@
|
||||||
PORT=5005
|
PORT=5005
|
||||||
NODE_ENV=development
|
NODE_ENV=development
|
||||||
VERSION=1.6.8
|
VERSION=1.6.9
|
|
@ -1,3 +1,6 @@
|
||||||
|
### v1.6.9 (2021-10-09)
|
||||||
|
- Added option for remote docker host ([#97](https://github.com/pawelmalak/flame/issues/97))
|
||||||
|
|
||||||
### v1.6.8 (2021-10-05)
|
### v1.6.8 (2021-10-05)
|
||||||
- Implemented migration system for database
|
- Implemented migration system for database
|
||||||
|
|
||||||
|
|
39
README.md
39
README.md
|
@ -150,20 +150,6 @@ To use search bar you need to type your search query with selected prefix. For e
|
||||||
2. Get lat/long for your location. You can get them from [latlong.net](https://www.latlong.net/convert-address-to-lat-long.html).
|
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.
|
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
|
### Docker integration
|
||||||
|
|
||||||
In order to use the Docker integration, each container must have the following labels:
|
In order to use the Docker integration, each container must have the following labels:
|
||||||
|
@ -177,6 +163,8 @@ labels:
|
||||||
# - flame.icon=custom to make changes in app. ie: custom icon upload
|
# - flame.icon=custom to make changes in app. ie: custom icon upload
|
||||||
```
|
```
|
||||||
|
|
||||||
|
And you must have activated the Docker sync option in the settings panel.
|
||||||
|
|
||||||
You can set up different apps in the same label adding `;` between each one.
|
You can set up different apps in the same label adding `;` between each one.
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
|
@ -187,7 +175,28 @@ labels:
|
||||||
- flame.icon=icon-name1;icon-name2
|
- flame.icon=icon-name1;icon-name2
|
||||||
```
|
```
|
||||||
|
|
||||||
And you must have activated the Docker sync option in the settings panel.
|
If you want to use a remote docker host follow this instructions in the host:
|
||||||
|
|
||||||
|
- Open the file `/lib/systemd/system/docker.service`, search for `ExecStart` and edit the value
|
||||||
|
|
||||||
|
```text
|
||||||
|
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:${PORT} -H unix:///var/run/docker.sock
|
||||||
|
```
|
||||||
|
|
||||||
|
>The above command will bind the docker engine server to the Unix socket as well as TCP port of your choice. “0.0.0.0” means docker-engine accepts connections from all IP addresses.
|
||||||
|
|
||||||
|
- Restart the daemon and Docker service
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo service docker restart
|
||||||
|
```
|
||||||
|
|
||||||
|
- Test if it is working
|
||||||
|
|
||||||
|
```shell
|
||||||
|
curl http://${IP}:${PORT}/version
|
||||||
|
```
|
||||||
|
|
||||||
### Kubernetes integration
|
### Kubernetes integration
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
REACT_APP_VERSION=1.6.8
|
REACT_APP_VERSION=1.6.9
|
|
@ -52,6 +52,7 @@ const OtherSettings = (props: ComponentProps): JSX.Element => {
|
||||||
bookmarksSameTab: 0,
|
bookmarksSameTab: 0,
|
||||||
searchSameTab: 0,
|
searchSameTab: 0,
|
||||||
dockerApps: 1,
|
dockerApps: 1,
|
||||||
|
dockerHost: 'localhost',
|
||||||
kubernetesApps: 1,
|
kubernetesApps: 1,
|
||||||
unpinStoppedApps: 1,
|
unpinStoppedApps: 1,
|
||||||
});
|
});
|
||||||
|
@ -72,6 +73,7 @@ const OtherSettings = (props: ComponentProps): JSX.Element => {
|
||||||
bookmarksSameTab: searchConfig('bookmarksSameTab', 0),
|
bookmarksSameTab: searchConfig('bookmarksSameTab', 0),
|
||||||
searchSameTab: searchConfig('searchSameTab', 0),
|
searchSameTab: searchConfig('searchSameTab', 0),
|
||||||
dockerApps: searchConfig('dockerApps', 0),
|
dockerApps: searchConfig('dockerApps', 0),
|
||||||
|
dockerHost: searchConfig('dockerHost', 'localhost'),
|
||||||
kubernetesApps: searchConfig('kubernetesApps', 0),
|
kubernetesApps: searchConfig('kubernetesApps', 0),
|
||||||
unpinStoppedApps: searchConfig('unpinStoppedApps', 0),
|
unpinStoppedApps: searchConfig('unpinStoppedApps', 0),
|
||||||
});
|
});
|
||||||
|
@ -275,6 +277,17 @@ const OtherSettings = (props: ComponentProps): JSX.Element => {
|
||||||
|
|
||||||
{/* DOCKER SETTINGS */}
|
{/* DOCKER SETTINGS */}
|
||||||
<h2 className={classes.SettingsSection}>Docker</h2>
|
<h2 className={classes.SettingsSection}>Docker</h2>
|
||||||
|
<InputGroup>
|
||||||
|
<label htmlFor="dockerHost">Docker Host</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="dockerHost"
|
||||||
|
name="dockerHost"
|
||||||
|
placeholder="dockerHost:port"
|
||||||
|
value={formData.dockerHost}
|
||||||
|
onChange={(e) => inputChangeHandler(e)}
|
||||||
|
/>
|
||||||
|
</InputGroup>
|
||||||
<InputGroup>
|
<InputGroup>
|
||||||
<label htmlFor="dockerApps">Use Docker API</label>
|
<label htmlFor="dockerApps">Use Docker API</label>
|
||||||
<select
|
<select
|
||||||
|
|
|
@ -19,6 +19,7 @@ export interface SettingsForm {
|
||||||
bookmarksSameTab: number;
|
bookmarksSameTab: number;
|
||||||
searchSameTab: number;
|
searchSameTab: number;
|
||||||
dockerApps: number;
|
dockerApps: number;
|
||||||
|
dockerHost: string;
|
||||||
kubernetesApps: number;
|
kubernetesApps: number;
|
||||||
unpinStoppedApps: number;
|
unpinStoppedApps: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,16 +65,27 @@ exports.getApps = asyncWrapper(async (req, res, next) => {
|
||||||
if (useDockerApi && useDockerApi.value == 1) {
|
if (useDockerApi && useDockerApi.value == 1) {
|
||||||
let containers = null;
|
let containers = null;
|
||||||
|
|
||||||
|
const host = await Config.findOne({
|
||||||
|
where: { key: 'dockerHost' },
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let { data } = await axios.get(
|
if (host.value.includes('localhost')) {
|
||||||
'http://localhost/containers/json?{"status":["running"]}',
|
let { data } = await axios.get(
|
||||||
{
|
`http://${host.value}/containers/json?{"status":["running"]}`,
|
||||||
socketPath: '/var/run/docker.sock',
|
{
|
||||||
}
|
socketPath: '/var/run/docker.sock',
|
||||||
);
|
}
|
||||||
containers = data;
|
);
|
||||||
|
containers = data;
|
||||||
|
} else {
|
||||||
|
let { data } = await axios.get(
|
||||||
|
`http://${host.value}/containers/json?{"status":["running"]}`
|
||||||
|
);
|
||||||
|
containers = data;
|
||||||
|
}
|
||||||
} catch {
|
} catch {
|
||||||
logger.log("Can't connect to the docker socket", 'ERROR');
|
logger.log(`Can't connect to the docker api on ${host.value}`, 'ERROR');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (containers) {
|
if (containers) {
|
||||||
|
|
|
@ -68,6 +68,10 @@
|
||||||
"key": "dockerApps",
|
"key": "dockerApps",
|
||||||
"value": false
|
"value": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "dockerHost",
|
||||||
|
"value": "localhost"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "kubernetesApps",
|
"key": "kubernetesApps",
|
||||||
"value": false
|
"value": false
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue