From b82b22f6970809474041aa10bc0c6d8d562cae6c Mon Sep 17 00:00:00 2001 From: RomainMou <58464216+RomainMou@users.noreply.github.com> Date: Tue, 20 Oct 2026 14:44:12 +0200 Subject: [PATCH 1/2] Rework on-premises documentation --- src/.vitepress/sidebar.js | 12 +- src/on-premises/config/env/api.md | 135 -------- src/on-premises/config/env/archive.md | 18 - src/on-premises/config/env/connect.md | 126 ------- src/on-premises/config/env/platform_back.md | 77 ----- src/on-premises/config/env/platform_front.md | 29 -- src/on-premises/config/env/workers.md | 66 ---- .../{install => }/high_availability.md | 4 +- src/on-premises/install.md | 15 + src/on-premises/install/quickstart/config.md | 326 ------------------ src/on-premises/install/quickstart/install.md | 97 ------ .../{install => }/prerequisites.md | 24 +- 12 files changed, 35 insertions(+), 894 deletions(-) delete mode 100644 src/on-premises/config/env/api.md delete mode 100644 src/on-premises/config/env/archive.md delete mode 100644 src/on-premises/config/env/connect.md delete mode 100644 src/on-premises/config/env/platform_back.md delete mode 100644 src/on-premises/config/env/platform_front.md delete mode 100644 src/on-premises/config/env/workers.md rename src/on-premises/{install => }/high_availability.md (89%) create mode 100644 src/on-premises/install.md delete mode 100644 src/on-premises/install/quickstart/config.md delete mode 100644 src/on-premises/install/quickstart/install.md rename src/on-premises/{install => }/prerequisites.md (82%) diff --git a/src/.vitepress/sidebar.js b/src/.vitepress/sidebar.js index 6e2c2fa..1ceb73c 100644 --- a/src/.vitepress/sidebar.js +++ b/src/.vitepress/sidebar.js @@ -92,15 +92,9 @@ function getOnpremSidebar() { { text: "Installation", items: [ - { text: "Prerequisites", link: "/on-premises/install/prerequisites" }, - { - text: "Quickstart", - items: [ - { text: "Installation", link: "/on-premises/install/quickstart/install" }, - { text: "Configuration", link: "/on-premises/install/quickstart/config" }, - ], - }, - { text: "High availability", link: "/on-premises/install/high_availability" }, + { text: "Prerequisites", link: "/on-premises/prerequisites" }, + { text: "Installation", link: "/on-premises/install" }, + { text: "High availability", link: "/on-premises/high_availability" }, ], }, { diff --git a/src/on-premises/config/env/api.md b/src/on-premises/config/env/api.md deleted file mode 100644 index be067b6..0000000 --- a/src/on-premises/config/env/api.md +++ /dev/null @@ -1,135 +0,0 @@ -# BIMData API - -## URLs of BIMData apps -| Variables | Default value | Description | -|-------------|---------------|----------------------------| -| API_URL | "" | BIMData API URL. | -| CONNECT_URL | "" | BIMData Connect URL. | -| DOC_URL | "" | BIMData Documentation URL. | - -## Database configuration -There variables are needed for the database authentication. - -| Variables | Default value | Description | -|----------------------|------------------|----------------------------| -| DB_HOST | | Postgresql server address. | -| DB_PORT | | Postgresql server port. | -| DB_NAME | | Postgresql database name. | -| DB_USER | | Postgresql user. | -| DB_PASSWORD | | Postgresql password. | - -If your Postgresql cluster use read-only replicas, you can configure the API -with these variables to distribute the read-only requests through all of them. -Each of these variable is a comma separated list. If each replica have a different -configuration, the order in each list matter: the first element `REPLICA_DB_HOSTS` -will use the first port in `REPLICA_DB_PORTS` and so on. - -| Variables | Default value | Description | -|----------------------|---------------------|-------------------------------------------------------| -| REPLICA_DB_HOSTS | "" | list of postgresql read-only replicas server address. | -| REPLICA_DB_PORTS | Same as DB_PORT | list of postgresql read-only replicas server port. | -| REPLICA_DB_NAMES | Same as DB_NAME | list of postgresql read-only database name. | -| REPLICA_DB_USERS | Same as DB_USER | list of postgresql read-only database user. | -| REPLICA_DB_PASSWORDS | Same as DB_PASSWORD | list of postgresql read-only database user. | - -## RabbitMQ configuration -| Variables | Default value | Description | -|-------------------|---------------|--------------------------| -| RABBITMQ_HOST | | RabbitMQ server address. | -| RABBITMQ_PORT | | RabbitMQ server port. | -| RABBITMQ_USER | | RabbitMQ username. | -| RABBITMQ_PASSWORD | | RabbitMQ password. | - -## OpenID configuration -::: v-pre -| Variables | Default value | Description | -|------------------------------|-------------------------|------------------------| -| IAM_URL | | OIDC provider address. | -| IAM_ADMIN_LOGIN | | OIDC admin username. | -| IAM_ADMIN_PASSWORD | | OIDC admin password. | -::: - -## Storage configuration -By default, the API use a local storage in `/opt/storage` to store all the uploaded datas. -But these datas are not serve by the API itself. It's necessary to configure a web -server, like other static files. -That's why we recommande using an object storage for production. - -To enable Swift usage, you need to set `SWIFT_AUTH_URL`, and if this variable is -set, alors the other variables `SWIFT_*` need to be set. - -| Variables | Default value | Description | -|------------------------------------------|----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| -| SWIFT_AUTH_URL | | The URL for the auth server. | -| SWIFT_USERNAME | | The username to use to authenticate. | -| SWIFT_PASSWORD | | The key (password) to use to authenticate. | -| SWIFT_AUTH_VERSION | 3 | The version of the authentication protocol to use. | -| SWIFT_TENANT_NAME / SWIFT_PROJECT_NAME | None | The tenant/project name to use when authenticating. | -| SWIFT_TENANT_ID / SWIFT_PROJECT_ID | None | The tenant/project id to use when authenticating. | -| SWIFT_USER_DOMAIN_NAME | None | The domain name we authenticate to. | -| SWIFT_USER_DOMAIN_ID | "default" | The domain id we authenticate to. | -| SWIFT_PROJECT_DOMAIN_NAME | "default" | The domain name our project is located in. | -| SWIFT_PROJECT_DOMAIN_ID | None | The domain id our project is located in. | -| SWIFT_REGION_NAME | None | OpenStack region if needed. Check with your provider. | -| SWIFT_CONTAINER_NAME | None | The container in which to store the files. | -| SWIFT_STATIC_CONTAINER_NAME | None | Alternate container for storing staticfiles. | -| SWIFT_AUTO_CREATE_CONTAINER | True | Should the container be created if it does not exist? | -| SWIFT_AUTO_CREATE_CONTAINER_PUBLIC | False | Set the auto created container as public on creation | -| SWIFT_AUTO_CREATE_CONTAINER_ALLOW_ORIGIN | "*" | Set the container's X-Container-Meta-Access-Control-Allow-Origin value, to support CORS requests. | -| SWIFT_AUTO_BASE_URL | True | Query the authentication server for the base URL. | -| SWIFT_BASE_URL | None | The base URL from which the files can be retrieved. | -| SWIFT_NAME_PREFIX | "" | Prefix that gets added to all filenames. | -| SWIFT_USE_TEMP_URLS | True | Generate temporary URLs for file access (allows files to be accessed without a permissive ACL). | -| SWIFT_TEMP_URL_KEY | None | Temporary URL key. | -| SWIFT_TEMP_URL_DURATION | 2 * 60 * 60 | How long a temporary URL remains valid, in seconds. | -| SWIFT_EXTRA_OPTIONS | {} | Extra options. | -| SWIFT_STATIC_AUTO_BASE_URL | True | Query the authentication server for the static base URL. | -| SWIFT_STATIC_BASE_URL | None | The base URL from which the static files can be retrieved, | -| SWIFT_STATIC_NAME_PREFIX | None | Prefix that gets added to all static filenames. | -| SWIFT_CONTENT_TYPE_FROM_FD | False | Determine the files mimetypes from the actual content rather than from their filename (default). | -| SWIFT_FULL_LISTING | True | Ensures to get whole directory contents (by default swiftclient limits it to 10000 entries) | -| SWIFT_AUTH_TOKEN_DURATION | 60 * 60 * 23 | How long a token is expected to be valid in seconds. | -| SWIFT_LAZY_CONNECT | True | If True swift connection will be obtained on first use, if False it will be obtained during storage instantiation. | -| SWIFT_GZIP_CONTENT_TYPES | [None,"text/plain","application/json","application/octet-stream","image/svg+xml","text/xml"] | List of content type that will be compressed. | -| SWIFT_GZIP_COMPRESSION_LEVEL | 4 | Gzip compression level from 0 to 9. 0 = no compression, 9 = max compression | -| SWIFT_GZIP_UNKNOWN_CONTENT_TYPE | True | If set to True and the content-type can't be guessed, gzip anyway | -| SWIFT_CACHE_HEADERS | False | Headers cache on/off switcher | - -## Email configuration - -| Variables | Default value | Description | -|----------------------|------------------------|-------------------------------| -| SMTP_HOST | | SMTP server address. | -| SMTP_PORT | | SMTP server port. | -| SMTP_USE_TLS | | SMTP communication use TLS. | -| SMTP_USER | | SMTP authentication user. | -| SMTP_PASS | | SMTP authentication password. | -| DEFAULT_FROM_EMAIL | "support@bimdata.io" | SMTP default from email. | -| MODELS_SUPPORT_EMAIL | [] | | - -### Image configuration - -| Variables | Default value | Description | -|----------------------|---------------|--------------------------------------------------------| -| WORKERS | 4 | Configure Gunicorn workers. | -| PORT | 8000 | Configure Gunicorn listen port. | -| CA_CERT | "" | Path of a certificate to add to container trusted CAs. | -| COMPILE_SCSS | 0 | 0 or 1. Configure if django compilescss during init. | -| COLLECT_STATIC | 1 | 0 or 1. Configure if django collectstatic during init. | -| APPLY_MIGRATION | 1 | 0 or 1. Configure if django migrate during init. | -| PROCESS_TASKS | 0 | 0 or 1. Configure if django process_tasks. | - -## Other configuration - -| Variables | Default value | Description | -|----------------------------------|-------------------------------------|----------------------------------------------------| -| SECRET_KEY | "SET_DEVELOPMENT_DJANGO_SECRET_KEY" | | -| MASTER_TOKEN | "" | | -| DATA_UPLOAD_MAX_MEMORY_SIZE | 1 * 1024 ** 3 | | -| DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 | | -| ADMIN_URL | "" | Use to be able to deploy separate admin interface. | -| ADMIN_INTERFACE | | Use to be able to deploy separate admin interface. | -| DJANGO_SETTINGS_MODULE | "bimdata.settings.api" | Use to be able to deploy separate admin interface. | -| ENV | "development" | | -| ALLOWED_HOSTS | [] | | -| DEBUG | False | Enable debug mode. | diff --git a/src/on-premises/config/env/archive.md b/src/on-premises/config/env/archive.md deleted file mode 100644 index fcdda1c..0000000 --- a/src/on-premises/config/env/archive.md +++ /dev/null @@ -1,18 +0,0 @@ -# BIMData Archive - -## URLs of BIMData apps -| Variables | Default value | Description | -|-------------|---------------|-------------------------| -| API_URL | "" | BIMData API URL. | - -## Image configuration -| Variables | Default value | Description | -|----------------------|---------------|--------------------------------------------------------| -| CA_CERT | "" | Path of a certificate to add to container trusted CAs. | - -## Other configuration -| Variables | Default value | Description | -|----------------------------------|---------------|-------------| -| APP_NAME | "archive" | | -| SERVER_PORT | "8080" | | -| WORKERS_NB | 1 | | diff --git a/src/on-premises/config/env/connect.md b/src/on-premises/config/env/connect.md deleted file mode 100644 index 73a31e4..0000000 --- a/src/on-premises/config/env/connect.md +++ /dev/null @@ -1,126 +0,0 @@ -# BIMData Connect - -## URLs of BIMData apps - -| Variables | Default value | Description | -|--------------|---------------|----------------------------| -| SITE_URL | "" | BIMData Connect URL. | -| API_URL | "" | BIMData API URL. | -| DOC_URL | "" | BIMData Documentation URL. | -| PLATFORM_URL | "" | BIMData Platform URL. | - -## Database configuration -There variables are needed for the database authentication. - -| Variables | Default value | Description | -|----------------------|------------------|----------------------------| -| DB_HOST | | Postgresql server address. | -| DB_PORT | | Postgresql server port. | -| DB_NAME | | Postgresql database name. | -| DB_USER | | Postgresql user. | -| DB_PASSWORD | | Postgresql password. | - -If your Postgresql cluster use read-only replicas, you can configure the API -with these variables to distribute the read-only requests through all of them. -Each of these variable is a comma separated list. If each replica have a different -configuration, the order in each list matter: the first element `REPLICA_DB_HOSTS` -will use the first port in `REPLICA_DB_PORTS` and so on. - -| Variables | Default value | Description | -|----------------------|---------------------|-------------------------------------------------------| -| REPLICA_DB_HOSTS | "" | list of postgresql read-only replicas server address. | -| REPLICA_DB_PORTS | Same as DB_PORT | list of postgresql read-only replicas server port. | -| REPLICA_DB_NAMES | Same as DB_NAME | list of postgresql read-only database name. | -| REPLICA_DB_USERS | Same as DB_USER | list of postgresql read-only database user. | -| REPLICA_DB_PASSWORDS | Same as DB_PASSWORD | list of postgresql read-only database user. | - -## OpenID configuration -::: v-pre -| Variables | Default value | Description | -|-----------------------------|---------------|------------------------| -| IAM_URL | "" | OIDC provider address. | -| IAM_ADMIN_LOGIN | "" | OIDC admin username. | -| IAM_ADMIN_PASSWORD | "" | OIDC admin password. | -::: - -## Storage configuration -By default, the API use a local storage in `/opt/storage` to store all the uploaded datas. -But these datas are not serve by the API itself. It's necessary to configure a web -server, like other static files. -That's why we recommande using an object storage for production. - -To enable Swift usage, you need to set `SWIFT_AUTH_URL`, and if this variable is -set, alors the other variables `SWIFT_*` need to be set. - -| Variables | Default value | Description | -|------------------------------------------|----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| -| SWIFT_AUTH_URL | | The URL for the auth server. | -| SWIFT_USERNAME | | The username to use to authenticate. | -| SWIFT_PASSWORD | | The key (password) to use to authenticate. | -| SWIFT_AUTH_VERSION | 3 | The version of the authentication protocol to use. | -| SWIFT_TENANT_NAME / SWIFT_PROJECT_NAME | None | The tenant/project name to use when authenticating. | -| SWIFT_TENANT_ID / SWIFT_PROJECT_ID | None | The tenant/project id to use when authenticating. | -| SWIFT_USER_DOMAIN_NAME | None | The domain name we authenticate to. | -| SWIFT_USER_DOMAIN_ID | "default" | The domain id we authenticate to. | -| SWIFT_PROJECT_DOMAIN_NAME | "default" | The domain name our project is located in. | -| SWIFT_PROJECT_DOMAIN_ID | None | The domain id our project is located in. | -| SWIFT_REGION_NAME | None | OpenStack region if needed. Check with your provider. | -| SWIFT_CONTAINER_NAME | None | The container in which to store the files. | -| SWIFT_STATIC_CONTAINER_NAME | None | Alternate container for storing staticfiles. | -| SWIFT_AUTO_CREATE_CONTAINER | True | Should the container be created if it does not exist? | -| SWIFT_AUTO_CREATE_CONTAINER_PUBLIC | False | Set the auto created container as public on creation | -| SWIFT_AUTO_CREATE_CONTAINER_ALLOW_ORIGIN | "*" | Set the container's X-Container-Meta-Access-Control-Allow-Origin value, to support CORS requests. | -| SWIFT_AUTO_BASE_URL | True | Query the authentication server for the base URL. | -| SWIFT_BASE_URL | None | The base URL from which the files can be retrieved. | -| SWIFT_NAME_PREFIX | "" | Prefix that gets added to all filenames. | -| SWIFT_EXTRA_OPTIONS | {} | Extra options. | -| SWIFT_STATIC_AUTO_BASE_URL | True | Query the authentication server for the static base URL. | -| SWIFT_STATIC_BASE_URL | None | The base URL from which the static files can be retrieved, | -| SWIFT_STATIC_NAME_PREFIX | None | Prefix that gets added to all static filenames. | -| SWIFT_CONTENT_TYPE_FROM_FD | False | Determine the files mimetypes from the actual content rather than from their filename (default). | -| SWIFT_FULL_LISTING | True | Ensures to get whole directory contents (by default swiftclient limits it to 10000 entries) | -| SWIFT_AUTH_TOKEN_DURATION | 60 * 60 * 23 | How long a token is expected to be valid in seconds. | -| SWIFT_LAZY_CONNECT | True | If True swift connection will be obtained on first use, if False it will be obtained during storage instantiation. | -| SWIFT_GZIP_CONTENT_TYPES | [None,"text/plain","application/json","application/octet-stream","image/svg+xml","text/xml"] | List of content type that will be compressed. | -| SWIFT_GZIP_COMPRESSION_LEVEL | 4 | Gzip compression level from 0 to 9. 0 = no compression, 9 = max compression | -| SWIFT_GZIP_UNKNOWN_CONTENT_TYPE | True | If set to True and the content-type can't be guessed, gzip anyway | -| SWIFT_CACHE_HEADERS | False | Headers cache on/off switcher | - -### Email configuration - -| Variables | Default value | Description | -|--------------------|------------------------|-------------------------------| -| SMTP_HOST | None | SMTP server address. | -| SMTP_PORT | | SMTP server port. | -| SMTP_USE_TLS | | SMTP communication use TLS. | -| SMTP_USER | | SMTP authentication user. | -| SMTP_PASS | | SMTP authentication password. | -| DEFAULT_FROM_EMAIL | "no-reply@bimdata.io" | SMTP default from email. | - -## Image configuration - -| Variables | Default value | Description | -|----------------------|---------------|--------------------------------------------------------| -| WORKERS | 4 | Configure Gunicorn workers. | -| PORT | 8000 | Configure Gunicorn listen port. | -| CA_CERT | "" | Path of a certificate to add to container trusted CAs. | -| COMPILE_SCSS | 0 | 0 or 1. Configure if django compilescss during init. | -| COLLECT_STATIC | 1 | 0 or 1. Configure if django collectstatic during init. | -| APPLY_MIGRATION | 1 | 0 or 1. Configure if django migrate during init. | -| PROCESS_TASKS | 0 | 0 or 1. Configure if django process_tasks. | - -## Other configuration - -| Variables | Default value | Description | -|-----------------------------|------------------------------------------------------|-------------| -| API_TOKEN | "" | | -| INVITATION_SECRET | "" | | -| INVITATION_CLIENT_ID | "" | | -| INVITATION_CLIENT_SECRET | "" | | -| SECRET_KEY | "SET_DEVELOPMENT_DJANGO_SECRET_KEY" | | -| ENV | "development" | | -| ALLOWED_HOSTS | [] | | -| ADMIN_INTERFACE | False | | -| ADMIN_URL | "" | | -| DEBUG | False | | -| DATA_UPLOAD_MAX_MEMORY_SIZE | 1 * 1024 ** 3 | | diff --git a/src/on-premises/config/env/platform_back.md b/src/on-premises/config/env/platform_back.md deleted file mode 100644 index 1817915..0000000 --- a/src/on-premises/config/env/platform_back.md +++ /dev/null @@ -1,77 +0,0 @@ -# BIMData Platform Back - -## URLs of BIMData apps - -| Variables | Default value | Description | -|-------------------|----------------|-----------------------------| -| API_URL | "" | BIMData API URL. | -| PLATFORM_URL | "" | BIMData platform front URL. | -| PLATFORM_BACK_URL | "" | BIMData platform back URL. | - -## Database configuration -There variables are needed for the database authentication. - -| Variables | Default value | Description | -|----------------------|------------------|----------------------------| -| DB_HOST | | Postgresql server address. | -| DB_PORT | | Postgresql server port. | -| DB_NAME | | Postgresql database name. | -| DB_USER | | Postgresql user. | -| DB_PASSWORD | | Postgresql password. | - -If your Postgresql cluster use read-only replicas, you can configure the API -with these variables to distribute the read-only requests through all of them. -Each of these variable is a comma separated list. If each replica have a different -configuration, the order in each list matter: the first element `REPLICA_DB_HOSTS` -will use the first port in `REPLICA_DB_PORTS` and so on. - -| Variables | Default value | Description | -|----------------------|---------------------|-------------------------------------------------------| -| REPLICA_DB_HOSTS | None | list of postgresql read-only replicas server address. | -| REPLICA_DB_PORTS | Same as DB_PORT | list of postgresql read-only replicas server port. | -| REPLICA_DB_NAMES | Same as DB_NAME | list of postgresql read-only database name. | -| REPLICA_DB_USERS | Same as DB_USER | list of postgresql read-only database user. | -| REPLICA_DB_PASSWORDS | Same as DB_PASSWORD | list of postgresql read-only database user. | - -## OpenID configuration -::: v-pre -| Variables | Default value | Description | -|-------------------|---------------|------------------------| -| IAM_URL | | OIDC provider address. | -| IAM_CLIENT_ID | | OIDC client ID. | -| IAM_CLIENT_SECRET | | OIDC client secret. | -::: - -## Email configuration -| Variables | Default value | Description | -|----------------------|----------------------|-------------------------------| -| SMTP_HOST | | SMTP server address. | -| SMTP_PORT | | SMTP server port. | -| SMTP_USE_TLS | | SMTP communication use TLS. | -| SMTP_USER | | SMTP authentication user. | -| SMTP_PASS | | SMTP authentication password. | -| DEFAULT_FROM_EMAIL | "support@bimdata.io" | SMTP default from email. | - -### Image configuration -| Variables | Default value | Description | -|----------------------|---------------|--------------------------------------------------------| -| WORKERS | 4 | Configure Gunicorn workers. | -| PORT | 8000 | Configure Gunicorn listen port. | -| CA_CERT | "" | Path of a certificate to add to container trusted CAs. | -| COMPILE_SCSS | 0 | 0 or 1. Configure if django compilescss during init. | -| COLLECT_STATIC | 1 | 0 or 1. Configure if django collectstatic during init. | -| APPLY_MIGRATION | 1 | 0 or 1. Configure if django migrate during init. | -| PROCESS_TASKS | 0 | 0 or 1. Configure if django process_tasks. | - -## Other configuration -| Variables | Default value | Description | -|----------------------------------|----------------------------------------|----------------------------------------------------| -| ENV | "development" | | -| ALLOWED_HOSTS | [] | | -| DEBUG | False | | -| ADMIN_INTERFACE | | Use to be able to deploy separate admin interface. | -| DJANGO_SETTINGS_MODULE | "platform_back.settings.platform_back" | Use to be able to deploy separate admin interface. | -| SECRET_KEY | "SET_DEVELOPMENT_DJANGO_SECRET_KEY" | | -| WEBHOOKS_SECRET | "" | | -| MASTER_TOKEN | "" | | -| REQUESTS_CA_BUNDLE | "" | | diff --git a/src/on-premises/config/env/platform_front.md b/src/on-premises/config/env/platform_front.md deleted file mode 100644 index f8d1ca8..0000000 --- a/src/on-premises/config/env/platform_front.md +++ /dev/null @@ -1,29 +0,0 @@ -# BIMData Platform Front - -## URLs of BIMData apps - -| Variables | Default value | Description | -|----------------------------|---------------|-----------------------------| -| VUE_APP_BASE_URL | | BIMData Platform front URL. | -| VUE_APP_BACKEND_BASE_URL | | BIMData Platform back URL. | -| VUE_APP_API_BASE_URL | | BIMData API URL. | -| VUE_APP_ARCHIVE_BASE_URL | | BIMData Archive URL. | -| VUE_APP_URL_BIMDATACONNECT | | BIMData Connect URL. | -| VUE_APP_URL_DOCUMENTATION | | BIMData documentation URL. | -| VUE_APP_URL_MARKETPLACE | | BIMData marketplace URL. | -| VUE_APP_URL_OLD_PLATFORM | | BIMData old platform URL. | - -## OpenID configuration -| Variables | Default value | Description | -|---------------------------------------|---------------|---------------------------------------------| -| VUE_APP_IAM_BASE_URL | | OIDC provider address. | -| VUE_APP_OIDC_CLIENT_ID | | Your Client ID | -| VUE_APP_AUTHORIZED_IDENTITY_PROVIDERS | | Comma separated list of identity provider | - -## Other configuration -| Variables | Default value | Description | -|-------------------------------------|---------------|------------------------------------------------------------------------------| -| VUE_APP_MAPBOX_TOKEN | | Mapbox token use to show the map. | -| VUE_APP_MAX_UPLOAD_SIZE | | Maximum size in bytes for upload. | -| VUE_APP_PROJECT_STATUS_LIMIT_NEW | | Number of days for which a project is considered "New" after its creation. | -| VUE_APP_PROJECT_STATUS_LIMIT_ACTIVE | | Number of days since last update for which a project is considered "Active". | diff --git a/src/on-premises/config/env/workers.md b/src/on-premises/config/env/workers.md deleted file mode 100644 index 155212a..0000000 --- a/src/on-premises/config/env/workers.md +++ /dev/null @@ -1,66 +0,0 @@ -# BIMData workers - -## Workers -### URLs of BIMData apps -| Variables | Default value | Description | -|-------------|-------------------------|-------------------------| -| API_URL | "http://0.0.0.0:8000" | BIMData API URL. | - -### RabbitMQ configuration -| Variables | Default value | Description | -|-------------------|---------------|--------------------------| -| RABBITMQ_HOST | "127.0.0.1" | RabbitMQ server address. | -| RABBITMQ_PORT | "5672" | RabbitMQ server port. | -| RABBITMQ_USER | "guest" | RabbitMQ username. | -| RABBITMQ_PASSWORD | "guest" | RabbitMQ password. | - -### Email configuration -| Variables | Default value | Description | -|----------------------|------------------------|-------------------------------| -| SMTP_HOST | "smtp.mandrillapp.com" | SMTP server address. | -| SMTP_PORT | 587 | SMTP server port. | -| SMTP_USE_TLS | "True" | SMTP communication use TLS. | -| SMTP_USER | "BIMData.io" | SMTP authentication user. | -| SMTP_PASS | "" | SMTP authentication password. | -| DEFAULT_FROM_EMAIL | "bug@bimdata.io" | SMTP default from email. | -| MODELS_SUPPORT_EMAIL | [] | | -| DEFAULT_TO_EMAILS | process-errors@bimdata.io,maquettes-en-erreur@boostinlyon.flowdock.com | | - -### Other configuration -| Variables | Default value | Description | -|----------------------------------|-------------------------------|-------------| -| MASTER_TOKEN | "123" | | -| ENV | "development" | | - -## Workers xkt -### URLs of BIMData apps -| Variables | Default value | Description | -|-------------|----------------------------------|-------------------------| -| API_URL | "https://api-staging.bimdata.io" | BIMData API URL. | - -### RabbitMQ configuration -| Variables | Default value | Description | -|-------------------|---------------|--------------------------| -| RABBITMQ_HOST | "127.0.0.1" | RabbitMQ server address. | -| RABBITMQ_PORT | "5672" | RabbitMQ server port. | -| RABBITMQ_USER | "guest" | RabbitMQ username. | -| RABBITMQ_PASSWORD | "guest" | RabbitMQ password. | - -## Worker headless viewer 360 -### URLs of BIMData apps -| Variables | Default value | Description | -|-------------|----------------------------------|-------------------------| -| API_URL | "https://api-staging.bimdata.io" | BIMData API URL. | - -### RabbitMQ configuration -| Variables | Default value | Description | -|-------------------|---------------|--------------------------| -| RABBITMQ_HOST | "127.0.0.1" | RabbitMQ server address. | -| RABBITMQ_PORT | "5672" | RabbitMQ server port. | -| RABBITMQ_USER | "guest" | RabbitMQ username. | -| RABBITMQ_PASSWORD | "guest" | RabbitMQ password. | - -## Image configuration -| Variables | Default value | Description | -|----------------------|---------------|--------------------------------------------------------| -| CA_CERT | "" | Path of a certificate to add to container trusted CAs. | diff --git a/src/on-premises/install/high_availability.md b/src/on-premises/high_availability.md similarity index 89% rename from src/on-premises/install/high_availability.md rename to src/on-premises/high_availability.md index 2433c19..65afd5c 100644 --- a/src/on-premises/install/high_availability.md +++ b/src/on-premises/high_availability.md @@ -13,11 +13,11 @@ This include : ## BIMData API BIMData API itself is stateless, but it manages the storage of uploaded data by users. Therefore, you have two possibilities: - - use a redundant swift object storage to store the data, + - use a redundant S3 object storage to store the data, - you need to provide a redundant storage shared between all the API containers. ## BIMData Connect BIMData Connect itself is stateless, but it manages the storage of uploaded data by users. Therefore, you have two possibilities: - - use a redundant swift object storage to store the data, + - use a redundant S3 object storage to store the data, - you need to provide a redundant storage shared between all the Connect containers. diff --git a/src/on-premises/install.md b/src/on-premises/install.md new file mode 100644 index 0000000..3f823d1 --- /dev/null +++ b/src/on-premises/install.md @@ -0,0 +1,15 @@ +# Installation + +We currently have two supported ways to install BIMData on-premises. + +All the relative documentation are inside the git repository for each method of installation. + +## Full stack +Our main installation method is our [quickstart Ansible playbook](https://github.com/bimdata/quickstart-onpremise). + +It will setup everything you need, and all supported BIMData components, to offer you the same experience as our SaaS service but on your hardware. + +## API and process only +We develop a [lighter installer](https://github.com/bimdata/simplified-onpremise), for when you don't need all the BIMData stack, for example, when you will do an integration inside your existing application. + +It will only setup our main API, and all the worker to process the uploaded files and will require some manual steps to be usable. diff --git a/src/on-premises/install/quickstart/config.md b/src/on-premises/install/quickstart/config.md deleted file mode 100644 index d06afbd..0000000 --- a/src/on-premises/install/quickstart/config.md +++ /dev/null @@ -1,326 +0,0 @@ -# Configuration -This lists all variables you can use to configure our playbook. - -## applications.yml -### DNS configuration -::: v-pre -| Variables | Default value | Description | -|-----------------------------|----------------------------------------|--------------------------------------------------------| -| app_dns_domain | "domain.tld" | DNS (sub)domain use to build the app URLs. | -| api_dns_name | "api.{{ app_dns_domain }}" | DNS name use for the API URL. | -| connect_dns_name | "connect.{{ app_dns_domain }}" | DNS name use for the Connect URL. | -| platform_back_dns_name | "platform-back.{{ app_dns_domain }}" | DNS name use for the Platform back URL. | -| platform_front_dns_name | "platform.{{ app_dns_domain }}" | DNS name use for the Platform URL. | -| iam_dns_name | "iam.{{ app_dns_domain }}" | DNS name use for the Keycloak (identity provider) URL. | -| documentation_dns_name |"doc.{{ app_dns_domain }}" | DNS name use for the documentation URL. | -| archive_dns_name |"archive.{{ app_dns_domain }}" | DNS name use for the archive URL. | -| marketplace_back_dns_name |"marketplace-back.{{ app_dns_domain }}" | DNS name use for the marketplace back URL. | -| marketplace_front_dns_name |"marketplace.{{ app_dns_domain }}" | DNS name use for fhe marketplace URL. | -::: - -For example if: -``` -app_dns_domain: bimdata.company.tld -api_dns_name: `"api.{{ app_dns_domain }}"` -``` - -The DNS name for the API will be: `api.bimdata.company.tld`. -Each name needs to be defined in the corresponding authoritative DNS server. This playbook does not manage this. - -### SMTP Configuration -::: v-pre -| Variables | Default value | Description | -|--------------------|-------------------------|----------------------------------------------------------| -| smtp_host | "" | SMTP server address. | -| smtp_port | 587 | SMTP server port. | -| smtp_user | "" | User used for the authentication on the SMTP server. | -| smtp_pass | "{{ vault_smtp_pass }}" | Password used for the authentication on the SMTP server. | -| smtp_use_tls | true | If the SMTP connection should use TLS or not. | -| smtp_default_email | "" | Email address use as default sender. | -::: - -### Web configuration -| Variables | Default value | Description | -|---------------------|---------------|---------------------------------------------------| -| external_port_http | 80 | TCP port for HTTP connections on the web server. | -| external_port_https | 443 | TCP port for HTTPS connections on the web server. | -| max_upload_size | "1g" | Maximum upload file size (ifc… etc). | - -### Data storage -::: v-pre -| Variables | Default value | Description | -|----------------------------|----------------------------------|-------------------------------------------------------------| -| bimdata_path | "/opt/bimdata" | Where we will install our needed files on the servers. | -| bimdata_docker_volume_path | "{{ bimdata_path }}/datas" | Where will your datas will be store on the servers. | -| bimdata_dockerfiles_path | "{{ bimdata_path }}/dockerfiles" | Where we store the dockerfiles use to start the containers. | -::: - -Object storage (Swift): - -::: v-pre -| Variables | Default value | Description | -|------------------------------|----------------------------------|-----------------------------------------------------| -| swift_enabled | false | Enable the swift storage or not. | -| swift_auth_url | "" | The URL of the auth server. | -| swift_tenant_id | "" | The tenant/project id to use when authenticating. | -| swift_tenant_name | "" | The tenant/project name to use when authenticating. | -| swift_username | "" | The username to use to authenticate. | -| swift_password | "{{ vault_swift_password }}" | The password/key to use to authenticate. | -| swift_temp_url_key | "{{ vault_swift_temp_url_key }}" | The temporary URL key ([see openstack documentation](https://docs.openstack.org/kilo/config-reference/content/object-storage-tempurl.html)) | -| swift_api_container_name | "" | The container in which to store the API files. | -| swift_connect_container_name | "" | The container in which to store the Connect files. | -::: - -### Applications configuration -::: v-pre -| Variables | Default value | Description | -|--------------------------------------------|--------------------------------------------------------------------------|------------------------------------------------------------------| -| api_secret_key | "{{ vault_api_secret_key }}" | You should not change this. | -|||| -| connect_secret_key | "{{ vault_connect_secret_key }}" | You should not change this. | -| connect_invitation_secret | "{{ vault_connect_invitation_secret }}" | You should not change this. | -| connect_invitation_client_secret | "{{ vault_connect_invitation_client_secret }}" | You should not change this. | -|||| -| platform_back_secret_key | "{{ vault_platform_back_secret_key }}" | You should not change this. | -| platform_back_webhook_secret | "{{ vault_platform_back_webhook_secret }}" | You should not change this. | -|||| -| platform_front_project_status_limit_new | "5" | Number of days during which the project is considered new. | -| platform_front_project_status_limit_active | "15" | Number of days during before the project is considered inactive. | -|||| -| iam_user | "admin" | Keycloak administrator user. | -| iam_password | "{{ vault_iam_password }}" | Keycloak administrator password. | -|||| -| marketplace_enabled | false | Enable / disable marketplace. | -| marketplace_back_secret_key | "{{ vault_marketplace_back_secret_key }}" | You should not change this. | -|||| -| marketplace_front_workers | 2 | Number of node workers. | -|||| -| workers_export_instance | 1 | Number of replicas deployed on *each* server. | -| workers_export_cpu | 1 | Number of CPUs allocated for each replicas. | -| workers_gltf_instance | 1 | Number of replicas deployed on *each* server. | -| workers_gltf_cpu | 1 | Number of CPUs allocated for each replicas. | -| workers_extract_instance | 1 | Number of replicas deployed on *each* server. | -| workers_extract_cpu | 1 | Number of CPUs allocated for each replicas. | -| workers_extract_quantities_instance | 1 | Number of replicas deployed on *each* server. | -| workers_extract_quantities_cpu | 1 | Number of CPUs allocated for each replicas. | -| workers_svg_instance | 1 | Number of replicas deployed on *each* server. | -| workers_svg_cpu | 1 | Number of CPUs allocated for each replicas. | -| workers_merge_instance | 1 | Number of replicas deployed on *each* server. | -| workers_merge_cpu | 1 | Number of CPUs allocated for each replicas. | -| workers_xkt_instance | 1 | Number of replicas deployed on *each* server. | -| workers_xkt_cpu | 1 | Number of CPUs allocated for each replicas. | -| workers_preview_instance | 1 | Number of replicas deployed on *each* server. | -| workers_preview_cpu | 1 | Number of CPUs allocated for each replicas. | -|||| -| master_token | "{{ vault_master_token }}" | Master token use for authentication between workers and API. | -| app_env | "staging" | Environnement definition for some app. Must not be changed. | -| mapbox_token | "{{ vault_mapbox_token }}" | Token for authentication on the Mapbox API. | -::: - -## connectivity.yml -### Ansible connectivity -| Variables | Default value | Description | -|----------------------------|--------------------|-------------------------------| -| ansible_python_interpreter | "/usr/bin/python3" | Force the use of python3. | -| ansible_ssh_pipelining | true | Improve ansible performances. | - -### SSH Bastion -If you can't use SSH directly from this computer to the servers where you want to install -our applications, you can use a *bastion* that will proxy the ssh connections. - -::: v-pre -| Variables | Default value | Description | -|---------------------------|-------------------------------|------------------------------------------------| -| use_bastion | false | Configure if you want to use a bastion or not. | -| bastion_ssh_addr | "" | Bastion adresse use for the ssh connection. | -| bastion_ssh_port | 22 | Bastion TCP port use for the ssh connection. | -| bastion_ssh_user | "{{ lookup('env', 'USER') }}" | SSH user for authentication on the Bastion. | -| bastion_ssh_extra_options | *undefined* | String to add other SSH options. | -::: - -### Proxy -If your servers can't access the web directly, you may need to configure a proxy -to access our docker registry for example. - -| Variables | Default value | Description | -|-------------|---------------|--------------------------------------------------------| -| http_proxy | "" | HTTP proxy address. | -| https_proxy | "" | HTTPS proxy address. | -| no_proxy | [] | List of domains / IP where the proxy must not be used. | - -## databases.yml -### External postgres cluster -| Variables | Default value | Description | -|------------------|---------------|----------------------------------------------------------------------------------| -| use_external_db | false | Configure if you want to use a postgres instance manage by this playbook or not. | -| external_db_host | "" | Postgres cluster address use for connection if use_external_db: true. | -| external_db_port | 5432 | Postgres cluster TCP port use for connection if use_external_db: true. | - -### Databases -::: v-pre -| Variables | Default value | Description | -|-------------------------|---------------------------------------|----------------------------------------| -| db_api_name | "api" | Database name for the API. | -| db_api_user | "api" | Postgres user for the API. | -| db_api_password | "{{ vault_db_api_password }}" | Postgres password for the API. | -|||| -| db_connect_name | "connect" | Database name for Connect. | -| db_connect_user | "connect" | Postgres user for Connect. | -| db_connect_password | "{{ vault_db_connect_password }}" | Postgres password for Connect. | -|||| -| db_platform_name | "platform" | Database name for the Platform. | -| db_platform_user | "platform" | Postgres user for the Platform. | -| db_platform_password | "{{ vault_db_platform_password }}" | Postgres password for the Platform. | -|||| -| db_iam_name | "iam" | Database name for Keycloak. | -| db_iam_user | "iam" | Postgres user for Keycloak. | -| db_iam_password | "{{ vault_db_iam_password }}" | Postgres password for Keycloak. | -|||| -| db_marketplace_name | "marketplace" | Database name for the Marketplace. | -| db_marketplace_user | "marketplace" | Postgres user for the Marketplace. | -| db_marketplace_password | "{{ vault_db_marketplace_password }}" | Postgres password for the Marketplace. | -::: - -If `use_external_db: false` AND if the [db] server is different from the [app] server (in the inventory) -each Postgres instance will need to use its own TCP port. There are defined with these variables. -You will need to configure your firewall: the [app] server will need to be able to communication -with the [db] server on these ports. - -::: v-pre -| Variables | Default value | Description | -|------------------------------|----------------------------------------------------------------------|------------------------------------------------------------------------------------------| -| db_api_external_port | 5432 | Postgres external port for the API. | -| db_connect_external_port | 5433 | Postgres external port for Connect. | -| db_platform_external_port | 5434 | Postgres external port for the Platform. | -| db_iam_external_port | 5435 | Postgres external port for Keycloak. | -| db_marketplace_external_port | 5436 | Postgres external port for Keycloak. | -| db_server_addr | "{{ hostvars[groups['db'][0]]['ansible_default_ipv4']['address'] }}" | Use to determine the IP that will be use for Postgres connection between [app] and [db]. | -::: - -## docker_images.yml -::: v-pre -| Variables | Default value | Description | -|-----------------------------------------|-------------------------------------------------------------|---------------------------------------------------------------------------| -| docker_private_registry | "docker-registry.bimdata.io" | Define the registry address from which most of the images will come from. | -| docker_registries | | List of registries informations use to configure docker authentication. | -| docker_rabbitmq_image | "rabbitmq" | RabbitMQ docker image (use Dockerhub by default). | -| docker_rabbitmq_tag | "3.8-management-alpine" | RabbitMQ docker tag. | -| docker_postgres_image | "postgres" | Postgres docker image (use Dockerhub by default). | -| docker_postgres_tag | "10-alpine" | Postgres docker tag. | -| docker_api_image | "{{ docker_private_registry }}/on-prem/api" | API docker image. | -| docker_api_tag | latest | API docker tag. | -| docker_connect_image | "{{ docker_private_registry }}/on-prem/connect" | Connect docker image. | -| docker_connect_tag | latest | Connect docker tag. | -| docker_platform_back_image | "{{ docker_private_registry }}/on-prem/platform_back" | Platform back docker image. | -| docker_platform_back_tag | latest | Platform back docker tag. | -| docker_platform_front_image | "{{ docker_private_registry }}/on-prem/platform" | Platform front docker image. | -| docker_platform_front_tag | latest | Platform front docker tag. | -| docker_iam_image | "{{ docker_private_registry }}/on-prem/iam" | Keycloak docker image. | -| docker_iam_tag | latest | Keycloak docker tag. | -| docker_documentation_image | "{{ docker_private_registry }}/on-prem/documentation" | Documentation docker image. | -| docker_documentation_tag | latest | Documentation docker tag. | -| docker_archive_image | "{{ docker_private_registry }}/on-prem/archive" | Archive docker image. | -| docker_archive_tag | latest | Archive docker tag. | -| docker_marketplace_back_image | "{{ docker_private_registry }}/on-premise/marketplace_back" | Marketplace back images. | -| docker_marketplace_back_tag | latest | Marketplace back docker tag. | -| docker_marketplace_front_image | "{{ docker_private_registry }}/on-premise/marketplace" | Marketplace front docker image. | -| docker_marketplace_front_tag | latest | Marketplace front docker tag. | -| docker_workers_export_image | "{{ docker_private_registry }}/on-prem/workers" | Worker export docker image. | -| docker_workers_export_tag | latest | Worker export docker tag. | -| docker_workers_gltf_image | "{{ docker_private_registry }}/on-prem/workers" | Worker GLTF docker image. | -| docker_workers_gltf_tag | latest | Worker GLTF docker tag. | -| docker_workers_extract_image | "{{ docker_private_registry }}/on-prem/workers" | Worker extract docker image. | -| docker_workers_extract_tag | latest | Worker extract docker tag. | -| docker_workers_extract_quantities_image | "{{ docker_private_registry }}/on-prem/workers" | Worker extract quantities docker image. | -| docker_workers_extract_quantities_tag | latest | Worker extract quantities docker tag. | -| docker_workers_svg_image | "{{ docker_private_registry }}/on-prem/workers" | Worker SVG docker image. | -| docker_workers_svg_tag | latest | Worker SVG docker tag. | -| docker_workers_merge_image | "{{ docker_private_registry }}/on-prem/workers" | Worker merge docker image. | -| docker_workers_merge_tag | latest | Worker merge docker tag. | -| docker_workers_xkt_image | "{{ docker_private_registry }}/on-prem/xkt_worker" | Worker XKT docker image. | -| docker_workers_xkt_tag | latest | Worker XKT docker tag. | -| docker_workers_preview_image | "{{ docker_private_registry }}/on-prem/viewer_360" | Worker preview docker image. | -| docker_workers_preview_tag | latest | Worker preview docker tag. | -::: - -## docker.yml -::: v-pre -| Variables | Default value | Description | -|----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------| -| install_docker | true | Install Docker or not (if not, docker need to be already installed). | -| docker_apt_dependencies | ["python3-docker", "gnupg", "apt-transport-https", "ca-certificates"] | List of APT packages to install before Docker. | -| docker_apt_release_channel | "stable" | Docker version that will be installed. | -| docker_repo_base_url | "https://download.docker.com/linux" | Docker APT repository. | -| docker_apt_key_url | "{{ docker_repo_base_url }}/{{ ansible_distribution | lower }}/gpg" | URL of APT GPG key needed for Docker installation. | -| docker_apt_repo_url | "{{ docker_repo_base_url }}/{{ ansible_distribution | lower }}" | URL of APT repository for Docker installation. | -|||| -| docker_edition | ce | Docker edition that will be installed ('ee' for 'Enterprise Edition' or 'ce' for 'Community Edition') | -| docker_pkg_name | "docker-{{ docker_edition }}" | Docker APT package name that will be installed. | -| docker_pkg_version | "" | Docker APT package version that will be installed. | -| docker_pkg_version_hold | "{{ docker_pkg_version | default(false) | ternary(true, false) }}" | Should APT be configure to hold the Docker version (false by default, true if docker_pkg_version is defined) | -|||| -| docker_svc_name | "docker" | Docker service name. | -| docker_install_compose | true | Install Docker compose or not (if noot, need to be already installed.) | -| docker_compose_version | "1.29.2" | Docker compose version to install. | -| docker_compose_url | "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-{{ ansible_system }}-{{ ansible_architecture }}" | URL to download docker compose. | -| docker_compose_path | "/usr/local/bin/docker-compose" | Path of where Docker compose will be installed. | -|||| -| docker_use_extra_hosts | false | Add /etc/hosts value in containers if needed. | -| docker_extra_hosts | [] | list of hosts that will be added to /etc/hosts of containers. | -::: - -## nginx.yml -You should not have to modify these variables in most cases. - -| Variables | Default value | Description | -|----------------------|---------------|-----------------------------| -| nginx_custom_conf | | Nginx custom configuration. | -| nginx_vhost_override | | Nginx vhost configuration. | - -## rabbitmq.yml -::: v-pre -| Variables | Default value | Description | -|-------------------------|---------------------------------|------------------------------------------------------------| -| use_external_rabbitmq | false | Set to true if you want to use your own RabbitMQ instance. | -| external_rabbitmq_host | "" | RabbitMQ cluster address if use_external_rabbitmq: true. | -| external_rabbitmq_port | 5672 | RabbitMQ cluster TCP port if use_external_rabbitmq: true. | -| rabbitmq_user | "bimdata" | RabbitMQ user use for authentication. | -| rabbitmq_password | "{{ vault_rabbitmq_password }}" | RabbitMQ password use for authentication. | -| rabbitmq_admin_dns_name | "rabbitmq.{{ app_dns_domain }}" | RabbitMQ dns name. | -| rabbitmq_external_port | 5672 | RabbitMQ external port. | -| rabbitmq_server_addr | "{{ rabbitmq_admin_dns_name }}" | RabbitMQ server address. | -::: - -## tls.yml -::: v-pre -| Variables | Default value | Description | -|----------------------------|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------| -| tls_enabled | false | Enable external TLS or not. | -| nginx_use_pregen_dh | true | Use pre-defined diffie hellman parameters. If false it'll generate new one. This take a lot of time. | -| tls_ca_certificate | "" | CA certificate of the CA used to sign the certificates for the applications. (PEM format.) | -| tls_subca_certificates | [] | If a complexe CA architecture is used, tls_ca_certificate should contain the main CA, and this list all the intermediate ones. | -| tls_api_key | "{{ vault_tls_api_key }}" | API TLS key (PEM format). | -| tls_api_cert | "" | API TLS Certificate (PEM format). | -| tls_connect_key | "{{ vault_tls_connect_key }}" | Connect TLS key (PEM format). | -| tls_connect_cert | "" | Connect TLS Certificate (PEM format). | -| tls_platform_back_key | "{{ vault_tls_platform_back_key }}" | Platform back TLS key (PEM format). | -| tls_platform_back_cert | "" | Platform back TLS Certificate (PEM format). | -| tls_platform_front_key | "{{ vault_tls_platform_front_key }}" | Platform front TLS key (PEM format). | -| tls_platform_front_cert | "" | Platform front TLS Certificate (PEM format). | -| tls_iam_key | "{{ vault_tls_iam_key }}" | Keycloak TLS key (PEM format). | -| tls_iam_cert | "" | Keycloak TLS Certificate (PEM format). | -| tls_rabbitmq_admin_key | "{{ vault_tls_rabbitmq_admin_key }}" | RabbitMQ TLS key (PEM format). (Only needed if use_external_rabbitmq: false.) | -| tls_rabbitmq_admin_cert | "" | RabbitMQ TLS Certificate (PEM format). (Only needed if use_external_rabbitmq: false.) | -| tls_documentation_key | "{{ vault_tls_documentation_key }}" | Documentation TLS key (PEM format). | -| tls_documentation_cert | "" | Documentation TLS Certificate (PEM format). | -| tls_archive_key | "{{ vault_tls_archive_key }}" | Archive TLS key (PEM format). | -| tls_archive_cert | "" | Archive TLS Certificate (PEM format). | -| tls_marketplace_back_key | "{{ vault_tls_marketplace_back_key }}" | Marketplace back TLS key (PEM format). | -| tls_marketplace_back_cert | "" | Marketplace back TLS Certificate (PEM format). | -| tls_marketplace_front_key | "{{ vault_tls_marketplace_front_key }}" | Marketplace front TLS key (PEM format). | -| tls_marketplace_front_cert | "" | Marketplace front TLS Certificate (PEM format). | -::: - -## vault.yml -In this file, all private pieces of information are defined. Like passwords, TLS keys, or other security stuff. -You should replace all the values and encrypt the file with [`ansible-vault`](https://docs.ansible.com/ansible/latest/user_guide/vault.html). diff --git a/src/on-premises/install/quickstart/install.md b/src/on-premises/install/quickstart/install.md deleted file mode 100644 index b4f86ac..0000000 --- a/src/on-premises/install/quickstart/install.md +++ /dev/null @@ -1,97 +0,0 @@ -# Installation - -We have a [quickstart Ansible playbook](https://github.com/bimdata/quickstart-onpremise/tree/feat/quickstart-creation) -to help you install our applications. This is not intended for production usage, -this is an example of how to deploy the different parts of our product. -You may need to modify it to suit your needs. - -## Limitations - - This project is an example of how to quickly install our applications. - You may need to do multiple modifications to match your infrastructure - and your security needs. - - - This project does not support high availability deployment. - -## Prerequisites - - You need to be able to download docker images from the Internet. By default, some images - come from *Dockerhub* and some from our *private registry*. - - You need to have *python3* and *python3-venv* on the computer that will run Ansible. - - Servers must be Debian 10 / 11 with Python3. - - Servers must be accessible through SSH. - - You must be sudo / root on the servers. - -## Environment -This quickstart uses Ansible to install Docker, Docker-compose, and the BIMData -applications on the configured servers. -This doesn't support HA deployment currently. - -## How to start -### The easy way -We provide a script to simplify the Ansible usage. Keep in mind that it will not let -you completely personalize how you want to install the BIMData.io apps. - -Clone the repository: -``` -git clone https://github.com/bimdata/quickstart-onpremise.git -cd quickstart-onpremise -``` - -You need to ensure that you have `python3` and `python3-venv` installed on your system. - -Then you just need to run the script, it will install the other dependencies and -ask you how you want to install it. -``` -./install.sh -``` - -### The "Ansible" way -Clone the repository: -``` -git clone https://github.com/bimdata/quickstart-onpremise.git -cd quickstart-onpremise -``` - -You will need to install some python dependencies, you may want to do it in a -virtualenv. If this is the case, you need to create it: - -``` -python3 -m venv venv -source venv/bin/activate -``` - -Now you need to install the dependencies: -``` -pip install -r requirements.txt -``` - -This playbook comes with an example inventory. The easiest way to start is to copy this inventory and modify the copy: -``` -cp -rp inventories/sample inventories/my-own-inventory -``` - -First, you need to edit the inventory file `inventories/my-own-inventory/inventory.ini`. -There are three groups: - - `app`: this is where all the web app will be deployed, - - `db`: this is where all databases will be deployed if you don't use an external Postgres cluster. - - `workers`: this is where all the workers that process data will be deployed. - -Currently, `app` and `db` do not support multiples hosts. This project can't be -use for a fully redundant infrastructure. - -Then, you need to modify the variables to match your needs. - -When everything is configured, you can deploy: -``` -ansible-playbook -i inventories/my-own-inventory/inventory.ini install-bimdata.yml -``` - -You may need to add options: - -| Options | Effect | -|------------------|---------------------------| -| -k | Prompt for ssh password. | -| -K | Prompt for sudo password. | -| --ask-vault-pass | Prompt for vault password | - -If you can't use `sudo`, you can check the [Ansible documentation](https://docs.ansible.com/ansible/latest/user_guide/become.html) -on how to configure another way to manage privilege escalation. diff --git a/src/on-premises/install/prerequisites.md b/src/on-premises/prerequisites.md similarity index 82% rename from src/on-premises/install/prerequisites.md rename to src/on-premises/prerequisites.md index ddf348b..c42679e 100644 --- a/src/on-premises/install/prerequisites.md +++ b/src/on-premises/prerequisites.md @@ -2,17 +2,23 @@ ## Hardware ### Minimal -| Server | CPU | RAM | Disk | -|:--------------------------:|:----------:|:---------:|:-----------:| -| Applications + databases | 4 cores | 16 GB | 500GB SSD | -| Model processing (workers) | 4 cores | 16 GB | 120 GB SSD | + +This can be use to test the solution and process small models. + +| Server | CPU | RAM | Disk | +|:----------------------------------:|:----------:|:---------:|:----------------------------:| +| Applications + databases + workers | 4 cores | 16 GB | 64GB SSD + 2 * data size | ### Recommended -| Server | CPU | RAM | Disk | -|:--------------------------:|:----------:|:---------:|:-----------:| -| Applications | 8 cores | 32 GB | 120 GB SSD | -| Databases | 8 cores | 32 GB | 500 GB SSD | -| Model processing (workers) | 16 cores | 64 GB | 120 GB SSD | +| Server | CPU | RAM | Disk | +|:--------------------------:|:----------:|:---------:|:-------------------------:| +| Applications + Databases | 4 cores | 12 GB | 64GB SSD + 2 * data size | +| Model processing (workers) | 8 cores | 32 GB | 64 GB SSD | + +The requirements are heavly dependants of your data, what you want to process, and at which speed. +For example, for bigs IFCs file with a lot of geometry compelxity, 32 GB of ram will not be enought. +But we are constanly working to reduce the memory consuption of our workers. +So don't hesitate to contact us, we can work with you to determine what's best for you need. ### High Availability For the High availability, the prerequisites are the same as the *Recommended* From d623858c0ceec5ad2d03b93478621cac2b89a3ae Mon Sep 17 00:00:00 2001 From: RomainMou <58464216+RomainMou@users.noreply.github.com> Date: Tue, 20 Oct 2026 14:57:14 +0200 Subject: [PATCH 2/2] Remove forgotten menu items & fixes typos --- src/.vitepress/sidebar.js | 16 ---------------- src/on-premises/install.md | 4 ++-- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/src/.vitepress/sidebar.js b/src/.vitepress/sidebar.js index 1ceb73c..de84360 100644 --- a/src/.vitepress/sidebar.js +++ b/src/.vitepress/sidebar.js @@ -97,22 +97,6 @@ function getOnpremSidebar() { { text: "High availability", link: "/on-premises/high_availability" }, ], }, - { - text: "Configuration", - items: [ - { - text: "Containers environment", - items: [ - { text: "BIMData API", link: "/on-premises/config/env/api" }, - { text: "BIMData Connect", link: "/on-premises/config/env/connect" }, - { text: "BIMData Platform Front", link: "/on-premises/config/env/platform_front" }, - { text: "BIMData Platform Back", link: "/on-premises/config/env/platform_back" }, - { text: "BIMData Archive", link: "/on-premises/config/env/archive" }, - { text: "BIMData workers", link: "/on-premises/config/env/workers" }, - ], - }, - ], - }, ]; } diff --git a/src/on-premises/install.md b/src/on-premises/install.md index 3f823d1..712974f 100644 --- a/src/on-premises/install.md +++ b/src/on-premises/install.md @@ -7,9 +7,9 @@ All the relative documentation are inside the git repository for each method of ## Full stack Our main installation method is our [quickstart Ansible playbook](https://github.com/bimdata/quickstart-onpremise). -It will setup everything you need, and all supported BIMData components, to offer you the same experience as our SaaS service but on your hardware. +It sets up everything you need, and all supported BIMData components, to offer you the same experience as our SaaS service but on your hardware. ## API and process only We develop a [lighter installer](https://github.com/bimdata/simplified-onpremise), for when you don't need all the BIMData stack, for example, when you will do an integration inside your existing application. -It will only setup our main API, and all the worker to process the uploaded files and will require some manual steps to be usable. +It only sets up our main API, and all the workers to process the uploaded files and will require some manual steps to be usable.