How to Self-Host Yacht with Docker Compose
What Is Yacht?
Yacht is a lightweight Docker container management UI designed for self-hosters. It provides a clean web interface for deploying, managing, and monitoring containers, with built-in app templates that let you deploy popular self-hosted apps in a few clicks. Think of it as a simpler alternative to Portainer — fewer features, but faster to learn.
Note: Yacht has not been updated since January 2023. The project appears to be abandoned. Consider Portainer or Dockge as actively maintained alternatives.
Prerequisites
- A Linux server (Ubuntu 22.04+ recommended)
- Docker and Docker Compose installed (guide)
- 512 MB of free RAM
- 1 GB of free disk space
Docker Compose Configuration
Create a directory and docker-compose.yml:
mkdir -p ~/yacht && cd ~/yacht
services:
yacht:
image: selfhostedpro/yacht:latest
container_name: yacht
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- yacht-data:/config
- /var/run/docker.sock:/var/run/docker.sock
environment:
PUID: 1000
PGID: 1000
# Secret key for session encryption — change this
SECRET_KEY: "your-random-secret-key-change-me"
# Disable telemetry
DISABLE_ANALYTICS: "true"
volumes:
yacht-data:
Start the stack:
docker compose up -d
Security note: Mounting the Docker socket (/var/run/docker.sock) gives Yacht full control over your Docker daemon. This is equivalent to root access on the host. Only expose Yacht on trusted networks.
Initial Setup
- Open
http://your-server-ip:8000 - Log in with the default credentials:
- Email:
[email protected] - Password:
pass
- Email:
- Change the password immediately — go to the user icon in the top right and update your credentials.
Configuration
Adding App Templates
Yacht’s template system lets you deploy apps from curated lists:
- Go to Templates in the sidebar
- Click Add Template
- Enter a template URL. The default SelfhostedPro template:
https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Template/yacht.json - Click Submit
You can now deploy apps from the template library with pre-configured settings.
Deploying a Container
From the template library:
- Browse templates and click Deploy on the app you want
- Review and adjust port mappings, volumes, and environment variables
- Click Deploy
Manually:
- Go to Apps > New Application
- Fill in the image name, ports, volumes, environment variables, and restart policy
- Click Deploy
Container Management
From the Apps page you can:
- Start, stop, restart, and remove containers
- View container logs in real-time
- Inspect container details (ports, volumes, environment)
- Access container shell (exec into running containers)
Advanced Configuration (Optional)
Using Compose Projects
Yacht supports Docker Compose projects for multi-container stacks:
- Go to Projects in the sidebar
- Create a new project with a
docker-compose.ymldefinition - Yacht manages the entire stack lifecycle
Custom Templates
Create your own template JSON files for apps you deploy frequently. Host them on a web server or GitHub and add the URL to Yacht.
Theme Customization
Yacht supports dark and light themes. Toggle via the theme switcher in the top navigation bar.
Backup
Back up the config volume:
docker compose stop yacht
docker run --rm -v yacht-data:/config -v $(pwd):/backup alpine \
tar czf /backup/yacht-backup.tar.gz /config
docker compose start yacht
The /config volume contains Yacht’s database (user accounts, templates, settings). Container data for apps deployed through Yacht lives in their own volumes.
See Backup Strategy for a comprehensive approach.
Troubleshooting
Cannot connect to Docker daemon
Symptom: Yacht shows “Cannot connect to the Docker daemon” or no containers appear.
Fix: Verify the Docker socket is mounted correctly and the socket file exists:
ls -la /var/run/docker.sock
Ensure the user running the container has access to the Docker socket. If using rootless Docker, the socket path differs.
Default login not working
Symptom: [email protected] / pass is rejected.
Fix: The credentials are only set on first startup. If the config volume already has data from a previous installation, the old credentials persist. Remove the volume and recreate:
docker compose down -v
docker compose up -d
Template deployment fails
Symptom: Deploying from a template shows an error.
Fix: Check that the template URL is reachable from the server. Some templates reference images that may not exist for your architecture (ARM vs x86). Check container logs:
docker logs yacht
Port conflicts
Symptom: Container fails to start with port binding errors.
Fix: Change the host port in your docker-compose.yml:
ports:
- "8001:8000" # Use 8001 if 8000 is taken
High memory usage
Symptom: Yacht uses more memory than expected.
Fix: Yacht’s memory usage increases with the number of containers it monitors. For servers with 50+ containers, consider using Portainer which handles scale better.
Resource Requirements
- RAM: ~80 MB idle, ~150 MB with 20+ managed containers
- CPU: Low — web UI is lightweight
- Disk: ~200 MB for application, plus template cache
Verdict
Yacht is a solid choice if you want a simple, clean Docker management UI and don’t need Portainer’s enterprise features. The template system is its killer feature — it makes deploying new self-hosted apps almost as easy as an app store. However, Yacht’s development has slowed significantly, with the maintainer working on a full rewrite (Yacht Next). For active development and more features, Portainer is the safer bet. For Docker Compose-focused management, Dockge is better.
Use Yacht if you want template-based app deployment and a clean UI for basic container management. Skip it if you need active development, Swarm/K8s support, or Compose-file editing.
Frequently Asked Questions
Is Yacht still maintained?
The current version (v0.0.x) receives minimal updates. The developer is working on a rewrite called Yacht Next, but there’s no stable release date. For production use, consider Portainer or Dockge instead.
Can Yacht manage Docker Compose stacks?
Yes, through the Projects feature. However, the Compose support is basic compared to Dockge or Portainer. You can’t edit Compose files directly in the UI as easily.
How does Yacht compare to Portainer?
Yacht is simpler with better app templates. Portainer is more feature-complete with Swarm/K8s support, RBAC, and active development. See our Portainer vs Yacht comparison.
Does Yacht support ARM/Raspberry Pi?
Yes. The selfhostedpro/yacht image is available for both amd64 and arm64 architectures.
Related
Get self-hosting tips in your inbox
New guides, comparisons, and setup tutorials — delivered weekly. No spam.