Skip to content

Configuration ​

Configure Slipway itself separately from the apps it deploys. Instance settings belong to the host; environment and app settings belong to the selected project target.

Server Configuration ​

Environment Variables ​

The installer persists server settings in /etc/slipway/.env. Prefer rerunning the installer with explicit environment overrides because it also keeps Docker bindings and active firewall rules consistent.

VariableDescriptionDefault
PORTInternal Slipway application port1337
NODE_ENVEnvironment modeproduction
SLIPWAY_URLPublic URL of your Slipway instanceDetected
SLIPWAY_INGRESSpublic or cloudflare-tunnelpublic
SLIPWAY_PROXY_HOSTHost interface for CaddyMode-dependent
SLIPWAY_DASHBOARD_HOSTHost interface for the dashboard port127.0.0.1
SLIPWAY_APP_PORT_HOSTHost interface for allocated app ports127.0.0.1
SESSION_SECRETSession-signing secretGenerated
DATA_ENCRYPTION_KEYEncryption key for stored credentialsGenerated

Explicit direct app access ​

bash
curl -fsSL https://raw.githubusercontent.com/sailscastshq/slipway/main/install.sh -o /tmp/install-slipway.sh
sudo env SLIPWAY_APP_PORT_HOST=0.0.0.0 bash /tmp/install-slipway.sh

Public boundary

0.0.0.0 means every server interface. It is an explicit opt-in, not a safer replacement for Caddy. Read Ingress and Firewall before opening the app port range at your VPS provider.

Dashboard and project settings ​

Open Settings for instance, team, developer, and operational configuration. Use Project Configuration for app Dockerfiles, health paths, resources, variables, and deployment sources.

project:update only changes project identity fields. There is no CLI global settings command, log-forwarding configuration command, or settings import/export interface.

App Configuration (config/slipway.js) ​

sails-hook-slipway is zero-config when deployed by Slipway. Create config/slipway.js only when the app needs identity or telemetry behavior overrides:

javascript
// config/slipway.js
module.exports.slipway = {
  bridge: {
    loginPath: '/login',
    identity: {
      model: 'user',
      sessionKey: 'userId',
      emailAttribute: 'email',
      nameAttribute: 'fullName',
      emailStatusAttribute: 'emailStatus',
      verifiedEmailStatuses: ['verified', 'confirmed']
    }
  },

  lookout: {
    enabled: true,
    captureQueries: true,
    captureExceptions: true,
    slowQueryThreshold: 100
  }
}

Enable the app-local /bridge route from the app's Bridge access page and redeploy. Slipway injects its app-scoped credential; never commit it to config/slipway.js. Read Bridge app-local access for the invitation and custom identity-helper flow.

Persist and recover ​

The installer preserves the instance database volume at /app/db and persists server secrets in /etc/slipway/.env. Keep the database and its encryption keys together in the recovery plan. Use consistent database backups rather than copying a live SQLite file blindly.

Configure application database backups through Database Services and Private Backup Storage. Instance database recovery is a separate operation. Read Updates before changing images or schema compatibility.

For public routes and Caddy behavior, follow Ingress and Firewall, Instance URL, and Custom Domain. Verify the actual route after changing configuration.

All open source projects are released under the MIT License.