Hãy tưởng tượng bạn đang triển khai một phần mềm hoạch định nguồn lực doanh nghiệp (ERP) trước khi đưa vào vận hành thực tế cho doanh nghiệp. Bạn cần tạo một số dữ liệu ảo để kiểm tra ứng dụng của mình. Bạn sẽ cần một bảng hóa đơn, danh sách nhà cung cấp, bảng đơn đặt hàng mua và nhiều thứ khác. Hãy cùng tạo dữ liệu để kiểm tra ứng dụng.
Data odoo faker
Dự án này sử dụng thư viện Python faker để tạo dữ liệu trông giống thật nhưng giả cho khách hàng, sản phẩm và đơn hàng. Dữ liệu này có thể hữu ích cho mục đích thử nghiệm, phát triển hoặc trình diễn.
Điều kiện tiên quyết
Đã cài đặt Python 3.x ( https://www.python.org/downloads/ )
Thư viện Python faker, bạn có thể sử dụng faker_commerce, faker_food bên trong thư viện này
Mở common.py trong trình soạn thảo văn bản. Xác định vị trí cài đặt kết nối cơ sở dữ liệu. Cập nhật thông tin sau bằng thông tin đăng nhập cơ sở dữ liệu của bạn:
Tên máy chủ/Địa chỉ IP Tên cơ sở dữ liệu Tên người dùng Mật khẩu
Cách sử dụng
Cập nhật run.sh:
Mở run.sh trong trình soạn thảo văn bản. Điều chỉnh các thông số sau để kiểm soát lượng dữ liệu được tạo ra: TOTAL_CUSTOMERS=2000 TOTAL_PRODUCTS=100000 TOTAL_SO=10000000 BATCH_SIZE=1000
Chạy tập lệnh: python3 -m run.sh
Chạy nhiều tiến trình tập lệnh SO song song: nếu bạn muốn chạy nhiều tiến trình để tạo nhanh SO
Cài đặt song song sudo apt install parallel Bắt đầu kịch bản của bạn parallel python3 -m run_so.py ::: {1..4} > output.log 2>&1 &
Bộ dữ liệu thử nghiệm cho tất cả các mô-đun đang hoạt động trong ERPNext
Lệnh gần nhất hiện có là ‘bench run-tests’. Lệnh này sẽ tạo một Công ty mới và nhiều giao dịch khác nhau.
Không giống lắm với công ty Demo. Nhưng đây là công ty tốt nhất hiện có, trừ khi bạn có thể tìm thấy Nhà cung cấp dịch vụ cung cấp thứ gì đó.
Chạy lệnh sau để chạy tất cả các bài kiểm tra của bạn. Nó sẽ xây dựng tất cả các phụ thuộc kiểm tra một lần và chạy các bài kiểm tra của bạn. Bạn nên chạy các bài kiểm tra từ thư mục frappe\bench.
# run all tests bench –site [sitename] run-tests
# run tests for only frappe app bench –site [sitename] run-tests –app frappe
# run tests for the Task doctype bench –site [sitename] run-tests –doctype “Task”
# run tests for All doctypes in specified Module Def bench –site [sitename] run-tests –module-def “Contacts”
# run a test using module path bench –site [sitename] run-tests –module frappe.tests.test\_api
# run a specific test from a test file bench –site [sitename] run-tests –module frappe.tests.test\_api –test test\_insert\_many
# run tests without creating test records bench –site [sitename] run-tests –skip-test-records –doctype “Task”
# profile tests and show a report after tests execute bench –site [sitename] run-tests –profile –doctype “Task”
Các tệp zip này chứa các cơ sở dữ liệu bị hỏng phổ biến mà Paul sử dụng cho một số bản demo DBCC CHECKDB. Một số cơ sở dữ liệu sẽ chỉ hoạt động trên một số phiên bản SQL Server, vì vậy để biết hướng dẫn, hãy xem https://www.sqlskills.com/sql-server-resources/sql-server-demos/
Đây là danh sách các nguồn dữ liệu công khai theo chủ đề với chất lượng cao. Chúng được thu thập và sắp xếp từ các blog, câu trả lời và phản hồi của người dùng. Hầu hết các tập dữ liệu được liệt kê bên dưới đều miễn phí, tuy nhiên, một số thì không. https://github.com/awesomedata/awesome-public-datasets
Danh sách được tuyển chọn gồm các tập dữ liệu JSON tuyệt vời không yêu cầu xác thực. https://github.com/jdorfman/awesome-json-datasets
PyDataFaker là một gói python để tạo dữ liệu giả có mối quan hệ giữa các bảng. Việc tạo dữ liệu giả có thể hữu ích cho nhiều ứng dụng khác nhau như tạo bản demo sản phẩm hoặc thử nghiệm phần mềm. https://github.com/SamEdwardes/pydatafaker
Python đã có một gói tuyệt vời để tạo dữ liệu giả có tên là Faker https://faker.readthedocs.io/en/master/ . Faker rất tuyệt vời để tạo các đơn vị dữ liệu giả riêng lẻ, nhưng có thể tốn thời gian để tạo dữ liệu giả phức tạp hơn thực sự liên quan đến nhau.
PyDataFaker cho phép bạn nhanh chóng tạo các bảng này và tạo mối quan hệ giữa chúng!
PyDataFaker hiện đang được phát triển. Vào thời điểm này, có thể tạo các thực thể sau:
Kinh doanh : tạo một doanh nghiệp giả với các bảng ERP thông thường Trường học : tạo một trường học giả Hiện tại, nhiều thực thể khác đang được phát triển tại đây: https://github.com/SamEdwardes/pydatafaker
Nhà máy sản xuất máy tính xách tay Ngoy Menghua là một trong những nhà máy sản xuất máy tính xách tay lớn nhất tại Thái Lan. Doanh nghiệp hơn 70 năm tuổi này được thành lập vào năm 1951, là một nhà sản xuất máy tính xách tay nổi tiếng, đặc biệt là cho các trường học trên khắp Thái Lan. Doanh nghiệp gia đình này hiện đang được quản lý bởi thế hệ thứ 3. Mặc dù có rất nhiều quy trình cũ, nhóm quản lý đã liên tục cải thiện hệ thống CNTT của mình và trong 10 năm qua, Odoo ERP đã được triển khai.
Ecosoft là một công ty tư vấn CNTT tập trung vào các giải pháp ERP nguồn mở 100%. Với Odoo là giải pháp lâu đời và ERPNext là giải pháp mới nhất.
Là khách hàng đầu tiên, Menghua và Ecosoft có một mối quan hệ đặc biệt. Chúng tôi giống như một đối tác luôn lắng nghe đề xuất của nhau hơn. Chúng tôi đã triển khai ERP nguồn mở đầu tiên của họ cách đây 10 năm bằng Odoo phiên bản 7 (lúc đó gọi là OpenERP). Đội ngũ quản lý rất vui mừng khi hoạt động kinh doanh của họ thực sự trực tuyến.Và đúng vậy, việc triển khai diễn ra tốt đẹp và đã phục vụ gần 40.000 hóa đơn mỗi năm.
Người dùng thích, nhà phát triển thích vì Odoo là một framework hiện đại và dễ tùy chỉnh. Vấn đề của nó là gì?
Kinh doanh không bao giờ ngừng tiến triển và hệ thống CNTT phải hỗ trợ như một tác nhân thay đổi. Nhiều năm trôi qua và không có bất kỳ bản nâng cấp nào, phần mềm hiện đại không còn hiện đại nữa. Sớm thôi, hệ thống sẽ cần một bản cập nhật lớn. Nhưng với hệ thống hiện tại mà chúng tôi đã hỗ trợ trong mười năm qua, vẫn còn nhiều thách thức.
Lý do để thay đổi
Thách thức của Mengua không phải là về các quy trình kinh doanh bổ sung. Bởi vì khi triển khai cuối cùng, chúng tôi biết rằng chúng tôi có thể lấp đầy các tính năng kinh doanh cần thiết bằng bất kỳ ERP nào chúng tôi chọn. Thách thức nằm ở sau khi hoàn tất triển khai, về bảo trì dài hạn và giải quyết vấn đề hàng ngày.
Ở đây chúng tôi sẽ thảo luận về 3 mối đe dọa hàng đầu đối với tuổi thọ của phần mềm ERP mà chúng tôi tìm thấy và lý do khiến Menghua quyết định cần phải thay đổi.
Các loại giá của Odoo
Odoo cung cấp hai phiên bản, phiên bản Enterprise và Community. Phiên bản Community hoàn toàn miễn phí, trong khi phiên bản Enterprise yêu cầu mua giấy phép phần mềm. Trọng tâm của bài viết này là về chi phí của phiên bản Odoo Enterprise, vì sự khác biệt giữa phiên bản Odoo Enterprise và Community là một chủ đề riêng biệt.
Giấy phép Odoo Enterprise được cấp cho mỗi người dùng mà không có giới hạn ứng dụng và giá cả thay đổi tùy theo các gói khác nhau:
Vì giá của Odoo Enterprise được tính theo mô hình cho mỗi người dùng nên điều quan trọng là phải hiểu cách Odoo tính toán giấy phép (tức là người dùng).
Quy trình Odoo Online rất đơn giản: một hợp đồng Doanh nghiệp (giấy phép) tương ứng với một cơ sở dữ liệu Odoo, có thể được sử dụng để quản lý một công ty. Do đó, tất cả người dùng trong công ty đó đều được bảo vệ.
Tuy nhiên, nếu bạn muốn cài đặt Odoo tại chỗ, sử dụng dịch vụ lưu trữ Odoo.sh hoặc có nhiều công ty, bạn cần chọn gói “tùy chỉnh” (lưu ý: chúng tôi so sánh các tùy chọn lưu trữ Odoo khác nhau trong một bài viết riêng). Trong trường hợp này, bạn vẫn có một cơ sở dữ liệu sản xuất, nơi bạn có thể quản lý nhiều công ty và Odoo sẽ tính tất cả người dùng trên tất cả các công ty.
Những người dùng nào được coi là người dùng trả phí trong Odoo? Tất cả người dùng ‘nội bộ’ đang hoạt động đều được bao gồm trong hóa đơn.
Người dùng không hoạt động (đã lưu trữ) không được tính là người dùng trả phí. Ví dụ, nếu một nhân viên rời khỏi công ty, việc đánh dấu tài khoản người dùng của họ là không hoạt động sẽ ngăn chặn việc bị tính phí cho nhân viên đó. Người dùng Cổng thông tin và Công cộng được miễn phí. Nói một cách đơn giản, ‘người dùng trả phí’ trong Odoo là những nhân viên có quyền truy cập vào hệ thống quản lý Odoo, trong khi khách hàng hoặc nhà cung cấp truy cập hóa đơn hoặc đơn đặt hàng được phân loại là ‘người dùng miễn phí’.
Odoo cung cấp ba gói: One App Free, Standard và Custom. Giá chính xác có thể thay đổi tùy theo quốc gia của bạn. Trang giá của Odoo sẽ hiển thị cho bạn mức phí chính xác cho vị trí cụ thể của bạn.
Giá Odoo tùy theo quốc gia (trên mỗi người dùng) Ngoài ra, giá cả khác nhau tùy thuộc vào việc bạn chọn thanh toán hàng tháng hay hàng năm. Năm đầu tiên có chi phí thấp hơn một chút (Y1 trong bảng tính ở trên; Y2 là giá đầy đủ). Y1 cũng có thể được giới thiệu là chiết khấu hợp đồng đầu tiên. Điều này có nghĩa là chiết khấu có thể được gia hạn trong toàn bộ thời hạn của hợp đồng đầu tiên khi lựa chọn hợp đồng nhiều năm. Mặc dù bảng tính có thể cung cấp tổng quan về giá cả giữa các quốc gia, nhưng bạn nên xác minh giá của một quốc gia cụ thể bằng cách liên hệ trực tiếp với Odoo để đảm bảo tính chính xác.
Làm thế nào để giảm chi phí cấp phép Odoo? Giảm giá theo thời hạn hợp đồng: Hãy cân nhắc gia hạn giảm giá hợp đồng đầu tiên của bạn bằng cách lựa chọn thời hạn hợp đồng dài hơn, chẳng hạn như 2, 3 hoặc 5 năm. Khi viết bài viết này, Odoo cấp mức giảm giá hợp đồng đầu tiên là 20% khi gia hạn hợp đồng đó. Lưu ý : giá hợp đồng dài hạn gia hạn của bạn có thể tăng do lạm phát. “Khi gia hạn theo quy định tại Điều 1 của Thỏa thuận, nếu mức phí áp dụng trong thời hạn trước thấp hơn giá niêm yết hiện hành thì mức phí này sẽ tăng tới 7%.” nguồn (điểm 5.2). “Đặc biệt nếu khách hàng ký hợp đồng 5 năm và gia hạn thêm 5 năm mỗi lần, mức tăng giá tối đa trong 15 năm sẽ là 14%!” Theo Thomas Deckers, Giám đốc quan hệ đối tác chiến lược tại Odoo.
Tối ưu hóa giấy phép cho hoạt động đa quốc gia: Nếu doanh nghiệp của bạn hoạt động ở nhiều quốc gia, bạn nên mua giấy phép thông qua một công ty có trụ sở tại khu vực có chi phí giấy phép cao hơn. “Đối với khách hàng có sự hiện diện trên toàn cầu, giá áp dụng luôn dựa trên vị trí của khách hàng có bảng giá cao nhất, trừ khi có quy định khác bằng văn bản tại thời điểm mua hàng.” nguồn
Tuy nhiên, nếu phần lớn người dùng Odoo của bạn ở những khu vực có chi phí rẻ hơn, hãy cố gắng thương lượng mức giá chiết khấu.
Đàm phán về các khoản chiết khấu bổ sung: Đối với các doanh nghiệp có hơn 100 người dùng, có thể đáng để liên hệ trực tiếp với người quản lý đăng ký. Thảo luận về khả năng được chiết khấu bổ sung hoặc các tùy chọn giá tùy chỉnh, vì số lượng người dùng lớn hơn thường tạo ra đòn bẩy cho các cuộc đàm phán.
Tìm hiểu theo tại https://ventor.tech/odoo/odoo-enterprise-license-pricing-and-how-to-reduce-cost/
Vì ERP của Menghua dựa trên Odoo Community Edition nên không có cách dễ dàng nào để nâng cấp. Nâng cấp chỉ khả dụng trên Odoo Enterprise Edition, có thể gây ra một khoản phí lớn cho việc cấp phép và vẫn chỉ áp dụng cho mã lõi Odoo (không phải tùy chỉnh của bạn).
Mặc dù OCA có một dự án có tên là OpenUpgrade để cứu vãn phiên bản cộng đồng, nhưng thách thức lớn hơn nằm ở chính kiến trúc phần mềm của Odoo. Kiến trúc mô-đun của khuôn khổ Odoo rất cứng nhắc khiến cho mô-đun bạn phát triển cho phiên bản cũ hơn khó có thể tương thích với phiên bản Odoo mới hơn.
OpenUpgrade là một nhóm làm việc tập thể từ các thành viên cộng đồng trên toàn thế giới để chỉ di chuyển các mô-đun của OCA qua các phiên bản. Nhưng khi nói đến các mô-đun tùy chỉnh của bạn, bạn vẫn phải tự mình làm.
Và với Menghua, nơi chúng tôi đã tùy chỉnh rất nhiều trên Odoo 7, thì việc nâng cấp lên Odoo 16 chỉ là mơ ước.
Bảo trì lâu dài rất đau đớn
Một lần nữa, tôi không có vấn đề gì với môi trường phát triển của Odoo. Thực tế là tôi thích nó! Là một lập trình viên, tôi không thấy bất kỳ khuôn khổ nào khác có thể phát triển một mô-đun tùy chỉnh có thể tự động tích hợp vào quy trình kinh doanh hiện có, cài đặt, cập nhật và gỡ cài đặt mà không phải lo lắng như Odoo.
Vấn đề là, với những thay đổi nhỏ nhất về tính năng, cần một lập trình viên giỏi để làm việc theo cách cổ điển,
Thiết lập môi trường phát triển cục bộ sao chép trạng thái sản xuất
Mã hóa và kiểm tra trong máy cục bộ
Đẩy mã lên github
SSH để đăng nhập vào máy chủ và triển khai
Trong quá trình thực hiện dự án hoặc đôi khi sau khi đưa vào hoạt động, không thành vấn đề vì mọi thứ vẫn còn mới trong đầu lập trình viên, anh ấy/cô ấy có thể sửa mọi thứ một cách nhanh chóng.
Nhưng khi nhiều năm trôi qua, không còn gì sót lại trong não trên máy tính xách tay của nhà phát triển, không còn dễ dàng nữa. Một thay đổi nhãn nhỏ trong bản in biểu mẫu có thể mất hàng giờ để thiết lập phiên bản chạy cục bộ và hàng giờ để sửa và triển khai.
Hãy tưởng tượng nếu hệ thống (HĐH, thư viện, Odoo, v.v.) không được nâng cấp trong 10 năm nữa, thì thậm chí sẽ không thể thiết lập máy cục bộ để hoạt động trong môi trường cũ như vậy.
Odoo được quản lý hoàn toàn quá tốn kém (và chỉ dành cho EE)
Điểm này cũng liên quan đến việc hiện đại hóa cơ sở hạ tầng và dễ bảo trì trong dài hạn. Trước đây, dịch vụ lưu trữ đám mây được quản lý cho ERP không khả dụng, Mengua không có lựa chọn nào khác ngoài việc duy trì cơ sở hạ tầng phần cứng tại chỗ. Lập trình viên kết nối qua SSH khi anh ấy/cô ấy muốn triển khai bản vá. Ngày nay, nhiều phần mềm bao gồm Odoo.sh và Frappe Cloud là những lựa chọn tuyệt vời để lưu trữ sản xuất của bạn một cách an toàn trên đám mây, với các tiện ích giúp cuộc sống của nhà phát triển dễ dàng hơn trong khi vẫn duy trì phần mềm.
Và thậm chí chúng tôi đã quyết định đầu hàng Odoo EE. Để sử dụng Odoo.sh với thông số kỹ thuật tối thiểu có thể (1 CPU, 25 GB) + giấy phép người dùng (ở 20 người dùng) có thể tốn của Menghua 606,25 đô la/tháng hoặc 7.272 đô la/năm. Chi phí này cao hơn so với việc mua máy chủ thông số kỹ thuật cao cấp mới mỗi năm.
ERPNext
Chúng tôi biết ơn Mengua đã hỗ trợ Ecosoft trong hành trình chuyển đổi và cũng cảm ơn ERPNext đã đến đúng nơi và đúng thời điểm.
Với tất cả những thách thức nêu trên, Menghua và Ecosoft đã quyết định giữa việc triển khai lại với Odoo 16 CE + OCA hoặc chuyển sang ERPNext một lần và mãi mãi. Với nhiều cuộc thảo luận về ưu và nhược điểm, kết luận rằng tất cả những thách thức nêu trên sẽ vẫn tồn tại với Odoo CE và vì vậy chúng tôi quyết định thử với ERPNext.
Sẽ thảo luận chi tiết hơn về cách ERPNext đã giải cứu. Sau đây là giao diện ERP mới cho Menghua.
1) Nâng cấp dễ dàng hơn ngay cả với các mô-đun tùy chỉnh
Frappe Framework (ERPNext là một module lớn) không mang tính mô-đun như Odoo, ngược lại, nó là phương pháp tiếp cận đơn khối hơn. Vì vậy, nó không có vấn đề về sự phụ thuộc giữa các module mà chúng ta thấy trong Odoo.
Có thể tạo các mô-đun và tính năng kinh doanh mới tích hợp vào quy trình kinh doanh hiện có thông qua sự kiện DocType được xác định trước (tức là trước khi chèn, sau khi chèn, trước khi lưu, sau khi lưu, v.v.) mà không phải lo lắng nhiều về sự phụ thuộc khiến tích hợp ít chi tiết hơn khi so sánh với Odoo. Kỹ thuật tích hợp lỏng lẻo này trong ERPNext được đổi lấy quy trình nâng cấp dễ dàng hơn nhiều so với Odoo. Mô-đun tùy chỉnh của chúng tôi thường không yêu cầu bất kỳ thay đổi nào để phù hợp với phiên bản chính tiếp theo của ERPNext.
Không thể đi sâu vào chi tiết ở đây, nhưng tôi hy vọng bạn hiểu được một số ý. Trong ERPNext, việc di chuyển toàn bộ hệ thống đơn giản như,
Kéo mã mới nhất Chạy lệnh > di chuyển băng ghế dự bị
2) Bảo trì lâu dài dễ dàng hơn với các công cụ mã thấp
Tôi đã đề cập trước đó về việc khó chịu và tốn thời gian như thế nào khi sửa nhãn trong biểu mẫu và triển khai nó vào sản xuất với Odoo. Trong ERPNext, sau khi hệ thống đã hoạt động, hầu hết các tác vụ bảo trì có thể được thực hiện dễ dàng với nhiều công cụ mã thấp.
Ví dụ, Sửa biểu mẫu bằng công cụ Print Designer
Thêm trường dữ liệu bằng công cụ Tùy chỉnh biểu mẫu
Tạo hoặc sửa đổi báo cáo/bảng điều khiển
Thêm logic kinh doanh với Server / Client Scripts
Và còn nhiều hơn thế nữa!
Tại Menghua, chúng tôi đã được ban phước bởi các tính năng mã thấp này, không chỉ để sửa các thứ hiện có mà còn để cải thiện các quy trình kinh doanh. Tất nhiên, có những lúc cần mã hóa phức tạp hơn và điều đó sẽ yêu cầu cách triển khai cổ điển. Nhưng tôi thấy rằng 80% thời gian, mọi thứ có thể được thực hiện bằng mã thấp. ERPNext đi kèm với các tính năng này theo mặc định.
Trong Odoo, các tính năng mã nguồn thấp này có sẵn trong ứng dụng Studio (chỉ dành cho Odoo EE) nhưng bị hạn chế vì có giá khá cao.
3) Frappe Cloud được quản lý hoàn toàn
Cuối cùng, Menghua hiện có thể tận dụng nền tảng phần mềm hiện đại và chuyển mọi thứ lên đám mây. Frappe Cloud có thể làm mọi thứ mà Odoo.sh có thể làm, nhưng chỉ tốn một phần nhỏ chi phí.
Với thông số máy chủ tương tự, nhưng đi kèm với số lượng người dùng không giới hạn, Menghua chỉ có giá 25 đô la/tháng hoặc 300 đô la/năm. (Odoo.sh có giá 7.272 đô la/năm).
Trước đây, có quá nhiều rắc rối với máy chủ mà phải nhờ đến một nhân viên CNTT quản lý. Với dịch vụ này, Menghua ERP giờ đây có thể hoạt động mà không phải lo lắng với các phiếu hỗ trợ không giới hạn từ nhóm Frappe Helpdesk.
Và bây giờ, việc cập nhật lên phiên bản mới nhất cho Menghua ERP chỉ cần một cú nhấp chuột. Vấn đề đã được giải quyết!
Phần kết luận
Vào thời điểm viết bài này, cái gọi là Menghua ERP 2.0 đã hoạt động được gần một năm. Lúc đầu, đó là một quyết định khó khăn để thay đổi hệ thống ERP, đặc biệt là khi giải pháp trước đó là giải pháp mà chúng tôi (Ecosoft) có nhiều kinh nghiệm hơn. Tôi tóm tắt ERPNext là phần mềm được xây dựng cho người dùng. Có nhiều thứ mà người dùng có thể tự làm mà không cần đến nhà phát triển. Và đối với người triển khai và người bảo trì trong tương lai như chúng tôi, nó cung cấp sức mạnh để thực hiện mọi thứ nhanh chóng và ít căng thẳng hơn. Frappe Cloud cũng phục vụ chúng tôi rất tốt. Có một số vấn đề trong quá trình thực hiện, nhưng tất cả đều được nhóm Trợ giúp Frappe phản hồi rất nhanh chóng.
Thử nghiệm Dify, một nền tảng nguồn mở cho phép bạn xây dựng chatbot bằng nhiều LLM (Mô hình ngôn ngữ lớn) khác nhau. Đây là một dự án rất thú vị với hơn 54 nghìn sao trên GitHub. Ý tưởng tạo chatbot mà không cần phải viết bất kỳ mã nào quá hấp dẫn để bỏ qua. Ý tưởng này rất đơn giản: bạn cung cấp cho nền tảng (trên đám mây hoặc tại chỗ) một cơ sở kiến thức, một lời nhắc và một số cấu hình và tích hợp tất cả những thứ này vào một chatbot trong tầm tay bạn mà bạn có thể tích hợp ở bất kỳ đâu hoặc chạy như một giải pháp độc lập.
Cần lưu ý rằng dữ liệu của bạn không chỉ là họ và tên, địa chỉ, ngày sinh… mà còn là địa chỉ IP của bạn, phương thức kết nối của bạn, loại máy tính, hệ điều hành, trình duyệt cho phép, bằng cách tham chiếu chéo, nhận dạng bạn trên mạng (đôi khi thậm chí sử dụng VPN). Tất cả các trang web có thể được sử dụng miễn phí, miễn là dữ liệu được ẩn danh …
Ví dụ, bạn có thể có một kế hoạch định giá phức tạp và muốn giúp khách hàng tìm ra kế hoạch tốt nhất cho nhu cầu của họ. Danh sách này còn dài nữa. Tôi sẽ sử dụng Dify trong hướng dẫn này để tạo một chatbot giúp tôi trả lời các câu hỏi về CV của mình, nhưng công nghệ này có thể được sử dụng theo nhiều cách khác nhau. Hãy cùng xem nó hoạt động như thế nào. Để chứng minh các khả năng cốt lõi của nền tảng này, chúng ta sẽ tạo một chatbot có thể trả lời các câu hỏi về CV của bạn và khớp với các mô tả công việc tiềm năng do nhà tuyển dụng, phòng nhân sự hoặc nhà tuyển dụng gửi. Hãy bắt đầu nào!
Vậy chúng ta hãy bắt đầu nhé!
Các bước cấp cao:
Tạo một chatbot mới
Xác định lời nhắc
Chọn LLM để sử dụng (ở đây là GPT-4o-mini)
Nhúng hoặc cung cấp nó như một ứng dụng độc lập để chia sẻ
Đặt tên cho chatbot của bạn và tùy ý chọn một biểu tượng.
Bạn có thể tải xuống các biểu tượng miễn phí từFreepikhoặc bất kỳ nền tảng nào khác nếu bạn thích.
Màn hình bên dưới hiển thị cấu hình của chatbot. Bạn có thể tùy chỉnh nhiều thứ, chẳng hạn như liên kết đến cơ sở kiến thức, thêm biến và thiết lập các tùy chọn lạ mắt như lệnh thoại, đọc to, hiển thị trích dẫn và nhiều hơn nữa. Nhưng hãy giữ mọi thứ đơn giản ngay bây giờ và chỉ tập trung vào cốt lõi của chatbot, lời nhắc.
Bây giờ hãy nhập lời nhắc bên dưới vào hộp hướng dẫn.
Đảm bảo thêm sơ yếu lý lịch của bạn vào cuối lời nhắc.
Đối với các tài liệu rất dài hoặc nhiều tài liệu, có cái gọi là cơ sở kiến thức hiệu quả hơn nhiều, nhưng vì mục đích đơn giản, chúng ta có thể đưa lời nhắc vào ngữ cảnh. Điều này sẽ mang lại cho chúng ta kết quả thậm chí còn tốt hơn so với việc tinh chỉnh. Một RAG với kỹ thuật phân đoạn và phức tạp hơn là không cần thiết tại thời điểm này.
<hướng dẫn>
Trước tiên, yêu cầu người dùng cung cấp mô tả công việc.
Sau đó , sử dụng các hướng dẫn sau để so sánh mô tả công việc với sơ yếu lý lịch từ ngữ cảnh:
So sánh mô tả công việc được cung cấp với sơ yếu lý lịch .
Xác định và chỉ liệt kê các kết quả khớp chính xác giữa các yêu cầu công việc và trình độ của ứng viên . Không bao gồm bất kỳ thông tin suy ra hoặc giả định nào - chỉ liệt kê 100% các kết quả khớp có thể xác minh được. Định dạng đầu ra như sau: Mỗi yêu cầu từ mô tả công việc được in đậm ( sử dụng ##) Sử dụng "Kết quả khớp:" để giới thiệu thông tin khớp từ sơ yếu lý lịch Đối với mỗi kết quả khớp, hãy hiển thị vai trò, công ty và thời gian ( sử dụng ###) Bên dưới, hãy liệt kê các nhiệm vụ hoặc kinh nghiệm liên quan dưới dạng dấu đầu dòng Không bao gồm bất kỳ thẻ XML nào trong đầu ra. Nếu không có kết quả khớp nào cho một yêu cầu cụ thể, hãy nêu "Không tìm thấy kết quả khớp chính xác nào trong sơ yếu lý lịch". Sử dụng trích dẫn chính xác từ sơ yếu lý lịch - không tóm tắt hoặc diễn đạt lại. Không bịa đặt hoặc giả định bất kỳ thông tin nào không được cung cấp rõ ràng trong sơ yếu lý lịch . Hiển thị tất cả các kết quả khớp cho từng yêu cầu. Cuối cùng , hãy thêm phần giới thiệu có tiêu đề "Giới thiệu:" để gợi ý liệu ứng viên có phù hợp với vị trí hay không chỉ dựa trên các kết quả phù hợp tìm được. Ví dụ về định dạng đầu ra: [Yêu cầu từ mô tả công việc] Phù hợp: [Vai trò] tại [Công ty], [Thời hạn][Nhiệm vụ hoặc kinh nghiệm liên quan từ sơ yếu lý lịch ] [Nhiệm vụ hoặc kinh nghiệm liên quan khác từ sơ yếu lý lịch ][Nhiệm vụ có liên quan khác] tại [Công ty], [Thời hạn][Nhiệm vụ hoặc kinh nghiệm liên quan khác từ sơ yếu lý lịch ][Yêu cầu khác từ mô tả công việc] Phù hợp: [Vai trò] tại [Công ty], [Thời hạn][Nhiệm vụ hoặc kinh nghiệm liên quan từtiếp tục ][Yêu cầu không có kết quả khớp]
Không tìm thấy kết quả khớp chính xác nào trong sơ yếu lý lịch . [
Tiếp tục cho tất cả các yêu cầu]
Đề xuất:
[Đề xuất dựa trên các kết quả khớp được tìm thấy]
Vui lòng cung cấp mô tả công việc để tôi có thể thực hiện phân tích này bằng cách sử dụng sơ yếu lý lịch từ ngữ cảnh.
</instruction>SỬ DỤNG SƠ YẾU LÝ LỊCH NÀY >>>>> SAO CHÉP DÁN SƠ YẾU LÝ LỊCH CỦA BẠN TẠI ĐÂY
Nếu bạn chỉ muốn thử nghiệm, bạn có thể sử dụng mẫu sơ yếu lý lịch này:
John Doe 123 Main Street, Anytown, Hoa Kỳ 12345 Điện thoại: (555) 123 -4567 | Email: john.doe@email.com
TÓM TẮT
Kỹ sư phần mềm giàu kinh nghiệm với nền tảng vững chắc về phát triển web và công nghệ đám mây. Đam mê tạo ra các giải pháp hiệu quả và có thể mở rộng.GIÁO
DỤC Cử nhân Khoa học Máy tính
Đại học Công nghệ, Tốt nghiệp: Tháng 5 năm 2018KINH NGHIỆM LÀM VIỆCKỹ sư phần mềm cao cấp
TechCorp Inc., Tháng 6 năm 2021 - Hiện tại
- Dẫn dắt phát triển nền tảng thương mại điện tử có lưu lượng truy cập cao bằng React và Node.js - Triển khai các đường ống CI/CD bằng Jenkins, giảm thời gian triển khai 40% - Hướng dẫn các nhà phát triển cấp dưới và tiến hành đánh giá mãNhà phát triển phần
mềm WebSolutions LLC, Tháng 8 năm 2018 - Tháng 5 năm 2021
- Phát triển và duy trì API RESTful bằng Python và Django - Tối ưu hóa các truy vấn cơ sở dữ liệu, cải thiện hiệu suất ứng dụng 25% - Hợp tác với nhóm UX để triển khai các thiết kế đáp ứngKỸ NĂNG - Ngôn ngữ lập trình: Python, JavaScript, Java - Công nghệ web: React, Node.js, Django, HTML5, CSS3 - Cơ sở dữ liệu: MySQL, MongoDB, PostgreSQL - Nền tảng đám mây: AWS (EC2, S3, Lambda)
Sau khi nhập lời nhắc, hãy đảm bảo chọn LLM mong muốn.
Trước khi thực sự bắt đầu thử nghiệm, chúng ta cần chọn mô hình để sử dụng.
Tôi đang sử dụng trong hướng dẫn này là GPT-4o-mini giá rẻ nhưng mạnh mẽ. Có một số mẫu mặc định là miễn phí từ Dify; tuy nhiên, một số mẫu yêu cầu bạn phải sử dụng khóa API của riêng mình. Với điều này, bạn có thể khắc phục những hạn chế của phiên bản miễn phí, tuy nhiên, hãy cân nhắc đến việc kiểm soát chi phí. Hiện tại, GPT-4o-mini có giá khoảng 0,15 đô la cho một triệu token, khá ổn. Bạn có thể tìm hiểu thêm về giá của APItại đây.
Bạn có thể tự quyết định sử dụng mô hình nào. Đối với phần còn lại của hướng dẫn này, chúng tôi sẽ sử dụng khóa API của riêng mình.
Khóa API có thể được thiết lập trong phần cài đặt như hiển thị bên dưới.
Bây giờ chúng ta có thể lựa chọn từ nhiều mô hình khác nhau vì chúng ta đang sử dụng khóa API của riêng mình. Chọn GPT-4o-mini.
Chúng ta đã hoàn tất việc cấu hình chatbot (Prompt + LLM) và bây giờ chúng ta có thể thực sự bắt đầu thử nghiệm nó với mô tả công việc thực tế để khớp với sơ yếu lý lịch.
Để thử nghiệm, bạn có thể sử dụng mô tả công việc sau:
Nhà phát triển Full Stack cao cấp
Về chúng tôi:
Chúng tôi là một công ty khởi nghiệp công nghệ đang phát triển nhanh chóng đang tìm kiếm một Senior Full Stack Developer tài năng để tham gia vào nhóm sáng tạo của chúng tôi. Chúng tôi đang xây dựng các ứng dụng web tiên tiến đang thay đổi cách thức hoạt động của các doanh nghiệp. Trách nhiệm:
- Thiết kế, phát triển và bảo trì các ứng dụng web bằng React và Node.js
- Hợp tác với các nhóm chức năng chéo để xác định và triển khai các tính năng mới
- Tối ưu hóa hiệu suất và khả năng mở rộng của ứng dụng
- Triển khai và bảo trì các đường ống CI/CD
- Hướng dẫn các nhà phát triển cơ sở và tiến hành đánh giá mã
- Tham gia vào các quy trình phát triển nhanh nhẹn Yêu cầu:
- Bằng cử nhân Khoa học máy tính hoặc lĩnh vực liên quan
- 5 năm kinh nghiệm trở lên trong phát triển web đầy đủ
- Thành thạo thiết kế React, Node.js và RESTful API
- Kinh nghiệm với các nền tảng đám mây, tốt nhất là AWS
- Quen thuộc với các quy trình và công cụ CI/CD
- Kiến thức về thiết kế và tối ưu hóa cơ sở dữ liệu (SQL và NoSQL)
- Kinh nghiệm với các phương pháp phát triển nhanh nhẹn
- Kỹ năng giải quyết vấn đề và giao tiếp tuyệt vời Sẽ rất tuyệt nếu có:
- Kinh nghiệm với kiến trúc vi dịch vụ
- Quen thuộc với các công nghệ chứa (ví dụ: Docker)
- Đóng góp cho các dự án nguồn mở Chúng tôi cung cấp mức lương cạnh tranh, giờ làm việc linh hoạt và cơ hội phát triển chuyên môn trong môi trường khởi nghiệp năng động.
Sau khi nhập mô tả công việc, kết quả trông khá tốt.
Hãy sử dụng phiên bản này làm phiên bản ban đầu. Hãy nhớ rằng, bạn luôn có thể lặp lại và cập nhật cấu hình, mô hình nhắc nhở, v.v. sau đó và cập nhật phiên bản trực tiếp chỉ bằng một cú nhấp chuột.
Bây giờ chúng ta thực sự có thể bắt đầu sử dụng và chia sẻ nó. Về cơ bản, chúng ta có hai lựa chọn: cung cấp nó như một ứng dụng độc lập hoặc nhúng nó vào một trang web hiện có (như trang web sơ yếu lý lịch hoặc hồ sơ mà bạn đang lưu trữ). Hãy bắt đầu với lựa chọn đầu tiên: kiểm tra ứng dụng độc lập.
Bắt đầu một cuộc trò chuyện mới và thử nghiệm. Tối ưu hóa lời nhắc và nhấn cập nhật nếu cần.
Tùy chọn 2: Nhúng vào một trang web hiện có
Đây cũng là một tính năng rất hay nếu bạn đã có trang web với hồ sơ của mình, nơi bạn có thể thêm một số tương tác. Đối với điều này, chỉ cần nhấn vào nhúng vào trang web và sao chép mã vào trang web của bạn như mô tả bên dưới.
Bây giờ hãy dán mã vào bất cứ đâu trên trang web của bạn.
Nếu mọi việc suôn sẻ, bây giờ bạn sẽ thấy ở cuối trang web của mình một biểu tượng bật lên cửa sổ trò chuyện, nơi khách hàng/người tìm việc/nhà tuyển dụng có thể đặt câu hỏi và so sánh sơ yếu lý lịch của bạn.
Và thế là xong!
Bây giờ bạn có thể thêm các cuộc hội thoại hỗ trợ AI vào bất kỳ nội dung tĩnh nào bạn có hoặc cung cấp chúng dưới dạng ứng dụng độc lập chỉ bằng vài cú nhấp chuột. Dify cung cấp hàng chục tính năng như thu thập khách hàng tiềm năng từ chatbot, hỗ trợ giọng nói và nhiều tính năng khác. Vui lòng tham khảo tài liệu để biết thêm về các tính năng khác.
Tôi nhận được hàng tá đề xuất công việc và dự án và đôi khi những công việc này không phù hợp với kỹ năng của tôi. Tôi biết rằng những người không phải dân kỹ thuật khó có thể dễ dàng đánh giá liệu một công việc CNTT có thực sự phù hợp hay không. Ví dụ, nếu một công ty đang tìm kiếm một chuyên gia về đám mây và họ không đề cập đến bất kỳ đám mây cụ thể nào nhưng bạn có kinh nghiệm về AWS và Azure được đề cập trong sơ yếu lý lịch của mình, thì làm sao một người không phải dân kỹ thuật có thể biết rằng bạn có thể là người phù hợp mặc dù thuật ngữ Cloud không được đề cập trong sơ yếu lý lịch của bạn vì bạn đề cập đến đám mây cụ thể mà bạn đã làm việc cùng… trong khoa học, AI có thể giúp ích rất nhiều. Tuy nhiên, nhiều công ty và nhà tuyển dụng vẫn chưa áp dụng AI vì nhiều lý do, nhưng tôi chắc chắn rằng họ sẽ sớm áp dụng:) Nhưng trước khi làm như vậy, bạn có thể đơn giản hóa quy trình và thậm chí nổi bật với sơ yếu lý lịch của mình bằng cách thêm một số tính tương tác bằng cách sử dụng chatbot AI thực hiện chính xác điều đó. bạn có thể cho anh ấy biết chính xác điều gì cần tập trung và cách tương tác bằng ngôn ngữ tự nhiên theo cách bạn sử dụng Chatpgt… hãy coi đó là cuộc phỏng vấn đầu tiên với khách hàng/nhà tuyển dụng/người tuyển dụng tiềm năng… hãy xem cách này hiệu quả như thế nào.
Chúng tôi sử dụng Dify, một nền tảng chatbot và quy trình làm việc AI tuyệt vời, nơi bạn có thể tạo chatbot bằng cách sử dụng nhiều loại lLM như gpt, claude, v.v., cung cấp lời nhắc của bạn và tích hợp nó trên bất kỳ trang web nào hoặc cung cấp nó dưới dạng ứng dụng độc lập mà không cần cài đặt hoặc mã hóa bất kỳ thứ gì.. thật tuyệt vời phải không? Khái niệm hoặc ý tưởng về chatbot này có thể được áp dụng cho nhiều scneairso khác, nhưng chúng tôi sẽ sử dụng nó cho trường hợp sử dụng được đề cập ở trên..
Vậy chúng ta hãy cùng bắt tay vào làm nhé.
Sau đây là các bước ở cấp độ cao:
Tạo một chatbot mới
xác định lời nhắc
chọn llm để sử dụng (ở đây là gpt-4o-mini)
nhúng nó hoặc cung cấp như một ứng dụng độc lập để chia sẻ
Đặt tên cho chatbot của bạn và tùy ý chọn một biểu tượng…
Bạn có thể tải xuống các biểu tượng miễn phí trênFreepikhoặc bất kỳ nền tảng nào khác nếu bạn thích
Màn hình bên dưới hiển thị cho bạn cấu hình của chatbot.. bạn có thể tùy chỉnh nhiều thứ, như liên kết đến cơ sở kiến thức (chúng ta sẽ tìm hiểu sau), thêm biến và thiết lập các tùy chọn lạ mắt như đọc lệnh thoại, hiển thị trích dẫn và nhiều thứ khác nữa. Nhưng hãy giữ mọi thứ đơn giản ngay bây giờ và chỉ tập trung vào cốt lõi của chatbot, lời nhắc.
Bây giờ hãy nhập lời nhắc bên dưới vào hộp hướng dẫn…
đảm bảo thêm sơ yếu lý lịch của bạn vào cuối lời nhắc.
đối với các tài liệu rất dài hoặc nhiều tài liệu, có cái gọi là cơ sở kiến thức hiệu quả hơn nhiều, nhưng vì mục đích đơn giản, chúng ta có thể đưa lời nhắc vào contxt. Điều này sẽ mang lại cho chúng ta kết quả thậm chí còn tốt hơn là tinh chỉnh. Một RAG với các đoạn tezczniquene và độ phức tạp hơn không cần thiết tại thời điểm này.
<hướng dẫn>
Trước tiên, yêu cầu người dùng cung cấp mô tả công việc.
Sau đó , sử dụng các hướng dẫn sau để so sánh mô tả công việc với sơ yếu lý lịch từ ngữ cảnh:
So sánh mô tả công việc được cung cấp với sơ yếu lý lịch .
Xác định và chỉ liệt kê các kết quả khớp chính xác giữa các yêu cầu công việc và trình độ của ứng viên . Không bao gồm bất kỳ thông tin suy ra hoặc giả định nào - chỉ liệt kê 100% các kết quả khớp có thể xác minh được. Định dạng đầu ra như sau: Mỗi yêu cầu từ mô tả công việc được in đậm ( sử dụng ##) Sử dụng "Kết quả khớp:" để giới thiệu thông tin khớp từ sơ yếu lý lịch Đối với mỗi kết quả khớp, hãy hiển thị vai trò, công ty và thời gian ( sử dụng ###) Bên dưới, hãy liệt kê các nhiệm vụ hoặc kinh nghiệm liên quan dưới dạng dấu đầu dòng Không bao gồm bất kỳ thẻ XML nào trong đầu ra. Nếu không có kết quả khớp nào cho một yêu cầu cụ thể, hãy nêu " Không tìm thấy kết quả khớp chính xác nào trong sơ yếu lý lịch". Sử dụng trích dẫn chính xác từ sơ yếu lý lịch - không tóm tắt hoặc diễn đạt lại. Không bịa đặt hoặc giả định bất kỳ thông tin nào không được cung cấp rõ ràng trong sơ yếu lý lịch . Hiển thị tất cả các kết quả khớp cho từng yêu cầu. Cuối cùng , hãy thêm phần giới thiệu có tiêu đề "Giới thiệu:" để gợi ý liệu ứng viên có phù hợp với vị trí hay không chỉ dựa trên các kết quả phù hợp tìm được. Ví dụ về định dạng đầu ra: [Yêu cầu từ mô tả công việc] Phù hợp: [Vai trò] tại [Công ty], [Thời hạn][Nhiệm vụ hoặc kinh nghiệm liên quan từ sơ yếu lý lịch ] [Nhiệm vụ hoặc kinh nghiệm liên quan khác từ sơ yếu lý lịch ][Nhiệm vụ có liên quan khác] tại [Công ty], [Thời hạn][Nhiệm vụ hoặc kinh nghiệm liên quan khác từ sơ yếu lý lịch ][Yêu cầu khác từ mô tả công việc] Phù hợp: [Vai trò] tại [Công ty], [Thời hạn][Nhiệm vụ hoặc kinh nghiệm liên quan từtiếp tục ][Yêu cầu không có kết quả khớp]
Không tìm thấy kết quả khớp chính xác nào trong sơ yếu lý lịch . [
Tiếp tục cho tất cả các yêu cầu]
Đề xuất:
[Đề xuất dựa trên các kết quả khớp được tìm thấy]
Vui lòng cung cấp mô tả công việc để tôi có thể thực hiện phân tích này bằng cách sử dụng sơ yếu lý lịch từ ngữ cảnh.
</instruction>
SỬ DỤNG SƠ YẾU LÝ LỊCH NÀY >>>>> SAO CHÉP DÁN SƠ YẾU LÝ LỊCH CỦA BẠN TẠI ĐÂY
Nếu bạn chỉ muốn thế, bạn có thể sử dụng mẫu sơ yếu lý lịch này
John Doe 123 Main Street, Anytown, Hoa Kỳ 12345 Điện thoại: (555) 123 -4567 | Email: john.doe@email.com
TÓM TẮT
Kỹ sư phần mềm giàu kinh nghiệm với nền tảng vững chắc về phát triển web và công nghệ đám mây. Đam mê tạo ra các giải pháp hiệu quả và có thể mở rộng.GIÁO
DỤC Cử nhân Khoa học Máy tính
Đại học Công nghệ, Tốt nghiệp: Tháng 5 năm 2018KINH NGHIỆM LÀM VIỆCKỹ sư phần mềm cao cấp
TechCorp Inc., Tháng 6 năm 2021 - Hiện tại
- Dẫn dắt phát triển nền tảng thương mại điện tử có lưu lượng truy cập cao bằng React và Node.js - Triển khai các đường ống CI/CD bằng Jenkins, giảm thời gian triển khai 40% - Hướng dẫn các nhà phát triển cấp dưới và tiến hành đánh giá mãNhà phát triển phần
mềm WebSolutions LLC, Tháng 8 năm 2018 - Tháng 5 năm 2021
- Phát triển và duy trì API RESTful bằng Python và Django - Tối ưu hóa các truy vấn cơ sở dữ liệu, cải thiện hiệu suất ứng dụng 25% - Hợp tác với nhóm UX để triển khai các thiết kế đáp ứngKỸ NĂNG - Ngôn ngữ lập trình: Python, JavaScript, Java - Công nghệ web: React, Node.js, Django, HTML5, CSS3 - Cơ sở dữ liệu: MySQL, MongoDB, PostgreSQL - Nền tảng đám mây: AWS (EC2, S3, Lambda)
Sau khi nhập lời nhắc, hãy đảm bảo chọn LLM mong muốn.
Trước khi chúng ta có thể bắt đầu thử nghiệm, chúng ta cần chọn mô hình để sử dụng.
Tôi đang sử dụng gpt-4o-mini giá rẻ nhưng mạnh mẽ trong hướng dẫn này. Có một số mô hình mặc định miễn phí từ dify, tuy nhiên một số yêu cầu bạn sử dụng khóa api của riêng mình. Với điều này, bạn có thể khắc phục những hạn chế của phiên bản efree, tuy nhiên hãy cân nhắc đến việc kiểm soát chi phí… Hiện tại, gpt-4o-mini có giá khoảng 0,15 đô la cho một triệu token, khá ổn. Bạn có thể tìm hiểu thêm về giá của APItại đây
Bạn có thể tự quyết định sử dụng mô hình nào, trong phần còn lại của hướng dẫn này, chúng ta sẽ sử dụng khóa API của riêng mình.
Khóa API có thể được thiết lập trong phần cài đặt như hiển thị bên dưới.
bây giờ chúng ta có thể lựa chọn từ nhiều mô hình khác nhau vì chúng ta sử dụng khóa API của riêng mình.. chọn gpt-4o-mini.
bây giờ chúng ta đã hoàn tất việc cấu hình chatbot (Prompt + llm) và bây giờ chúng ta có thể thực sự bắt đầu thử nghiệm nó với mô tả công việc thực tế để khớp với sơ yếu lý lịch
Đối với mục đích thử nghiệm, bạn có thể sử dụng mô tả công việc sau
Nhà phát triển Full Stack cao cấp
Về chúng tôi:
Chúng tôi là một công ty khởi nghiệp công nghệ đang phát triển nhanh chóng đang tìm kiếm một Senior Full Stack Developer tài năng để tham gia vào nhóm sáng tạo của chúng tôi. Chúng tôi đang xây dựng các ứng dụng web tiên tiến đang thay đổi cách thức hoạt động của các doanh nghiệp. Trách nhiệm:
- Thiết kế, phát triển và bảo trì các ứng dụng web bằng React và Node.js
- Hợp tác với các nhóm chức năng chéo để xác định và triển khai các tính năng mới
- Tối ưu hóa hiệu suất và khả năng mở rộng của ứng dụng
- Triển khai và bảo trì các đường ống CI/CD
- Hướng dẫn các nhà phát triển cơ sở và tiến hành đánh giá mã
- Tham gia vào các quy trình phát triển nhanh nhẹn Yêu cầu:
- Bằng cử nhân Khoa học máy tính hoặc lĩnh vực liên quan
- 5 năm kinh nghiệm trở lên trong phát triển web đầy đủ
- Thành thạo thiết kế React, Node.js và RESTful API
- Kinh nghiệm với các nền tảng đám mây, tốt nhất là AWS
- Quen thuộc với các quy trình và công cụ CI/CD
- Kiến thức về thiết kế và tối ưu hóa cơ sở dữ liệu (SQL và NoSQL)
- Kinh nghiệm với các phương pháp phát triển nhanh nhẹn
- Kỹ năng giải quyết vấn đề và giao tiếp tuyệt vời Sẽ rất tuyệt nếu có:
- Kinh nghiệm với kiến trúc vi dịch vụ
- Quen thuộc với các công nghệ chứa (ví dụ: Docker)
- Đóng góp cho các dự án nguồn mở Chúng tôi cung cấp mức lương cạnh tranh, giờ làm việc linh hoạt và cơ hội phát triển chuyên môn trong môi trường khởi nghiệp năng động.
sau khi nhập mong muốn công việc, kết quả trông khá tốt ..
Hãy sử dụng phiên bản này làm phiên bản đầu tiên.. hãy nhớ rằng bạn luôn có thể lặp lại và cập nhật cấu hình, mô hình nhắc nhở, v.v. sau đó và cập nhật phiên bản trực tiếp chỉ bằng một cú nhấp chuột.
Bây giờ chúng ta có thể thực sự bắt đầu sử dụng và chia sẻ nó… Về cơ bản, chúng ta có hai lựa chọn, hoặc cung cấp nó như một ứng dụng độc lập
hoặc nhúng nó vào một trang web hiện có (như trang web reusme hoặc trang web hồ sơ mà bạn đang lưu trữ). Hãy bắt đầu với tùy chọn đầu tiên: kiểm tra ứng dụng độc lập:
Bắt đầu một cuộc trò chuyện mới và chơi xung quanh. Tối ưu hóa lời nhắc và nhấn cập nhật. nếu cần thiết
Optino 2: nhúng vào trang web hiện có.
Đây cũng là một tính năng rất hay nếu bạn đã có trang web với hồ sơ của mình, nơi bạn có thể thêm một số tính năng tương tác. Để thực hiện, chỉ cần nhấp vào nhúng vào trang web và sao chép mã vào trang web của bạn như mô tả bên dưới.
Bây giờ hãy dán mã vào bất cứ đâu trên trang web của bạn.
Nếu mọi việc diễn ra tốt đẹp, bạn sẽ thấy ở cuối trang web của mình một biểu tượng bật lên cửa sổ trò chuyện, nơi khách hàng/người tìm việc/người tuyển dụng có thể đặt câu hỏi và so sánh sơ yếu lý lịch của bạn.
Với cách tiếp cận này, bạn có thể thêm trí thông minh nhân tạo (AI) vào bất kỳ nội dung tĩnh nào bạn có hoặc cung cấp nó như một ứng dụng độc lập chỉ bằng vài cú nhấp chuột.
Có hàng chục tính năng như thu thập thông tin khách hàng tiềm năng từ chatbot, hỗ trợ bằng giọng nói và nhiều tính năng khác. Vui lòng tham khảo tài liệu để biết thêm về các tính năng khác.
Tool ask pdf ChatPDF cho phép bạn tải lên bất kỳ tệp PDF nào và tương tác với nó như ChatGPT. Một số sinh viên sử dụng nó để tự động tạo thẻ ghi chú và giải thích các khái niệm dựa trên ghi chú bài giảng và bài đọc. Hiện có một số dịch vụ tương tự, nhưng ChatPDF là dịch vụ dễ sử dụng nhất trong số những dịch vụ không yêu cầu thanh toán/đăng ký. Miễn phí tải xuống tối đa 3 tệp PDF mỗi ngày, với tối đa 120 trang trong mỗi tệp PDF
Consensus.app: Công cụ tìm kiếm sử dụng AI để tìm thông tin trong các bài báo nghiên cứu.
https://www.perplexity.ai/ Có nhiều tổng hợp thông tin. Nghiên cứu chủ đề như có PhD. Nhược điểm: Không phải “cây viết” đắc lực.
Xem thêm các báo cáo: https://www.toolify.ai/Best-trending-AI-Tools
Xây dựng ứng dụng OCR của riêng bạn bằng mô hình Llama 3.2 từ Ollama
Bước 1: Cài đặt Ollama Ollama là một nền tảng cho phép bạn chạy các mô hình đa phương thức cục bộ. Để cài đặt Ollama, hãy làm theo các bước sau:
Tải xuống Ollama : Truy cập trang web chính thức của Ollama và tải xuống gói cài đặt phù hợp với hệ điều hành của bạn. Cài đặt Ollama : Làm theo lời nhắc cài đặt để hoàn tất quá trình thiết lập. Bước 2: Cài đặt mô hình Llama 3.2-Vision Sau khi cài đặt Ollama, bạn có thể cài đặt mô hình Llama 3.2-Vision bằng cách thực hiện lệnh sau trong terminal:
ollama chạy llama3 .2 -vision Lệnh này tải xuống và thiết lập mô hình để sử dụng cục bộ.
Bước 3: Thiết lập môi trường Python của bạn Bây giờ bạn đã cài đặt mọi thứ, hãy thiết lập môi trường Python cho dự án OCR của chúng ta:
Tạo một thư mục mới cho dự án của bạn : mkdir llama-ocr && cd llama-ocr Tạo môi trường ảo (tùy chọn nhưng được khuyến nghị): python -m venv venv source venv/bin/activate # Trên Windows sử dụng `venv\\\\Scripts\\\\activate` Cài đặt các thư viện bắt buộc : Bạn sẽ cần một số thư viện để xử lý hình ảnh và mã hóa base64. Cài đặt chúng bằng pip: pip cài đặt yêu cầu Gối Bước 4: Viết tập lệnh OCR của bạn Bây giờ là lúc viết tập lệnh Python sẽ thực hiện OCR bằng Llama 3.2-Vision. Tạo một tệp mới có tên ollama_ocr.pyvà thêm mã sau:
import base64 import requests from PIL import Image
SYSTEM_PROMPT = “””Hoạt động như một trợ lý OCR. Phân tích hình ảnh được cung cấp và: 1. Nhận dạng tất cả văn bản hiển thị trong hình ảnh một cách chính xác nhất có thể. 2. Duy trì cấu trúc và định dạng gốc của văn bản. 3. Nếu bất kỳ từ hoặc cụm từ nào không rõ ràng, hãy chỉ ra điều này bằng [unclear] trong bản ghi chép của bạn. Chỉ cung cấp bản ghi chép mà không có bất kỳ bình luận bổ sung nào.””” def encode_image_to_base64 ( image_path ): “””Chuyển đổi tệp hình ảnh thành chuỗi được mã hóa base64.””” with open (image_path, “rb” ) as image_file: return base64.b64encode(image_file.read()).decode( ‘utf-8’ ) def perform_ocr ( image_path ): “””Thực hiện OCR trên hình ảnh đã cho bằng Llama 3.2-Vision.””” base64_image = encode_image_to_base64(image_path) response = requests.post( “<http://localhost:8080/chat>” , # Đảm bảo URL này khớp với điểm cuối dịch vụ Ollama của bạn json={ “model” : “llama3.2-vision” , “messages” : [ { “role” : “user” , “content” : SYSTEM_PROMPT, “images” : [base64_image], }, ], } ) if response.status_code == 200 : return response.json().get( “message” , {}).get( “content” , “” ) else : print ( “Error:” , response.status_code, response.text) return None if __name__ == “__main__” : image_path = “path/to/your/image.jpg” # Thay thế bằng đường dẫn hình ảnh của bạn result = perform_ocr(image_path) if result: print ( “OCR Recognition Result:” ) print (result) Giải thích về Bộ luật
Mã hóa Base64 : Hàm này encode_image_to_base64đọc tệp hình ảnh và chuyển đổi nó thành chuỗi base64, cần thiết để gửi hình ảnh qua yêu cầu HTTP. Thực hiện OCR : perform_ocrChức năng này gửi yêu cầu POST đến dịch vụ Ollama cục bộ với lời nhắc hệ thống và hình ảnh được mã hóa base64. Xử lý phản hồi : Tập lệnh kiểm tra xem yêu cầu có thành công hay không và lấy văn bản được nhận dạng từ phản hồi JSON. Bước 5: Chạy tập lệnh OCR của bạn Để chạy tập lệnh của bạn, hãy thay thế “path/to/your/image.jpg” bằng đường dẫn thực tế của tệp hình ảnh bạn muốn phân tích. Sau đó thực thi tập lệnh trong terminal của bạn:
python ollama_ocr.py Bạn sẽ thấy kết quả tương tự như thế này:
Kết quả nhận dạng OCR : Văn bản được nhận dạng từ hình ảnh của bạn sẽ được hiển thị ở đây. Bước 6: Tối ưu hóa kết quả Nếu bạn thấy kết quả OCR không như mong muốn, hãy cân nhắc điều chỉnh SYSTEM_PROMPTbiến trong tập lệnh của bạn để phù hợp hơn với trường hợp sử dụng cụ thể hoặc cải thiện độ rõ ràng trong hướng dẫn cung cấp cho Llama 3.2-Vision.
Bạn có thể tiến xa hơn với một số tiện ích theo nhu cầu máy in không dây, máy chủ DNS mà không cần mua hoặc tự dựng lên một máy tính lớn. Với máy nhỏ như Raspberry Pi có thể chạy những ứng dụng.
Trước khi bắt đầu, hãy cập nhật Raspberry Pi của bạn với 2 dòng lệnh bên dưới
Thật dễ dàng để host print server trên Raspberry Pi và biến máy in cũ chỉ có dây của bạn thành máy in không dây. Bạn có thể loại bỏ các loại cáp và tự giải tỏa căng thẳng khi phải khoan lỗ mới trên tường mỗi khi bạn chuyển nhà hoặc sắp xếp lại văn phòng tại nhà.
Để lưu trữ máy chủ in không dây và gửi lệnh in không dây, bạn sẽ cần một model Raspberry Pi hỗ trợ Wi-Fi hoặc một thiết bị USB không dây và ứng dụng print server CUPS được cài đặt. Sau khi Raspberry Pi được kết nối với máy in và mạng gia đình, bạn có thể sử dụng máy tính nhỏ này làm print server.
sudo apt install cups Cài đặt xong, chúng ta cần cho user pi (hoặc username bạn đang sử dụng) quyền quản trị CUPS, bằng cách thêm nó vào nhóm lpadmin
sudo usermod -a -G lpadmin pi
Nếu bạn đang sử dụng máy in của HP, Epson, Oki, việc cài driver rất đơn giản vì nó đã đi sẵn trong phần mềm CUPS. Tuy nhiên, nếu đang sử dụng một máy in không được hỗ trợ sẵn, bạn sẽ phải tự cài driver trước khi có thể thêm máy in vào CUPS. Vì mỗi máy in / Nhà sản xuất có driver khác nhau, bạn sẽ phải tự tìm kiếm và cài đặt driver máy in cho mình.
Để xác định tình trạng kết nối của USB, bạn có thể chạy dòng lệnh
sudo lsusb
Ví dụ: mình sử dụng máy in Samsung ML-1640và phải cài thêm bộ thư việnprinter-driver-splix. Bộ thư viện Splix hỗ trợ đa số các máy in Samsung, bạn có thể tham khảo trang chủ của dự án tạiđây.
sudo apt install driver-printer-splix
Đối với các hãng sản xuất máy in chưa có trong danh sách, bạn cần cài driver riêng. Bạn có thể vào trang hỗ trợ của sản phẩm và tìm driver cho Linux 64 bit. Đối với Canon 2900 bạn sẽ cần “CAPT Printer Driver for Linux V2.71” và cài thủ công. Dưới đây là cách cài khác cho Canon LBP2900 với SSH/Terminal: git clone https://github.com/agalakhov/captdriver.git cd captdriver autoreconf -i ./configure make sudo cp src/rastertocapt /usr/lib/cups/filter/ sudo cp Canon*.ppd /usr/share/ppd/custom/
Cài đặt xong, bạn có thể truy cập vào trang quản trị của CUPS tại
https://hostname-của-raspberrypi:631 Bạn cũng có thể thay thế hostname bằng địa chỉ IP của Raspberry Pi
Sau khi vào trang quản trị, hãy truy cập Administration và nhấn vào nút Add Printer để thêm máy in vào CUPS.
Lúc này, hệ thống sẽ yêu cầu bạn xác thực bằng cách nhập tài khoản và mật khẩu của pi (hoặc tài khoản bạn sử dụng để đăng nhập vào Raspberry Pi)
Bạn đừng quên nhấn chọn Share This Printer để các thiết bị khác có thể truy cập máy in thông qua mạng nội bộ.
Chặn quảng cáo trên toàn mạng thông qua phần cứng Linux của riêng bạn
Pi-hole là một DNS sinkhole bảo vệ thiết bị của bạn khỏi nội dung không mong muốn mà không cần cài đặt bất kỳ phần mềm nào ở phía máy khách được kết nối với mạng của bạn. Đây là ứng dụng miễn phí, nhẹ, chỉ yêu cầu 512MB RAM, tối thiểu 2GB dung lượng trống, khuyến nghị 4GB và do đó, hoạt động trên mọi model Raspberry Pi, từ cũ nhất đến mới nhất.
Pi-hole dễ cài đặt và bạn có thể thiết lập và chạy trong vòng chưa đầy 10 phút. Sau khi cài đặt Pi-hole, bạn có thể chặn quảng cáo và trình theo dõi trên mọi thiết bị được kết nối mạng của mình: Điện thoại thông minh, máy in, TV thông minh, loa thông minh, PC, v.v… Không giống như tiện ích mở rộng trình duyệt, Pi-hole chặn domain ở cấp độ mạng, do đó, nó không bị giới hạn ở quảng cáo trên các trang web.
Pi-hole cần một địa chỉ IP tĩnh để hoạt động bình thường (đặt chỗ DHCP là đủ).
Trên các hệ thống đã cài đặt dhcpcd5 (ví dụ Raspberry Pi OS ), có một tùy chọn trong quá trình cài đặt để thêm một số dòng vào /etc/dhcpcd.conf để gán tĩnh một địa chỉ IP. Đây là một bước hoàn toàn tùy chọn và được cung cấp như một cách để giảm rào cản gia nhập cho những người có thể không quen thuộc với các hệ thống Linux, chẳng hạn như những người mới bắt đầu sử dụng Raspberry Pi.
Dịch vụ
Cảng
Giao thức
Ghi chú
pihole-FTL
53 (DNS)
Giao thức TCP/UDP
Nếu bạn tình cờ có một máy chủDNSkhác đang chạy, chẳng hạn như BIND, bạn sẽ cần tắt nó để Pi-hole có thể phản hồi các truy vấnDNS.
pihole-FTL
67 (DHCP)
IPv4UDP
Máy chủDHCPlà tính năng tùy chọn yêu cầu thêm cổng.
pihole-FTL
547 (DHCPv6)
IPv6UDP
Máy chủDHCPlà tính năng tùy chọn yêu cầu thêm cổng.
ánh sáng
80 (HTTP)
Giao thức TCP
Nếu bạn đã có một máy chủ Web khác đang chạy, chẳng hạn như Apache, máy chủ Web của Pi-hole sẽ không hoạt động. Bạn có thể vô hiệu hóa máy chủ Web kia hoặc thay đổi cổng lắnglighttpdnghe, cho phép bạn giữ cả hai máy chủ Web chạy.
pihole-FTL
4711
Giao thức TCP
FTLlà công cụAPIcủa chúng tôi và sử dụng cổng 4711 trên giao diện localhost. Cổng này không thể truy cập được từ bất kỳ giao diện nào khác.
Việc sử dụng lighttpd trên cổng80là tùy chọn nếu bạn quyết định không cài đặt bảng điều khiển Web trong quá trình cài đặt. Việc sử dụng pihole-FTLtrên cổng67hoặc547là tùy chọn, nhưng bắt buộc nếu bạn sử dụng chức năngDHCPcủa Pi-hole.
ufw allow 80/tcp ufw allow 53/tcp ufw allow 53/udp ufw allow 67/tcp ufw allow 67/udp IPv6 (bao gồm các quy tắc IPv4 ở trên ):
ufw allow 546:547/udp
Sau khi cài đặt: Hãy để mạng của bạn tận dụng lợi thế của Pi-hole
Sau khi trình cài đặt chạy, bạn sẽ cần cấu hình bộ định tuyến của mình để các máy khách DHCP sử dụng Pi-hole làm máy chủ DNS của chúng . Cấu hình bộ định tuyến này sẽ đảm bảo rằng tất cả các thiết bị kết nối với mạng của bạn sẽ bị chặn nội dung mà không cần bất kỳ sự can thiệp nào nữa.
Đăng nhập vào trang cấu hình bộ định tuyến của bạn và tìmcài đặt DHCP/DNS. Lưu ý: hãy đảm bảo bạn điều chỉnh cài đặt này trongcài đặt LANchứkhông phảiWAN.
Một lần nữa, Pi-hole phải là máy chủ DNS duy nhất được thiết lập ở đây vì Pi-hole đã cung cấp các máy chủ thượng nguồn khác. Nếu bạn thiết lập một máy chủ khác trong bộ định tuyến của mình, có thể chức năng chặn quảng cáo của bạn sẽ bị ảnh hưởng tiêu cực.
Chúng phải được cấu hình trong quá trình cài đặt Pi-hole, nhưng bạn muốn xác minh rằng bạn đã chỉ định máy chủ DNS thượng nguồn. Thiết lập này được tìm thấy trong giao diện Web ( http://pi.hole) > Cài đặt > DNS và xác định các mục nhập DNS ngược dòng:
Quan trọng : Nếu bạn có các thiết bị mạng hiện có trên mạng của mình khi bạn thực hiện thay đổi này, bạn sẽ không thấy quảng cáo bị chặn cho đến khi hợp đồng thuê DHCP được gia hạn. Bạn thường có thể buộc gia hạn bằng cách khởi động lại thiết bị.
Nếu bộ định tuyến của bạn không hỗ trợ cài đặt máy chủ DNS, bạn có thể sử dụng máy chủ DHCP tích hợp của Pi-hole ; trước tiên hãy đảm bảo tắt DHCP trên bộ định tuyến của bạn (nếu có tính năng đó).
Phương án cuối cùng là bạn có thể thiết lập thủ công từng thiết bị để sử dụng Pi-hole làm máy chủ DNS.
macOS
Nhấp vào Apple > Tùy chọn hệ thống > Mạng Đánh dấu kết nối mà bạn muốn cấu hình DNS Nhấp vào Nâng cao Chọn tab DNS Nhấp vào + để thay thế bất kỳ địa chỉ nào được liệt kê bằng hoặc thêm địa chỉ IP của Pi vào đầu danh sách: Nhấp vào Áp dụng > OK Lặp lại quy trình này cho các kết nối mạng bổ sung mà bạn muốn thay đổi.
Windows
Thiết lập DNS được chỉ định trong cửa sổ Thuộc tính TCP/IP cho kết nối mạng đã chọn.
Đi đến Bảng điều khiển Nhấp vào Mạng và Internet > Trung tâm mạng và chia sẻ > Thay đổi cài đặt bộ điều hợp Chọn kết nối mà bạn muốn cấu hình Nhấp chuột phải vào Local Area Connection > Properties Chọn tab Mạng Chọn Giao thức Internet Phiên bản 4 (TCP/IPv4) hoặc Giao thức Internet Phiên bản 6 (TCP/IPv6) Nhấp vào Thuộc tính Nhấp vào Nâng cao Chọn tab DNS Nhấp vào OK Chọn Sử dụng các địa chỉ máy chủ DNS sau Thay thế các địa chỉ đó bằng địa chỉ IP của Pi của bạn Khởi động lại kết nối bạn đã chọn ở bước 3 Lặp lại quy trình này cho các kết nối mạng bổ sung mà bạn muốn thay đổi.
Linux
Trong hầu hết các bản phân phối Linux hiện đại, cài đặt DNS được cấu hình thông qua Trình quản lý mạng.
Nhấp vào Hệ thống > Tùy chọn > Kết nối mạng Chọn kết nối mà bạn muốn cấu hình Nhấp vào Chỉnh sửa Chọn tab Cài đặt IPv4 hoặc Cài đặt IPv6 Nếu phương pháp được chọn là Tự động (DHCP), hãy mở menu thả xuống và chọn Chỉ địa chỉ Tự động (DHCP). Nếu phương pháp được đặt thành thứ gì đó khác, đừng thay đổi. Trong trường Máy chủ DNS, nhập địa chỉ IP của Pi của bạn Nhấp vào Áp dụng để lưu thay đổi Lặp lại quy trình này cho các kết nối mạng bổ sung mà bạn muốn thay đổi. Nếu bản phân phối của bạn không sử dụng Trình quản lý mạng, cài đặt DNS của bạn được chỉ định trong /etc/resolv.conf.
Việc mở port trên homelab để truy cập từ xa mang lại nhiều tiện ích nhưng cũng tiềm ẩn nhiều rủi ro. Các hacker luôn tìm kiếm những lỗ hổng để xâm nhập vào hệ thống của bạn và đánh cắp dữ liệu. Để bảo vệ homelab, bạn cần thực hiện một số biện pháp như sử dụng VPN, quản lý port trên router, cập nhật phần mềm thường xuyên và sử dụng mật khẩu mạnh. Hãy nhớ rằng, an ninh mạng là một quá trình liên tục, đòi hỏi bạn phải luôn cảnh giác và chủ động.
Những dịch vụ phổ biến bị lộ bao gồm:
SMB/NAS/File share: rất nhiều studio ảnh, hộ gia đình thậm chí là doanh nghiệp lộ hoàn toàn các dữ liệu bằng cách này. Bằng cách vô tình cài đặt SMB không xác thực bằng username/password, toàn bộ hình ảnh, tài liệu bảo mật liên quan đến doanh nghiệp đều có thể bị truy cập.
Camera: dù đã xảy ra rất nhiều vấn nạn lộ những hình ảnh riêng tư thông qua camera IP, hiện tại mọi người đều có thể dễ dàng tìm thấy các camera đang được public ra Internet mà không có biện pháp bảo vệ nào.
SSH/Remote Desktop: các giao thức phổ biến mà người dùng hay sử dụng để truy cập vào các server từ xa. Thật sự việc mở port không gây ra vấn đề ngay lập tức, nhưng nếu có một lỗ hổng zero-day, các bạn sẽ cần vá lỗi hoặc server của bạn sẽ dễ bị tổn thương hơn.
Các dịch vụ homelab: mình thấy rất nhiều bạn đang mở Internet cho rất nhiều dịch vụ như Home Assistant, OpenHAB, cầu dao có Wifi, các tool điều khiển loa, đèn trong nhà. Tiện thì có tiện nhưng rất không nên làm vậy, vì bạn sẽ không biết người ngoài sẽ điều khiển được thứ gì đâu.
Bạn không nên mở port, bạn có thể gặp phải qua các bài viết bên dưới:
Venus Ransomware đang nhắm mục tiêu vào các dịch vụ Remote Desktop công khai: “cho biết các tác nhân đe dọa đã giành được quyền truy cập vào mạng công ty của nạn nhân thông qua giao thức Windows Remote Desktop (RDP). Một nạn nhân khác cũng báo cáo rằng tin tặc đã sử dụng RDP để truy cập vào mạng của họ ngay cả khi họ đang sử dụng số cổng (port) không theo mặc định (non-standard) cho dịch vụ.”
Lỗ hổng Zero-click RCE trong camera Hikvision: “cho phép kẻ tấn công thực thi mã từ xa (RCE) mà không yêu cầu bất kỳ thông tin xác thực nào. Tấn công thành công giúp kẻ tấn giành được toàn quyền truy cập vào thiết bị và có thể xâm nhập vào bên trong mạng nội bộ.”
Cisco cảnh báo về các cuộc tấn công Brute Force quy mô lớn nhằm vào các dịch vụ VPN và SSH
OpenSSH RegreSSHion Vulnerability (CVE-2024-6387): Exploitation and Mitigation Measures
Bạn có thể nhận ra đặc điểm chung của các vấn đề này là gì không?
Là không phải ứng dụng, không phải OS mà bạn dùng trực tiếp gây thiệt hại. Lỗ hổng zero-day luôn tồn tại cho đến khi được phát hiện và vá lỗi. Vấn đề ở đây là do chúng ta đưa các thiết bị này ra môi trường Internet để các hacker có thể tấn công mà không gặp bất kì trở ngại nào.
Nếu bạn chỉ đặt ứng dựng/thiết bị vào một mạng riêng, bạn đã có rất nhiều thời gian để đảm bảo thiết bị không bị hacker “ghé thăm” và tốn rất nhiều thời gian để khắc phục.
Các công cụ kiểm soát và bảo vệ cho truy cập từ xa
VPN
Luôn là cách giải quyết khá đơn giản và được rất nhiều người khuyên dùng. Tưởng tượng VPN là một mạng riêng của bạn, nhưng là mạng ảo do bạn quản lý. Bạn thêm laptop, máy tính bàn, camera thông qua một ứng dụng của bên thứ ba, vậy là xong, các thiết bị đã có thể kết nối với nhau rồi đó.
Ví dụ máy tính công ty có thể được kết nối từ máy tính ở nhà bạn, từ máy tính ở nhà lại có thể kết nối được với smarthome của nhà ở dưới quê.
Nếu được cấu hình đúng và tốt, thì chỉ khi bạn connect được đến VPN thì mới có thể thật sự truy cập được vào dịch vụ. Kể cả hacker có truy cập vật lý bằng cách kết nối wifi hay cắm dây mạng thì cũng không thể nào truy cập được dịch vụ của bạn.
Router
Đường đi từ Internet vào đến network nhà bạn chắn chắn đều phải thông qua router, vì vậy bạn nên quản lý tất cả các port được mở trên đây. Tất cả các router từ router có sẵn của nhà mạng đến router chuyên dụng đều có các mục này, gọi dân dã là “mở port” hoặc NAT port ra Internet.
Về phía quản lý router, theo mình tuyệt đối không nên để server của bạn vào DMZ. Lúc này tất cả các port trên server dù vô tình hay cố ý đều được open ra Internet mà bạn không hay biết gì.
Cách tốt nhất là xóa thiết bị của bạn khỏi cài đặt DMZ, và chỉ open những port thật sự cần thiết phải mở ra để truy cập, ví dụ như HTTP (80), HTTPS (443), SSH (22), RDP (3389).
Quan niệm của mình là tất cả những port, những website (từ homelab) được mở ra Internet đều phải có authentication, ít nhất là Basic Auth. Nếu không có authentication thì bạn phải chắc chắn các website và port mở ra không chứa bất kì thông tin nhạy cảm nào của network, của người dùng/thiết bị trong mạng và của riêng bạn.
Nmap
Nếu quản lý từ router là hướng nhìn của bạn từ bên trong mạng ra bên ngoài, thì sử dụng Nmap là một cái nhìn toàn diện hơn để đảm bảo rằng bạn đã tự review tất cả những cấu hình network của bạn ra Internet.
Nmap công cụ quét cổng (scan port) miễn phí và rất phổ biến, giúp bạn biết được bất kì một địa chỉ IP nào đang mở những port nào. Tất nhiên chúng ta sẽ chủ yếu scan những địa chỉ IP do chúng ta quản lý.
Cài đặt nmap khá đơn giản bằng cách lệnh phía dưới:
Sau đó bạn có thể gọi lệnh nmap <IP-của-bạn> để nhận về kết quả. Mình lưu ý khi scan, các bạn nên sử dụng mạng 4G hoặc wifi công ty,… để đảm bảo bạn đang từ bên ngoài gọi vào, tránh các vấn đề firewall/Hairpin NAT có thể xảy ra làm sai lệch kết quả.
➜ nmap 171.226.239.18
Starting Nmap 7.95 ( https://nmap.org ) at 2024-08-09 13:37 +07
Nmap scan report for 171.226.239.18
Host is up (0.0035s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Có thể thấy rõ kết quả scan NMap của địa chỉ IP trên, mạng này đang mở hai port là SSH và HTTP. Bạn có thể setup và chạy lệnh này hàng ngày hoặc hàng tuần để đảm bảo mạng của bạn được review.
Ngoài ra, có thể dùng lệnh bên dưới để scan được kết quả chi tiết hơn.
nmap -p0- -v -A -T4 171.226.239.18″ viết lại nội dung mới.
Kết nối nằm trên cùng một mạng LAN
ZeroTier là một lớp phủ mạng an toàn cho phép bạn quản lý tất cả các tài nguyên mạng của mình như thể chúng nằm trên cùng một mạng LAN. Giải pháp được xác định bằng phần mềm có thể được triển khai trong vài phút từ bất kỳ đâu. Bất kể bạn cần kết nối bao nhiêu thiết bị hoặc chúng ở đâu trên thế giới, ZeroTier đều giúp mạng toàn cầu trở nên đơn giản.
Điều này được thực hiện bằng cách kết hợp mạng ngang hàng được mã hóa và bảo mật (gọi là VL1) với lớp mô phỏng Ethernet tương tự như VXLAN (gọi là VL2). Lớp ảo hóa Ethernet VL2 của chúng tôi bao gồm các tính năng SDN doanh nghiệp tiên tiến như các quy tắc kiểm soát truy cập chi tiết để phân đoạn mạng và giám sát bảo mật.
Tất cả lưu lượng ZeroTier đều được mã hóa từ đầu đến cuối bằng các khóa bí mật mà chỉ bạn kiểm soát. Hầu hết lưu lượng đều chảy ngang hàng, mặc dù chúng tôi cung cấp dịch vụ chuyển tiếp miễn phí (nhưng chậm) cho những người dùng không thể thiết lập kết nối ngang hàng. Địa chỉ ZeroTier có thể được coi là số cổng trên một công tắc thông minh Ethernet doanh nghiệp toàn cầu khổng lồ hỗ trợ VLAN. ID mạng là ID VLAN mà các cổng này có thể được gán cho. Một cổng duy nhất có thể được gán cho nhiều hơn một VLAN. Địa chỉ ZeroTier trông giống như 8056c2e21cvà ID mạng trông giống như 8056c2e21c000001. ID mạng bao gồm địa chỉ ZeroTier của bộ điều khiển chính của mạng đó và ID 24 bit tùy ý xác định mạng trên bộ điều khiển này.
https://github.com/zerotier/ZeroTierOne
Run
Trên Linux và BSD, nếu bạn xây dựng từ nguồn, bạn có thể bắt đầu dịch vụ bằng:
sudo ./zerotier-one -d Trên hầu hết các bản phân phối, macOS và Windows, trình cài đặt sẽ khởi động dịch vụ và thiết lập để dịch vụ này khởi động cùng hệ thống.
Một thư mục gốc cho hệ thống của bạn sẽ tự động được tạo.
Dịch vụ được kiểm soát thông qua JSON API, theo mặc định có sẵn tại 127.0.0.1:9993. Nó cũng lắng nghe 0.0.0.0:9993mà chỉ có thể sử dụng nếu allowManagementFromđược cấu hình đúng trong local.conf. Chúng tôi bao gồm một tiện ích dòng lệnh zerotier-cli để thực hiện các lệnh gọi API cho các mục tiêu chuẩn như tham gia và rời khỏi mạng. Tệp authtoken.secret trong thư mục home chứa mã thông báo bí mật để truy cập API này.
Sau đây là vị trí lưu trữ các thư mục home (theo mặc định) trên mỗi hệ điều hành:
Linux :/var/lib/zerotier-one FreeBSD / OpenBSD :/var/db/zerotier-one Máy Mac :/Library/Application Support/ZeroTier/One Windows : \ProgramData\ZeroTier\One(Đây là mặc định. Thư mục ‘dữ liệu ứng dụng dùng chung’ cơ sở có thể khác nếu Windows được cài đặt với cách gán hoặc bố trí ổ đĩa không chuẩn.)
Xử lý sự cố cơ bản
Đối với hầu hết người dùng, nó hoạt động bình thường.
Nếu bạn đang chạy tường lửa hệ thống cục bộ, chúng tôi khuyên bạn nên thêm quy tắc cho phép zerotier. Nếu bạn đã cài đặt tệp nhị phân cho Windows, điều này sẽ được thực hiện tự động. Các nền tảng khác có thể yêu cầu chỉnh sửa thủ công các quy tắc tường lửa cục bộ tùy thuộc vào cấu hình của bạn.
Tường lửa Mac có thể được tìm thấy trong mục “Bảo mật” trong Tùy chọn hệ thống. Linux có nhiều hệ thống và công cụ cấu hình tường lửa.
Trên CentOS, hãy kiểm /etc/sysconfig/iptablestra các quy tắc IPTables. Đối với các bản phân phối khác, hãy tham khảo tài liệu phân phối của bạn. Bạn cũng sẽ phải kiểm tra UI hoặc tài liệu cho các ứng dụng tường lửa của bên thứ ba thương mại như Little Snitch (Mac), McAfee Firewall Enterprise (Windows), v.v. nếu bạn đang chạy bất kỳ ứng dụng nào trong số đó. Một số môi trường doanh nghiệp có thể có phần mềm tường lửa được quản lý tập trung, vì vậy bạn cũng có thể phải liên hệ với CNTT.
Các đối tác ZeroTier One sẽ tự động định vị nhau và giao tiếp trực tiếp qua mạng LAN có dây cục bộ nếu cổng UDP 9993 inbound mở . Nếu cổng đó bị lọc, họ sẽ không thể thấy các gói thông báo LAN của nhau. Nếu bạn gặp phải hiệu suất kém giữa các thiết bị trên cùng một mạng vật lý, hãy kiểm tra cài đặt tường lửa của họ. Nếu không có LAN, các đối tác tự động định vị phải thử “vòng lặp ngược” NAT traversal, đôi khi không thành công và trong mọi trường hợp đều yêu cầu mọi gói phải đi qua bộ định tuyến ngoài của bạn hai lần.
Người dùng đằng sau một số loại tường lửa và thiết bị NAT “đối xứng” có thể không thể kết nối trực tiếp với các đối tác bên ngoài. ZeroTier có hỗ trợ hạn chế cho dự đoán cổng và sẽ cố gắng vượt qua các NAT đối xứng, nhưng điều này không phải lúc nào cũng hiệu quả. Nếu kết nối P2P không thành công, bạn sẽ phải trả lại các gói UDP khỏi máy chủ chuyển tiếp của chúng tôi, dẫn đến hiệu suất chậm hơn. Một số bộ định tuyến NAT có chế độ NAT có thể cấu hình và việc đặt chế độ này thành “full cone” sẽ loại bỏ vấn đề này. Nếu bạn thực hiện điều này, bạn cũng có thể thấy sự cải thiện kỳ diệu đối với những thứ như điện thoại VoIP, Skype, BitTorrent, WebRTC, một số trò chơi, v.v., vì tất cả những thứ này đều sử dụng các kỹ thuật vượt qua NAT tương tự như của chúng tôi.
Nếu tường lửa giữa bạn và Internet chặn lưu lượng UDP của ZeroTier, bạn sẽ phải quay lại phương án cuối cùng là đường hầm TCP đến rootserver qua cổng 443 (giả mạo https). Phương án này sẽ hoạt động ở hầu hết mọi nơi nhưng rất chậm so với UDP hoặc kết nối ngang hàng trực tiếp.
Ngoài ra, localtunnel tạo ra các đường hầm công cộng tức thời đến localhost, nhiều người đã sao chép dự án và bắt đầu kinh doanh xung quanh ý tưởng này. Localtunnel đã rơi vào quên lãng. Ngày nay, Ngrok của Alan Shreve đã đúng khi thống trị thị phần về ý tưởng này.
https://github.com/progrium/localtunnel
Cấu hình sub domain
Hai (hoặc nhiều hơn) SUBdomain trong một tệp nginx “sites” duy nhất? Nếu bạn sở hữu chứng chỉ TLS ký tự đại diện, do đó muốn duy trì MỘT tệp cấu hình nginx. Tất cả đều sử dụng cùng một dịch vụ NHƯNG các cổng khác nhau? (Hãy nghĩ đến các phiên bản ứng dụng khác nhau chạy đồng thời, mỗi phiên bản lắng nghe cục bộ đến các cổng khác nhau)
# default app (the “default” ports, good for the “old” app) set $app 19069; set $app-chat 19072;
# new app # new.example.com if ( $sub = “new” ) { set $app 18069; set $app-chat 18072; } # upstreaming location / { proxy_redirect off; proxy_pass http://127.0.0.1:$app; }
location /longpolling { proxy_pass http://127.0.0.1:$app-chat; } Tôi biết hiệu suất sẽ “tệ”, nhưng nói đi cũng phải nói lại, vì quyết định là chỉ sử dụng một máy chủ cho tất cả mọi người nên cũng giống như việc phàn nàn rằng xe hạng phổ thông không thể chở nhiều người bằng xe buýt vì chiếc xe nhỏ có giá để đồ “nặng” trên nóc xe vậy.
Bạn sẽ phải tạo một tệp cấu hình nginx khác với serverblock cho tên miền phụ của bạn. Như thế này: /etc/nginx/sites-enabled/subdomain.example.com
Cấu hình vị trí Nginx (thư mục con)
Để truy cập một đường dẫn như /var/www/mysite/manage/public với URI như /manage, bạn sẽ cần sử dụng alias thay vì root. https://gist.github.com/yidas/fc7228b6d7aad48d84461a254a77812f
server { listen 80; server_name example.org; error_log /usr/local/etc/nginx/logs/mysite/error.log; access_log /usr/local/etc/nginx/logs/mysite/access.log;
Bộ ^~ sửa đổi khiến vị trí tiền tố được ưu tiên hơn vị trí biểu thức chính quy ở cùng cấp độ. Các chỉ thị alias và try_files không được đặt cùng nhau. Hãy lưu ý đến sự thận trọng này khi sử dụng if chỉ thị.
Theo Nginx Alias ở trên, bạn có thể xác định vị trí PHP trong đó bằng cách SCRIPT_FILENAMEthiết lập đường dẫn thư mục con.
location /site2/ { alias /srv/www/project2/;
try_files $uri $uri/ @site2; location ~ \.php$ { include snippets/fastcgi-php.conf; # Apply the subdirectory base path to PHP script fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_pass unix:/run/php/php8.2-fpm.sock; } }
Việc quyết định triển khai ERP tự mình hay thông qua đối tác là một câu hỏi quan trọng mà nhiều doanh nghiệp đặt ra. Câu trả lời phụ thuộc vào nhiều yếu tố, bao gồm quy mô doanh nghiệp, nguồn lực hiện có, độ phức tạp của hệ thống và mục tiêu kinh doanh.
Tự triển khai ERP:
Ưu điểm:
Kiểm soát hoàn toàn quá trình triển khai
Tiết kiệm chi phí thuê đối tác bên ngoài
Xây dựng được năng lực nội bộ về ERP
Linh hoạt trong việc điều chỉnh kế hoạch và tiến độ
Nhược điểm:
Đòi hỏi kiến thức chuyên sâu về ERP và Odoo
Tốn nhiều thời gian và nguồn lực nội bộ
Rủi ro cao hơn do thiếu kinh nghiệm triển khai
Có thể bỏ lỡ các best practices trong ngành
Triển khai qua đối tác:
Ưu điểm:
Tận dụng được chuyên môn và kinh nghiệm của đối tác
Tiết kiệm thời gian triển khai
Giảm thiểu rủi ro nhờ kinh nghiệm từ các dự án tương tự
Được tư vấn về best practices và tối ưu hóa quy trình
Nhược điểm:
Chi phí cao hơn so với tự triển khai
Phụ thuộc vào lịch trình và nguồn lực của đối tác
Có thể gặp khó khăn trong giao tiếp và hiểu biết về quy trình nội bộ
Cần quản lý chặt chẽ để đảm bảo đối tác đáp ứng yêu cầu
Lựa chọn phù hợp phụ thuộc vào nhiều yếu tố:
Quy mô và độ phức tạp của dự án: Dự án lớn và phức tạp thường phù hợp hơn với việc thuê đối tác chuyên nghiệp.
Năng lực nội bộ: Đánh giá xem đội ngũ IT nội bộ có đủ kiến thức và kinh nghiệm về ERP không.
Ngân sách: Cân nhắc chi phí giữa việc tự triển khai và thuê đối tác.
Thời gian: Nếu cần triển khai nhanh chóng, việc thuê đối tác có thể là lựa chọn tốt hơn.
Mục tiêu dài hạn: Xem xét chiến lược phát triển IT dài hạn của doanh nghiệp.
Trong nhiều trường hợp, một giải pháp kết hợp có thể là lựa chọn tối ưu. Ví dụ, thuê đối tác để hỗ trợ giai đoạn đầu của quá trình triển khai, đồng thời đào tạo đội ngũ nội bộ để có thể tự quản lý hệ thống về lâu dài.
Bạn đang sử dụng Odoo hoặc có ý định triển khai nó cho doanh nghiệp của mình? Nếu bạn đang gặp khó khăn trong việc triển khai, hỗ trợ hoặc đào tạo Odoo, giải pháp tối ưu là tìm kiếm sự hỗ trợ từ các đối tác Odoo chuyên nghiệp.
Việc lựa chọn đối tác Odoo phù hợp có thể là một thách thức, do có rất nhiều lựa chọn dịch vụ khác nhau trên thị trường. Tuy nhiên, với sự tìm hiểu kỹ lưỡng, bạn hoàn toàn có thể đưa ra quyết định đúng đắn ngay từ đầu.
Odoo là một công cụ quản lý doanh nghiệp linh hoạt, dễ dàng mở rộng, giúp các doanh nghiệp tối ưu hóa hoạt động. Vì vậy, việc lựa chọn một đối tác phù hợp sẽ đảm bảo rằng bạn có thể khai thác tối đa tiềm năng của Odoo cho doanh nghiệp của mình.
Với hệ sinh thái gồm hơn 6.600 đối tác Odoo trên toàn cầu, việc lựa chọn một đối tác đáp ứng được các yêu cầu, giá trị và mục tiêu phát triển trong tương lai của doanh nghiệp là vô cùng quan trọng. Odoo là nền tảng dài hạn cho doanh nghiệp, do đó việc chọn đúng đối tác Odoo sẽ giúp bạn hạn chế rủi ro gián đoạn và thúc đẩy tăng trưởng bền vững.
Đối tác Odoo là gì?
Đối tác Odoo là một công ty hoặc cá nhân được Odoo chứng nhận về khả năng hỗ trợ, triển khai, đào tạo và tùy chỉnh nền tảng Odoo cho các doanh nghiệp. Họ đóng vai trò là cầu nối giữa Odoo và khách hàng, giới thiệu những điểm mạnh của nền tảng và nâng cao nhận thức về sản phẩm trong từng khu vực.
Các đối tác Odoo được phân loại thành bốn nhóm: Vàng, Bạc, Thành viên và Tập sự. Chúng ta sẽ thảo luận chi tiết hơn về “các cấp độ” này sau, vì còn nhiều yếu tố khác cần cân nhắc khi lựa chọn đối tác ngoài việc chỉ dựa vào cấp độ. Nếu bạn muốn tìm hiểu ngay về điều này, hãy chuyển đến phần “Giải thích các cấp độ đối tác Odoo” ở phía dưới.
Làm việc với một đối tác Odoo chính thức đảm bảo rằng việc triển khai, hỗ trợ hoặc đào tạo của bạn sẽ được xử lý bởi các chuyên gia có hiểu biết sâu rộng về các thực tiễn tốt nhất của Odoo. Với sự gia tăng nhanh chóng số lượng đối tác trong những năm gần đây, bạn sẽ có nhiều lựa chọn hơn để tìm kiếm một đối tác phù hợp với nhu cầu cụ thể của doanh nghiệp mình.
Nếu bạn đang đánh giá phạm vi và yêu cầu hiện tại của mình với sự hỗ trợ bên ngoài, hãy tham khảo ý kiến của một Đối tác Odoo Chính thức. Điều này đảm bảo doanh nghiệp đang nhận được một tiêu chuẩn chất lượng dịch vụ cao. Các đối tác thường xuyên làm việc trực tiếp với đội ngũ Odoo, giúp họ cập nhật liên tục những kiến thức và công cụ mới nhất, đồng thời đảm bảo rằng quá trình giải quyết vấn đề khi gửi yêu cầu hỗ trợ sẽ nhanh chóng và hiệu quả hơn nhiều.
Tuy nhiên, việc lựa chọn có thể gây khó khăn do có quá nhiều sự lựa chọn. Nhiều công ty thường cảm thấy bối rối với câu hỏi “bắt đầu từ đâu?” trước khi đưa ra quyết định đầu tư.
Một điểm quan trọng cần lưu ý là đối tác Odoo chịu trách nhiệm hoàn toàn về dịch vụ triển khai và tư vấn, nhưng họ không trực tiếp bán giấy phép Odoo. Chỉ có Odoo mới được phép bán trực tiếp giấy phép cho người dùng cuối.
Doanh nghiệp có cần đối tác Odoo không?
Khi xem xét việc triển khai Odoo, thông thường có ba phương án có thể thực hiện:
Tự triển khai: Nhiều doanh nghiệp có đội ngũ kỹ thuật mạnh thường lựa chọn tự triển khai Odoo cho một ứng dụng cụ thể. Tuy nhiên, cách này có thể dẫn đến những rủi ro và sai sót không mong muốn trong tương lai. Mặc dù không phải là điều thường thấy, việc doanh nghiệp tự triển khai Odoo hoàn toàn khả thi. Đối với doanh nghiệp có kế hoạch tự triển khai, tôi khuyên nên bắt đầu bằng việc tìm hiểu kiến thức cơ bản về Odoo để nâng cao kỹ năng.
Làm việc trực tiếp với Odoo: Odoo cung cấp các dịch vụ triển khai được thiết kế đặc biệt cho các công ty nhỏ (dưới 50 nhân viên) và các công ty lớn (từ 250 nhân viên trở lên) thông qua dịch vụ ‘Odoo Success Packs’, đáp ứng nhu cầu cụ thể của từng loại hình doanh nghiệp.
Làm việc với Đối tác Odoo: Đây là lựa chọn phổ biến và thông minh của nhiều doanh nghiệp. Với kinh nghiệm và kiến thức chuyên sâu, các đối tác Odoo sẽ giúp bạn tiết kiệm thời gian, giảm thiểu rủi ro và đạt hiệu quả cao nhất trong quá trình triển khai và vận hành hệ thống.
Các cấp độ đối tác Odoo
Khi lựa chọn đối tác Odoo, doanh nghiệp nên đánh giá kỹ lưỡng về năng lực chuyên môn, kinh nghiệm triển khai và khả năng tùy biến hệ thống của đối tác, thay vì chỉ dựa vào cấp bậc đối tác. Điều này đảm bảo rằng đối tác có thể đáp ứng được các yêu cầu cụ thể của doanh nghiệp bạn.
Tất cả đối tác Odoo phải đáp ứng các tiêu chí nghiêm ngặt được đánh giá hàng năm:
Số lượng doanh nghiệp mới sử dụng giải pháp Odoo Enterprise trong 12 tháng qua.
Số lượng nhân viên được chứng nhận trên 3 phiên bản Odoo gần nhất.
Tỷ lệ giữ chân khách hàng.
Mặc dù các xếp hạng “Vàng, Bạc, Thành viên, Tập sự” cho thấy quy mô và kinh nghiệm của đối tác, câu nói nổi tiếng “không phải vàng nào cũng sáng” cũng phù hợp trong trường hợp này. Các đối tác Vàng thường đáp ứng đầy đủ các tiêu chí, nhưng điều đó không hoàn toàn phản ánh chất lượng dịch vụ của họ.
William McMahon (người sáng lập kênh newsletter 𝐃𝐫𝐢𝐧𝐤𝐢𝐧𝐠 𝐓𝐡𝐞 𝐏𝐮𝐫𝐩𝐥𝐞 𝐉𝐮𝐢𝐜𝐞, chuyên chia sẻ về Odoo) khẳng định rằng 99,9% đối tác Vàng đều xuất sắc! Tuy nhiên, điều quan trọng nhất là đối tác đó có đáp ứng được những yêu cầu cụ thể của doanh nghiệp bạn hay không.
Trong nhiều trường hợp, đối tác Bạc hoặc Thành viên có thể cung cấp giải pháp phù hợp hơn với quy mô và yêu cầu của doanh nghiệp, với chi phí hợp lý hơn.
Đánh giá chuyên môn của đối tác, không phải cấp bậc
Khi đánh giá một đối tác Odoo, cần tập trung vào kỹ năng thực tế, hiểu biết về nền tảng, khả năng hỗ trợ sau bán hàng và kế hoạch hợp tác lâu dài của họ, thay vì chỉ quan tâm đến xếp hạng “Vàng” hay “Bạc”. Điều này giúp bạn tập trung vào yêu cầu thực tế và khả năng thành công của dự án.
Hiểu rõ nhu cầu doanh nghiệp của bạn
Một trong những bước quan trọng nhất là hiểu rõ yêu cầu của doanh nghiệp bạn. Đối tác Odoo cần có khả năng đáp ứng những yêu cầu đó và hiểu rõ tác động của việc triển khai lên hoạt động kinh doanh – đây là yếu tố quyết định sự thành công của dự án. Một tầm nhìn rõ ràng về nhu cầu kinh doanh sẽ giúp bạn đánh giá chính xác lợi tức đầu tư (ROI) và bắt đầu dự án một cách hiệu quả.
Một dấu hiệu đáng lo ngại là khi đối tác bỏ qua việc lập bản đồ quy trình kinh doanh của bạn. Khi thảo luận với khách hàng, một đối tác chuyên nghiệp nên sẵn sàng điều chỉnh quy trình để phù hợp với nền tảng, thay vì cố gắng buộc nền tảng phải phù hợp với quy trình hiện tại. Mặc dù đôi khi cần tùy chỉnh phần mềm để phù hợp với các dự án phức tạp, nhưng nguyên tắc cơ bản là nên tận dụng tối đa các tính năng sẵn có của Odoo trước khi nghĩ đến việc phát triển thêm.
Nhiều doanh nghiệp thường tự tin rằng họ hiểu rõ mọi yêu cầu kinh doanh của mình. Tuy nhiên, một đối tác Odoo đáng tin cậy sẽ hỗ trợ doanh nghiệp trong quá trình lập kế hoạch và phân tích những yêu cầu đó một cách chi tiết và chuyên nghiệp.
Đánh giá chuyên môn và kinh nghiệm của đối tác Odoo trước khi triển khai
Năng lực và chuyên môn của bất kỳ đối
tác Odoo nào cũng cần được đánh giá kỹ lưỡng. Một cách hiệu quả để đánh giá chuyên môn của đối tác là tham khảo đánh giá từ các khách hàng trước đây của họ.
Mẹo: Khi lựa chọn đối tác Odoo, bạn nên chủ động yêu cầu danh sách khách hàng của họ. Việc tham khảo đánh giá từ các khách hàng này sẽ giúp bạn có cái nhìn khách quan hơn về năng lực của đối tác, đặc biệt là khi so sánh với các đối tác khác. Hãy tập trung tìm hiểu về những khách hàng có quy mô và ngành nghề tương tự doanh nghiệp của bạn để có những đánh giá sát thực nhất.
Việc lựa chọn một đối tác Odoo có kinh nghiệm trong ngành của bạn đảm bảo họ hiểu rõ các quy trình, thách thức và yêu cầu đặc thù của lĩnh vực kinh doanh, từ đó có thể đưa ra những giải pháp phù hợp và tối ưu hóa quy trình làm việc.
Uy tín của một đối tác Odoo phụ thuộc vào khả năng của họ trong nhiều lĩnh vực khác nhau. Nếu bạn không chắc chắn liệu Odoo có phù hợp với ngành của mình không, có thể tham khảo các tài liệu có sẵn hoặc yêu cầu đối tác cung cấp thông tin chi tiết hơn.
Một đối tác đáng tin cậy sẽ có thể chứng minh năng lực của họ thông qua các dự án thành công trong quá khứ. Ngoài ra, kinh nghiệm thực tế là yếu tố quan trọng để đánh giá được giá trị thực sự của một đối tác Odoo.
Kiểm tra quy trình phương pháp
Để hiểu rõ hơn về cách thức làm việc của một đối tác Odoo, cần quan tâm đến phương pháp luận của họ. Đây là cách tiếp cận hệ thống của đối tác khi triển khai dự án. Một phương pháp luận tốt thường được xây dựng dựa trên kinh nghiệm và có thể giúp đảm bảo dự án thành công.
Những câu hỏi quan trọng khi chọn đối tác Odoo:
Đối tác sử dụng phương pháp cụ thể nào để quản lý dự án?
‘Quản lý dự án’ được xử lý như thế nào?
Để đảm bảo dự án đúng tiến độ và không vượt quá ngân sách, cần có sự linh hoạt, giao tiếp thường xuyên, minh bạch, kiểm tra kỹ lưỡng và đào tạo đầy đủ cho nhân viên. Đào tạo là yếu tố quan trọng để đảm bảo đội ngũ của bạn sử dụng Odoo hiệu quả.
Để dự án thành công và không vượt ngân sách, cần có sự phối hợp chặt chẽ giữa doanh nghiệp và đối tác. Ngoài ra, việc kiểm tra hệ thống kết hợp đào tạo nhân viên sử dụng Odoo rất quan trọng. Một đội ngũ nhân viên được đào tạo tốt sẽ giúp tối đa hóa hiệu quả sử dụng phần mềm.
Yếu tố con người
Đối tác Odoo không nên là một “cỗ máy bán hàng” hay một “robot vô cảm” – điều này có vẻ khó nghe nhưng đúng sự thật. Yếu tố “con người” là điều mà nhiều người thường bỏ qua, dù biết một đối tác có thể hoàn thành tốt việc triển khai nhưng vẫn cần phải phù hợp với giá trị và khái niệm cốt lõi của công ty bạn. Một đối tác Odoo chuyên nghiệp sẽ luôn lắng nghe, thấu hiểu nhu cầu cụ thể của từng khách hàng và cung cấp những giải pháp phù hợp.
Những yếu tố tương đồng về giá trị và văn hóa giữa doanh nghiệp và đối tác Odoo cũng rất quan trọng. Giống như việc lựa chọn đối tác kinh doanh, sự hợp ý về cách làm việc sẽ tạo nên gắn kết và hiệu quả cao hơn.
Ngoài ra, vị trí địa lý của đối tác cũng ảnh hưởng đến chất lượng hợp tác. Một đối tác gần khu vực doanh nghiệp thường mang lại sự thuận tiện trong giao tiếp và hỗ trợ kỹ thuật. Điều này đặc biệt quan trọng đối với các yếu tố như:
Khả năng hỗ trợ tại chỗ
Khả năng hỗ trợ từ xa
Giao tiếp hiệu quả
Giải quyết vấn đề nhanh chóng
Đảm bảo chủ động trong hoạt động
Bất kỳ đối tác nào có thể đáp ứng thêm nhu cầu của doanh nghiệp về mặt cảm xúc và sẵn sàng tiếp cận sẽ đảm bảo dự án diễn ra suôn sẻ và các vấn đề được giải quyết nhanh chóng.
Một đối tác Odoo có khả năng thấu hiểu nhu cầu khách hàng, hỗ trợ nhanh chóng góp phần đảm bảo dự án diễn ra suôn sẻ và các vấn đề được giải quyết kịp thời. Yếu tố con người cũng đóng vai trò quan trọng trong việc tạo cảm giác tin tưởng và hợp tác hiệu quả.
Minh bạch trong Bảng kê chi phí
Giống như các dự án phần mềm khác, việc triển khai Odoo cũng đi kèm với chi phí. Điều quan trọng là đối tác phải minh bạch về cấu trúc chi phí và đảm bảo không có bất kỳ khoản phí ẩn nào.
Chi phí triển khai Odoo có thể khác nhau giữa các đối tác tùy thuộc vào kinh nghiệm của đối tác, cấp độ và quy mô dự án. Việc xác định rõ ràng ngân sách ngay từ đầu là điều cần thiết. Bạn nên yêu cầu đối tác cung cấp một bản báo giá chi tiết gồm phí triển khai, hỗ trợ, bản quyền phần mềm và các khoản phí tùy chỉnh. Một đối tác chuyên nghiệp sẽ sẵn sàng cung cấp thông tin minh bạch về cấu trúc chi phí.
Khi so sánh báo giá từ các đối tác Odoo, bạn sẽ nhận thấy sự chênh lệch về giá cả. Mỗi mức giá đều có yếu tố riêng, nhưng điều quan trọng là đảm bảo chất lượng dịch vụ và hỗ trợ không bị ảnh hưởng. Minh bạch về chi phí không chỉ giúp xây dựng mối quan hệ tin cậy mà còn tránh những phát sinh không mong muốn trong tương lai.
Quy trình hỗ trợ sau triển khai – đảm bảo hỗ trợ và bảo trì chất lượng
Như đã đề cập, điều quan trọng là sự lâu dài trong hợp tác. Hợp đồng không nên dừng lại sau khi dự án được triển khai, mà cần tiếp tục có sự hỗ trợ và chăm sóc sau bán hàng.
Các đối tác Odoo thường triển khai theo quy trình theo giai đoạn. Có thể doanh nghiệp sẽ cần hỗ trợ nâng cấp và đảm bảo tăng trưởng ổn định trong tương lai.
Một số câu hỏi quan trọng cần đặt ra:
Đối tác có cung cấp hỗ trợ sau triển khai không?
Thời gian phản hồi đối với các vấn đề nghiêm trọng là bao lâu?
Có kế hoạch hậu triển khai không?
Hiểu rõ mức độ hỗ trợ luôn mang lại cho doanh nghiệp sự yên tâm. Hỗ trợ qua điện thoại hoặc email từ đối tác thường bị bỏ qua, nhưng các công ty nên thường xuyên thực hiện kiểm tra hệ thống để đảm bảo hiệu quả. Việc kiểm tra định kỳ không có nghĩa là hệ thống không phù hợp với mục đích sử dụng, mà tập trung nhiều hơn vào việc xác định các quy trình mới cần được triển khai hoặc chức năng mới cần được bổ sung.
Tiêu Chí Kiểm Tra Đối Tác
Để đảm bảo lựa chọn đúng đắn, cân nhắc các yếu tố sau:
Quy trình triển khai
Yếu tố kỹ thuật
Kiểm tra năng lực chuyên môn
Tài liệu quan trọng
Bảo trì tùy chỉnh
Quản lý rủi ro
Cách xử lý thay đổi
Có cung cấp phân tích khoảng trống không?
Có cung cấp lộ trình dự án không?
Yếu tố con người
Khoảng cách địa lý
Phù hợp với giá trị cá nhân
Quản lý thời gian và nguồn lực
Yếu tố khác
Quyền truy cập cơ sở dữ liệu
Xác nhận quyền sở hữu trí tuệ
Thành viên trong nhóm thực hiện
Tham khảo ý kiến khách hàng khác
Bạn đã sử dụng danh sách kiểm tra này trước khi đưa ra quyết định cuối cùng chưa?
Lời khuyên khi chọn đối tác Odoo
Đánh giá tổng thể, không chỉ dựa vào cấp bậc đối tác
Mặc dù cấp bậc đối tác (Vàng, Bạc, Thành viên) phản ánh một phần năng lực, bạn không nên chỉ dựa vào đó để đưa ra quyết định. Thay vào đó, hãy đánh giá toàn diện về kinh nghiệm, chuyên môn và khả năng đáp ứng nhu cầu cụ thể của doanh nghiệp.
Tìm hiểu kỹ về kinh nghiệm trong ngành
Một đối tác có kinh nghiệm triển khai Odoo trong ngành của bạn sẽ hiểu rõ hơn về quy trình, thách thức đặc thù và có thể đưa ra giải pháp phù hợp nhất. Hãy yêu cầu xem các case study hoặc dự án tương tự họ đã thực hiện.
Đánh giá năng lực kỹ thuật
Kiểm tra xem đối tác có đủ chuyên môn để triển khai, tùy chỉnh và tích hợp Odoo với các hệ thống khác của doanh nghiệp không. Số lượng nhân viên được chứng nhận bởi Odoo cũng là một chỉ số đáng quan tâm.
Xem xét phương pháp triển khai
Tìm hiểu về quy trình triển khai của đối tác. Một phương pháp có cấu trúc rõ ràng, bao gồm các giai đoạn như phân tích yêu cầu, thiết kế giải pháp, cấu hình, kiểm thử và đào tạo sẽ giúp dự án diễn ra suôn sẻ hơn.
Đánh giá khả năng hỗ trợ sau triển khai
Hỗ trợ sau triển khai rất quan trọng để đảm bảo hệ thống vận hành ổn định. Tìm hiểu về các gói hỗ trợ, thời gian phản hồi và cách thức hỗ trợ (qua điện thoại, email, từ xa…) của đối tác.
Xem xét tính minh bạch về chi phí
Yêu cầu báo giá chi tiết bao gồm tất cả các khoản chi phí: triển khai, tùy chỉnh, đào tạo, hỗ trợ. Đảm bảo không có chi phí ẩn và hiểu rõ cơ cấu giá.
Đánh giá khả năng đào tạo
Đào tạo người dùng là yếu tố quan trọng để đảm bảo việc áp dụng Odoo thành công. Tìm hiểu về phương pháp, tài liệu và kế hoạch đào tạo của đối tác.
Xem xét quy mô và nguồn lực của đối tác
Đảm bảo đối tác có đủ nguồn lực để hỗ trợ dự án của bạn, đặc biệt nếu đó là một dự án lớn hoặc phức tạp.
Tìm hiểu về văn hóa và cách làm việc
Sự phù hợp về văn hóa và cách làm việc giữa doanh nghiệp và đối tác sẽ giúp quá trình hợp tác diễn ra suôn sẻ hơn. Đánh giá cách giao tiếp, phong cách làm việc của đối tác.
Tham khảo ý kiến khách hàng cũ
Liên hệ với các khách hàng cũ của đối tác để có cái nhìn khách quan về chất lượng dịch vụ, khả năng đáp ứng deadline và xử lý vấn đề.
Kết luận
Lựa chọn đúng đối tác Odoo là một quyết định quan trọng có ảnh hưởng lớn đến sự thành công của dự án triển khai ERP trong doanh nghiệp. Bằng cách đánh giá kỹ lưỡng các yếu tố như kinh nghiệm, chuyên môn, phương pháp triển khai, khả năng hỗ trợ và sự phù hợp về văn hóa, bạn có thể tìm ra đối tác phù hợp nhất.
Hãy nhớ rằng, mối quan hệ với đối tác Odoo thường là dài hạn. Vì vậy, việc đầu tư thời gian và công sức để lựa chọn kỹ lưỡng ngay từ đầu sẽ mang lại lợi ích lâu dài cho doanh nghiệp. Một đối tác Odoo tốt không chỉ giúp bạn triển khai hệ thống thành công mà còn đồng hành cùng doanh nghiệp trong quá trình phát triển, tối ưu hóa quy trình và mở rộng việc sử dụng Odoo.
Cuối cùng, đừng ngần ngại đặt câu hỏi và yêu cầu làm rõ bất kỳ vấn đề nào bạn chưa hiểu. Một đối tác Odoo chuyên nghiệp sẽ sẵn sàng giải đáp mọi thắc mắc và hỗ trợ bạn đưa ra quyết định đúng đắn. Với sự chuẩn bị kỹ lưỡng và đánh giá toàn diện, bạn sẽ tìm được đối tác Odoo phù hợp nhất để đưa doanh nghiệp của mình lên một tầm cao mới với hệ thống quản lý doanh nghiệp hiện đại và hiệu quả.
Mục tiêu cuối cùng là đảm bảo doanh nghiệp nhận được dịch vụ xứng đáng với khoản đầu tư. Bên cạnh đó, cộng đồng Odoo có rất nhiều đối tác xuất sắc có thể hỗ trợ bạn thành công. Đừng bỏ qua việc nghiên cứu kỹ lưỡng để đưa ra quyết định sáng suốt!
Cuối cùng, dù chọn phương án nào, việc lập kế hoạch chi tiết, quản lý dự án chặt chẽ và đảm bảo sự tham gia của các bên liên quan là chìa khóa để triển khai ERP thành công. Việc quyết định tự triển khai ERP hay thuê đối tác là một quyết định quan trọng. Doanh nghiệp cần cân nhắc kỹ lưỡng các yếu tố để đưa ra lựa chọn phù hợp nhất. Nếu doanh nghiệp không có đủ nguồn lực hoặc chuyên môn, việc thuê đối tác là một giải pháp tối ưu.
Bạn có thể đã đưa ra quyết định có ý thức là tiếp tục sử dụng WordPress Phiên bản 4.9 phát hành ngày 15 tháng 11 năm 2017, hoặc sử dụng plugin Classic Editor thay vì trình chỉnh sửa khối. Dù bằng cách nào, bạn có thể lo lắng rằng sẽ đến lúc điều này không còn khả thi nữa — và bạn đã đúng. Quan trọng hơn, bạn thực sự không biết phải làm gì về điều đó. Hệ thống quản lý nội dung yêu thích của bạn đang thay đổi nhưng không theo cách mà bạn thích.
ClassicPress là hệ thống quản lý nội dung (CMS) dành cho người sáng tạo, không có khối, chỉnh sửa toàn bộ trang web hoặc Gutenberg. Chúng tôi cũng đã thực hiện một số cải tiến đáng kể:
Không giống như WordPress, HTML5 hiện là đầu ra nội dung mặc định Tiện ích, Menu và Meta Box hiện có thể truy cập dễ dàng hơn nhiều trong các trang quản trị dành cho những người không thể sử dụng chuột Có các nút điều hướng mới (Trước và Tiếp theo) trên mỗi màn hình quản trị bài đăng và trang ClassicPress là giải pháp thay thế tốt nhất cho WordPress, cấu trúc tệp và thư mục gần giống với cấu trúc của WordPress. Vẫn có ba thư mục cấp cao nhất là wp-admin, wp-contentvà wp-includes. Tệp cấu hình vẫn được gọi wp-config.phpvà sau đó có tất cả các thư mục con quen thuộc khác bao gồm wp-content/plugins, wp-content/themesvà wp-content/uploads.
Bạn không cần dùng plugin Classic Editor. Mã khác cũng đã bị xóa bao gồm mã cho các phiên bản PHP dưới 5.6. Và chúng tôi chắc chắn bạn sẽ vui mừng khi biết rằng không có plugin Hello Dolly và Akismet nào được đóng gói cùng với ClassicPress. Và, không giống như WordPress, ClassicPress mặc định xuất ra HTML5 .
Những cải tiến khác đang được lên kế hoạch trong các phiên bản tương lai. Ví dụ, chúng tôi hy vọng sớm loại bỏ jQuery UI khỏi lõi và thay thế bằng HTML5 gốc và JavaScript thuần để mọi thứ hoạt động nhanh hơn và dễ truy cập hơn.
Để cải thiện bảo mật hơn nữa, chúng tôi cũng đã ngừng hỗ trợ các phiên bản PHP thấp hơn 7.4, hiện 8.0, bảo mật tất cả các bản dựng ClassicPress trên GitHub và đảm bảo rằng giao tiếp API được thực hiện qua SSL. Việc chuyển từ WordPress sang ClassicPress không thể dễ dàng hơn và bạn thậm chí không cần phải chạy WordPress 4.9. Bất kỳ phiên bản WordPress nào cũng có thể được chuyển sang ClassicPress bao gồm 6.6.1.
Dễ dàng cài đặt, sử dụng một plugin ClassicPress chuyển phiên bản WordPress nào cũng có thể chuyển sang ClassicPress. Còn tạo 1 website mới dùng Cài đặt thông qua Installatron và Softaculous.
Bất kỳ plugin và chủ đề nào không yêu cầu khối cũng sẽ hoạt động liền mạch trên ClassicPress. Hiệu suất được tối ưu hóa với Litespeed và DigitalOcean. Classic Commerce (CC) là nhánh riêng của chúng tôi từ WooCommerce 3.5.3. vẫn giữ nguyên mọi chức năng của WC 3.5.3 và hoạt động với mọi tiện ích bổ sung tương thích. Plugin SEO tốt nhất cho ClassicPress là Rank Math. Bạn có thể tải xuống các plugin này từ kho lưu trữ WordPress (tìm kiếm ClassicPress), thông qua các trang web riêng tư hoặc thông qua GitHub.
Tham khảo trang https://www.classicpress.net/reasons-to-switch-to-classicpress-from-wordpress-4-9/
Seafile là một giải pháp tự lưu trữ và chia sẻ chạy trên hệ điều hành Linux. Đây là một dịch vụ lưu trữ tệp đám mây sử dụng để lưu trữ trên máy chủ trung tâm. Các tập tin được đồng bộ hóa với máy khách cá nhân hoặc thiết bị di động. Một tệp hoặc thư viện cũng có thể được mã hóa bằng mật khẩu được chọn của người dùng. Công cụ chia sẻ tệp Seafile cũng cho phép người dùng tạo nhóm và dễ dàng chia sẻ tệp thành các nhóm. Seafile quản lý các tập tin bằng thư viện và mỗi thư viện có chủ sở hữu. Chủ sở hữu có thể chia sẻ thư viện cho người dùng khác hoặc với các nhóm theo quyền chỉ đọc hoặc đọc-viết. Seafile là một giải pháp ứng dụng chia sẻ tệp hiệu suất cao và tốt nhất. Lưu trữ đám mây nguồn mở Seafile được viết bằng khung Python Django và chức năng của nó rất giống với các đám mây Dropbox và Google Drive. Nó có rất nhiều tính năng khác bao gồm mã hóa tệp, kiểm soát phiên bản, xác thực hai yếu tố, chỉnh sửa trực tuyến, khóa tệp, sao lưu, khôi phục dữ liệu và nhiều hơn nữa. Gói máy chủ Seafile dành cho Raspberry Pi. Được bảo trì bởi cộng đồng Seafile.
https://github.com/haiwen/seafile-rpi
Yêu cầu bao gồm:
Python và các mô -đun của nó
Ubuntu 20.04 lts
Mysql hoặc mariadb
Nginx hoặc apache
Git
Một số tính năng chính được liệt kê dưới đây:
CROSS Nền tảng đồng bộ hóa tệp nhanh.
Đồng bộ hóa tệp với các thư mục hoặc máy chủ.
Kiểm soát quyền chỉ đọc hoặc đọc-viết.
Chia sẻ và hợp tác với người dùng hoặc nhóm.
Truy cập các tệp trong đám mây thông qua ổ đĩa ảo.
Kiểm soát phiên bản và ảnh chụp nhanh cho các thư mục.
Mã hóa từ đầu đến cuối phía máy khách.
Khóa tệp để ngăn chặn chỉnh sửa đồng thời.
Chỉnh sửa đánh dấu trực tuyến.
Thông báo thời gian thực.
Kiểm soát tính năng dựa trên vai trò.
Hỗ trợ tích hợp LDAP/AD.
Sao lưu và khôi phục dữ liệu
Mã nguồn mở
Cài đặt Seafile trên Ubuntu
Hướng dẫn này giải thích cách thiết lập và chạy máy chủ tệp biển từ gói được xây dựng trước với MySQL. Dưới đây các bước cài đặt giả định rằng tất cả các gói phụ thuộc của Đám mây Seafile được cài đặt và cập nhật trên hệ thống của bạn.
sudo apt update sudo apt install python3 python3-{pip,pil,ldap,urllib3,setuptools,mysqldb,memcache,requests} sudo apt install libpython3.8 ffmpeg Tải xuống gói máy chủ Seafile mới nhất từ Tải xuống Seafile. Tại thời điểm cài đặt này, bản phát hành mới nhất của Seafile Server là 8.0,5 64bit:
Xem bản pro chỉ cho 3 người dùng: https://download.seafile.com/d/6e5297246c/?p=/pro
Seafile PE yêu cầu tối thiểu 2 lõi và 2 GB RAM. Có thể sử dụng Seafile PE mà không cần giấy phép trả phí với tối đa ba người dùng. Sau khi hoàn tất tải xuống tệp, trích xuất thư mục lưu trữ vào /opt:
sudo tar -xvf seafile-server_8.0.5_x86-64.tar.gz -C /opt sudo mv /opt/seafile-server-8.0.5 /opt/seafile Tiếp theo, chỉ cần chạy tập lệnh thiết lập.
cd /opt/seafile/ sudo ./setup-seafile-mysql.sh Kịch bản này sẽ hướng dẫn bạn thiết lập máy chủ Seafile của bạn bằng MySQL. Máy chủ Seafile sẽ chạy trên cổng 8082 và giao diện người dùng web Seafile sẽ có thể truy cập được trên cổng 8000. Bây giờ hãy bắt đầu các dịch vụ Seafile bằng cách:
cd /opt/seafile sudo ./seafile.sh start Tiếp theo, bắt đầu dịch vụ Frontend trang web của Seahub Django.
sudo ./seahub.sh start Khi bạn bắt đầu Seahub, tập lệnh sẽ nhắc bạn tạo tài khoản quản trị cho tài khoản máy chủ Seafile của bạn. Cổng mặc định là 127.0.0.1:8000. Vì vậy, chúng tôi khuyên bạn nên triển khai dịch vụ proxy ngược để người dùng khác có thể truy cập dịch vụ Seahub. Bạn có thể dừng trang web Seahub và quy trình Seafile với:
./seahub.sh stop ./seafile.sh stop Chúc mừng! Bạn đã cài đặt thành công đồng bộ hóa tệp Seafile và chia sẻ nền tảng trên Ubuntu
Debian 12 và Ubuntu 24.04 hiện không khuyến khích cài đặt toàn hệ thống các mô-đun python bằng pip. Hiện tại, tốt hơn là cài đặt các mô-đun vào một môi trường ảo tách biệt với các tệp được cài đặt bởi trình quản lý gói hệ thống và cho phép cài đặt các phiên bản khác nhau cho các ứng dụng khác nhau. Với các môi trường ảo python này (gọi tắt là venv) hoạt động, bạn phải kích hoạt venv để các gói được cài đặt trong đó có sẵn cho các chương trình bạn chạy. Điều đó được thực hiện ở đây với “source python-venv/bin/activate”.
# create the vitual environment in the python-venv directory python3 -m venv python-venv
# activate the venv source python-venv/bin/activate # Notice that this will usually change your prompt so you know the venv is active
# install packages into the active venv with pip (sudo isn’t needed because this is installing in the venv, not system-wide). pip3 install –timeout=3600 django==4.2.* future==0.18.* mysqlclient==2.1.* pymysql pillow==10.0.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==2.0.18 psd-tools django-pylibmc django_simple_captcha==0.5.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 lxml python-ldap==3.4.3
Cài đặt Java Runtime Environment.
Nếu elasticsearch được cài đặt trên cùng một máy chủ, yêu cầu tối thiểu là 4 lõi và 4 GB RAM. Java Runtime Environment (JRE) là yêu cầu bắt buộc để tìm kiếm toàn văn bản với ElasticSearch. Nó được sử dụng để trích xuất nội dung từ các tệp PDF và Office.
Thư mục chuẩn cho các tập tin chương trình của Seafile là /opt/seafile. Tạo thư mục này và thay đổi vào đó:
mkdir /opt/seafile cd /opt/seafile Thư mục chương trình có thể thay đổi. Thư mục chuẩn /opt/seafileđược sử dụng cho phần còn lại của hướng dẫn này. Nếu bạn quyết định đặt Seafile vào thư mục khác, một số lệnh cần được sửa đổi cho phù hợp.
Tạo người dùng seafile
Elasticsearch, máy chủ lập chỉ mục, không thể chạy dưới dạng root. Nói chung, tốt nhất là không nên chạy ứng dụng dưới dạng root.
Tạo người dùng mới và làm theo hướng dẫn trên màn hình:
adduser seafile Thay đổi quyền sở hữu thư mục đã tạo cho người dùng mới:
chown -R seafile: /opt/seafile Tất cả các bước sau đây được thực hiện như người dùng seafile.
Thay đổi sang người dùng seafile:
su seafile Đặt giấy phép Seafile PE¶ Lưu tệp giấy phép vào thư mục chương trình của Seafile /opt/seafile. Đảm bảo rằng tên là seafile-license.txt. (Nếu tệp có tên khác hoặc không thể đọc được, Seafile PE sẽ không khởi động.)
Tải xuống gói cài đặt
Trung tâm khách hàng Seafile cung cấp hai gói cài đặt cho mọi phiên bản (lấy Seafile PE 8.0.4 làm ví dụ):
seafile-pro-server_8.0.4_x86-64_Ubuntu.tar.gz , được biên dịch trong môi trường Ubuntu 18.04 seafile-pro-server_8.0.4_x86-64_CentOS.tar.gz , được biên dịch trong môi trường CentOS 7 Phiên bản trước phù hợp để cài đặt trên máy chủ Ubuntu/Debian, phiên bản sau phù hợp để cài đặt trên máy chủ CentOS.
Tải xuống gói cài đặt bằng wget
Giải nén gói. tar xf seafile-pro-server_8.0.4_x86-64_Ubuntu.tar.gz
Xem tree -L 2 /opt/seafile
Chạy tập lệnh thiết lập.
Quá trình thiết lập Seafile PE giống như Seafile CE. https://manual.seafile.com/deploy/using_mysql/
Thiết lập bộ nhớ đệm
Bộ nhớ đệm là bắt buộc đối với phiên bản pro. Bạn có thể sử dụng Memcached hoặc Reids làm máy chủ bộ nhớ đệm.
Sử dụng Memcached¶ Sử dụng các lệnh sau để cài đặt memcached và các thư viện tương ứng trên hệ thống của bạn:
systemctl enable –now memcached Thêm cấu hình sau vào seahub_settings.py.
CACHES = { ‘default’: { ‘BACKEND’: ‘django_pylibmc.memcached.PyLibMCCache’, ‘LOCATION’: ‘127.0.0.1:11211’, }, } Sử dụng Redis được hỗ trợ kể từ phiên bản 11.0.
Đầu tiên, hãy cài đặt Redis bằng trình cài đặt gói trong hệ điều hành của bạn. Sau đó tham khảo tài liệu của Django về cách sử dụng bộ đệm Redis để thêm cấu hình Redis vào seahub_settings.py https://docs.djangoproject.com/en/4.2/topics/cache/#redis
Nginx trên Debian/Ubuntu
Tạo tệp cấu hình cho seafile trong: nano /etc/nginx/sites-available/seafile.conf
Tạo liên kết tượng trưng: ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf
Cấu hình Nginx
theo https://manual.seafile.com/deploy/https_with_nginx/
server { listen 80; server_name seafile.example.com; rewrite ^ https://$http_host$request_uri? permanent; # Forced redirect from HTTP to HTTPS server_tokens off; } server { listen 443 ssl; ssl_certificate /etc/ssl/cacert.pem; # Path to your cacert.pem ssl_certificate_key /etc/ssl/privkey.pem; # Path to your privkey.pem server_name seafile.example.com; server_tokens off;
# HSTS for protection against man-in-the-middle-attacks add_header Strict-Transport-Security “max-age=31536000; includeSubDomains”;
# DH parameters for Diffie-Hellman key exchange ssl_dhparam /etc/nginx/dhparam.pem;
# Supported protocols and ciphers for general purpose server with good security and compatability with most clients ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off;
# Supported protocols and ciphers for server when clients > 5years (i.e., Windows Explorer) must be supported #ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; #ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA; #ssl_prefer_server_ciphers on;
Cuối cùng, hãy đảm bảo seafile.conf của bạn không chứa lỗi cú pháp và khởi động lại Nginx để những thay đổi cấu hình có hiệu lực:
nginx -t nginx -s reload
Tải lên tệp lớn
Mẹo để tải lên các tệp rất lớn (> 4GB): Theo mặc định, Nginx sẽ đệm phần thân yêu cầu lớn trong tệp tạm thời. Sau khi phần thân được nhận hoàn toàn, Nginx sẽ gửi phần thân đến máy chủ thượng nguồn (trong trường hợp của chúng tôi là seaf-server). Nhưng có vẻ như khi kích thước tệp rất lớn, cơ chế đệm không hoạt động tốt. Nó có thể dừng proxy phần thân ở giữa. Vì vậy, nếu bạn muốn hỗ trợ tải lên tệp lớn hơn 4GB, chúng tôi khuyên bạn nên cài đặt Nginx phiên bản >= 1.8.0 và thêm các tùy chọn sau vào tệp cấu hình Nginx:
location /seafhttp { … … proxy_request_buffering off; } Nếu bạn đã bật WebDAV, bạn nên thêm lệnh sau:
Tính toán bổ sung của Odoo chỉ bao gồm các đơn đặt hàng đã biết chứ không bao gồm dự báo doanh số dài hạn. Do đó, Khi cần phân tích phức tạp hơn, người lập kế hoạch sẽ sớm bắt đầu sử dụng bảng tính bên cạnh Odoo. Ngoài một quy mô và độ phức tạp nhất định, quy trình lập kế hoạch dựa trên bảng tính sẽ không còn đủ nữa và cần có sự hỗ trợ hệ thống phù hợp cho người lập kế hoạch của bạn. Một ứng dụng mở rộng để lập kế hoạch nhu cầu, lập kế hoạch hàng tồn kho, lập kế hoạch sản xuất, lập kế hoạch vật liệu.
FrePPLe yêu cầu phần cứng: Dung lượng ổ đĩa 80 GB, 4 lõi CPU, RAM 16 GB.
Ubuntu 24 LTS hiện là hệ điều hành được hỗ trợ.
Lưu ý: frepple chạy amd64
1. Tải gói cài đặt
Tải xuống gói cài đặt .deb. Sử dụng từ dòng lệnh để tải xuống file trong trang https://github.com/frePPLe/frepple/releases/: wget https://github.com/frePPLe/frepple/releases/download/9.0.0/ubuntudevel-frepple-9.0.0.deb
Điều chỉnh cơ sở dữ liệu max_connection được chuyển từ 100 mặc định sang ví dụ 400
Tạo cơ sở dữ liệu và người dùng cơ sở dữ liệu
3. Cài đặt gói frepple
Chạy lệnh cài đặt:
aptinstall-f./*.deb
sudo apt-get install ./ubuntudevel-frepple-9.0.0.deb Nếu gói đã tồn tại và bạn muốn cài đặt lại, hãy thêm tùy –reinstallchọn: sudo apt install –reinstall ./ubuntudevel-frepple-9.0.0.deb để xóa gói đó khỏi hệ thống: sudo apt remove package_name sudo dpkg -r package_name Ngoài ra, ở bước cuối cùng, bạn có thể sử dụng tính năng tự động xóa của trình quản lý gói apt để xóa mọi gói không mong muốn có thể có trong hệ thống của bạn khi bạn cài đặt gói bằng các lệnh trên, sudo apt autoremove
Sánh nội dung 2 file text, mã nguồn, cấu trúc 2 thư mục có gì khác nhau là nhu cầu thường xuyên mà Beyond Compare là một phần mềm tiện ích để so sánh các file và thư mục. Với một vài nút bấm và giao diện đầy màu sắc, ứng dụng này cố gắng duy trì sự cân bằng giữa tính năng và hiệu suất.
Ứng dụng sẽ hiển thị các file của bạn cạnh nhau. Nó sử dụng văn bản màu đỏ để làm nổi bật sự khác biệt quan trọng và màu xanh cho những thay đổi không đáng kể. Bạn có thể điều chỉnh các màu này cho phù hợp với sở thích của mình.
Hình thu nhỏ tổng quan trên khung bên trái hiển thị bản đồ màu sắc trực quan. Để điều hướng, sử dụng nútNext SectionvàPre Sectionđể điểm qua tất cả sự khác biệt. Sau đó, sử dụng các nút mũi tên để hợp nhất các file. Nhấp vào nútSavenằm ở bên phải cửa sổ để lưu file.
Beyond Compare cung cấp các tính năng vượt trội về so sánh nội dung file và thư mục:
Mọi tác vụ so sánh bắt đầu bằng một phiên mà bạn có thể tùy chỉnh và lưu lại để mở sau này. Những thứ này mang lại cho bạn sự linh hoạt tuyệt vời và tiết kiệm thời gian.
Các cài đặt phiên kiểm soát những so sánh này được gọi làRules.Chúng kiểm soát bạn về cách mỗi phiên hoạt động và giúp bạn khám phá sự khác biệt đáng kể.
PhiênTable Compareso sánh các file văn bản với dữ liệu dạng bảng. Bạn có thể sắp xếp và căn chỉnh dữ liệu trên các trường chính, sau đó so sánh chúng theo từng ô.
Ứng dụng cung cấp tính năng xử lý script để tự động hóa các tác vụ thông thường. Để biết thêm chi tiết, hãy truy cập phầnScriptingcủa trangHelptại:
So sánh các file trong bộ nhớ từ xa thông qua Dropbox, Google Drive, Amazon S3, OneDrive và Source Control Managers.
Folder Compare – so sánh nội dung 2 thư mục với nhau (file trong thư mục, thư mục con).
Folder Merge – hợp nhất 2 thư mục.
Folder Sync – đồng bộ 2 thư mục với nhau.
Text Compare – so sánh 2 file text với nhau.
Text Merge – hợp nhất 2 file text.
Table Compare – so sánh 2 bảng.
Hex Compare – so sánh 2 hex.
Picture Compare – so sánh 2 ảnh.
Registry Compare – so sánh 2 registry.
Verion Compare – so sánh 2 version.
Dưới đây là hình ảnh so sánh 2 file text:
Dưới đây là hình ảnh so sánh 2 folder:
Tùy theo hệ điều hành trên máy tính của bạn và ngôn ngữ bạn muốn sử dụng để download bản cài đặt phù hợp, phần mềm Beyond Compare hỗ trợ các hệ điều hành Windows, MacOS, Linux.
Sử dụng Beyond Compare vô cùng tiện lợi với Context Menu được tích hợp sẵn khi cài đặt phần mềm. Chúng ta có thể thao tác nhanh với Beyond Compare bằng 2 cách sau:
Cách 1: Click chọn 2 file/thư mục, sau đó chuột phải và chọn Compare.
Cách 2: Chọn 1 file và chuột phải, chọn “Select Left file for Compare”. Sau đó chọn file tiếp theo và chuột phải, chọn “Compare to <ten file1>”.
Beyond Compare giúp bạn dễ dàng và nhanh chóng so sánh sự khác biệt về nội dung của 2 tập file hoặc thư mục mà bạn chọn. Sau đó bạn có thể đồng nhất thay đổi. Phần mềm có nhiều tùy chọn so sánh khác nhau, tốc độ scan rất nhanh, giúp bạn dễ dàng tìm ra sự khác biệt, tiết kiệm khá nhiều thời gian.