Skip to content

Commit b56de59

Browse files
committed
Updating emojis
1 parent 10f599c commit b56de59

1 file changed

Lines changed: 72 additions & 76 deletions

File tree

docker/README.md

Lines changed: 72 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -29,48 +29,46 @@ regarding FiftyOne Enterprise.
2929

3030
## Table of Contents
3131

32-
<!-- markdownlint-disable link-fragments -->
33-
3432
<!-- toc -->
3533

36-
- [Prerequisites](#prerequisites)
37-
- [Step 1: Prepare License File](#step-1-prepare-license-file)
38-
- [Step 2: Choose Authentication Mode](#step-2-choose-authentication-mode)
39-
- [👉 Choose your mode](#%F0%9F%91%89-choose-your-mode)
40-
- [Step 3: Configure Environment](#step-3-configure-environment)
34+
- [:white_check_mark: Prerequisites](#white_check_mark-prerequisites)
35+
- [:closed_lock_with_key: Step 1: Prepare License File](#closed_lock_with_key-step-1-prepare-license-file)
36+
- [:file_folder: Step 2: Choose Authentication Mode](#file_folder-step-2-choose-authentication-mode)
37+
- [:point_right: Choose your mode](#point_right-choose-your-mode)
38+
- [:gear: Step 3: Configure Environment](#gear-step-3-configure-environment)
4139
- [1. Copy the template `.env` file](#1-copy-the-template-env-file)
4240
- [2. Fill out required values in `.env`](#2-fill-out-required-values-in-env)
4341
- [3. Create a `compose.override.yaml` to override configuration](#3-create-a-composeoverrideyaml-to-override-configuration)
44-
- [📦 Official Docker Images](#%F0%9F%93%A6-official-docker-images)
45-
- [Step 4: Initial Deployment](#step-4-initial-deployment)
42+
- [:package: Official Docker Images](#package-official-docker-images)
43+
- [:rocket: Step 4: Initial Deployment](#rocket-step-4-initial-deployment)
4644
- [1. Enable Database Admin mode](#1-enable-database-admin-mode)
4745
- [2. Launch the application](#2-launch-the-application)
48-
- [Step 5: Configure SSL & Reverse Proxy (Nginx / Load Balancer)](#step-5-configure-ssl--reverse-proxy-nginx--load-balancer)
49-
- [🧭 Routing Overview (Path-Based Proxy)](#%F0%9F%A7%AD-routing-overview-path-based-proxy)
50-
- [📁 Nginx Configuration Options](#%F0%9F%93%81-nginx-configuration-options)
51-
- [🔹 1. **Path-Based Routing**](#%F0%9F%94%B9-1-path-based-routing)
52-
- [🔹 2. **Hostname-Based Routing**](#%F0%9F%94%B9-2-hostname-based-routing)
53-
- [📄 Notes](#%F0%9F%93%84-notes)
54-
- [Step 6: Configuring FiftyOne Enterprise Plugins](#step-6-configuring-fiftyone-enterprise-plugins)
55-
- [🔹 1. Builtin Plugins Only (Default)](#%F0%9F%94%B9-1-builtin-plugins-only-default)
56-
- [🔹 2. Shared Plugins (Custom Plugins in `fiftyone-app`)](#%F0%9F%94%B9-2-shared-plugins-custom-plugins-in-fiftyone-app)
46+
- [:globe_with_meridians: Step 5: Configure SSL & Reverse Proxy (Nginx / Load Balancer)](#globe_with_meridians-step-5-configure-ssl--reverse-proxy-nginx--load-balancer)
47+
- [:compass: Routing Overview (Path-Based Proxy)](#compass-routing-overview-path-based-proxy)
48+
- [:open_file_folder: Nginx Configuration Options](#open_file_folder-nginx-configuration-options)
49+
- [:small_blue_diamond: 1. **Path-Based Routing**](#small_blue_diamond-1-path-based-routing)
50+
- [:small_blue_diamond: 2. **Hostname-Based Routing**](#small_blue_diamond-2-hostname-based-routing)
51+
- [:page_facing_up: Notes](#page_facing_up-notes)
52+
- [:jigsaw: Step 6: Configuring FiftyOne Enterprise Plugins](#jigsaw-step-6-configuring-fiftyone-enterprise-plugins)
53+
- [:small_blue_diamond: 1. Builtin Plugins Only (Default)](#small_blue_diamond-1-builtin-plugins-only-default)
54+
- [:small_blue_diamond: 2. Shared Plugins](#small_blue_diamond-2-shared-plugins)
5755
- [Enable shared plugin mode](#enable-shared-plugin-mode)
58-
- [🔹 3. RECOMMENDED: Dedicated Plugins (Isolated `teams-plugins` Service)](#%F0%9F%94%B9-3-recommended-dedicated-plugins-isolated-teams-plugins-service)
56+
- [:small_blue_diamond: 3. RECOMMENDED: Dedicated Plugins](#small_blue_diamond-3-recommended-dedicated-plugins)
5957
- [Enable dedicated plugin mode](#enable-dedicated-plugin-mode)
60-
- [📌 Notes](#%F0%9F%93%8C-notes)
61-
- [Step 7: Configuring FiftyOne Enterprise Delegated Operators](#step-7-configuring-fiftyone-enterprise-delegated-operators)
62-
- [🔧 Enabling Delegated Operator Mode](#%F0%9F%94%A7-enabling-delegated-operator-mode)
58+
- [:pushpin: Notes](#pushpin-notes)
59+
- [:gear: Step 7: Configuring FiftyOne Enterprise Delegated Operators](#gear-step-7-configuring-fiftyone-enterprise-delegated-operators)
60+
- [:wrench: Enabling Delegated Operator Mode](#wrench-enabling-delegated-operator-mode)
6361
- [Example: Enable on top of **Dedicated Plugins** mode](#example-enable-on-top-of-dedicated-plugins-mode)
64-
- [📄 Optional: Upload Run Logs](#%F0%9F%93%84-optional-upload-run-logs)
65-
- [🖥️ GPU-Enabled Workloads](#%F0%9F%96%A5%EF%B8%8F-gpu-enabled-workloads)
66-
- [🧱 Custom Plugin Images](#%F0%9F%A7%B1-custom-plugin-images)
62+
- [:page_facing_up: Optional: Upload Run Logs](#page_facing_up-optional-upload-run-logs)
63+
- [:desktop_computer: GPU-Enabled Workloads](#desktop_computer-gpu-enabled-workloads)
64+
- [:bricks: Custom Plugin Images](#bricks-custom-plugin-images)
6765
- [Step 8: Configuring Authentication (CAS)](#step-8-configuring-authentication-cas)
68-
- [🛠️ Optional: CAS Customization Instructions](#%F0%9F%9B%A0%EF%B8%8F-optional-cas-customization-instructions)
69-
- [ℹ️ Notes](#%E2%84%B9%EF%B8%8F-notes)
66+
- [:hammer_and_wrench: Optional: CAS Customization Instructions](#hammer_and_wrench-optional-cas-customization-instructions)
67+
- [:information_source: Notes](#information_source-notes)
7068
- [Upgrades](#upgrades)
71-
- [🚫 Disable Automatic Migrations](#%F0%9F%9A%AB-disable-automatic-migrations)
72-
- [🛠️ What Happens If You Migrate with database admin False?](#%F0%9F%9B%A0%EF%B8%8F-what-happens-if-you-migrate-with-database-admin-false)
73-
- [📚 Next Steps](#%F0%9F%93%9A-next-steps)
69+
- [:no_entry_sign: Disable Automatic Migrations](#no_entry_sign-disable-automatic-migrations)
70+
- [:hammer_and_wrench: What Happens If You Migrate with database admin False?](#hammer_and_wrench-what-happens-if-you-migrate-with-database-admin-false)
71+
- [:books: Next Steps](#books-next-steps)
7472
- [Known Issues](#known-issues)
7573
- [Advanced Configuration](#advanced-configuration)
7674
- [Snapshot Archival](#snapshot-archival)
@@ -80,9 +78,7 @@ regarding FiftyOne Enterprise.
8078

8179
<!-- tocstop -->
8280

83-
<!-- markdownlint-enable link-fragments -->
84-
85-
## Prerequisites
81+
## :white_check_mark: Prerequisites
8682

8783
- Docker and Docker Compose are installed
8884
- License file from Voxel51
@@ -98,7 +94,7 @@ regarding FiftyOne Enterprise.
9894
Please note that we do not support MongoDB Atlas Serverless instances
9995
because we require Aggregations.
10096

101-
## Step 1: Prepare License File
97+
## :closed_lock_with_key: Step 1: Prepare License File
10298

10399
> Required for **v2.0+**
104100
@@ -115,7 +111,7 @@ mv license.key "${LOCAL_LICENSE_FILE_DIR}/license"
115111
> picked up immediately, you may need to restart the `teams-cas` and `teams-api`
116112
> services.
117113
118-
## Step 2: Choose Authentication Mode
114+
## :file_folder: Step 2: Choose Authentication Mode
119115

120116
FiftyOne Enterprise offers two authentication modes:
121117

@@ -124,15 +120,15 @@ FiftyOne Enterprise offers two authentication modes:
124120
- `internal-auth` → Choose this mode when in an airgapped deployment - aigapped
125121
deployments will not require network egress to external services.
126122

127-
### 👉 Choose your mode
123+
### :point_right: Choose your mode
128124

129125
Navigate into the appropriate directory:
130126

131127
```bash
132128
cd legacy-auth # or internal-auth
133129
```
134130

135-
## Step 3: Configure Environment
131+
## :gear: Step 3: Configure Environment
136132

137133
### 1. Copy the template `.env` file
138134

@@ -150,7 +146,7 @@ At minimum, configure:
150146
- `FIFTYONE_DATABASE_URI` – Your MongoDB connection URI
151147
- `FIFTYONE_ENCRYPTION_KEY` – Used to encrypt storage credentials
152148

153-
> 🔑 To generate a key:
149+
> :key: To generate a key:
154150
155151
```bash
156152
from cryptography.fernet import Fernet
@@ -171,7 +167,7 @@ services:
171167
FIFTYONE_DATABASE_ADMIN: true # Only for first install
172168
```
173169
174-
### 📦 Official Docker Images
170+
### :package: Official Docker Images
175171
176172
Voxel51 publishes the following private FiftyOne Enterprise images to Docker
177173
Hub:
@@ -184,8 +180,8 @@ Hub:
184180
- `voxel51/fiftyone-teams-cas`
185181
- `voxel51/fiftyone-teams-cv-full` ← full CV/ML environment
186182

187-
> 🔐 For access, contact your Voxel51 support team to obtain Docker Hub
188-
> credentials.
183+
> :closed_lock_with_key: For access, contact your Voxel51 support team to obtain
184+
> Docker Hub credentials.
189185

190186
You can override the default image used by any service in
191187
`compose.override.yaml`. For example:
@@ -196,7 +192,7 @@ services:
196192
image: voxel51/fiftyone-app-torch:v2.10.0
197193
```
198194

199-
## Step 4: Initial Deployment
195+
## :rocket: Step 4: Initial Deployment
200196

201197
### 1. Enable Database Admin mode
202198

@@ -244,7 +240,7 @@ curl -Iv http://localhost:3000/api/hello
244240
# Expected: HTTP/1.1 200 OK
245241
```
246242

247-
## Step 5: Configure SSL & Reverse Proxy (Nginx / Load Balancer)
243+
## :globe_with_meridians: Step 5: Configure SSL & Reverse Proxy (Nginx / Load Balancer)
248244

249245
Next, you will need to place a **reverse proxy or SSL endpoint** in front of
250246
your FiftyOne Enterprise services. This can be a tool like:
@@ -259,7 +255,7 @@ These proxies will:
259255
- Terminate HTTPS/SSL (if using TLS)
260256
- Optionally apply authentication headers, logging, or load balancing
261257

262-
### 🧭 Routing Overview (Path-Based Proxy)
258+
### :compass: Routing Overview (Path-Based Proxy)
263259

264260
| Path | Proxied To | Description |
265261
| ------------- | ----------- | ------------------------------------ |
@@ -270,30 +266,30 @@ These proxies will:
270266
| `/_pymongo` | `teams-api` | MongoDB requests via SDK |
271267
| `/health` | `teams-api` | Health check endpoint |
272268

273-
### 📁 Nginx Configuration Options
269+
### :open_file_folder: Nginx Configuration Options
274270

275271
Voxel51 provides example Nginx configs for two routing strategies:
276272

277-
#### 🔹 1. **Path-Based Routing**
273+
#### :small_blue_diamond: 1. **Path-Based Routing**
278274

279275
All services are routed based on URL path:
280276

281-
📄 Full configuration here:
277+
:page_facing_up: Full configuration here:
282278
[`example-nginx-path-routing.conf`](./example-nginx-path-routing.conf)
283279

284-
#### 🔹 2. **Hostname-Based Routing**
280+
#### :small_blue_diamond: 2. **Hostname-Based Routing**
285281

286282
teams-app and teams-api are routed using different subdomain or hostname:
287283

288284
- `fiftyone.your-company.com` → App
289285
- `fiftyone-api.your-company.com` → API
290286

291-
📄 Full configuration here:
287+
:page_facing_up: Full configuration here:
292288

293289
- [`example-nginx-site.conf`](./example-nginx-site.conf) (App + CAS)
294290
- [`example-nginx-api.conf`](./example-nginx-api.conf) (API)
295291

296-
### 📄 Notes
292+
### :page_facing_up: Notes
297293

298294
- FiftyOne Enterprise supports routing traffic through proxy servers. Please
299295
refer to the
@@ -302,20 +298,20 @@ teams-app and teams-api are routed using different subdomain or hostname:
302298
- To validate your deployments api connection, see
303299
[Validating Your Deployment](../docs/validating-deployment.md)
304300

305-
## Step 6: Configuring FiftyOne Enterprise Plugins
301+
## :jigsaw: Step 6: Configuring FiftyOne Enterprise Plugins
306302

307303
FiftyOne Enterprise supports three plugin modes: **Builtin**, **Shared**, and
308304
**Dedicated**. Each offers different trade-offs in isolation, flexibility, and
309305
resource management.
310306

311-
### 🔹 1. Builtin Plugins Only (Default)
307+
### :small_blue_diamond: 1. Builtin Plugins Only (Default)
312308

313309
This is the default configuration. It enables only the plugins shipped with the
314310
platform.
315311

316-
No additional configuration needed.
312+
:white_check_mark: No additional configuration needed.
317313

318-
### 🔹 2. Shared Plugins (Custom Plugins in `fiftyone-app`)
314+
### :small_blue_diamond: 2. Shared Plugins
319315

320316
Custom plugins are run **within the same container** as the app
321317
(`fiftyone-app`). Use this if:
@@ -337,7 +333,7 @@ docker compose \
337333

338334
> 📁 Plugins will run inside the `fiftyone-app` container.
339335

340-
### 🔹 3. RECOMMENDED: Dedicated Plugins (Isolated `teams-plugins` Service)
336+
### :small_blue_diamond: 3. RECOMMENDED: Dedicated Plugins
341337

342338
Custom plugins are run in a **separate `teams-plugins` container**, isolated
343339
from the app and API services.
@@ -350,13 +346,13 @@ Use this mode when:
350346

351347
#### Enable dedicated plugin mode
352348

353-
1. Ensure your `.env` file includes the following:
349+
- Ensure your `.env` file includes the following:
354350

355351
```shell
356352
FIFTYONE_TEAMS_PLUGIN_URL=http://teams-plugins:5151
357353
```
358354

359-
2. Use `compose.dedicated-plugins.yaml` (instead of `compose.yaml`)
355+
- Use `compose.dedicated-plugins.yaml` (instead of `compose.yaml`)
360356

361357
```shell
362358
docker compose \
@@ -365,28 +361,28 @@ docker compose \
365361
up -d
366362
```
367363

368-
3. Optional: If using a [proxy server](./docs/configuring-proxies.md), ensure
369-
the plugin service is excluded from proxying.
364+
- Optional: If using a [proxy server](./docs/configuring-proxies.md), ensure the
365+
plugin service is excluded from proxying.
370366

371367
> 🔧 This prevents traffic from being routed incorrectly through your proxy for
372368
> internal plugin calls.
373369

374-
### 📌 Notes
370+
### :pushpin: Notes
375371

376372
- All plugin modes require persistent storage (volumes) for plugin files.
377373
- For multi-node deployments, ensure that the volume is available on all nodes.
378374
- To manage and deploy plugins via the UI, go to:
379375
`https://<your-domain>/settings/plugins`
380376

381-
## Step 7: Configuring FiftyOne Enterprise Delegated Operators
377+
## :gear: Step 7: Configuring FiftyOne Enterprise Delegated Operators
382378

383379
Delegated Operators allow FiftyOne Enterprise to offload plugin execution to
384380
**worker containers**, enabling scalable and reliable long-running operations.
385381

386-
🧩 This feature is **compatible with all three plugin modes**: Builtin, Shared,
387-
and Dedicated.
382+
:jigsaw: This feature is **compatible with all three plugin modes**: Builtin,
383+
Shared, and Dedicated.
388384

389-
### 🔧 Enabling Delegated Operator Mode
385+
### :wrench: Enabling Delegated Operator Mode
390386

391387
To launch worker containers, include `compose.delegated-operators.yaml`
392388
alongside your existing plugin mode.
@@ -401,10 +397,10 @@ docker compose \
401397
up -d
402398
```
403399

404-
> 📁 This will start a `teams-delegated-operator` service and attach it to the
405-
> shared plugin volume.
400+
> :open_file_folder: This will start a `teams-delegated-operator` service and
401+
> attach it to the shared plugin volume.
406402

407-
### 📄 Optional: Upload Run Logs
403+
### :page_facing_up: Optional: Upload Run Logs
408404

409405
You can enable **log uploads** for delegated operation runs by setting:
410406

@@ -421,15 +417,15 @@ Logs will be stored in the format:
421417
This is useful for auditing, debugging, or monitoring delegated operator
422418
executions in shared storage or cloud buckets.
423419

424-
### 🖥️ GPU-Enabled Workloads
420+
### :desktop_computer: GPU-Enabled Workloads
425421

426422
FiftyOne services like Delegated Operators can be scheduled on **GPU-enabled
427423
hardware** for more efficient computation.
428424

429425
To setup containers with GPU resources, see the
430426
[configuring GPU workloads documentation](./docs/configuring-gpu-workloads.md).
431427

432-
### 🧱 Custom Plugin Images
428+
### :bricks: Custom Plugin Images
433429

434430
If your delegated operators or plugins require **custom dependencies**, build
435431
and deploy **custom plugin images**. You can base them on
@@ -444,7 +440,7 @@ and deploy **custom plugin images**. You can base them on
444440
FiftyOne Enterprise uses a Central Authentication Service (CAS) introduced in
445441
v1.6. This enables centralized login, roles, and user management.
446442

447-
### 🛠️ Optional: CAS Customization Instructions
443+
### :hammer_and_wrench: Optional: CAS Customization Instructions
448444

449445
1. Update required CAS variables in `.env`:
450446
- `FIFTYONE_AUTH_SECRET`
@@ -459,7 +455,7 @@ v1.6. This enables centralized login, roles, and user management.
459455
to bring up services.
460456
1. Ensure your proxy (e.g., nginx) forwards `/cas` to the CAS service port.
461457

462-
### ℹ️ Notes
458+
### :information_source: Notes
463459

464460
- [Pluggable authentication docs](https://docs.voxel51.com/enterprise/pluggable_auth.html#pluggable-authentication)
465461
includes information on configuring CAS.
@@ -471,7 +467,7 @@ v1.6. This enables centralized login, roles, and user management.
471467
When upgrading FiftyOne Enterprise, you must explicitly **prevent automatic
472468
database migrations** to avoid breaking active SDK sessions or deployments.
473469

474-
### 🚫 Disable Automatic Migrations
470+
### :no_entry_sign: Disable Automatic Migrations
475471

476472
Before running your upgraded containers, set the following override:
477473

@@ -488,7 +484,7 @@ services:
488484
The environment variable `FIFTYONE_DATABASE_ADMIN` acts as a safeguard to
489485
prevent the database from being modified automatically.
490486

491-
### 🛠️ What Happens If You Migrate with database admin False?
487+
### :hammer_and_wrench: What Happens If You Migrate with database admin False?
492488

493489
If `FIFTYONE_DATABASE_ADMIN=false` is set, and a migration attempt is made via
494490
CLI:
@@ -528,7 +524,7 @@ dataset version
528524
quickstart 0.21.2
529525
```
530526

531-
### 📚 Next Steps
527+
### :books: Next Steps
532528

533529
After disabling `FIFTYONE_DATABASE_ADMIN`, refer to:
534530

@@ -539,10 +535,10 @@ for complete guidance on upgrading from previous versions
539535
## Known Issues
540536

541537
For a list of common issues and their solutions, refer to the
542-
[📄 Known Issues documentation](./docs/known-issues.md).
538+
[:page_facing_up: Known Issues documentation](./docs/known-issues.md).
543539

544540
If you encounter a new issue, please open a ticket on the
545-
[📬 GitHub Issues page](https://github.com/voxel51/fiftyone-teams-app-deploy/issues).
541+
[:mailbox_with_mail: GitHub Issues page](https://github.com/voxel51/fiftyone-teams-app-deploy/issues).
546542

547543
## Advanced Configuration
548544

0 commit comments

Comments
 (0)