--- title: Thiết lập Cục bộ description: "Hướng dẫn cho người đóng góp (hoặc nhà phát triển tò mò) muốn chạy Twenty cục bộ." image: /images/user-guide/fields/field.png --- Header ## Điều kiện tiên quyết Trước khi bạn có thể cài đặt và sử dụng Twenty, hãy đảm bảo bạn đã cài đặt các phần sau trên máy tính của mình: - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - [Node v24.5.0](https://nodejs.org/en/download) - [yarn v4](https://yarnpkg.com/getting-started/install) - [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md) `npm` sẽ không hoạt động, bạn nên dùng `yarn` thay thế. Yarn hiện được tích hợp với Node.js, vì vậy bạn không cần cài đặt riêng. Bạn chỉ cần chạy `corepack enable` để kích hoạt Yarn nếu bạn chưa làm điều đó. 1. Cài đặt WSL Mở PowerShell dưới quyền quản trị viên và chạy: ```powershell wsl --install ``` Bạn sẽ thấy một lời nhắc khởi động lại máy tính của mình. Nếu không, hãy khởi động lại thủ công. Sau khi khởi động lại, cửa sổ powershell sẽ mở và cài đặt Ubuntu. Điều này có thể mất một khoảng thời gian. Bạn sẽ thấy một lời nhắc để tạo tên người dùng và mật khẩu cho cài đặt Ubuntu của bạn. 2. Cài đặt và cấu hình git ```bash sudo apt-get install git git config --global user.name "Your Name" git config --global user.email "youremail@domain.com" ``` 3. Cài đặt nvm, node.js và yarn Sử dụng `nvm` để cài đặt phiên bản `node` đúng. `.nvmrc` đảm bảo tất cả những người đóng góp đều sử dụng cùng một phiên bản. ```bash sudo apt-get install curl curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash ``` Đóng và mở lại terminal của bạn để sử dụng nvm. Sau đó chạy các lệnh sau. ```bash nvm install # installs recommended node version nvm use # use recommended node version corepack enable ``` --- ## Bước 1: Git Clone Trong terminal của bạn, hãy chạy lệnh sau. Nếu bạn chưa thiết lập khóa SSH, bạn có thể tìm hiểu cách thực hiện [ở đây](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-ssh). ```bash git clone git@github.com:twentyhq/twenty.git ``` ```bash git clone https://github.com/twentyhq/twenty.git ``` ## Bước 2: Định vị tại thư mục gốc ```bash cd twenty ``` Bạn nên chạy tất cả các lệnh trong các bước sau từ thư mục gốc của dự án. ## Bước 3: Thiết lập Cơ sở dữ liệu PostgreSQL **Option 1 (preferred):** To provision your database locally: Use the following link to install Postgresql on your Linux machine: [Postgresql Installation](https://www.postgresql.org/download/linux/) ```bash psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;" ``` Note: You might need to add `sudo -u postgres` to the command before `psql` to avoid permission errors. ```` **Option 2:** If you have docker installed: ```bash make postgres-on-docker ``` ```` **Option 1 (preferred):** To provision your database locally with `brew`: ```` ```bash brew install postgresql@16 export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH" brew services start postgresql@16 psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;" ``` You can verify if the PostgreSQL server is running by executing: ```bash brew services list ``` The installer might not create the `postgres` user by default when installing via Homebrew on MacOS. Instead, it creates a PostgreSQL role that matches your macOS username (e.g., "john"). To check and create the `postgres` user if necessary, follow these steps: ```bash # Connect to PostgreSQL psql postgres or psql -U $(whoami) -d postgres ``` Once at the psql prompt (postgres=#), run: ```bash # List existing PostgreSQL roles \du ``` You'll see output similar to: ```bash Role name | Attributes | Member of -----------+-------------+----------- john | Superuser | {} ``` If you do not see a `postgres` role listed, proceed to the next step. Create the `postgres` role manually: ```bash CREATE ROLE postgres WITH SUPERUSER LOGIN; ``` This creates a superuser role named `postgres` with login access. **Option 2:** If you have docker installed: ```bash make postgres-on-docker ``` ```` All the following steps are to be run in the WSL terminal (within your virtual machine) ```` **Option 1:** To provision your Postgresql locally: Use the following link to install Postgresql on your Linux virtual machine: [Postgresql Installation](https://www.postgresql.org/download/linux/) ```bash psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;" ``` Note: You might need to add `sudo -u postgres` to the command before `psql` to avoid permission errors. **Option 2:** If you have docker installed: Running Docker on WSL adds an extra layer of complexity. Only use this option if you are comfortable with the extra steps involved, including turning on [Docker Desktop WSL2](https://docs.docker.com/desktop/wsl). ```bash make postgres-on-docker ``` ```` Bạn có thể truy cập cơ sở dữ liệu tại [localhost:5432](localhost:5432), với người dùng `postgres` và mật khẩu `postgres`. ## Bước 4: Thiết lập Cơ sở dữ liệu Redis (cache) Twenty yêu cầu một cache redis để cung cấp hiệu suất tốt nhất **Option 1:** To provision your Redis locally: Use the following link to install Redis on your Linux machine: [Redis Installation](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/) ```` **Option 2:** If you have docker installed: ```bash make redis-on-docker ``` ```` **Option 1 (preferred):** To provision your Redis locally with `brew`: ```bash brew install redis ``` Start your redis server: ```brew services start redis``` ```` **Option 2:** If you have docker installed: ```bash make redis-on-docker ``` ```` **Option 1:** To provision your Redis locally: Use the following link to install Redis on your Linux virtual machine: [Redis Installation](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/) ```` **Option 2:** If you have docker installed: ```bash make redis-on-docker ``` ```` Nếu bạn cần một GUI Client, chúng tôi khuyến nghị [redis insight](https://redis.io/insight/) (bản miễn phí có sẵn) ## Bước 5: Thiết lập biến môi trường Sử dụng biến môi trường hoặc tệp `.env` để cấu hình dự án của bạn. Thêm thông tin [tại đây](https://docs.twenty.com/l/vi/developers/self-hosting/setup) Copy the `.env.example` files in `/front` and `/server`: ```bash cp ./packages/twenty-front/.env.example ./packages/twenty-front/.env cp ./packages/twenty-server/.env.example ./packages/twenty-server/.env ``` ## Step 6: Installing dependencies To build Twenty server and seed some data into your database, run the following command: ```bash yarn ``` Lưu ý rằng `npm` hoặc `pnpm` sẽ không hoạt động ## Bước 7: Chạy dự án Tùy thuộc vào bản phân phối Linux của bạn, máy chủ Redis có thể được khởi động tự động. Nếu không, hãy kiểm tra [hướng dẫn cài đặt Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/) cho bản phân phối của bạn. Redis should already be running. If not, run: ```bash brew services start redis ``` Tùy thuộc vào bản phân phối Linux của bạn, máy chủ Redis có thể được khởi động tự động. Nếu không, hãy kiểm tra [hướng dẫn cài đặt Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/) cho bản phân phối của bạn. Thiết lập cơ sở dữ liệu của bạn bằng lệnh sau: ```bash npx nx database:reset twenty-server ``` Khởi động máy chủ, công nhân, và các dịch vụ frontend: ```bash npx nx start twenty-server npx nx worker twenty-server npx nx start twenty-front ``` Ngoài ra, bạn có thể khởi động tất cả các dịch vụ một lần: ```bash npx nx start ``` ## Bước 8: Sử dụng Twenty **Frontend** Giao diện người dùng của Twenty sẽ chạy tại [http://localhost:3001](http://localhost:3001). Bạn có thể đăng nhập bằng tài khoản demo mặc định: `tim@apple.dev` (mật khẩu: `tim@apple.dev`) **Backend** - Máy chủ Twenty sẽ hoạt động tại [http://localhost:3000](http://localhost:3000) - API GraphQL có thể truy cập tại [http://localhost:3000/graphql](http://localhost:3000/graphql) - API REST có thể truy cập tại [http://localhost:3000/rest](http://localhost:3000/rest) ## Xử lý sự cố Nếu bạn gặp bất kỳ vấn đề gì, hãy kiểm tra [Xử lý sự cố](https://docs.twenty.com/l/vi/developers/self-hosting/troubleshooting) để tìm giải pháp.