docs-mintlify/cube-core/getting-started/create-a-project.mdx
Start by opening your terminal to create a new folder for the project, then
create a docker-compose.yml file within it:
mkdir my-first-cube-project
cd my-first-cube-project
touch docker-compose.yml
Open the docker-compose.yml file and add the following content:
services:
cube:
image: cubejs/cube:latest
ports:
- 4000:4000
- 15432:15432
environment:
- CUBEJS_DEV_MODE=true
volumes:
- .:/cube/conf
Note that we're setting the CUBEJS_DEV_MODE environment variable to true to
enable the Development Mode. This is
handy for local development but not suitable for
production.
If you're using Linux as the Docker host OS, you'll also need to add
network_mode: 'host' to your docker-compose.yml.
From the newly-created project directory, run the following command to start Cube:
docker compose up -d
Using Windows? Remember to use PowerShell or WSL2 to run the command below.
</Info>Head to http://localhost:4000 to open the Developer Playground.
The Playground has a database connection wizard that loads when Cube is first
started up and no .env file is found. After database credentials have been set
up, an .env file will automatically be created and populated with credentials.
Want to use a sample database instead? Select PostgreSQL and use the credentials below:
| Field | Value |
|---|---|
| Host | demo-db.cube.dev |
| Port | 5432 |
| Database | ecom |
| Username | cube |
| Password | 12345 |
After selecting the data source, enter valid credentials for it and click Apply. Check the Connecting to Databases page for more details on specific data sources.
<Frame> </Frame>You should see tables available to you from the configured database; select the
orders table. After selecting the table, click Generate Data Model
and pick either YAML (recommended) or JavaScript format:
Finally, click Build in the dialog, which should take you to the Build page.
You're now ready for the next step, querying the data.