{"id":24508487,"url":"https://github.com/aplbrain/automatizar","last_synced_at":"2026-02-08T00:33:37.627Z","repository":{"id":218562080,"uuid":"151099985","full_name":"aplbrain/automatizar","owner":"aplbrain","description":"colocard automation scripts","archived":false,"fork":false,"pushed_at":"2022-09-30T21:01:30.000Z","size":57,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-31T11:36:54.611Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aplbrain.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}},"created_at":"2018-10-01T14:13:05.000Z","updated_at":"2024-01-22T15:12:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"e3fbf640-b452-445d-99be-b9a967f6504c","html_url":"https://github.com/aplbrain/automatizar","commit_stats":null,"previous_names":["aplbrain/automatizar"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aplbrain/automatizar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fautomatizar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fautomatizar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fautomatizar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fautomatizar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aplbrain","download_url":"https://codeload.github.com/aplbrain/automatizar/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fautomatizar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29214394,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T00:10:47.190Z","status":"ssl_error","status_checked_at":"2026-02-08T00:10:43.589Z","response_time":63,"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":[],"created_at":"2025-01-22T00:16:40.333Z","updated_at":"2026-02-08T00:33:37.621Z","avatar_url":"https://github.com/aplbrain.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automatizar\n\nAutomatizar contains docker-compose and automation scripts for deploying colocard and supporting services in a production environment.\n\n## Project Organization\n\nProduction colocard consists of four sets of services deployed in docker containers using docker-compose.\n\n1. colocard service set\n    1. colocard web server\n    2. keycloak-proxy.js server (authentication)\n    3. mongodb database\n    4. mongo-grove (automated mongodb backup)\n2. elastic stack service set\n    1. elasticsearch\n    2. logstash\n    3. kibana\n3. nginx reverse proxy service set\n    1. nginx web server\n    2. docker-gen\n    3. letsencrypt-nginx-proxy-companion\n4. elastic beats service set\n    1. filebeat\n\n### colocard Service Set\n\nProject location: `colocard/`\n\nThe colocard service set is defined in the `docker-compose.yml` file under the `colocard` directory. This service set is responsible for running the colocard API server and associated services, including a mongodb database, a Keycloak authentication proxy using keycloak-proxy.js, and mongo-grove, an automated mongodb backup service. All services run on the colocard network, which must be created before starting the services for the first time (detailed below).\n\nAll configuration files are stored under the `configs` directory. Currently, this includes configuration settings for the colocard API server and keycloak-proxy.js.\n\n### Elastic Stack Service Set\n\nProject location: `elk/`\n\nThe elastic stack service set is defined in the `docker-compose.yml` file under the `elk` directory. This service set is responsible for collecting, transforming, storing, and indexing logs produced by the colocard and nginx service sets using the elastic stack: elasticsearch, logstash, and kibana. All services run on the elk network, which must be created before starting the services for the first time (detailed below).\n\nAll configuration files are stored under the `configs` directory. Currently, this includes the logstash pipeline configuration.\n\n### NGINX Service Set\n\nProject location: `nginx/`\n\nThe NGINX service set is defined in the `docker-compose.yml` file under the `nginx` directory. This service set is responsible for acting as a reverse proxy and TLS endpoint for the colocard and elk service sets. Three services run: an NGINX web server; docker-gen, which automatically generates the reverse proxy configurations for NGINX; and letsencrypt-nginx-proxy-companion, which automatically generates TLS certificates using LetsEncrypt for each virtual host. This service set connects to both the colocard and elk networks.\n\nAll configuration files are stored under the `configs` directory. Currently, this includes the docker-gen NGINX template file, and a proxy-wide NGINX configuration file. As of now, the NGINX configuration file must be manually copied to docker-mounted `conf.d` directory.\n\n### Elastic Beats Service Set\n\nProject location: `beats/`\n\nThe elastic beats service set is defined in the `docker-compose.yml` file under the `beats` directory. This service set is responsible for collecting and sending logs (and potentially other information in the future) to the elastic stack service set. Currently, the only service that runs is Filebeat. This service set connects to both the colocard and elk networks.\n\n## Getting Started\n\nFirst, create the following Docker networks.\n\n```sh\ndocker network create colocard\ndocker network create elk\n```\n\nWe create custom networks as opposed to letting docker-compose do it for us due to the fact that we'll have four service sets running out of different directories that need to communicate with each other.\n\nNext, we'll begin launching the services. Theoretically, the order the are started in shouldn't matter; however, to be on the safe side, launch them in the following order:\n\n1. elastic stack service set\n2. colocard service set.\n3. nginx service set.\n4. elastic beats service set.\n\nAll services sets can be started by issuing the following command in their respective project directories:\n\n```sh\ndocker-compose up -d\n```\n\n### Elastic Stack Service Set First-time Setup\n\nWhen you launch the elastic stack service set for the first time, several commands must be run to initialize elasticsearch and kibana to optimally work with the beats defined in the elastic beats service stack. Run the following commands:\n\n```sh\ndocker run --rm --network=elk docker.elastic.co/beats/filebeat:7.7.0 setup --index-management \\\n    -E output.logstash.enabled=false \\\n    -E 'output.elasticsearch.hosts=[\"elasticsearch:9200\"]'\ndocker run --rm --network=elk docker.elastic.co/beats/filebeat:7.7.0 setup -e \\\n    -E output.logstash.enabled=false \\\n    -E 'output.elasticsearch.hosts=[\"elasticsearch:9200\"]' \\\n    -E setup.kibana.host=\"kibana:5601\"\n```\n\n### NGINX Service Set First-time Setup\n\ncolocard responses can have very large responses when a user submits a large query. By default, nginx's response buffer size is not large enough to handle queries analysts may sometimes run. Included in the `configs` directory under the nginx project directory is a conf file which greatly increases the default buffer sizes for nginx. Currently, this file must be manually copied to the appropriate directory. Once the nginx service set has been launched, copy the `buffers.conf` file to `/etc/nginx/conf.d` directory in the nginx container.\n\n```sh\ndocker cp configs/buffers.conf nginx-web:/etc/nginx/conf.d/buffers.conf\n# for good measure\ndocker exec nginx-web chown root:root /etc/nginx/conf.d/buffers.conf\ndocker exec nginx-web chmod 0644 /etc/nginx/conf.d/buffers.conf\n```\n\nOnce you have copied the config file, restart the nginx container.\n\n```sh\ndocker-compose restart nginx-web\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faplbrain%2Fautomatizar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faplbrain%2Fautomatizar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faplbrain%2Fautomatizar/lists"}