Initialize a Project
Choose a Project
You can either deploy one of your own projects or alternatively, checkout one of our demo applications using git:
- Node.js
- Python
- Java
- Ruby
- Golang
- PHP
- ASP.NET
- Your Own Project
git clone https://github.com/loft-sh/devspace-quickstart-nodejs
cd devspace-quickstart-nodejs
git clone https://github.com/loft-sh/devspace-quickstart-python
cd devspace-quickstart-python
git clone https://github.com/loft-sh/devspace-quickstart-ruby
cd devspace-quickstart-ruby
git clone https://github.com/loft-sh/devspace-quickstart-golang
cd devspace-quickstart-golang
git clone https://github.com/loft-sh/devspace-quickstart-java
cd devspace-quickstart-java
git clone https://github.com/loft-sh/devspace-quickstart-php
cd devspace-quickstart-php
git clone https://github.com/loft-sh/devspace-quickstart-asp-dotnet
cd devspace-quickstart-asp-dotnet
# Navigate to the root directory of your project
cd /path/to/your/project
info
If you are using DevSpace for the first time, it is highly recommended that you use one of the demo projects.
Initialize Your Project
Run this command in your project directory to create a devspace.yaml config file for your project:
devspace init
     ____              ____
    |  _ \  _____   __/ ___| _ __   __ _  ___ ___
    | | | |/ _ \ \ / /\___ \| '_ \ / _` |/ __/ _ \
    | |_| |  __/\ V /  ___) | |_) | (_| | (_|  __/
    |____/ \___| \_/  |____/| .__/ \__,_|\___\___|
                            |_|
? How do you want to deploy this project?  [Use arrows to move, type to filter]
> helm: Use Component Helm Chart [QUICK START] (https://devspace.sh/component-chart/docs)
  helm: Use my own Helm chart (e.g. local via ./chart/ or any remote chart)
  kubectl: Use existing Kubernetes manifests (e.g. ./kube/deployment.yaml)
  kustomize: Use an existing Kustomization (e.g. ./kube/kustomization/)
DevSpace will ask you a couple of questions about this project and then generate a devspace.yaml for you to start with. If you are using the quickstart projects, choose Component Helm Chart for the first question.
After running devspace init, you will see a devspace.yaml file in your project which should look like this:
version: v1beta10
# `images` specifies all images that may need to be built for this project
images:
  app: # This image is called `app` and this name `app` is referenced multiple times in the config below
    image: registry.tld/username/image
    dockerfile: ./Dockerfile
    build:
      disabled: true
# `deployments` tells DevSpace how to deploy this project
deployments:
- name: quickstart-kubectl
  # This deployment uses `kubectl` but you can also define `helm` deployments
  kubectl:
    manifests:
    - kube/deployment.yaml
# OR:
- name: quickstart-helm                   # Name of this deployment
  helm:                                   # Deploy using Helm
    componentChart: true                  # Use the Component Helm Chart
    values:                               # Override Values for chart (can also be set using valuesFiles option)
      containers:                         # Defines an array of containers that run in the same pods started by this component
      - image: image(app):tag(app)        # Image of this container
      service:                            # Expose this component with a Kubernetes service
        ports:                            # Array of container ports to expose through the service
        - port: 3000                      # Exposes container port 3000 on service port 3000
# Settings for development mode (will be explained later)
dev: ...
# Settings for development mode (will be explained later)
profiles: ...
