{"slug": "self-host-a-tui-and-agent-skill-for-trying-self-hosted-apps", "title": "self-host: a TUI and agent skill for trying self-hosted apps", "summary": "Developer ajnart released self-host, an Apache-2.0 Go CLI with a terminal interface that uses Docker Compose to install and run self-hosted apps, alongside an optional agent skill for coding assistants. The tool's catalog covers 90+ apps, including Immich as a Google Photos alternative and Nextcloud for files, and the agent guide requires a plan and approval before changes, with loading the skill not counting as approval. The standalone release binaries are unsigned but ship with checksums, and the author notes known gaps in the media hardlink layout and in routing downloads through Gluetun, where installing the VPN alone does not mean another app uses it.", "body_md": "I built self-host.fyi to help people move to self-hosted apps. It’s a downloadable Go CLI with a terminal interface, using Docker Compose underneath. There’s also an optional agent skill if you’d rather ask your coding agent for help than learn another interface.\n\nFor example, a suitable old laptop could become a place to try Immich as an alternative to Google Photos, or Nextcloud for your files. The idea is to try the software before deciding whether to continue paying a subscription for data you own. Hardware, storage, backups and ongoing maintenance still matter.\n\nThe part I wanted to make reusable is what happens after containers start: initial accounts, generated passwords, API keys and supported connections between Apps. Some steps still need a person. The agent guide asks for a plan and approval before changes; loading the skill is not approval.\n\nI originally needed this for testing Homarr integrations, then adapted it because I thought it could help other people explore self-hosting. There are 90+ Apps in the Catalog. You can use the CLI/TUI without an agent.\n\nTo try it, review the source and installation instructions in the repository, install the CLI on a machine with Docker and Compose, then use the TUI or load the skill. An example request is: “Help me set up Immich on this machine so I can try hosting my own photos.” This starts a guided task, not a guarantee of a complete setup without your input.\n\nSource and license: [GitHub - ajnart/self-host: Replace the SaaS you pay for. One binary installs and runs self-hosted apps at home, no Docker knowledge needed. Terminal dashboard for you, plain commands for your agent. · GitHub](https://github.com/ajnart/self-host) (Apache-2.0)\n\nOverview and demo: [https://self-host.fyi](https://self-host.fyi)\n\nThe standalone release binaries are unsigned. Releases provide checksums, and the source is available to review or build yourself. This is my project, not a community endorsement.\n\nAI helped develop the project and organize this post from my own explanation. The images below show the terminal interface and Setup in progress, not proof of a finished installation. In particular, the media hardlink layout and downloader routing through Gluetun have known gaps; installing Gluetun alone does not mean another App uses its VPN.", "url": "https://wpnews.pro/news/self-host-a-tui-and-agent-skill-for-trying-self-hosted-apps", "canonical_source": "https://linuxcommunity.io/t/self-host-a-tui-and-agent-skill-for-trying-self-hosted-apps/13158#post_2", "published_at": "2026-11-02 13:47:39+00:00", "updated_at": "2026-11-02 13:52:32.962417+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools"], "entities": ["self-host", "ajnart", "Immich", "Nextcloud", "Google Photos", "Homarr", "Gluetun", "Docker Compose"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/self-host-a-tui-and-agent-skill-for-trying-self-hosted-apps", "markdown": "https://wpnews.pro/news/self-host-a-tui-and-agent-skill-for-trying-self-hosted-apps.md", "text": "https://wpnews.pro/news/self-host-a-tui-and-agent-skill-for-trying-self-hosted-apps.txt", "jsonld": "https://wpnews.pro/news/self-host-a-tui-and-agent-skill-for-trying-self-hosted-apps.jsonld"}}