Portfolio
Code/Web

Cloudflare Workers Agentic Inbox – Hướng dẫn triển khai email client AI agent self-hosted

May 3, 2026Category : Code/Web

Agentic Inbox là một email client mã nguồn mở (Apache 2.0) chạy hoàn toàn trên Cloudflare Workers, không cần VPS hay máy chủ ảo truyền thống. Kiến trúc serverless tận dụng Durable Objects (SQLite) để cách ly từng mailbox, R2 lưu trữ tệp đính kèm và Email Routing xử lý email đến/đi. Tích hợp sẵn AI agent xây dựng trên Cloudflare Agents SDK và..

Read more
01.

Chặn comment spam bằng Cloudflare WAF

September 4, 2025Category : Code/Web

Sử dụng Cloudflare WAF tạo 1 rule Truy cập vào Cloudflare -> Security -> WAF -> Create rule -> Edit expression Rule name (required): đặt 1 tên tùy ý để nhớ If incoming requests match…  điền vào (http.request.uri contains “wp-comments-post.php” and http.request.uri.query ne “bdad9e2ef62632b042bdc9b8b1907c87”) Có thể thay bdad9e2ef62632b042bdc9b8b1907c87 bằng 1 dãy số khác tùy ý cho riêng bạn Then..

Read more
02.

Tự động chuyển hướng website downtime với Cloudflare Workers – Page Rules miễn phí

September 3, 2025Category : Code/Web

Nó hoạt động như một hệ thống fail-over tự động (chuyển hướng khi lỗi), giúp duy trì dịch vụ khi server chính gặp sự cố mà không cần dùng load balancer phức tạp. Tự động kiểm tra trạng thái website. Nếu thấy DOWN, kiểm tra lại 3 lần để tránh cảnh báo sai. Cập nhật Page..

Read more
03.

Thiết lập gọi Cron bằng Cloudflare Workers

September 3, 2025Category : Code/Web

Do Cloudflare Workers giới hạn subrequests 50/request ở tài khoản miễn phí, gọi WP-Cron 1 giây 1 lần sẽ bị thiếu đi 10 lần, dùng thực tế mình thấy ~5s gọi 1 lần WP-Cron đã đủ hiệu quả rồi, 1s chạy 1 lần WP-Cron đôi khi server load không kịp luôn ấy Workers & Pages -> Create..

Read more
04.

Cài đặt Releem MySQL Optimization trên Docker LCMP Multisite

September 3, 2025Category : Code/Web

Releem là công cụ tự động tối ưu hóa cấu hình MySQL/MariaDB, nó thu thập số liệu từ database, phân tích và đưa ra cấu hình tối ưu theo khối lượng công việc thực tế của trang. Về mặt lý thuyết, nó sẽ tối ưu hơn nhiều so với cách bạn dùng 1 số cấu hình MySQL/MariaDB..

Read more
05.

Speculative Loading Plugin WP cache trước nội dung hover url với API của trình duyệt

September 3, 2025Category : Code/Web

Mới đây, WordPress Performance Team vừa ra mắt một plugin tối ưu cho mọi website WordPress mang tên Speculative Loading sử dụng công nghệ Speculation Rules API trên trình duyệt, giúp website có thể tiết kiệm tài nguyên nhờ vào việc tải nhanh hơn khi liên kết được rê chuột sẽ tải trước vào bộ nhớ tạm của trình..

Read more
06.

Rocket-Nginx tăng tốc xử lý cache rocket từ nginx trực tiếp ko chờ plugin wprocket

September 3, 2025Category : Code/Web

link: https://github.com/SatelliteWP/rocket-nginx?tab=readme-ov-file#installation trong trường hợp bạn có cài HSTS thì cần sửa lại file default.conf của Rocket-Nginx, vì họ tạo giá trị # HSTS không đúng như hstspreload yêu cầu Mở file default.conf mặc định nằm trong thư mục /usr/local/etc/rocket-nginx/, tầm dòng 32-33 sẽ thấy giá trị # HSTS value, sửa lại như bên dưới rồi  reload lại nginx là được # HSTS value..

Read more
07.

Tăng tốc độ sql trong WordPress với Index WP MySQL For Speed

August 11, 2025Category : Code/Web

Plugin này về cơ bản sẽ tạo chỉ mục cho các bảng trong cơ sở dữ liệu, giúp truy vấn tìm kiếm dữ liệu nhanh hơn. Trước khi cài và kích hoạt, để đảm bảo, bạn cần sao lưu cơ sở dữ liệu trước nhé. Sau khi đã chắc chắn, cài và kích hoạt plugin..

Read more
08.

Self Host Navidrome Music Server Stream

May 12, 2025Category : Code/Web

Install Navidrome using Docker Compose I installed Navidrome using Docker Compose. Simply point the volume to where your music is and run the install. compose.yaml services: navidrome_WFZy: image: deluan/navidrome:${VERSION} # container_name: ${CONTAINER_NAME} deploy: resources: limits: cpus: ${CPUS} memory: ${MEMORY_LIMIT} restart: unless-stopped user: 1000:1000 environment: ND_SCANSCHEDULE: 1h ND_LOGLEVEL: info ND_SESSIONTIMEOUT: 24h ND_BASEURL: “” ports: – ${HOST_IP}:${WEB_HTTP_PORT}:4533..

Read more
09.

Tăng Tốc WordPress Với 2 Thủ Thuật Này Trải Nghiệm Người Dùng Sẽ Thật Tuyệt Vời

March 27, 2025Category : Code/Web

khi đặt hàng Woocommerce bạn sẽ thấy quay hơi lâu hoặc khá lâu đây là một trường hợp, bài viết này sẽ giúp bạn tăng tốc cho những thao tác này cực kỳ nhanh luôn Bài này viết thiên về kỹ thuật và code một chút xíu nhưng nếu bạn là người dùng bình thường..

Read more
010.

Code mẫu tìm tên file trong bảng HTML loại 2

November 14, 2023Category : Code/Web

Code mẫu <link rel=”stylesheet” type=”text/css” href=”https://cdn.datatables.net/v/dt/dt-1.10.25/datatables.min.css”/> <script type=”text/javascript” src=”https://code.jquery.com/jquery-3.5.1.js”></script> <script type=”text/javascript” src=”https://cdn.datatables.net/v/dt/dt-1.10.25/datatables.min.js”></script> <script type=”text/javascript” src=”https://cdn.datatables.net/1.10.25/css/jquery.dataTables.min.css”></script> <script> $(document).ready(function() { $(‘#table’).DataTable( { stateSave: true, “order”: [[ 0, “asc” ]], “lengthMenu”: [[15, 30, 50, 100, 500, 1000, -1], [15, 30, 50, 100, 500, 1000, “All”]], “language”: { “url”: “//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Vietnamese.json” } } ); } ); </script> <center> <table border=1..

Read more
011.

Code get API data từ Google App Script chèn vào bảng Sheet

November 14, 2023Category : Code/Web

Ví dụ kết nối api KiotViet // lấy token và cache token function getKiotVietToken(clientId, secretKey) { var cache = CacheService.getScriptCache(); var cacheKey = “kiotVietToken”; var cachedToken = cache.get(cacheKey); if (cachedToken != null) { return cachedToken; } var payload = { scopes: “PublicApi.Access”, grant_type: “client_credentials”, client_id: clientId, client_secret: secretKey, muteHttpExceptions: true }; var options = {..

Read more
012.

Code mẫu tìm tên file trong bảng HTML

October 22, 2023Category : Code/Web

//////Code mẫu tìm tên file trong bảng div ul <script> function quicksearch() { // Declare variables var input, filter, ul, li, i, txtValue; input = document.getElementById(“formquicksearch”); filter = input.value.toUpperCase(); ul = document.getElementById(“formsearch”); li = ul.getElementsByTagName(“li”); // Loop through all list items, and hide those that don’t match the search query for (i = 0; i..

Read more
013.

Convert File Python thành EXE

August 2, 2022Category : Code/Web

Để cài đặt auto-py-to-exe, yêu cầu cơ bản là chúng ta phải cài đặt Python và pip trên máy dành cho nhà phát triển. Để cài đặt, chúng ta sẽ phải thực hiện lệnh pip install auto-py-to-exe trên command-line. Sau khi cài đặt xong, chúng ta có thể chạy trực tiếp auto-py-to-exe từ chính dòng lệnh và xem kết quả đầu..

Read more
014.

Đổi Header để Bypass WAF khi quét lỗ hổng Website bằng các Tool Scan

May 12, 2022Category : Code/Web

Khi dùng các phần mềm để quét lỗ hổng bảo mật, thường sẽ không qua được tường lừa WAF, chỉ cần gửi request đầu tiên lên là bị chặn, kể cả crawl. Bạn có thể bypass WAF bằng cách thay đổi Header của gói tin bằng 1 trong các Header dưới đây. Tùy mỗi Tool..

Read more
015.

Vô hiệu hóa External HTTP Requests để tăng tốc WordPress Site

January 7, 2022Category : Code/Web

Trong quá trình phát triển website bằng WordPress cho công ty, mình vô tình phát hiện ra rằng WordPress, và một số plugins thực hiện việc gửi các yêu cầu (HTTP Request) ra bên ngoài khi bạn thực hiện việc tải (load) trang. Các yêu cầu này khiến website trở nên chậm chạp, đặc biệt là trong..

Read more
016.
© Oliver / All rights reserved.
To top