{"id":13446712,"url":"https://github.com/SelfhostedPro/Yacht","last_synced_at":"2025-03-21T16:32:46.807Z","repository":{"id":37278470,"uuid":"271828590","full_name":"SelfhostedPro/Yacht","owner":"SelfhostedPro","description":"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.","archived":false,"fork":false,"pushed_at":"2024-10-24T23:00:39.000Z","size":78029,"stargazers_count":3423,"open_issues_count":46,"forks_count":167,"subscribers_count":45,"default_branch":"master","last_synced_at":"2024-10-29T15:26:46.591Z","etag":null,"topics":["appstore","docker","docker-deployment","flask","hacktoberfest","jwt-authentication","python","vuejs","webinterface","yacht"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SelfhostedPro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"SelfhostedPro","open_collective":"selfhostedpros"}},"created_at":"2020-06-12T15:16:49.000Z","updated_at":"2024-10-29T12:07:23.000Z","dependencies_parsed_at":"2023-10-01T16:14:11.856Z","dependency_job_id":"43feacd0-b33d-4787-8460-dcf36a7676c7","html_url":"https://github.com/SelfhostedPro/Yacht","commit_stats":{"total_commits":482,"total_committers":11,"mean_commits":43.81818181818182,"dds":0.2116182572614108,"last_synced_commit":"d51ff67fbbd9b7f99fad8ac532a387af5194f590"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":"hack4impact/flask-base","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SelfhostedPro%2FYacht","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SelfhostedPro%2FYacht/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SelfhostedPro%2FYacht/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SelfhostedPro%2FYacht/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SelfhostedPro","download_url":"https://codeload.github.com/SelfhostedPro/Yacht/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244505946,"owners_count":20463463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appstore","docker","docker-deployment","flask","hacktoberfest","jwt-authentication","python","vuejs","webinterface","yacht"],"created_at":"2024-07-31T05:00:57.899Z","updated_at":"2025-03-21T16:32:46.783Z","avatar_url":"https://github.com/SelfhostedPro.png","language":"Vue","readme":"![logo](https://raw.githubusercontent.com/SelfhostedPro/Yacht/master/readme_media/Yacht_logo_1_dark.png \"templates\")\n\n[![Docker Hub Pulls](https://img.shields.io/docker/pulls/selfhostedpro/yacht?color=%2341B883\u0026label=Docker%20Pulls\u0026logo=docker\u0026logoColor=%2341B883\u0026style=for-the-badge)](https://hub.docker.com/r/selfhostedpro/yacht)\n[![Docker Image Size](https://img.shields.io/docker/image-size/selfhostedpro/yacht/vue?color=%2341B883\u0026label=Image%20Size\u0026logo=docker\u0026logoColor=%2341B883\u0026style=for-the-badge)](https://hub.docker.com/r/selfhostedpro/yacht)\n[![Open Collective](https://img.shields.io/opencollective/all/selfhostedpro.svg?color=%2341B883\u0026logoColor=%2341B883\u0026style=for-the-badge\u0026label=Supporters\u0026logo=open%20collective)](https://opencollective.com/selfhostedpro \"please consider helping me by either donating or contributing\")\n\n\u003ca href=\"https://m.do.co/c/d4aa430d72d9\"\u003e\n\u003cimg src=\"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.png\" width=\"30%\"  alt=\"Yacht Logo From Github\"/\u003e\n\u003c/a\u003e\n\n## Yacht\n\nYacht is a container management UI with a focus on templates and 1-click deployments.\n\n**I'm currently rewriting the backend in Typescript as an attempt to have a language that more people would contribute to. You can follow development of that [here](https://github.com/SelfhostedPro/yacht-nuxt).**\n\n**Please note, that while we are rewriting the back end. The Yacht.sh website is outdated on its instructions, please visit https://dev.yacht.sh for now. The main Yacht.sh site will be updated with the new release.**\n\n## Demo:\n\n![Tempaltes](https://raw.githubusercontent.com/SelfhostedPro/Yacht/master/readme_media/Yacht-Demo.gif \"templates\")\n\n## Installation:\n\nCurrently only linux has been verified as working but we are open to the idea of supporting windows eventually as well.\n\n**Keep in mind, this is an alpha so the risk of data loss is real and it may not be stable**\n\nInstallation documentation can be found [here](https://dev.yacht.sh/docs/Installation/Install).\n\nCheck out the getting started guide if this is the first time you've used Yacht: https://dev.yacht.sh/docs/Installation/Getting_Started\n\n**Yacht is also available via the DigitalOcean marketplace:**\n\n[![DigitalOcean](https://raw.githubusercontent.com/SelfhostedPro/Yacht/master/readme_media/do-btn-blue.svg)](https://marketplace.digitalocean.com/apps/yacht?refcode=b68dee19dbf6)\n\n**We can also be found on Linode**\n\n[`\u003cimg src=\"https://www.linode.com/wp-content/uploads/2021/01/Linode-Logo-Black.svg\" width=\"200\" \u003e`](https://www.linode.com/marketplace/apps/selfhostedpro/yacht/)\n\n## Features So Far:\n\n* Vuetify UI Framework\n* Basic Container Management\n* Template Framework\n* Easy Template Updating\n* Centralized settings for volume management and similar QOL functionality.\n* Docker-Compose Compatibility\n* Advanced Container Management (Edit/Modify)\n\n## Planned Features:\n\n* Container Monitoring\n* Easy access to container interfaces\n* User Management\n* Scheduled Jobs\n\n*If you want something that's not planned please open a feature request issue and we'll see about getting it added.*\n\n## Templating:\n\nCurrently Yacht is compatible with portainer templates. You'll add a template url in the \"Add Template\" settings. The 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.\n\nWe recommend starting with:\n\n```\nhttps://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/yacht/Template/template.json\n```\n\nIn 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 (ie. `!config` will be replaced by `/yacht/AppData/Config` by default).\n\n## Notes for ARM devices\n\nIf you're on arm and graphs aren't showing up add the following to your cmdline.txt:\n\n```\ncgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1\n```\n\n## Supported Environment Variables\n\nYou can utilize the following environment variables in Yacht. None of them are mandatory.\n\n| Variable     | Description                                                                                                                                                                             |\n| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| PUID         | Set userid that the container will run as.                                                                                                                                              |\n| PGID         | Set groupid that the container will run as.                                                                                                                                             |\n| SECRET_KEY   | Setting this to a random string ensures you won't be logged out in between reboots of Yacht.                                                                                            |\n| ADMIN_EMAIL  | This sets the email for the default Yacht user.                                                                                                                                         |\n| DISABLE_AUTH | This disables authentication on the backend of Yacht. It's not recommended unless you're using something like Authelia to manage authentication.                                        |\n| DATABASE_URL | If you want to have Yacht use a database like SQL instead of the built in sqlite on you can put that info here in the following format:`postgresql://user:password@postgresserver/db` |\n| COMPOSE_DIR  | This is the path inside the container which contains your folders that have docker compose projects. (*compose tag only*)                                                             |\n\n## Notes for installing Docker and Yacht on WSL2 platform under Windows\n\nIf 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:\n\n```\n$ sudo usermod -aG docker $USER\n```\n\nAdditional information about this can be found in the [Post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall/)\n\n## Update button not working?\n\n*If the built in update button isn't working for you try the following command:*\n\n```\ndocker run --rm -d -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:latest --cleanup --run-once \u003ccontainer-name\u003e\n```\n\n## License\n\n[MIT License](LICENSE.md)\n","funding_links":["https://github.com/sponsors/SelfhostedPro","https://opencollective.com/selfhostedpros","https://opencollective.com/selfhostedpro"],"categories":["Container Operations","Vue","Docker","Tools for Self-Hosting","置顶","HarmonyOS","Apps","vuejs","python","Virtualization","Uncategorized"],"sub_categories":["User Interface","Containers","2、智能开发与部署","Windows Manager","Container","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSelfhostedPro%2FYacht","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSelfhostedPro%2FYacht","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSelfhostedPro%2FYacht/lists"}