Giới thiệu và các vấn đề thường gặp trong dự án Nakama
Dự án nguồn mở Nakama là một hệ thống mạng xã hội đang được phát triển dành riêng cho những người yêu thích anime. Hệ thống này cung cấp trải nghiệm giao tiếp mới mẻ, cho phép người dùng chia sẻ và thảo luận về nội dung liên quan đến anime.
Tổng quan về ngôn ngữ lập trình chính
- Ngôn ngữ backend: Go
- Ngôn ngữ frontend: JavaScript
Ba vấn đề phổ biến mà người mới bắt đầu cần lưu ý cùng hướng dẫn giải quyết
Vấn đề 1: Cách thiết lập môi trường dự án
Một số người mới có thể gặp khó khăn khi thiết lập môi trường phát triển ban đầu cho dự án Nakama. Dưới đây là các bước chi tiết:
- Cài đặt môi trường Go: Backend của Nakama được viết bằng Go, vì vậy bạn cần cài đặt Go từ trang web chính thức (Golang).
- Cài đặt thư viện phụ thuộc: Sau khi đã clone mã nguồn từ Git, chạy lệnh sau để cài đặt các gói phụ thuộc của backend:
go mod tidy - Cài đặt phụ thuộc frontend: Trong thư mục frontend (`web/app`), sử dụng lệnh sau để cài đặt thư viện frontend:
npm install - Kích hoạt dịch vụ: Bạn có thể khởi chạy backend bằng Docker hoặc trực tiếp bằng Go. Với Docker, hãy sử dụng lệnh:
Hoặc nếu muốn chạy trực tiếp bằng Go:docker-compose up --buildgo build ./cmd/nakama - Khởi động ứng dụng frontend: Trong thư mục frontend, chọn cách xây dựng toàn bộ hoặc chạy máy chủ phát triển:
npm run build # Xây dựng toàn bộ frontend npm run dev # Chạy máy chủ phát triển
Vấn đề 2: Cấu hình cơ sở dữ liệu và hàng đợi tin nhắn
Nakama sử dụng CockroachDB làm cơ sở dữ liệu và NATS làm hàng đợi tin nhắn. Dưới đây là cách cấu hình chúng:
- Cài đặt và khởi chạy CockroachDB: Tải xuống và cài đặt CockroachDB từ trang web chính thức. Để khởi chạy một nút đơn giản, sử dụng lệnh:
cockroach start-single-node --insecure --listen-addr 127.0.0.1:26257 - Tạo cơ sở dữ liệu và bảng: Sử dụng tệp `schema.sql` để tạo cấu trúc dữ liệu:
cat schema.sql | cockroach sql --insecure - Cài đặt và khởi chạy NATS: Tải xuống và cài đặt NATS từ trang web chính thức. Để khởi chạy NATS, sử dụng lệnh:
nats-server
Vấn đề 3: Sao lưu và khôi phục cơ sở dữ liệu
Để đảm bảo an toàn dữ liệu, việc sao lưu và khôi phục là rất quan trọng. Đây là cách thực hiện:
- Sao lưu cơ sở dữ liệu: Đảm bảo rằng bạn có một dịch vụ tương thích với S3 đang chạy. Sử dụng lệnh sau để sao lưu dữ liệu:
BACKUP DATABASE nakama INTO 's3://[BUCKET_NAME]?AWS_ACCESS_KEY_ID=[KEY_ID]&AWS_SECRET_ACCESS_KEY=[SECRET_KEY]&AWS_REGION=[REGION]' WITH Credentials=(aws_access_key_id=[KEY_ID], aws_secret_access_key=[SECRET_KEY]); - Khôi phục cơ sở dữ liệu: Sử dụng lệnh sau để khôi phục dữ liệu từ bản sao lưu:
RESTORE DATABASE nakama FROM LATEST IN 's3://[BUCKET_NAME]?AWS_ACCESS_KEY_ID=[KEY_ID]&AWS_SECRET_ACCESS_KEY=[SECRET_KEY]&AWS_REGION=[REGION]' WITH Credentials=(aws_access_key_id=[KEY_ID], aws_secret_access_key=[SECRET_KEY]);
Lưu ý: Thay thế `[BUCKET_NAME]`, `[KEY_ID]`, `[SECRET_KEY]`, và `[REGION]` bằng giá trị thực tế của bạn.