Relaticle
팀과 AI 작업을 위한 오픈소스 CRM으로, 앱 사용·내장 채팅·39개 MCP 도구 연동이 가능하며 자체 호스팅으로 데이터 소유권을 보장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗To help people make and communicate automation decisions quickly and effectively.
Examples of automation decisions.
./go init
./go starthttp://localhost:3001/.RAILS_SERVER_PORT inside docker-compose.yml../go shell./go test./go lint./go help./go commands at the same time, cp docker-compose.local.example.yml docker-compose.local.yml in each; it drops the fixed db container name and host port 5434 that otherwise collide../go picks the file up automatically and it is gitignored.core-iacThis repo holds the Rails application code. The sibling core-iac repo holds the Infrastructure as Code (Terraform + Helm) that runs that code as the live site at automation-calculations.io.
The two repos meet at a Docker image on Docker Hub:
The Graphviz source is at docs/repo-relationship.dot; see the header of that file for the render command.
./go build prod produces a production image from Dockerfile.production. ./go push prod tags it as both :latest and a semver tag (e.g. 0.9.6-830) and pushes both to automationcalculationsci/automation-calculator on Docker Hub. CI (.circleci/config.yml) runs on an arm64 machine executor and, on main only, publishes with ./go push prod --multi-platform, so each tag is a multi-arch manifest (linux/amd64 + linux/arm64) that runs on either node architecture. The image repository name is defined in scripts/docker_hub.rb as the REPO constant.core-iac/helm/automation-calculator/ defines the Kubernetes resources (Deployment, Service, Ingress, ConfigMap, Secret). Its values.yaml points image.repository at the same Docker Hub repo above; the Terraform module core-iac/terraform/modules/aws/main_rails_app/ renders the chart with image.tag = var.app_version.core-iac/scripts/bump_app_docker_image_version.sh (or the _branch.sh variant) updates the app_version variable in the per-environment Terraform configs under core-iac/terraform/env/<env>/. A Terraform apply then triggers a new helm_release rollout, which causes Kubernetes to pull the new image tag.core-iac also provisions the VPC, EKS cluster, RDS PostgreSQL database, ALB ingress controller, and DNS — none of which live in this repo. The Rails app connects to the database via the DATABASE_URL secret rendered into the Helm release.| Concern | Repo |
|---|---|
| Rails app code, migrations, assets, tests | automation-calculator/ (this repo) |
| Dockerfiles for the app image | automation-calculator/ (this repo) |
| Helm chart describing the Kubernetes Deployment/Service/Ingress | core-iac/helm/automation-calculator/ |
Terraform for AWS (VPC, EKS, RDS, IAM) and the app's helm_release | core-iac/terraform/ |
| The image tag currently deployed to each environment | core-iac/terraform/env/<env>/ |
A change to a Ruby file → ship via this repo (build + push a new image, then bump app_version in core-iac). A change to how the app is deployed or to its surrounding cloud resources → ship via core-iac alone.
Inside this repo the Rails app exposes the same domain through two parallel stacks — an HTML interface with Devise session auth and a versioned JSON API with JWT auth — that share a single ActiveRecord domain. AutomationScenario belongs to a polymorphic owner (either a User or an anonymous Visitor), and the break-even math lives in the SolutionPair service.
The Graphviz source is at docs/app-structure.dot; render command is in the header.
Things worth knowing that the diagram does not spell out:
Visitable controller concern provides current_visitor / current_user_or_visitor so unauthenticated users can use the app immediately. A Visitor record (UUID + IP) is created on first visit and stored in session[:visitor_id]. Scenarios are not migrated to a User on signup.AutomationScenarioForGraphSerializer (including pre-computed intersection points) into a hidden #scenarioData element; automation_scenarios.coffee reads it on turbolinks:load and renders Plotly traces into #solutionsChart. The HTML page does not call the JSON API for chart data.SolutionPair#intersection_iteration solves (initial_cost₁ − initial_cost₂) / (iteration_cost₂ − iteration_cost₁), and Solution#cost_at(n) = initial_cost + iteration_cost * n is the linear cost line each pair intersects../go test, ./go shell or a similar command, you will see Could not find NEW_GEM_DEPENDENCY_NAME_HERE../go build to update your development docker image to include the new dependency../go start starts the development container, but it stops with exit code 1 after a few seconds. You check the logs and see a message like: A server is already running. Check /usr/src/app/tmp/pids/server.pid../go shell, cd /usr/src/app/tmp/pids, rm server.pid. Then exit the shell container and run ./go start again.ERROR: Service 'dev' failed to build: The command '/bin/sh -c useradd -ms /bin/bash $username' returned a non-zero code: 2 when running a command like ./go test or ./go start../go init before running any other ./go commands.