browsertrix/docs/deploy/production.md
Henry Wilkinson 0a1f5eff8e
Docs: adds mkdocs features, adds theming (#728)
* 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>
2023-04-06 02:44:19 -07:00

2.9 KiB

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 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.

  1. Install MicroK8S, as suggested in the local deployment guide 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.

  3. Set the ingress.host, ingress.cert_email and signing.host fields in ./chart/my-config.yaml to your host and domain

  4. Set the super-admin username and password, and mongodb username and password in ./chart/my-config.yaml

  5. Run with:

    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:

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 which should include the username and password of the remote instance.

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 makes the initial setup and configuration of your Browsertrix Cloud instance automated and repeatable.

To use, you will need to install Ansible 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: