# Deploy with Dokku + nip.io

Server IP example: `142.93.189.8`. Replace `<app>` with your app name.

## 1. Create app + Mongo (on server)

```bash
dokku apps:create <app>
dokku mongo:create <app>_db   # or <app>__db naming you prefer
dokku mongo:link <app>_db <app>
```

## 2. Config

```bash
dokku config:set <app> \
  NODE_ENV=production \
  NPM_CONFIG_PRODUCTION=false \
  SESSION_SECRET="$(openssl rand -hex 32)" \
  APP_NAME=<app>
```

`MONGO_URL` is set automatically by `mongo:link`.

## 3. Domain without DNS

```bash
dokku domains:add <app> <app>.142.93.189.8.nip.io
```

HTTPS (recommended for new apps):

```bash
dokku letsencrypt:set <app> email you@example.com
dokku letsencrypt:enable <app>
```

`setup-dokku-app.sh` does this when you pass a domain and set `DOKKU_LETSENCRYPT_EMAIL` (or pass the email as the third argument).

## 4. Deploy from laptop

```bash
git remote add dokku dokku@142.93.189.8:<app>
git push dokku master
```

## 5. Health check

```bash
curl -s https://<app>.142.93.189.8.nip.io/api/health
```

## Scripts in template repos

Most Nease apps include `deploy/setup-dokku-app.sh` and `deploy/deploy.sh` — copy from `nease/partypal/deploy/` or `nease/site-launcher-template/deploy/`.
