Yacht is a container management UI with a focus on making selfhosting easy.
This is an alpha version of Yacht that will be replacing the current version. If you're looking for something more stable please use the current recommended version.
docker volume create yacht_data
docker run -d --name yacht \
--restart unless-stopped \
-p 3000:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /config:yacht_data \
ghcr.io/selfhostedpro/yacht-api:main
- Basic Container Management
- Authentication
- Stats
- API with documentation (/api/docs on your local instance)
- Easy access to container interfaces
- User Management
- Multi-Server Support
- Integration with selfhosted platforms
- Revised templating engine
If you're on arm and graphs aren't showing up add the following to your cmdline.txt:
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
If you’re running under WSL2 inside Windows, because of the difference in how permissions are handled. Your essentially inside of a Linux machine accessing a Windows file system. You will need to run after installation before adding the Yacht container:
$ sudo usermod -aG docker $USER
Additional information about this can be found in the Post-installation steps for Linux
All development should be done on your own fork of yacht and submitted via a PR. If you're not familiar with how to do this, there's a good article here
├── Dockerfile # Used for building the image
├── pnpm-lock.yaml # Used for managing dependancies for all the parts of Yacht
├── pnpm-workspace.yaml # Used for defining the different parts of Yacht
├── root # Used to initialize the container from LSIO baseimages
├── server # The backend API built in NestJS
├── types # Shared info between the frontend and backend
└── ui # Frontend UI built in Vue3
For information on working with each part of yacht see the respective README.md in each folder (WIP). To get it running in your environment quickly you can just do the following:
npm i -g pnpm
pnpm i
pnpm --filter @yacht/server run start:dev # Start the backend on :3000
pnpm --filter @yacht/ui run dev # Start the frontend on :5000
Note: when running in docker, the backend serves the frontend utilizing serve-static.