# Remove GoRunner

Stop GoRunner and remove it, keeping its data or deleting it for good.

First take a backup you can restore: [Back up and restore](https://docs.gorunner.io/self-host/backups). Your own database, Redis and bucket are never touched here.

## On a Docker server

### 1. Stop GoRunner

In the install folder. This removes the containers and keeps every volume, so `docker compose up -d` brings the same installation back.

```bash
cd gorunner
docker compose down
```

### 2. Delete the data

> **Danger** This deletes the built-in database, file storage, Redis and certificates. There is no undo.

The volumes are named after the project, `gorunner_` unless the setup was given another `--project`.

```bash
docker compose down -v
```

### 3. Delete the install folder

It holds `.env`, with the encryption key and your passwords. Keep a copy if you might restore the backup.

```bash
cd ..
rm -rf gorunner
```

## On Kubernetes

### 1. Uninstall the release

This removes GoRunner’s pods, Services and Ingress. The bundled stores’ volumes and their `gorunner-bundled` Secret stay, so installing again under the same name opens the same data.

```bash
helm uninstall gorunner --namespace gorunner
```

### 2. Delete the bundled stores’ data

Only with the bundled stores. This deletes their data for good.

```bash
kubectl --namespace gorunner delete pvc \
  -l app.kubernetes.io/instance=gorunner
kubectl --namespace gorunner \
  delete secret gorunner-bundled
```

### 3. Delete your own Secrets

The Secrets you made at install, `gorunner-secrets` and `ghcr`, stay until you delete them. Keep a copy of `ENCRYPTION_KEY` if you might restore a backup.

```bash
kubectl --namespace gorunner \
  delete secret gorunner-secrets ghcr
```

## Related

- [Back up and restore](https://docs.gorunner.io/self-host/backups): Before you remove anything · 10 min
- [Containers, ports and volumes](https://docs.gorunner.io/self-host/services): What runs, and where its data lives

Source: https://docs.gorunner.io/self-host/uninstall
