{"id":44432885,"url":"https://github.com/epos-eric/epos-opensource","last_synced_at":"2026-04-07T18:01:07.360Z","repository":{"id":300032710,"uuid":"1004343966","full_name":"EPOS-ERIC/epos-opensource","owner":"EPOS-ERIC","description":"EPOS OpenSource CLI to deploy on Docker and Kubernetes","archived":false,"fork":false,"pushed_at":"2026-04-01T17:24:24.000Z","size":415,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-02T02:34:46.702Z","etag":null,"topics":["cli","deployment-automation","docker-compose","kubernetes","self-hosted"],"latest_commit_sha":null,"homepage":"https://epos-eric.github.io/opensource-docs/documentation/installation","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EPOS-ERIC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-18T13:33:07.000Z","updated_at":"2026-04-01T17:24:29.000Z","dependencies_parsed_at":"2025-06-19T14:50:34.188Z","dependency_job_id":"308cbf32-dc47-44c2-af2a-56d58cecf602","html_url":"https://github.com/EPOS-ERIC/epos-opensource","commit_stats":null,"previous_names":["epos-eu/epos-opensource","epos-eric/epos-opensource"],"tags_count":50,"template":false,"template_full_name":null,"purl":"pkg:github/EPOS-ERIC/epos-opensource","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EPOS-ERIC%2Fepos-opensource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EPOS-ERIC%2Fepos-opensource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EPOS-ERIC%2Fepos-opensource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EPOS-ERIC%2Fepos-opensource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EPOS-ERIC","download_url":"https://codeload.github.com/EPOS-ERIC/epos-opensource/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EPOS-ERIC%2Fepos-opensource/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31522574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cli","deployment-automation","docker-compose","kubernetes","self-hosted"],"created_at":"2026-02-12T13:41:41.948Z","updated_at":"2026-04-07T18:01:07.351Z","avatar_url":"https://github.com/EPOS-ERIC.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EPOS Open Source CLI\n\nA command-line tool for deploying the EPOS Platform locally using Docker Compose or K8s.\n\n![Image](https://epos-eric.github.io/opensource-docs/assets/images/docker_deploy_urls-2450973de00d8b8da4bc1e0ae57eae47.png)\n\n---\n\n## 🚀 Quick Start\n\nRun the CLI without arguments to launch the interactive TUI, or use subcommands for CLI operations.\n\n**Install the CLI (Linux/macOS/WSL):**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/EPOS-ERIC/epos-opensource/main/install.sh | bash\n```\n\n**Check installation:**\n\n```bash\nepos-opensource --version\n```\n\n---\n\n## Terminal User Interface (TUI)\n\nFor an interactive experience, just run\n\n```\nepos-opensource\n```\n\nto launch the TUI. This provides a menu-driven interface for managing environments, equivalent to CLI commands but with intuitive navigation and visuals.\n\n![TUI Screenshot](https://github.com/user-attachments/assets/0aac599a-03bf-4f72-987b-8d14f014b5e8)\n\n---\n\n**Deploy a local environment with Docker Compose:**\n\n```bash\nepos-opensource docker deploy myenv\n```\n\n**Populate it with your own data:**\n\n```bash\nepos-opensource docker populate myenv /path/to/ttl/files\n```\n\n---\n\n## What is EPOS Open Source CLI?\n\nA command-line tool to deploy and manage EPOS Platform environments on your computer or in a cluster, using Docker Compose (rendered from Go templates) or K8s (deployed from an embedded Helm chart).\n\n## Usage Requirements\n\n- **Docker** and **Docker Compose** (for Docker-based setups)\n- **kubectl** and access to a K8s cluster (for K8s-based setups)\n\n---\n\n## Installation\n\n### Easiest: Installation Script\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/EPOS-ERIC/epos-opensource/main/install.sh | bash\n```\n\n_This script works on Linux, macOS, and WSL. It will update the CLI if already installed._\n\n\u003e [!IMPORTANT]\n\u003e ALWAYS REVIEW SCRIPTS YOURSELF BEFORE EXECUTING THEM ON YOUR SYSTEM!\n\n### Using Go\n\n```shell\ngo install github.com/EPOS-ERIC/epos-opensource@latest\n```\n\n_Make sure `$GOPATH/bin` or `$HOME/go/bin` is in your `$PATH`._\n\n### Pre-built Binaries\n\n1. Download the appropriate archive from the [releases](https://github.com/EPOS-ERIC/epos-opensource/releases).\n2. Make the binary executable and move it to your `$PATH`:\n\n   ```shell\n   chmod +x epos-opensource-{your version}\n   mv epos-opensource-{your version} /usr/local/bin/epos-opensource\n   ```\n\n3. Verify the installation:\n\n   ```shell\n   epos-opensource --version\n   ```\n\n### Build from source\n\nBuild using `make` with Go 1.25.4 or later:\n\n```shell\nmake build\n```\n\n---\n\n## Commands\n\nThe CLI is organized into two main commands: `docker` and `k8s`. Each has its own set of subcommands for managing environments. These commands work in both CLI and TUI modes.\n\n### Docker Commands\n\n| Command    | Description                                                         |\n| :--------- | :------------------------------------------------------------------ |\n| `deploy`   | Create a new environment using Docker Compose.                      |\n| `populate` | Ingest TTL files from directories or files into an environment.     |\n| `clean`    | Clean the data of an environment.                                   |\n| `delete`   | Stop and remove Docker Compose environments.                        |\n| `export`   | Export default Docker config (`docker-config.yaml`) to a directory. |\n| `get`      | Get the currently applied Docker environment configuration.         |\n| `list`     | List installed Docker environments.                                 |\n| `render`   | Render `.env` and `docker-compose.yaml` from configuration.         |\n| `update`   | Recreate an environment with new settings.                          |\n\n**Example:**\n\n```shell\n# Deploy a new Docker environment named \"my-test\"\nepos-opensource docker deploy my-test\n\n# Populate it with data\nepos-opensource docker populate my-test /path/to/my/data\n```\n\n### K8s Commands\n\n| Command    | Description                                                       |\n| :--------- | :---------------------------------------------------------------- |\n| `deploy`   | Create and deploy a new K8s environment in a dedicated namespace. |\n| `populate` | Ingest TTL files from directories or files into an environment.   |\n| `clean`    | Clean the data of an environment.                                 |\n| `delete`   | Remove K8s environments and all their namespaces.                 |\n| `export`   | Export default K8s config (`k8s-config.yaml`) to a directory.     |\n| `get`      | Get the currently applied K8s environment configuration.          |\n| `list`     | List installed K8s environments.                                  |\n| `render`   | Render Kubernetes manifests from embedded Helm templates.         |\n| `update`   | Update and redeploy an existing K8s environment.                  |\n\n**Example:**\n\n```shell\n# Deploy a new K8s environment named \"my-cluster\"\nepos-opensource k8s deploy my-cluster\n\n# Populate it with data\nepos-opensource k8s populate my-cluster /path/to/my/data\n```\n\n### Getting Help\n\nFor more details on any command, use the `--help` flag:\n\n```shell\nepos-opensource --help\nepos-opensource docker --help\nepos-opensource k8s deploy --help\n```\n\n### Config-First Workflow\n\nUse this flow when you want to customize environments before deployment:\n\n```shell\n# 1) Export default config templates\nepos-opensource docker export ./out\nepos-opensource k8s export ./out\n\n# 2) Edit generated files\n# - ./out/docker-config.yaml\n# - ./out/k8s-config.yaml\n\n# 3) Render output without deploying\nepos-opensource docker render my-docker -c ./out/docker-config.yaml -o ./rendered/docker\nepos-opensource k8s render my-k8s -c ./out/k8s-config.yaml -o ./rendered/k8s\n\n# 4) Deploy using your config\nepos-opensource docker deploy my-docker --config ./out/docker-config.yaml\nepos-opensource k8s deploy my-k8s --config ./out/k8s-config.yaml\n```\n\nUse `get` to inspect and export the currently applied config:\n\n```shell\nepos-opensource docker get my-docker --output ./applied-docker.yaml\nepos-opensource k8s get my-k8s --output ./applied-k8s.yaml\n```\n\n---\n\n## Troubleshooting \u0026 Tips\n\n- **Docker/K8s not found:** Make sure Docker and/or kubectl are installed and running.\n- **Environment/Directory already exists:** Use a new name, or delete the old environment first.\n- **Problems with `.ttl` files:** Make sure the directory exists and contains valid `.ttl` files and that their paths are valid (no spaces, weird symbols, ...).\n- **Environment not found/Does not exist:** Make sure you run commands as the same user. The CLI uses a user-level SQLite database to store environment information.\n\nIf you get stuck, run with `--help` for more info, or feel free to [open an issue](https://github.com/EPOS-ERIC/epos-opensource/issues).\n\n---\n\n## Development\n\nFollow these steps to set up your local development environment and enable the shared Git hooks.\n\n### Prerequisites\n\n- **Go 1.25.4+**\n- **Make**\n- **golangci‑lint**\n\n### Clone \u0026 Enter the Repo\n\n```bash\ngit clone https://github.com/EPOS-ERIC/epos-opensource.git\ncd epos-opensource\n```\n\n### Install the Shared Git Hooks\n\nWe include a set of pre‑commit hooks under `.githooks/` that will automatically run your Makefile checks before each commit:\n\n```bash\ngit config core.hooksPath .githooks\n```\n\n### Makefile Targets\n\nOur `Makefile` provides common commands for development like:\n\n- **`make build`**\n  Compile the CLI binary.\n\n- **`make test`**\n  Run all tests.\n\n- **`make lint`**\n  Execute linters (using `golangci-lint`).\n\n### Workflow\n\n1. **Edit code** in your favorite editor.\n2. **Run** your chosen `make` targets to verify everything passes.\n3. **Commit:** the pre‑commit hook will automatically invoke `make lint test`.\n4. **Push** your changes when you're ready.\n\n---\n\n## Contributions Welcome\n\nWe welcome all contributions, including bug reports, feature ideas, documentation, or code changes.\n\nIf you have questions or are unsure how to get started, feel free to [open an issue](https://github.com/EPOS-ERIC/epos-opensource/issues). We are happy to assist!\n\n## Contributing\n\n1. Fork the repository and clone it locally.\n2. Create a new branch from `main` or `develop`.\n3. Make your changes and follow the existing code style.\n4. Add or update tests and documentation as needed.\n5. Commit your changes using clear, present-tense messages.\n6. Push your branch and open a pull request.\n\nBefore submitting:\n\n- Pull the latest changes from upstream.\n- Squash commits if needed.\n- Ensure all tests pass.\n\nAfter submitting:\n\n- Address any feedback on your pull request.\n- Update your branch until it is approved and merged.\n\nThank you for your contribution!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepos-eric%2Fepos-opensource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepos-eric%2Fepos-opensource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepos-eric%2Fepos-opensource/lists"}