Server Installation
Install Slipway on your VPS with a single command.
One-Line Install
SSH into your server and run:
curl -fsSL https://raw.githubusercontent.com/sailscastshq/slipway/main/install.sh | bashThis script will:
- Check for Docker (install if missing)
- Create the
slipwayDocker network - Detect your server's public IP
- Generate secrets (
SESSION_SECRETandDATA_ENCRYPTION_KEY) and save them to/etc/slipway/.env - Start the Caddy reverse proxy
- Pull and start the Slipway dashboard
- Align active UFW or firewalld rules with the selected public bindings
- Display your access URL
What Gets Installed
| Component | Purpose |
|---|---|
| Caddy | Reverse proxy with automatic HTTPS |
| Slipway | The dashboard application |
| Docker Network | Isolated network for Slipway and deployed apps |
Installation Output
After running the install script, you'll see something like:
Installing Slipway...
Docker already installed
Creating Docker network...
Network ready
Detecting server IP...
Generating secrets...
Configuration saved to /etc/slipway/.env
Server URL: http://203.0.113.50
Starting Caddy proxy...
Caddy proxy running
Pulling latest Slipway image...
Starting Slipway dashboard...
Slipway dashboard running
Waiting for Slipway to start...
========================================================
Slipway installed successfully!
========================================================
Dashboard: http://203.0.113.50
Public ingress: TCP 80 and 443 through Caddy
Direct app ports: private (set SLIPWAY_APP_PORT_HOST=0.0.0.0 to opt in)
Next steps:
1. Open the dashboard URL above to complete setup
2. Point a domain to this server (e.g., slipway.yourdomain.com)
3. SSL will be configured automatically when you add a domain
To deploy apps, install the CLI:
npm install -g slipway-cli
slipway login --server http://203.0.113.50
========================================================TIP
The actual output uses colored text to highlight status messages. Green indicates success, yellow indicates warnings.
Accessing Slipway
After installation, access your Slipway dashboard at:
http://YOUR_SERVER_IPOne public HTTP path
The request enters through Caddy on port 80. The Slipway dashboard listens on 127.0.0.1:1337, so it cannot be reached directly from another machine. For production, configure a custom domain to enable HTTPS.
Headless or private-network server
A headless server does not require a different installation. From another machine on the same trusted network, open http://SERVER_IP. That request uses Caddy on port 80, so the dashboard can remain private on 127.0.0.1:1337.
If you deliberately need direct http://SERVER_IP:1337 access instead, publish only the dashboard port:
curl -fsSL https://raw.githubusercontent.com/sailscastshq/slipway/main/install.sh -o /tmp/install-slipway.sh
sudo env SLIPWAY_DASHBOARD_HOST=0.0.0.0 bash /tmp/install-slipway.shBinding to 0.0.0.0 listens on every server interface and bypasses Caddy's TLS. Restrict TCP 1337 to your trusted LAN or VPN in both the host firewall and your provider firewall. Do not also publish the app port range unless you need raw app IP:port access; see Ingress and Firewall.
The installer saves the selected binding in /etc/slipway/.env, so later installer runs preserve it until you explicitly change it.
Provider Firewall
The installer can configure an active firewall on the server, but it cannot change a firewall or security group managed by your VPS provider. Allow the required ports in the provider's control panel too. See Network Requirements for the complete port list.
Choose another ingress mode
The default is the smallest production setup: public Caddy, private dashboard, and private app ports. Raw IP:port access and Cloudflare Tunnel are explicit installer modes because they change the server's public boundary. Read Ingress and Firewall for the exact commands, upgrade behavior, and verification steps.
Troubleshooting
Docker Permission Denied
If you see permission errors, add your user to the docker group:
sudo usermod -aG docker $USER
# Log out and back in for changes to take effectPort Already in Use
If port 80 or 443 is already in use:
# Find what's using the port
sudo lsof -i :80
sudo lsof -i :443
# Stop the conflicting service or change Slipway's portContainer Won't Start
Check the logs:
docker logs slipway
docker logs slipway-proxyWhat's Next?
Once Slipway is installed, proceed to Initial Setup to create your admin account and configure your instance.