Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of github.com:FlowFuse/flowfuse into docs-docker-…
Browse files Browse the repository at this point in the history
…instal-refactor
ppawlowski committed Oct 21, 2024
2 parents 9872107 + 210bb21 commit ae68a1d
Showing 62 changed files with 2,831 additions and 819 deletions.
2 changes: 0 additions & 2 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -253,8 +253,6 @@
"frontend/src/components/tables/cells/TeamTypeCell.vue",
"frontend/src/components/tables/cells/UserCell.vue",
"frontend/src/components/tables/cells/UserRoleCell.vue",
"frontend/src/pages/application/components/ExportProjectComponents.vue",
"frontend/src/pages/application/components/ImportProjectComponents.vue",
"frontend/src/pages/application/Debug.vue",
"frontend/src/pages/device/components/DeviceLastSeenBadge.vue",
"frontend/src/pages/device/Overview.vue",
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ jobs:
if: |
( github.event.workflow_run.conclusion == 'success' && github.ref == 'refs/heads/main' ) ||
( github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' )
uses: 'flowfuse/github-actions-workflows/.github/workflows/publish_node_package.yml@v0.34.0'
uses: 'flowfuse/github-actions-workflows/.github/workflows/publish_node_package.yml@v0.36.0'
with:
package_name: flowfuse
build_package: true
7 changes: 5 additions & 2 deletions config/cypress-shared.config.js
Original file line number Diff line number Diff line change
@@ -28,14 +28,17 @@ module.exports = {
// fileName looks like a regex
debug = debug + JSON.stringify(files)
const filteredList = files.filter(file => !!file.match(re))
return filteredList.length === 1
if (filteredList.length === 1) {
return filteredList[0]
}
return false
}
return false
}).then(result => {
if (!result) {
throw new Error(`${fileName} not found in ${baseDir} ${debug}`)
}
return true
return result
})
},
// Clear all files in the downloads folder
6 changes: 6 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -42,6 +42,12 @@ It covers everything from setup, to usage, and development. All [contributions](
<label>FlowFuse Self-Hosted</label>
<p>Run FlowFuse yourself on your own infrastructure.</p>
<ul style="margin-top: 0; margin-bottom: 0;">
<li class="ff-offering-cta">
<a href="/docs/quick-start/">
Quick Start Instructions
<icon-chevron-right class="ff-icon ff-icon-sm" />
</a>
</li>
<li class="ff-offering-cta">
<a href="/docs/install/introduction/">
Install FlowFuse Self-Hosted
2 changes: 1 addition & 1 deletion docs/admin/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
navGroup: FlowFuse Self-Hosted
navOrder: 3
navOrder: 4
navTitle: Administering FlowFuse
redirect:
to: /docs/admin/introduction
10 changes: 6 additions & 4 deletions docs/cloud/billing.md
Original file line number Diff line number Diff line change
@@ -58,8 +58,10 @@ Stripe will retry the payment several times over a number of days. If the card r

## Cancelling your subscription

When you're on the Starter tier you'll need to delete your team to cancel your subscription.
For the Team and Enterprise tiers, you're charged on active cloud instances and edge devices. To stop being charged it suffices
to suspend all Cloud Node-RED instances and remove all edge devices from the team.
To cancel your subscription you can either delete or suspend your team; both options are available under the Team Settings page.

If you have outstanding credit you can request a refund via a [support ticket](/support/), include the Team ID in your email.
Deleting the team will remove all of the team's instances and devices - they cannot be recovered after being deleted.

Suspending the team will stop all of your team's instances and devices and cancel your subscription so no further charges are made. You will not be able to do anything more with the team whilst it is suspended. You can unsuspend the team in the future by setting up a new payment subscription.

When deleting the team, if you have outstanding credit you can request a refund via a [support ticket](/support/), include the Team ID in your email.
2 changes: 1 addition & 1 deletion docs/install/README.md
Original file line number Diff line number Diff line change
@@ -4,5 +4,5 @@ navTitle: Installing FlowFuse
redirect:
to: /docs/install/introduction
layout: redirect
navOrder: 1
navOrder: 2
---
7 changes: 5 additions & 2 deletions docs/install/introduction.md
Original file line number Diff line number Diff line change
@@ -16,8 +16,11 @@ meta:

FlowFuse can be installed to run in Docker or Kubernetes based environments.

- [Docker Install Guide](/docs/install/docker/README.md)
- [Kubernetes Install Guide](/docs/install/kubernetes/README.md)
- **Docker:**
- [Quick Start Guide](/docs/quick-start)
- [Full Install](/docs/install/docker/README.md)
- **Kubernetes:**
- [Install Guide](/docs/install/kubernetes/README.md)

We also provide one-click installs of the Docker version:

4 changes: 2 additions & 2 deletions docs/migration/introduction.md
Original file line number Diff line number Diff line change
@@ -45,5 +45,5 @@ will now be started with the modules installed.
### Static Files

Check your `settings.js` file to see if `httpStatic` has been set, if so then
check for any files in this path. FlowFuse does not currently support serving
static files so you will need to find alternative hosting for these such as AWS S3.
check for any files in this path. The files in this path need to be manually
migrated to [FlowFuse's Static Assets](/docs/user/static-asset-service/) service.
86 changes: 86 additions & 0 deletions docs/quick-start/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
navGroup: FlowFuse Self-Hosted
navTitle: Quick Start
navOrder: 1
meta:
description: Quickly install FlowFuse in Docker or Kubernetes based environments.
tags:
- start
- quick start
- quickstart
- installation
- flowfuse
- docker
- trial license
- deployment models
---

# Quick Start Guide

This guide provides a streamlined process for setting up and running the FlowFuse platform using Docker and docker-compose.

The provided docker-compose file facilitates the deployment of the following services:
* **FlowFuse Platform**: Includes the core application, MQTT broker, and file server for storage
* **Database:** A pre-configured database for storing platform data
* **Proxy Server:** A pre-configured proxy server for managing HTTP traffic

For a full installation guide, including how to setup FlowFuse in a production environment, please refer to the dedicated page for [running FlowFuse on Docker](../install/docker/README.md).

## Prerequisites

Before you begin, ensure you have the following:

1. A domain name that you own and can configure DNS settings for (explained in step 1)
2. Docker and Docker Compose installed on your system (either as a standalone binary or as docker plugin)

## Step 1: Configure DNS

Before running FlowFuse, you need to configure your fully qualified domain name settings:

1. Set up an A record for your domain (e.g., `example.com`) to your server's IP address (this works with subdomain as well e.g. `flowfuse.example.com`). FlowFuse will run here.
2. In the same manner, set up a wildcard DNS record (e.g., `*.example.com`, `*.flowfuse.example.com`) to point to your server's IP address. Any Node-RED instances setup by FlowFuse will run here.

This step is crucial for the proper functioning of the application. FlowFuse will not run properly on `localhost` domain.

## Step 2: Download Compose file

```bash
curl -o docker-compose.yml https://raw.githubusercontent.com/FlowFuse/docker-compose/refs/heads/main/docker-compose-quick-start.yml
```

## Step 3: Start the Application

Run the following command to deploy FlowFuse. Replace the `yourdomain.com` with your domain name configured in step 1.:

```bash
DOMAIN=example.com docker compose up -d
```

This command will download the necessary Docker images, run initial setup and start all the required services in detached mode.

## Step 4: Complete the application Setup

Open your web browser and navigate to `http://forge.example.com/setup` . You will be redirected to the setup page where you can create your admin account and set up your instance.
For detailed information about first setup and configuration, please follow [this guide](../install/first-run.md).


## Cleanup

To stop and remove the FlowFuse application, run the following command. Replace `yourdomain.com` with your domain name:

```bash
DOMAIN=example.com docker compose down -v
```

## Troubleshooting

If you encounter any issues, please check the following:

1. Ensure all prerequisites are correctly installed
2. Verify your DNS settings are correct and have propagated
3. Check the Docker logs for any error messages:
```bash
docker compose logs
```

For more detailed information or advanced configuration options for running FlowFuse on Docker, please refer to our [full documentation](../install/docker/README.md).
2 changes: 1 addition & 1 deletion docs/upgrade/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
navGroup: FlowFuse Self-Hosted
navOrder: 2
navOrder: 3
navTitle: Upgrading FlowFuse
meta:
description: Learn how to upgrade your FlowFuse instance with detailed guidelines for LocalFS, Docker, and Kubernetes deployments.
28 changes: 21 additions & 7 deletions docs/user/snapshots.md
Original file line number Diff line number Diff line change
@@ -44,23 +44,37 @@ A snapshot can be downloaded to your local machine for backup or sharing.

To download a snapshot:

1. Go to the instance's page and select the **Snapshots** tab.
1. Go to the desired application, instance or device overview page and select the **Snapshots** tab.
2. Open the dropdown menu to the right of the snapshot you want to download and
select the **Download Snapshot** option.
click the **Download Snapshot** option to open the download dialog.
3. Select the required components to download.
- **Flows**: Include the snapshot flows
- **Credentials**: Include the snapshot flows credentials
- **Environment Variables**: Include environment variables in the snapshot
- **Keys and Values**: Include the keys and values of the environment variables
- **Keys Only**: Include only the keys of the environment variables
4. Enter a secret to encrypt any credentials in the snapshot (optional, depends on components selected).
5. Click **Download**

## Upload a snapshot

A snapshot can be uploaded to a Node-RED instance in FlowFuse.

To upload a snapshot:

1. Go to the instance's page and select the **Snapshots** tab.
1. Go to the desired instance or device overview page and select the **Snapshots** tab.
2. Click the **Upload Snapshot** button.
3. Select the snapshot file from your local machine.
4. If the snapshot contains credentials, you will be asked to enter the credentials secret.
This is the secret that was used to encrypt the credentials in the snapshot.
5. Update the name and description if required.
6. Click **Upload**
4. Update the name and description if required.
5. Select the components to upload:
- **Flows**: Include the snapshots flows
- **Credentials**: Include the snapshots flows credentials (visible only if the snapshot contains credentials)
- **Environment Variables**: Include environment variables in the snapshot
- **Keys and Values**: Include the keys and values of the environment variables
- **Keys Only**: Include only the keys of the environment variables
6. If the snapshot contains credentials and the `Credentials` component is checked,
you will be asked to enter a Secret. This will be used to later decrypt any credentials in the snapshots flows.
7. Click **Upload**

## Delete a snapshot

5 changes: 5 additions & 0 deletions forge/auditLog/application.js
Original file line number Diff line number Diff line change
@@ -55,6 +55,11 @@ module.exports = {
},
async membersChanged (actionedBy, error, application, deviceGroup, updates, info) {
await log('application.deviceGroup.members.changed', actionedBy, application?.id, generateBody({ error, application, deviceGroup, updates, info }))
},
settings: {
async updated (actionedBy, error, application, deviceGroup, updates) {
await log('application.deviceGroup.settings.updated', actionedBy, application?.id, generateBody({ error, application, deviceGroup, updates }))
}
}
}
}
Loading

0 comments on commit ae68a1d

Please sign in to comment.