-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved setup docs #116
Improved setup docs #116
Changes from all commits
13edfc7
b69a1dd
f78cfc7
e58ff71
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# Hive Setup Guide | ||
|
||
Follow this setup guide to create your own instance of the Hive back-end. | ||
|
||
## Running Hive With Docker | ||
|
||
If you are accustomed to using and operating Docker containers, running Hive through Docker may be appealing to you. | ||
|
||
Included in the Hive repository is the [`docker-compose.yml`](https://github.com/Atlas-Rhythm/Hive/blob/master/docker-compose.yml) file. To run Hive in a Docker environment, please download this file. | ||
|
||
**Do not use this file as-is!** | ||
|
||
The Docker Compose file contains some configuration that should be changed before deployment. Please open `docker-compose.yml` in any text environment, and make any necessary modification and configuration to match your deployment environment. | ||
|
||
When you are ready to deploy Hive, run `docker-compose up`. | ||
|
||
## Downloading Hive | ||
|
||
If you do not want to use Docker, you can download the latest release of Hive through [the Releases page](https://github.com/Atlas-Rhythm/Hive/releases). | ||
|
||
Simply unzip the Hive release wherever you wish to host Hive. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do you also need plugins for this? Or do the releases have plugins bundled with them? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If not, might be nice to clarify There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think ideally, when we do go to make releases, we'd want to bundle HiveCorePlugins into the release zip. A major pain point in deployment right now is having to manually download and install the HiveCorePlugins to even use Hive, so I believe bundling core plugins wherever possible is a good idea. |
||
|
||
**Be warned!** You may have to install the [.NET 6 Runtime](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) and [PostgreSQL 12](https://www.postgresql.org/) to run Hive outside of a Docker container. | ||
|
||
## Downloading External Plugins | ||
|
||
Plugins are an essential part of Hive. Hive comes with its [own set of core plugins](https://github.com/Atlas-Rhythm/HiveCorePlugins), which comes included with a Docker deployment of Hive. | ||
|
||
If you wish to use third party plugins, or need to download Hive core plugins outside of a Docker environment, simply download the latest release from their respective repositories. | ||
|
||
Hive expects the `Plugins` folder to be organized. Plugins *must* be included in a subdirectory of the same name, within the `Plugins` folder. | ||
|
||
For example, using some of Hive's core plugins, your plugins folder should look like this: | ||
|
||
``` | ||
Plugins/ | ||
|- Hive.FileSystemCdnProvider/ | ||
| |- Hive.FileSystemCdnProvider.dll | ||
| |- ... | ||
| | ||
|- Hive.FileSystemRuleProvider/ | ||
| |- Hive.FileSystemRuleProvider.dll | ||
| |- ... | ||
| | ||
|- Hive.Tags/ | ||
| |- Hive.Tags.dll | ||
| |- ... | ||
``` | ||
|
||
**Docker users be warned!** If you want to use third party plugins, you need to map a volume to `/app/plugins` in the Docker container. | ||
|
||
## Setting up Auth0 | ||
|
||
An authentication service is required to use Hive. [Auth0](https://auth0.com/) is Hive's default authentication service. Unless you plan on using a separate authentication plugin, you need to setup Auth0. | ||
|
||
[Follow our dedicated Auth0 guide](https://github.com/Atlas-Rhythm/Hive/tree/master/docs/Auth0) to set up Auth0 for your Hive installation. | ||
|
||
## Hive Configuration | ||
|
||
Configuration for Hive's core is done through the `appsettings.json` file at the root of the Hive directory. | ||
|
||
[We have dedicated documentation pages for configuring the various settings of Hive's core.](https://github.com/Atlas-Rhythm/Hive/blob/master/docs/Hive/Configuration.md) | ||
|
||
By default, configuring Hive *plugins* is also done through `appsettings.json`, using a format that looks like this: | ||
|
||
```jsonc | ||
{ | ||
"Plugins": { | ||
"PluginConfigurations": { | ||
"Hive.FileSystemCdnProvider": { | ||
// Configuration for Hive.FileSystemCdnProvider | ||
}, | ||
"Hive.FileSystemRuleProvider": { | ||
// Configuration for Hive.FileSystemRuleProvider | ||
}, | ||
"Hive.Tags": { | ||
// Configuration for Hive.Tags | ||
} | ||
// ...and so on. | ||
} | ||
} | ||
} | ||
``` | ||
|
||
Plugin configuration can also be done through environment variables, using the format `PLUGIN__<Plugin name, "." replaced with "_">__<Configuration key>`. | ||
|
||
See the [Using Plugins](https://github.com/Atlas-Rhythm/Hive/blob/master/docs/Hive.Plugins/Using.md) page for more information on plugin configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commented intentionally?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct. HiveCorePlugins is already included in the Hive docker image, so mounting the plugins folder is only necessary if the administrator wants to load third party plugins.