# New start script, and changes to default config

Source: https://orbitalhq.com/changelog/2025-12-05-changes-to-start-and-default-config
Date: 2025-12-05
Version: 0.37.0

We've made some small changes on how to get Orbital running. We've also added a [new config variable](#what-do-i-need-to-do) to centralize
where Orbital stores all it's internal files. *You should add this config variable to your own deployments before 0.37 is released*.

## New way to start Orbital - start.sh
We've updated the way people get started on Orbital - replacing our docker-compose.yml with a bash script.

If you head over to [orbitalhq.com](https://orbitalhq.com), you'll notice that we're now asking people to start
by curling:

```bash
curl -sSL https://start.orbitalhq.com/start.sh | bash
```

You can [view the bash script](https://start.orbitalhq.com/start.sh) - it's still running the same [docker-compose.yml](https://start.orbitalhq.com/docker-compose.yml),
but we've just added some scripting to make the experience a bit better.

## What do I need to do?
There's very little that's changed.

You should add `--vyne.app.data.path=/a/path/for/your/config` to your config. It's safe to do this now, before 0.37.0 is released.

It's also safe not to do this at all, and Orbital will work with reasonable defaults. But, our new preferred config includes setting this property.

## What we changed:
 - By default, the app now launches with user permissions, rather than root
 - All app data (license files, temporary write queues, lucene search indices) are now written to the same, configurable directory (`--vyne.app.data.path`)
 - Docker Volume directories are created before docker starts

## Why we did this - the pains of Docker Compose
We still ❤️ Docker Compose - it's our preferred way for people to start the stack. But, we hit issues that made the experience unpleasant for developers...

### File permissions
When you're working with Orbital, we expect you'll do some stuff inside the browser, and other stuff inside your IDE.

However, if Docker creates the directories you're using - **even if your docker container is running with a non-root user**, then you can end up 
with file permissions errors. You - the user - lack the permissions to edit the files that get created.

The `start.sh` fixes this by simply creating the directories before docker launches, 

### User permissions
Telling Docker Compose to launch in a non-root user is slightly trickier than you'd expect. It's not *hard*, but you can't
say "run with my account", you have to say "run with *this* account".

The idiomatic way to address this is:

```yaml
    services:
    
       orbital:
          image: orbitalhq/orbital:${ORBITAL_VERSION:-next}
>         user: "${UID}:${GID}"
```

And then have a `.env` file that defines those variables:

```
UID=1000
GID=1000
```

This isn't difficult, but it's awkward for a user to just get started. So, the script handles this for you.

### Networking
Orbital is an integration platform, so when we ship demos or test stacks, we need things to integrate. 

We solved that by building [Nebula](https://nebula.orbitalhq.com) to deploy local environments. However,
Nebula deploys other docker containers - and docker-launching-docker varies between OS's. That meant our docker-compose.yml
is OS-specific. We built tools to detect and try to serve the correct docker-compose.yml, but it's clumsy if you're running from the command line.

Our script detects which OS you're running on, and downloads the correct docker-compose file for you.

## Summary
That it! The new launcher script is live now, and config variables are shipping now in `next` and will be part of the `0.37` release.

Happy integrating.
