Website dailerc.com
Website công ty song ngữ với Next.js 15 và ISR, trang quản trị nội dung riêng, tự host bằng Docker Compose và Caddy.
Vấn đề
Chúng tôi cần một website công ty nhanh, chuẩn SEO, có tiếng Việt và tiếng Anh, mà người không biết lập trình vẫn tự cập nhật được dịch vụ, dự án và bài viết. Chúng tôi cũng muốn tự kiểm soát hạ tầng và dữ liệu, với quy trình phát hành an toàn: mỗi lần cập nhật phải có sao lưu và có thể quay lại phiên bản trước.
Giải pháp
Phần công khai dùng Next.js 15 với App Router. Các trang được dựng sẵn và làm mới theo thời gian (ISR); mỗi lần gọi API có cache tag, và trang quản trị gọi revalidateTag sau mỗi thay đổi, nên nội dung mới xuất hiện gần như ngay lập tức. Trang quản trị nằm trong cùng ứng dụng, giao diện song ngữ, có phân quyền theo vai trò, thư viện media, quản lý khách hàng tiềm năng, chat hỗ trợ và cài đặt giao diện. API viết bằng NestJS với Prisma và PostgreSQL, cache phản hồi công khai trong Redis, có giới hạn tần suất và khóa đăng nhập. Toàn bộ chạy bằng Docker Compose sau Caddy trên một tên miền. Mỗi commit lên nhánh main được một GitHub Actions runner tự host deploy: sao lưu cơ sở dữ liệu và media, build image gắn tag theo commit, chờ healthcheck, smoke test và làm mới cache.
Kết quả
Website chạy tại dailerc.com với nội dung tiếng Việt (mặc định) và tiếng Anh. Nội dung được cập nhật từ trang quản trị mà không cần deploy lại. Mỗi lần phát hành đều tự động, có sao lưu trước migration, và rollback chỉ là deploy lại một commit cũ.