{"id":24194384,"url":"https://github.com/alexandreh2ag/lets-go-tls","last_synced_at":"2026-06-10T04:31:07.101Z","repository":{"id":272026961,"uuid":"915293277","full_name":"alexandreh2ag/lets-go-tls","owner":"alexandreh2ag","description":"Tool designed to centralize the management of TLS certificates","archived":false,"fork":false,"pushed_at":"2026-04-01T06:58:51.000Z","size":14776,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-01T09:29:24.014Z","etag":null,"topics":["acme","agent","centralized","certificate","go","golang","letsencrypt","server","ssl","tls"],"latest_commit_sha":null,"homepage":"","language":"Go","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/alexandreh2ag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-01-11T13:29:05.000Z","updated_at":"2026-04-01T06:55:54.000Z","dependencies_parsed_at":"2025-03-03T07:10:34.767Z","dependency_job_id":"85da2983-0136-4262-820d-111c37a328dc","html_url":"https://github.com/alexandreh2ag/lets-go-tls","commit_stats":null,"previous_names":["alexandreh2ag/lets-go-tls"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/alexandreh2ag/lets-go-tls","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandreh2ag%2Flets-go-tls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandreh2ag%2Flets-go-tls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandreh2ag%2Flets-go-tls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandreh2ag%2Flets-go-tls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexandreh2ag","download_url":"https://codeload.github.com/alexandreh2ag/lets-go-tls/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandreh2ag%2Flets-go-tls/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34137570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["acme","agent","centralized","certificate","go","golang","letsencrypt","server","ssl","tls"],"created_at":"2025-01-13T18:25:28.348Z","updated_at":"2026-06-10T04:31:07.093Z","avatar_url":"https://github.com/alexandreh2ag.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Let's Go TLS\n\n**Let's Go TLS** is a Golang-based tool designed to centralize the management of TLS certificates. This project simplifies the process of obtaining, distributing, and managing TLS certificates across multiple services. The tool is composed of two main components: the Server and the Agent.\n\n## Features\n\n- Centralized TLS certificate management\n- Automated certificate issuance via Let's Encrypt\n- Secure storage and distribution of certificates\n- Support for various certificate request methods (HTTP calls, files, etc.)\n\n## Components\n\n### Server\nThe Server component handles the core certificate management tasks:\n\n- Receives certificate requests from Agents.\n- Obtains TLS certificates from Let's Encrypt.\n- Stores certificates securely.\n- Distributes certificates to requesting Agents.\n- Cleanup unused certificates\n- Expose metrics\n\n### Agent\nThe Agent component is responsible for interacting with the Server and managing certificates locally:\n\n- Expose certificate requests to the Server.\n- Handles different types of certificate request methods (e.g., HTTP calls, files).\n- Stores the retrieved certificates from server in specified locations.\n- Makes certificates available to other services.\n- Cleanup unused certificates\n- Expose metrics\n\n## Configuration\n\n### Server Configuration\nThe Server can be configured via a `server.yaml` file, example can be found [here](examples/server.cfg.yml).\n\nYou can find details [here](docs/server_config.md).\n\n#### Cleanup\n\nWhen server process detect that a certificate is unused, it will mark as unused and delete it after `unused_retention` will be reach.\n\n### Agent Configuration\nThe Agent can be configured via a `agent.yaml` file, example can be found [here](examples/agent.cfg.yml).\n\nYou can find details [here](docs/agent_config.md).\n\n#### Cleanup\n\nWhen agent process detect that a certificate is unused, it will to remove files on all storages.\n\n## Installation\n\n* Run with docker:\n\n```bash\ndocker run -it -v ${PWD}:/config alexandreh2ag/lets-go-tls-server:${VERSION} start -c /config/server.yml\ndocker run -it -v ${PWD}:/config alexandreh2ag/lets-go-tls-agent:${VERSION} start -c /config/agent.yml\n```\n\n* Install binary to custom location:\n\n```bash\nexport DESTINATION=/usr/local/bin\n# latest\ncurl -L \"https://github.com/alexandreh2ag/lets-go-tls/releases/latest/download/lets-go-tls_server_$(uname -s)_$(uname -m)\" -o ${DESTINATION}/lets-go-tls_server\n# specific version\ncurl -L \"https://github.com/alexandreh2ag/lets-go-tls/releases/download/${VERSION}/lets-go-tls_server_$(uname -s)_$(uname -m)\" -o ${DESTINATION}/lets-go-tls_server\nchmod +x ${DESTINATION}/lets-go-tls_server\n\n# latest\ncurl -L \"https://github.com/alexandreh2ag/lets-go-tls/releases/latest/download/lets-go-tls_agent_$(uname -s)_$(uname -m)\" -o ${DESTINATION}/lets-go-tls_server\n# specific version\ncurl -L \"https://github.com/alexandreh2ag/lets-go-tls/releases/download/${VERSION}/lets-go-tls_agent_$(uname -s)_$(uname -m)\" -o ${DESTINATION}/lets-go-tls_agent\nchmod +x ${DESTINATION}/lets-go-tls_agent\n```\n\n## Usage\n\n1. Start the Server:\n```bash\n./lets-go-tls_server start -c ./server.yml\n   ```\n2. Configure and start the Agent:\n```bash\n./lets-go-tls_agent start -c ./agent.yml\n```\n\n### Server\n\n## Build\n\n### Prerequisites\n- Go 1.23 or later\n- Docker (optional, for containerized deployment)\n\n### Clone the Repository\n```bash\ngit clone https://github.com/alexandreh2ag/lets-go-tls.git\ncd lets-go-tls\n```\n\n### Build and Run\n\n#### Server\n```bash\ngo build -o dist/lets-go-tls_server apps/server/main.go\n\n# Run the server\n./dist/lets-go-tls_server -c ./server.yml\n```\n\n#### Agent\n```bash\ngo build -o dist/lets-go-tls_agent apps/agent/main.go\n\n# Run the agent\n./dist/lets-go-tls_agent -c ./agent.yml\n```\n\n### Tests\n\n```bash\n./bin/mock.sh\ngo test ./...\n```\n\n## Migrate\n\n### Certbot\n\n```bash\nlets-go-tls_server migrate --type certbot --path /etc/letsencrypt --output /tmp/server_state.json\n```\n\n### Traefik\n\n```bash\nlets-go-tls_server migrate --type traefik --path /etc/traefik/acme.json --output /tmp/server_state.json\n```\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request with any enhancements, bug fixes, or ideas.\n\n## License\n\nThis project is licensed under the MIT License. See the `LICENSE.md` file for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandreh2ag%2Flets-go-tls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandreh2ag%2Flets-go-tls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandreh2ag%2Flets-go-tls/lists"}