* Add stylesheet & mkdocs features - Adds a custom stylesheet & brand colours - Adds Recursive as the code font - Adds repo info to the nav bar - Adds auto tracking ID links for deep linking to sections as users scroll the page - Index pages are now a part of their section as determined by their H1 - Removes mkdocs info from future footer * Reorganize content - Renames "Dev" to "Develop" for improved navigation labels - Adds links to tools the first time they're mentioned - Rewords part of the homepage - Hides section navigation on the homepage (now we don't have a blank section nav bar! - Adds some syntax highlighting - Removes some manual word wrapping — this was done very rarely / inconsistently * Rename "Developer Docs" index page - Better title for sidebar * Update docs.md - Adds links to tools - Adds future docs style guide section - Updates name and makes it an H1 - Replaces hyphens on the homepage with em dashes * deployment index page: changed title, removed non-k8s section, cleaned up intro * develop index page: changed title fixed typo on main page --------- Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
79 lines
2.9 KiB
Markdown
79 lines
2.9 KiB
Markdown
# Production: Self-Hosted and Cloud
|
|
|
|
For production and hosted deployments (both on a single machine or in the cloud), the only requirement is to have a designed domain
|
|
and (strongly recommended, but not required) second domain for signing web archives.
|
|
|
|
We are also experimenting with [Ansible playbooks](../deploy/ansible) for cloud deployment setups.
|
|
|
|
The production deployments also allow using an external mongodb server, and/or external S3-compatible storage instead of the bundled minio.
|
|
|
|
|
|
## Single Machine Deployment with MicroK8S
|
|
|
|
For a single-machine production deployment, we recommend using [MicroK8s](https://microk8s.io/).
|
|
|
|
1. Install MicroK8S, as suggested in [the local deployment guide](../deploy/local.md) and ensure the `ingress` and `cert-manager` addons are also enabled.
|
|
|
|
2. Copy `cp ./chart/examples/microk8s-hosted.yaml ./chart/my-config.yaml` to make local changes.
|
|
|
|
2. Set the `ingress.host`, `ingress.cert_email` and `signing.host` fields in `./chart/my-config.yaml` to your host and domain
|
|
|
|
3. Set the super-admin username and password, and mongodb username and password in `./chart/my-config.yaml`
|
|
|
|
4. Run with:
|
|
|
|
```shell
|
|
helm upgrade --install -f ./chart/values.yaml -f ./chart/my-config.yaml btrix ./chart/
|
|
```
|
|
|
|
|
|
### Using Custom Storage
|
|
|
|
If you would like to use existing external storage, such an existing S3-compatible storage, also set the default storage, for example:
|
|
|
|
```yaml
|
|
minio_local: false
|
|
|
|
storages:
|
|
- name: "default"
|
|
access_key: <access key>
|
|
secret_key: <secret key>
|
|
|
|
endpoint_url: "https://s3.<region>.amazonaws.com/bucket/path/"
|
|
```
|
|
|
|
Note that this setup is not limited to Amazon S3, but should work with any S3-compatible storage service.
|
|
|
|
|
|
### Using Custom MongoDB
|
|
|
|
If you would like to use an externally hosted MongoDB, you can add the following config to point to a custom MongoDB instance.
|
|
|
|
The `db_url` should follow the [MongoDB Connection String Format](https://www.mongodb.com/docs/manual/reference/connection-string/) which should include the username and password of the remote instance.
|
|
|
|
|
|
```yaml
|
|
mongo_local: false
|
|
|
|
mongo_auth:
|
|
db_url: mongodb+srv://...
|
|
|
|
```
|
|
|
|
## Cloud Deployment
|
|
|
|
There are also many ways to deploy Browsertrix Cloud on various cloud providers.
|
|
|
|
To simplify this process, we are working on Ansible playbooks for setting up Browsertrix Cloud on commonly used infrastructure.
|
|
|
|
### Ansible Deployment
|
|
|
|
[Ansible](https://ansible.com) makes the initial setup and configuration of your Browsertrix Cloud instance automated and repeatable.
|
|
|
|
To use, you will need to [install Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#control-node-requirements) on your control computer and then you can use these to deploy to Browsertrix Cloud on remote and cloud environments.
|
|
|
|
Currently, we provide playbooks for the following tested environments:
|
|
|
|
- [DigitalOcean](ansible/digitalocean.md)
|
|
- [Microk8s](ansible/microk8s.md)
|