Zurück zum Ranking

Yacht-sh/Yacht

Vue

A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. Think of it like a decentralized app store for servers that anyone can make packages for.

dockerflaskpythonwebinterfacedocker-deploymentvuejsyachtappstorejwt-authenticationhacktoberfest
Sterne-Wachstum
Sterne
3.9k
Forks
170
Wochenwachstum
Issues
2
1k2k3k
Sept. 25Dez. 25Apr. 26Juli 26
README

logo

Open Collective

Yacht

Yacht is a container management UI with a focus on templates and 1-click deployments.

The current develop branch supports two host management modes:

  • direct Docker API hosts added manually in the UI
  • agent-managed hosts where a yacht-agent container connects back to the main Yacht server

Project Status

This application had gone unmaintained for a while. The current work on develop is focused on bringing dependencies, workflows, and security posture back up to date.

The rewrite effort is being explored in Yacht-sh/yacht-nuxt.

The installation docs currently live at dev.yacht.sh.

Repo-local documentation now lives in docs/. Operational wiki pages for the current develop branch live in wiki/.

Demo

Tempaltes

Installation

Currently only Linux has been verified as working, but Windows support is still being evaluated.

Installation documentation can be found here.

Check out the getting started guide if this is the first time you've used Yacht: dev.yacht.sh/docs/Installation/Getting_Started

We can also be found on Linode

<img src="https://www.linode.com/wp-content/uploads/2021/01/Linode-Logo-Black.svg" width="200" >

Agent Architecture

The main Yacht container is the control plane. It hosts the web UI, API, auth, and database.

Remote Docker hosts can run a separate yacht-agent container that:

  • mounts the local Docker socket
  • registers with the main Yacht server using a shared enrollment token
  • keeps host inventory in sync
  • executes container actions locally after the server queues a job

This avoids exposing the remote Docker API directly when you do not want to.

Current agent-backed write support on develop covers container actions:

  • start
  • stop
  • restart
  • kill
  • remove

Agent Deployment

Set AGENT_ENROLLMENT_TOKEN on the main Yacht server first. The agent must use the same token through YACHT_AGENT_ENROLLMENT_TOKEN.

Example agent deployment:

services:
  yacht-agent:
    image: ghcr.io/yacht-sh/yacht-agent:dev-latest
    container_name: yacht-agent
    restart: unless-stopped
    environment:
      YACHT_SERVER_URL: https://yacht.example.com
      YACHT_AGENT_ENROLLMENT_TOKEN: replace-with-shared-enrollment-token
      YACHT_AGENT_NAME: edge-docker-01
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - yacht-agent-config:/config

volumes:
  yacht-agent-config:

Agent-managed hosts self-register. You do not create them manually from the Hosts form.

Features So Far

  • Vuetify UI Framework
  • Basic Container Management
  • Template Framework
  • Easy Template Updating
  • Centralized settings for volume management and similar QOL functionality.
  • Docker-Compose Compatibility
  • Advanced Container Management (Edit/Modify)

Planned Features

  • Container Monitoring
  • Easy access to container CLI
  • User Management
  • Scheduled Jobs

If you want something that's not planned please open a feature request issue and we'll see about getting it added.

Templating

Currently Yacht is compatible with Portainer templates. You'll add a template URL in the "Add Template" settings. The template will be read, separated into apps, and imported into the database. The apps associated with the templates are linked via a db relationship so when the template is removed, so are the apps associated with it. We store the template URL as well so we can enable updating templates with a button press.

We recommend starting with:

https://raw.githubusercontent.com/wickedyoda/selfhosted_templates/yacht/Template/template.json

In templates you are able to define variables (starting with !) to have them automatically replaced by whatever variable the user has set in their server settings. For example, !config will be replaced by /yacht/AppData/Config by default.

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

Supported Environment Variables

You can utilize the following environment variables in Yacht. None of them are mandatory.

Variable Description
PUID Set userid that the container will run as.
PGID Set groupid that the container will run as.
SECRET_KEY Setting this to a random string ensures you won't be logged out in between reboots of Yacht.
ADMIN_EMAIL This sets the email for the default Yacht user.
AGENT_ENROLLMENT_TOKEN Shared secret used by yacht-agent containers when they first register with the main Yacht server.
DISABLE_AUTH This disables authentication on the backend of Yacht. It's not recommended unless you're using something like Authelia to manage authentication.
DATABASE_URL If you want to have Yacht use a database like SQL instead of the built in sqlite, you can put that info here in the following format: postgresql://user:password@postgresserver/db
COMPOSE_DIR This is the path inside the container which contains your folders that have docker compose projects. (compose tag only)

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, you're essentially inside a Linux machine accessing a Windows file system. You will need to run this 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

Update button not working?

If the built in update button isn't working for you try the following command:

docker run --rm -d -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:latest --cleanup --run-once <container-name>

License

Creative Commons Attribution 4.0 International License

Ähnliche Repositories
louislam/uptime-kuma

A fancy self-hosted monitoring tool

JavaScriptnpmMIT Licenseuptimemonitoring
uptime.kuma.pet
89.4k8.1k
Stirling-Tools/Stirling-PDF

#1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

JavaMavenOtherdockerjava
stirling.com
87.7k7.8k
macrozheng/mall

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于Spring Boot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

JavaMavenApache License 2.0spring-bootspring-security
macrozheng.com/admin/
84.3k29.8k
bregman-arie/devops-exercises

Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions

PythonPyPIOtherdevopsaws
83.3k19.8k
netdata/netdata

The fastest path to AI-powered full stack observability, even for lean teams.

GoGo ModulesGNU General Public License v3.0monitoringdocker
netdata.cloud
79.8k6.5k
moby/moby

The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

GoGo ModulesApache License 2.0dockercontainers
mobyproject.org
71.9k19k
traefik/traefik

The Cloud Native Application Proxy

GoGo ModulesMIT Licensemicroservicedocker
traefik.io
64.1k6.1k
dani-garcia/vaultwarden

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

Rustcrates.ioGNU Affero General Public License v3.0vaultwardenbitwarden
64k3k
usememos/memos

Open-source, self-hosted note-taking tool built for quick capture. Markdown-native, lightweight, and fully yours.

GoGo ModulesMIT Licensereactgo
usememos.com
61.7k4.6k
sansan0/TrendRadar

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。

PythonPyPIGNU General Public License v3.0data-analysispython
trendradar.sandev.cc
60.8k24.8k
coollabsio/coolify

An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 280+ one-click services on your own servers.

PHPPackagistApache License 2.0nodejsmysql
coolify.io
59.2k5.1k
appwrite/appwrite

Appwrite® - complete cloud infrastructure for your web, mobile and AI apps. Including Auth, Databases, Storage, Functions, Messaging, Hosting, Realtime and more

TypeScriptnpmBSD 3-Clause "New" or "Revised" Licenseappwritedocker
appwrite.io
56.6k5.6k