OCN Datavault - Administrator Guide¶
Mục lục¶
Phiên bản: 1.0
Đối tượng: Quản trị viên hệ thống OCN Datavault
Chào mừng bạn đến với OCN Datavault!
Tài liệu này là hướng dẫn toàn diện dành cho quản trị viên hệ thống chịu trách nhiệm triển khai, cấu hình, quản lý và bảo trì giải pháp quản lý văn bản mật OCN Datavault. Chúng tôi sẽ cung cấp cho bạn thông tin chi tiết, hướng dẫn từng bước và các phương pháp tốt nhất để vận hành hệ thống một cách hiệu quả và an toàn.
1. Giới thiệu¶
1.1 OCN Datavault là gì?¶
OCN Datavault là một hệ thống quản lý văn bản mật toàn diện cho người dùng. Nó giải quyết các vấn đề chính sau:
- Bảo vệ tài liệu nội bộ, mật, tuyệt mật tập trung. Mã hóa toàn bộ các tài liệu hiện tại và quản lý tập trung tại máy chủ cho phép scale-out tới hàng 100 PGB dữ liệu.
- Kiểm soát quyền truy cập theo vai trò, thiết bị. Tích hợp các giải pháp trusted device, toàn bộ các hành động truy cập vào tài liệu được ghi lại.
- Mã hóa toàn bộ vòng đời tài liệu: Từ tạo, chỉnh sửa, chia sẻ đến lưu trữ. Toàn bộ thao tác vào tài liệu được thực hiện qua app desktop và tích hợp với phần mềm soạn thảo văn bản hiện có. Giúp quản lý dữ liệu trong cả vòng đời sản phẩm.
- Áp dụng các giải pháp chống sao chép, chụp trộm màn hình
1.2 Các thành phần chính¶
- API Server (backend server): Toàn bộ logic hệ thống tập trung tại đây bao gồm: Xác thực, phân quyền, quản lý tài liệu, audit log…
- Frontend (fe): Thành phần frontend cung cấp cho administrator giao diện web để quản lý người dùng và chính sách hệ thống. Thành phân này giao tiếp với API Server.
- Datavault App Desktop: Thành phần client đóng vai trò giao tiếp với API Server. Thực hiện việc mã hóa, giải mã và đồng bộ file từ local lên server.
- Database (MySQL): Lưu trữ toàn bộ thông tin người dùng, quan hệ phân quyền, metadata về file, folder của toàn bộ hệ thống
1.3 Đối tượng sử dụng tài liệu này¶
Tài liệu này dành cho:
- Quản trị viên hệ thống chịu trách nhiệm triển khai và quản lý OCN Firewall.
- Kỹ sư an ninh mạng cần thiết lập và quản lý chính sách bảo mật.
- Chuyên gia vận hành hạ tầng cần giám sát và xử lý sự cố hệ thống.
1.4 Kiến thức và kỹ năng cần thiết¶
Để quản trị hiệu quả OCN Firewall, bạn nên có:
- Kiến thức vững chắc về mạng (TCP/IP, CIDR, Ports) và bảo mật.
- Kinh nghiệm quản trị hệ điều hành Linux và/hoặc Windows.
- Hiểu biết cơ bản về cách hoạt động của USB Token, Mã hóa giải mã, RSA, AES.
- Hiểu biết cơ bản về MySQL là một lợi thế.
- Kinh nghiệm với Docker và Docker Compose nếu bạn chọn triển khai bằng container.
2. Cài đặt và Triển khai¶
Phần này hướng dẫn bạn cách cài đặt và triển khai các thành phần của OCN Datavault.
2.1 Yêu cầu hệ thống¶
Vui lòng tham khảo chi tiết yêu cầu phần cứng và phần mềm cho từng thành phần (API Server, Frontend, Datavault App Desktop và DB MySQL) trong tài liệu deployment.md được cung cấp. Đảm bảo các máy chủ đáp ứng đủ tài nguyên (CPU, RAM, Disk) và các phần mềm phụ thuộc cần thiết.
2.2 Mô hình triển khai¶
OCN Datavault hỗ trợ hai mô hình chính:
-
Triển khai đơn lẻ: Phù hợp cho môi trường nhỏ hoặc thử nghiệm. API Server và MongoDB có thể chạy trên cùng một máy chủ hoặc các máy chủ riêng biệt.
+-------+---------+ | Frontend | +-----------------+ ^ | v +---------------+ +-----------------------+ | API Server |<---->| MinIO/DB - MySQL | +-------+-------+ +-----------------------+ ^ | v +-------+----------------------+ | Datavault App Desktop | +------------------------------+ -
Triển khai High Availability (HA): Khuyến nghị cho môi trường sản xuất lớn, đảm bảo tính sẵn sàng cao. Sử dụng MySQL Replica hoặc Cluster và nhiều instance API Server phía sau một Load Balancer.
+-----------------+ | Frontend/APP | +-----------------+ ^ | +-------+-------+ | LoadBalancer | +-------+-------+ ^ | v +-------+-------+ | API Server | | (HA Pair) | +-------+-------+ ^ | v +-------------------+-------------------+ | | +-------+-------+ +-------+-------+ | MySQL DB | | MinIO | | Cluster | | Cluster | +---------------+ +---------------+
2.3 Cài đặt MinIO Cluster¶
- Cài đặt MinIO Cluster theo tài liệu chuẩn của hãng khuyến cáo tại đây. Để đảm bảo an toàn và bảo mật tuyệt đối Datavault khuyến cáo bạn cài minio ở version mới nhất và bật TLS/SSL cho cluster bạn quản lý.
- Mỗi tài khoản người dùng trên hệ thống Datavault được tạo một bucket riêng trên MinIO Cluster để lưu trữ file.
- Hãy đảm bảo rằng MinIO cluster của bạn có đủ số lượng replicate data. Điều này quan trọng để đảm bảo dữ liệu luôn được an toàn và nâng cao tính chịu lỗi khi gặp vấn đề về phần cứng máy chủ.
2.4 Cài đặt Database MySQL¶
- Datavault lưu trữ metadata của file, folder, logic nghiệp vụ trong MySQL. Bạn có thể lựa chọn Percona và chạy mô hình replication.
- Hướng dẫn cài đặt Percona MySQL tham chiếu theo tài liệu tại đây
- Sau khi MySQL được cài đặt hãy khởi tạo cơ sở dữ liệu cho Datavault theo các bước sau:
- Tạo cơ sở dữ liệu tên datavault cho ứng dụng kết nối:
mysql -u root -p -h MYSQL_SERVER_IPADDR CREATE DATABASE `datavault`; CREATE USER '[APP_ACCOUNT_NAME]'@'[IP_APPLICATION_SERVER]' IDENTIFIED BY '[your_strong_password]'; GRANT SELECT, INSERT, UPDATE, DELETE ON datavault.* TO '[APP_ACCOUNT_NAME]'@'[IP_APPLICATION_SERVER]'; -
Chú ý: Hãy đổi thông tin [APP_ACCOUNT_NAME], [IP_APPLICATION_SERVER] và [your_strong_password] theo thông tin thực tế của bạn. Hãy lưu thông tin này lại để phục vụ cho phần cấu hình API Server.
-
Create 2fa table:
CREATE TABLE `2fa` ( `id` BIGINT UNSIGNED NOT NULL auto_increment, `user_id` BIGINT UNSIGNED NOT NULL, `uri` TEXT collate utf8mb4_general_ci NOT NULL, `qr_code` text COLLATE utf8mb4_general_ci NOT NULL, `status` enum('UN_ENROLLED', 'ENROLLED') COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'UN_ENROLLED', `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `2fa_users_user_id_fk` (`user_id`), CONSTRAINT `2fa_users_user_id_fk` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ); -
Create audit_logs table:
CREATE TABLE `audit_logs` ( `log_id` bigint unsigned NOT NULL AUTO_INCREMENT, `user_id` bigint unsigned DEFAULT NULL, `action` tinyint NOT NULL DEFAULT '0' COMMENT '1:''upload'', 2:''download'', 3:''share'', 4:''delete'', 5:''login'', :6''restore'', ...', `target_type` enum('file', 'folder', 'user') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'file', `target_id` bigint unsigned DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `details` text COLLATE utf8mb4_general_ci, PRIMARY KEY (`log_id`, `created_at`) ) ENGINE = InnoDB AUTO_INCREMENT = 366 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci /* ! 50100 PARTITION BY RANGE ( unix_timestamp(`created_at`) ) ( PARTITION p202505 VALUES LESS THAN (1748710800) ENGINE = InnoDB, PARTITION p202506 VALUES LESS THAN (1751302800) ENGINE = InnoDB, PARTITION p202507 VALUES LESS THAN (1753981200) ENGINE = InnoDB, PARTITION p202508 VALUES LESS THAN (1756659600) ENGINE = InnoDB, PARTITION p202509 VALUES LESS THAN (1759251600) ENGINE = InnoDB, PARTITION p202510 VALUES LESS THAN (1761930000) ENGINE = InnoDB, PARTITION p202511 VALUES LESS THAN (1764522000) ENGINE = InnoDB, PARTITION p202512 VALUES LESS THAN (1767200400) ENGINE = InnoDB, PARTITION p202601 VALUES LESS THAN (1769878800) ENGINE = InnoDB, PARTITION p202602 VALUES LESS THAN (1772298000) ENGINE = InnoDB, PARTITION p202603 VALUES LESS THAN (1774976400) ENGINE = InnoDB, PARTITION p202604 VALUES LESS THAN (1777568400) ENGINE = InnoDB, PARTITION p202605 VALUES LESS THAN (1780246800) ENGINE = InnoDB, PARTITION p202606 VALUES LESS THAN (1782838800) ENGINE = InnoDB, PARTITION p202607 VALUES LESS THAN (1785517200) ENGINE = InnoDB, PARTITION p202608 VALUES LESS THAN (1788195600) ENGINE = InnoDB, PARTITION p202609 VALUES LESS THAN (1790787600) ENGINE = InnoDB, PARTITION p202610 VALUES LESS THAN (1793466000) ENGINE = InnoDB, PARTITION p202611 VALUES LESS THAN (1796058000) ENGINE = InnoDB, PARTITION p202612 VALUES LESS THAN (1798736400) ENGINE = InnoDB, PARTITION p202701 VALUES LESS THAN (1801414800) ENGINE = InnoDB, PARTITION p202702 VALUES LESS THAN (1803834000) ENGINE = InnoDB, PARTITION p202703 VALUES LESS THAN (1806512400) ENGINE = InnoDB, PARTITION p202704 VALUES LESS THAN (1809104400) ENGINE = InnoDB, PARTITION p202705 VALUES LESS THAN (1811782800) ENGINE = InnoDB, PARTITION p202706 VALUES LESS THAN (1814374800) ENGINE = InnoDB, PARTITION p202707 VALUES LESS THAN (1817053200) ENGINE = InnoDB, PARTITION p202708 VALUES LESS THAN (1819731600) ENGINE = InnoDB, PARTITION p202709 VALUES LESS THAN (1822323600) ENGINE = InnoDB, PARTITION p202710 VALUES LESS THAN (1825002000) ENGINE = InnoDB, PARTITION p202711 VALUES LESS THAN (1827594000) ENGINE = InnoDB, PARTITION p202712 VALUES LESS THAN (1830272400) ENGINE = InnoDB, PARTITION p202801 VALUES LESS THAN (1832950800) ENGINE = InnoDB, PARTITION pmax VALUES LESS THAN MAXVALUE ENGINE = InnoDB ); -
Create file_shares table:
CREATE TABLE `file_shares` ( `share_id` bigint unsigned NOT NULL AUTO_INCREMENT, `file_id` bigint unsigned NOT NULL, `shared_with_user_id` bigint unsigned NOT NULL, `shared_by` bigint unsigned NOT NULL, `encrypted_key_for_sharee` blob NOT NULL, `share_token` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, `permissions` enum('read', 'write', 'full') COLLATE utf8mb4_general_ci DEFAULT 'read', `expires_at` timestamp NULL DEFAULT NULL, `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`share_id`), UNIQUE KEY `file_id` ( `file_id`, `shared_with_user_id` ), KEY `idx_expires_at` (`expires_at`), KEY `file_shares_shared_by_file_id_shared_with_user_id_index` ( `shared_by`, `file_id`, `shared_with_user_id` ), KEY `file_shares_created_at_index` (`created_at` DESC) ) ENGINE = InnoDB AUTO_INCREMENT = 11 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci; -
Create file_versions table:
CREATE TABLE `file_versions` ( `version_id` bigint unsigned NOT NULL AUTO_INCREMENT, `file_id` bigint unsigned NOT NULL, `file_path` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, `encrypted_key` blob NOT NULL, `iv` blob NOT NULL, `tag` blob, `file_hash` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL, `version` int unsigned NOT NULL DEFAULT '0', `file_size` bigint unsigned DEFAULT NULL, `changed_by_user_id` int unsigned DEFAULT NULL, `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`version_id`), KEY `idx_file_version` (`file_id`, `version`) ) ENGINE = InnoDB AUTO_INCREMENT = 56 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci; -
Create files table:
CREATE TABLE `files` ( `file_id` bigint unsigned NOT NULL AUTO_INCREMENT, `user_id` bigint unsigned NOT NULL, `folder_id` bigint unsigned NOT NULL DEFAULT '0', `parent_folder` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '/' COMMENT 'format: ''/folder_id/folder_id...''', `file_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, `original_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '', `file_path` varchar(512) COLLATE utf8mb4_general_ci NOT NULL, `encrypted_key` blob NOT NULL, `iv` blob NOT NULL, `tag` blob, `file_hash` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL, `file_size` bigint DEFAULT NULL, `mime_type` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL, `version` int unsigned DEFAULT '1', `sync_status` enum('synced', 'pending', 'deleted') COLLATE utf8mb4_general_ci DEFAULT 'synced', `is_deleted` tinyint(1) DEFAULT '0', `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`file_id`), UNIQUE KEY `user_id` ( `user_id`, `folder_id`, `file_name` ), KEY `idx_user_folder` (`user_id`, `folder_id`), KEY `idx_file_name` (`file_name`), KEY `files_user_id_is_deleted_index` (`user_id` DESC, `is_deleted`) ) ENGINE = InnoDB AUTO_INCREMENT = 29 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci; -
Create folders table:
CREATE TABLE `folders` ( `folder_id` bigint unsigned NOT NULL AUTO_INCREMENT, `user_id` bigint unsigned NOT NULL, `parent_id` bigint unsigned NOT NULL DEFAULT '0', `parent_folder` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '/' COMMENT 'format: ''/folder_id/folder_id...''', `folder_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, `sync_status` enum('synced', 'pending', 'deleted') COLLATE utf8mb4_general_ci DEFAULT 'synced', `is_deleted` tinyint(1) DEFAULT '0', `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`folder_id`), UNIQUE KEY `user_id` ( `user_id`, `parent_id`, `folder_name` ), KEY `idx_user_parent` (`user_id`, `parent_id`), KEY `idx_folder_name` (`folder_name`) ) ENGINE = InnoDB AUTO_INCREMENT = 18 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci; -
Create refresh_tokens table:
CREATE TABLE `refresh_tokens` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `token` varchar(64) COLLATE utf8mb4_general_ci NOT NULL, `user_id` bigint unsigned NOT NULL, `login_type` enum('app', 'web_management') COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'web_management', `expire_at` timestamp NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `user_refresh_tokens_pk_2` (`token`), KEY `refresh_tokens_users_user_id_fk` (`user_id`), CONSTRAINT `refresh_tokens_users_user_id_fk` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ) ENGINE = InnoDB AUTO_INCREMENT = 222 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci; -
Create roles table:
CREATE TABLE `roles` ( `role_id` int unsigned NOT NULL AUTO_INCREMENT, `role_name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'Tên vai trò (admin, mod, user, auditor)', `description` text COLLATE utf8mb4_general_ci COMMENT 'Mô tả vai trò', `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`role_id`), UNIQUE KEY `role_name` (`role_name`) ) ENGINE = InnoDB AUTO_INCREMENT = 3 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci; -
Create setting_defaults table:
CREATE TABLE `setting_defaults` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `storage_mb_per_user` bigint unsigned NOT NULL, `max_file_versioning` int unsigned NOT NULL, `max_concurrent_sessions` int unsigned NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE = InnoDB AUTO_INCREMENT = 2 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci; -
Create setting_securities table:
CREATE TABLE `setting_securities` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `clear_temp_directory` tinyint(1) NOT NULL DEFAULT '0', `clear_cache_password` tinyint(1) NOT NULL DEFAULT '0', `file_encrypted` tinyint(1) NOT NULL DEFAULT '0', `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -
Create user_sessions table:
CREATE TABLE `user_sessions` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `refresh_token_id` bigint unsigned NOT NULL, `verified_2fa_at` timestamp NULL DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_sessions_user_refresh_tokens_id_fk` (`refresh_token_id`), CONSTRAINT `user_sessions_user_refresh_tokens_id_fk` FOREIGN KEY (`refresh_token_id`) REFERENCES `refresh_tokens` (`id`) ON DELETE CASCADE ) ENGINE = InnoDB AUTO_INCREMENT = 360 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci; -
Create users table:
CREATE TABLE `users` ( `user_id` bigint unsigned NOT NULL AUTO_INCREMENT, `username` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, `password_hash` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '', `public_key` text COLLATE utf8mb4_general_ci NOT NULL COMMENT 'Public key PEM format', `email` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, `last_login` timestamp NULL DEFAULT NULL, `is_active` tinyint(1) DEFAULT '1', `auth_provider` enum('local', 'ad') COLLATE utf8mb4_general_ci DEFAULT 'local', `two_fa_enabled` tinyint(1) DEFAULT '0', `two_fa_method` enum('radius', 'totp', 'none') COLLATE utf8mb4_general_ci DEFAULT 'none', `role_id` int unsigned NOT NULL DEFAULT '1' COMMENT 'ID vai trò tham chiếu đến bảng roles', `serial_number` varchar(8) COLLATE utf8mb4_general_ci DEFAULT NULL, `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`user_id`), UNIQUE KEY `uk_username` (`username`), UNIQUE KEY `uk_email` (`email`), KEY `idx_role_id` (`role_id`) ) ENGINE = InnoDB AUTO_INCREMENT = 30 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci;
2.5 Cài đặt API Server¶
- Bạn có thể cài API Server trên k8s hoặc cài docker native. Trong tài liệu này chúng tôi hướng dẫn cách cài đặt đơn giản bằng docker native.
-
Tạo file .env với nội dung sau:
AES_KEY="[AES_KEY]" APP_MODE="dev" APP_NAME="apiserver" HTTP_SERVER_CORS_ALLOWDOMAIN="*" HTTP_SERVER_CORS_ALLOWMETHOD="GET POST PUT OPTIONS PATCH DELETE" HTTP_SERVER_HOST="0.0.0.0" HTTP_SERVER_IDLETIMEOUT="" HTTP_SERVER_PORT="8080" HTTP_SERVER_READHEADERTIMEOUT="" HTTP_SERVER_READTIMEOUT="" HTTP_SERVER_WRITETIMEOUT="" HTTP_SWAGGER_HOST="0.0.0.0" HTTP_SWAGGER_PORT="9000" INITSUPERADMIN="true" LDAP_PORT": 636 LDAP_SEARCH_BASEDN="DC=ocn,DC=com,DC=vn" LDAP_SEARCH_BIND_PASSWORD="passwd" LDAP_SEARCH_BIND_USERNAME="[LDAP_USER_BINDING]" LDAP_SEARCH_FILTER="(&(objectClass=user)(!(objectClass=computer))(sAMAccountName=%s))" LDAP_SERVERNAME="ad.ocn.com.vn" LDAP_TLS_CACERT="[BASE64ENCODE_LDAP_CERT]" LDAP_TLS_ISENABLED": true LOGGER_LEVEL="debug" LOGGER_OUTPUTMODE="json" LOGGER_STACKTRACE_ISENABLED="true" MINIO_ACCESSKEYID="[MINIO_USER_ADMIN]" MINIO_BUCKET="[MINIO_BUCKET]" MINIO_ENDPOINT="[MINIO_ENDPOINT]" MINIO_SECRETACCESSKEY="[MINIO_ACCESSKEYID]" MINIO_USESSL="true" MYSQL_DSN="[APP_ACCOUNT_NAME]:[your_strong_password]@tcp([IP_APPLICATION_SERVER]:3306)/datavault?charset=utf8mb4&parseTime=True&loc=Local" USER_TOKEN_ACCESSTOKENEXPIREPERIOD="30m" USER_TOKEN_ISSUER="OCN" USER_TOKEN_REFRESHTOKENEXPIREPERIOD="24h" USER_TOKEN_SECRETKEY="my_secret_key" -
Tạo apiserver bằng docker native:
Chú ý: Liên hệ administrator OCN để được cấp key pull image registry.ocn.com.vn/datavault/apiserver:vX.Y.Z mới nhất của apiserver theo contact tại https://ocn.com.vndocker run --name apiserver \ --env-file .env \ -p 8080:8080 \ -d registry.ocn.com.vn/datavault/apiserver:v1.0.0 -
Kiểm tra apiserver
docker ps docker logs -f apiserver
2.6 Cài đặt Frontend server¶
docker run --name fe \
-p 80:80 \
-p 443:443 \
-d registry.ocn.com.vn/datavault/fe:v1.0.0
- Mở trình duyệt và truy cập vào đường dẫn https://[FE_IP_ADDRESS/FE_DOMAIN]
2.7 Triển khai Datavault Desktop Application¶
-
Hiện tại, Datavault support 2 hệ điều hành chính là Windows và Mac. Bạn cần download bản cài đặt về máy client và thực hiện thao tác cài đặt application ban đầu:
-
Tải file cài trên macbook
wget https://repo.ocn.com.vn/datavault/mac/datavault-vX.Y.Z -
Tải file cài trên Windows
wget https://repo.ocn.com.vn/datavault/windows/datavault-vX.Y.Z -
Mở file cài đặt datavault-vX.Y.Z vừa tải về và thực hiện theo hướng dẫn.
Chú ý: Nếu bạn có bất cứ câu hỏi hoặc cần hỗ trợ chi tiết vui lòng liên hệ: Hotline: (+84)376332287 Email: info@ocn.com.vn