Skip to content

SelfhostedPro/yacht-api

Repository files navigation

logo

Docker Hub Pulls Discord Docker Image Size Open Collective

Yacht

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.

Installation:

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

Features So Far:

  • Basic Container Management
  • Authentication
  • Stats
  • API with documentation (/api/docs on your local instance)

Planned Features:

  • Easy access to container interfaces
  • User Management
  • Multi-Server Support
  • Integration with selfhosted platforms
  • Revised templating engine

Notes for ARM devices

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

Notes for installing Docker and Yacht on WSL2 platform under Windows

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

Development

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

Anatomy

├── 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.

License

MIT License

About

Backend API for Yacht

Resources

Stars

Watchers

Forks

Releases

No releases published