Skip to content

Configuration

Slipway can be configured through environment variables and the dashboard settings.

Server Configuration

Environment Variables

Configure Slipway via environment variables when starting the Docker container:

VariableDescriptionDefault
PORTPort Slipway listens on1337
NODE_ENVEnvironment modeproduction
SLIPWAY_URLPublic URL of your Slipway instanceRequired
SLIPWAY_SECRETSecret key for encryptionRequired
DATABASE_PATHPath to SQLite database/app/data/slipway.db

Example Docker Run

bash
docker run -d \
  --name slipway \
  --network slipway \
  --restart unless-stopped \
  -p 1337:1337 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v slipway-data:/app/data \
  -e NODE_ENV=production \
  -e PORT=1337 \
  -e SLIPWAY_URL="https://slipway.yourdomain.com" \
  -e SLIPWAY_SECRET="your-32-character-secret" \
  ghcr.io/sailscastshq/slipway:latest

Generate a Secret

bash
openssl rand -hex 32

Keep It Secret

Never commit your SLIPWAY_SECRET to version control or share it publicly.

Dashboard Settings

Access settings at Dashboard → Settings.

Instance Settings

SettingDescription
Instance NameDisplay name for your Slipway server
Instance URLPublic URL for webhooks and links
Allow SignupsEnable/disable new user registration

Default Project Settings

SettingDescriptionDefault
Default EnvironmentInitial environment for new projectsproduction
Health Check TimeoutTime to wait for health checks30s
Deploy TimeoutMaximum deployment time10m

Security Settings

SettingDescriptionDefault
Session TimeoutAuto-logout after inactivity24h
Require 2FAEnforce two-factor authenticationfalse
IP AllowlistRestrict dashboard access by IPDisabled

Project Configuration

Projects can be configured via the CLI or dashboard:

Via CLI

bash
slipway project:update myapp \
  --auto-deploy=true \
  --auto-deploy-branch=main \
  --health-check-path=/health

Via Dashboard

  1. Go to your project
  2. Click Settings
  3. Configure options
  4. Click Save

Project Options

OptionDescriptionDefault
auto-deployEnable webhook-triggered deploysfalse
auto-deploy-branchBranch to deploy frommain
health-check-pathURL path for health checks/
health-check-timeoutHealth check timeout30s
deploy-timeoutMaximum deploy time10m

App Configuration (config/slipway.js)

For apps using sails-hook-slipway, create config/slipway.js:

javascript
// config/slipway.js
module.exports.slipway = {
  // Enable/disable features
  bridge: {
    enabled: true,
    path: '/slipway/bridge'
  },

  helm: {
    enabled: true,
    path: '/slipway/helm',
    readOnly: process.env.NODE_ENV === 'production'
  },

  // Quest integration (if sails-quest installed)
  quest: {
    enabled: true,
    path: '/slipway/quest'
  },

  // Telemetry (send metrics to Slipway server)
  telemetry: {
    enabled: true,
    serverUrl: process.env.SLIPWAY_URL
  }
}

Docker Configuration

Network Configuration

Slipway uses a Docker network named slipway:

bash
# Create network (done by install.sh)
docker network create slipway

All apps and services are attached to this network for internal communication.

Volume Configuration

Slipway data is stored in Docker volumes:

VolumePurposeDefault Path
slipway-dataDatabase and config/app/data
slipway-certsSSL certificates/data (Caddy)

Resource Limits

Set resource limits for Slipway:

bash
docker run -d \
  --name slipway \
  --memory=512m \
  --cpus=1 \
  ...

Caddy Configuration

Caddy is configured via Docker labels on containers. Slipway sets these automatically:

javascript
// Labels set by Slipway when deploying
{
  'caddy': 'myapp.example.com',
  'caddy.reverse_proxy': '{{upstreams 1337}}'
}

Custom Caddy Settings

For advanced Caddy configuration, you can modify the Caddy container directly:

bash
# Access Caddy config
docker exec slipway-proxy cat /etc/caddy/Caddyfile

Backup Configuration

Automatic Backups

Configure in Dashboard → Settings → Backups:

SettingDescriptionDefault
EnabledEnable automatic backupstrue
ScheduleBackup frequencyDaily at 2 AM
RetentionNumber of backups to keep7
StorageWhere to store backupsLocal

Manual Backup

bash
# Backup Slipway data
docker exec slipway tar -czf /tmp/backup.tar.gz /app/data
docker cp slipway:/tmp/backup.tar.gz ./slipway-backup.tar.gz

Logging Configuration

Log Level

Set via environment variable:

bash
-e LOG_LEVEL=debug  # silly, verbose, info, debug, warn, error

Log Retention

Configure in Dashboard → Settings → Logs:

SettingDescriptionDefault
App LogsRetention period7 days
Build LogsRetention period30 days
Deploy LogsRetention period30 days

Email Configuration

For email notifications (password reset, alerts):

bash
-e MAIL_TRANSPORT=smtp \
-e SMTP_HOST=smtp.gmail.com \
-e SMTP_PORT=587 \
-e [email protected] \
-e SMTP_PASS=your-app-password \
-e MAIL_FROM="Slipway <[email protected]>"

Or use Resend:

bash
-e MAIL_TRANSPORT=resend \
-e RESEND_API_KEY=re_xxx \
-e MAIL_FROM="Slipway <[email protected]>"

What's Next?

All open source projects are released under the MIT License.