commit 79c1d4ac824b9295ad5b0efae825e1632b0e2e59 Author: chpark Date: Mon Apr 20 15:16:03 2026 +0900 feat: initial homepage with k8s auto-deploy - 반응형 랜딩 페이지 (hero, features, how-it-works, solutions, AI agent, use cases, architecture, testimonials, FAQ, CTA) - 모든 체험/로그인 CTA는 https://solution.invyone.com/login 으로 연결 - Dockerfile + nginx 설정으로 정적 파일 서빙 - k8s manifests (namespace/deployment/service NodePort 30082) - Gitea Actions 자동 배포 워크플로우 diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..ca23051 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,45 @@ +name: Build & Deploy Homepage + +on: + push: + branches: + - main + - master + +env: + REGISTRY: localhost:5000 + IMAGE: invyone/homepage + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set commit SHA + run: echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> $GITHUB_ENV + + - name: Build image + run: | + docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.SHORT_SHA }} . + + - name: Push image + run: | + docker push ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.SHORT_SHA }} + docker tag ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.SHORT_SHA }} ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + docker push ${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy to Kubernetes + run: | + export KUBECONFIG=/home/chpark/.kube/config + + kubectl apply -f k8s/namespace.yaml + kubectl apply -f k8s/deployment.yaml + kubectl apply -f k8s/service.yaml + + kubectl set image deployment/homepage \ + homepage=${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.SHORT_SHA }} \ + -n invyone-homepage + + kubectl rollout status deployment/homepage -n invyone-homepage --timeout=120s diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bb80c84 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +*.log +node_modules/ +.vscode/ +.idea/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3bd98b8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM nginx:1.27-alpine + +COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY homepage.html /usr/share/nginx/html/index.html + +EXPOSE 80 + +HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ + CMD wget -qO- http://localhost/ >/dev/null || exit 1 diff --git a/README.md b/README.md new file mode 100644 index 0000000..29dad2f --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# invyone homepage + +AI 에이전트 기반 노코드 엔터프라이즈 플랫폼 invyone의 랜딩 페이지. + +- 운영 도메인: https://www.invyone.com +- 솔루션(앱) 링크: https://solution.invyone.com/login + +## 배포 + +`main` 브랜치에 push하면 Gitea Actions가 자동으로: + +1. Docker 이미지 빌드 (`localhost:5000/invyone/homepage:`) +2. 로컬 레지스트리에 push +3. K8s `invyone-homepage` 네임스페이스로 rolling update + +## 로컬 미리보기 + +```bash +docker build -t invyone-homepage . +docker run --rm -p 8080:80 invyone-homepage +# → http://localhost:8080 +``` + +## 구조 + +``` +├── homepage.html # 정적 랜딩 페이지 +├── nginx.conf # nginx 설정 +├── Dockerfile # nginx:alpine 기반 이미지 +├── k8s/ # Kubernetes manifests +└── .gitea/workflows/ # Gitea Actions CI/CD +``` diff --git a/homepage.html b/homepage.html new file mode 100644 index 0000000..b537de4 --- /dev/null +++ b/homepage.html @@ -0,0 +1,1711 @@ + + + + + +invyone — AI 에이전트 기반 노코드 엔터프라이즈 플랫폼 + + + + + + + + + + +
+
+
+
+
+
+ +
+
+
+ + AI-Powered No-Code Enterprise Platform +
+

AI 에이전트로
업무 시스템을
코딩 없이 완성

+

+ 드래그앤드롭으로 화면을 설계하고, AI 에이전트가 데이터를 연계하며, + 복잡한 비즈니스 로직까지 자동으로 구현하는 차세대 노코드 플랫폼. +

+ +
+
설치 불필요
+
신용카드 불필요
+
14일 무료 체험
+
+
+ +
+
+
+
+
+
+
solution.invyone.com/dashboard
+
+
+
+ +
📊
대시보드
+
🎨
화면설계
+
🔗
외부연계
+
🤖
AI 에이전트
+
📄
레포트
+
+
+
+
실시간 운영 현황
+
Live
+
+
+
+
Active Users
+
12,438
+
+
+
+
Workflows
+
997
+
+
+
+
AI Tasks
+
2.1k
+
+
+
+
+
+
월별 처리량
+
+
AI
+
수동
+
+
+ + + + + + + + + + + +
+
+
+
+ +
+
🤖
+
+
AI 분석 완료
+ 3.2초 전 +
+
+
+
+
+
+28% 효율 향상
+ 이번 주 +
+
+
+
+
+
자동 배포됨
+ 방금 전 +
+
+
+
+
+ + +
+
다양한 산업 분야의 기업들이 invyone과 함께합니다
+
+
+ + + + + + + + + + + + + + + + +
+
+
+ + +
+
+
+
+
0+
+
운영 중인 업무 화면
+
+
+
0%
+
개발 기간 단축
+
+
+
0/7
+
AI 에이전트 자동화
+
+
+
0%
+
로컬 데이터 보호
+
+
+
+
+ + +
+
+
+
Why Invyone
+

기업이 필요로 하는
모든 것을 하나의 플랫폼에서

+

개발자 없이도 업무 화면 설계부터 외부 연계, AI 자동화, 보고서까지 완성합니다.

+
+
+
+ +
+
+
+
+
🎨
+

직관적인 노코드 설계

+

드래그앤드롭으로 업무 화면을 자유롭게 구성하고 즉시 배포합니다. 코드 없이 997개 이상의 화면을 관리하세요.

+
    +
  • UI 컴포넌트 라이브러리
  • +
  • 실시간 미리보기
  • +
  • 반응형 자동 대응
  • +
+
+
+
🤖
+

AI 에이전트 자동화

+

AI 에이전트가 자연어 명령을 이해하고 데이터를 분석하며, 복잡한 비즈니스 로직을 자동으로 처리합니다.

+
    +
  • 로컬 LLM 기반 데이터 보호
  • +
  • 자연어 → 화면·로직 자동 생성
  • +
  • 24/7 자동 업무 실행
  • +
+
+
+
🔗
+

자유로운 외부 연계

+

REST API, 웹 크롤링, 외부 DB 등 다양한 데이터 소스를 미들웨어 없이 연결하고 실시간 동기화합니다.

+
    +
  • REST / GraphQL 커넥터
  • +
  • 외부 DB 직접 연결
  • +
  • 웹 크롤링 스케줄러
  • +
+
+
+
+
+ + +
+
+
+
How It Works
+

3단계로 완성되는 엔터프라이즈 시스템

+

기획에서 배포까지, 개발자가 없어도 몇 시간이면 충분합니다.

+
+ +
+
+
01
+

드래그앤드롭 설계

+

UI 컴포넌트를 배치하고 데이터 소스를 연결하면 업무 화면이 즉시 생성됩니다.

+
+
+
02
+

AI가 로직 완성

+

AI 에이전트에게 자연어로 요청하면 비즈니스 로직과 워크플로우를 자동 구성합니다.

+
+
+
03
+

원클릭 배포

+

Kubernetes 기반 인프라에 실시간으로 배포되어 바로 운영 환경에서 사용 가능합니다.

+
+
+
+
+ + +
+
+
+
Core Features
+

핵심 기능 소개

+

코딩 없이 설계하고, AI가 자동으로 완성하는 올인원 엔터프라이즈 플랫폼.

+
+ +
+
+
1
FEATURE ONE
+

사용자 친화적 화면 설계

+

테이블, 입력폼, 버튼, 팝업 등 다양한 UI 컴포넌트를 드래그앤드롭으로 배치하고, 실시간 미리보기를 통해 즉각적으로 결과를 확인합니다.

+
+ 드래그앤드롭 + 실시간 미리보기 + UI 컴포넌트 + 반응형 +
+
+
+
2
FEATURE TWO
+

자유로운 외부 데이터 연계

+

REST API, 웹 크롤링, 외부 데이터베이스 등 다양한 외부 시스템과의 연계를 설정 화면에서 간편하게 구성합니다.

+
+ REST API + 웹 크롤링 + 외부 DB + 실시간 동기화 +
+
+
+
3
FEATURE THREE
+

비즈니스 로직 제어관리

+

복잡한 업무 규칙과 비즈니스 로직을 시각적 제어 흐름으로 설계합니다. 조건 분기, 데이터 가공, 승인 프로세스를 코드 없이 구성합니다.

+
+ 비주얼 로직 + 조건 분기 + 워크플로우 + 승인 프로세스 +
+
+
+
4
FEATURE FOUR
+

대시보드 & 레포트

+

드래그앤드롭으로 차트와 그래프를 배치하여 나만의 대시보드를 구성하고, PDF/Excel 형식의 정형 보고서를 자동 생성합니다.

+
+ 실시간 시각화 + KPI 모니터링 + PDF/Excel + 보고서 디자이너 +
+
+
+
+
+ + +
+
+
+
+
AI Agent
+

AI 에이전트가
업무를 자동으로 처리

+

로컬 LLM을 활용하여 기업 데이터의 외부 유출 없이, 자연어 명령만으로 화면 생성, 데이터 분석, 보고서 작성을 자동화합니다.

+
+
💬

자연어 명령

대화형 인터페이스로 시스템 조작

+
📊

지능형 분석

데이터 패턴 자동 인식 및 분석

+
🔒

로컬 LLM

기업 데이터 외부 유출 제로

+

자동 생성

화면, 보고서, 로직 자동 구성

+
+
+
+
+
+
+
AI
Agent
Core
+
🎨화면설계
+
📊분석
+
📄레포트
+
🔗연계
+
⚙️로직
+
💬대화
+
+
+
+
+
+ + +
+
+
+
Use Cases
+

어떤 업무에도 유연하게 적용

+

산업과 업무 영역에 관계없이, invyone 하나로 모든 시스템을 구축할 수 있습니다.

+
+
+
+
🏭
+

제조/생산 관리

+

생산계획, 공정관리, 품질검사, 재고관리까지 제조 전 과정을 하나의 시스템에서.

+ 자세히 보기 → +
+
+
👥
+

인사/급여 관리

+

조직관리, 근태, 급여계산, 평가관리를 자동화된 워크플로우로 운영.

+ 자세히 보기 → +
+
+
💰
+

회계/재무 관리

+

전표처리, 결산, 예산관리, 세무신고 지원을 체계적으로 관리.

+ 자세히 보기 → +
+
+
🛒
+

영업/CRM

+

고객관리, 견적, 수주, 매출분석까지 영업 프로세스 전체를 통합.

+ 자세히 보기 → +
+
+
📦
+

물류/재고 관리

+

입출고, 재고실사, 바코드 관리, 물류 추적을 실시간으로 운영.

+ 자세히 보기 → +
+
+
📋
+

프로젝트 관리

+

일정계획, 업무배분, 진척관리, 이슈 트래킹을 대시보드에서 한눈에.

+ 자세히 보기 → +
+
+
+
+ + +
+
+
+
Architecture
+

시스템 아키텍처

+

클라우드 네이티브 아키텍처 기반으로 안정적이고 확장 가능한 서비스를 제공합니다.

+
+
+
+
+
Frontend
+
+
React (Next.js)
+
반응형 UI
+
드래그앤드롭 엔진
+
WebSocket
+
+
+
+
Backend
+
+
Spring Boot
+
REST API
+
비즈니스 로직 엔진
+
AI Agent Engine
+
+
+
+
Data
+
+
PostgreSQL
+
외부 DB 커넥터
+
API Gateway
+
로컬 LLM
+
+
+
+
Infra
+
+
Kubernetes (K8s)
+
Docker
+
CI/CD 자동배포
+
SSL/TLS
+
+
+
+
+
+
+ + +
+
+
+
Testimonials
+

고객들의 이야기

+

invyone으로 업무를 혁신한 고객들의 생생한 목소리입니다.

+
+
+
+
★★★★★
+
"개발팀 없이도 사내 ERP 시스템을 2주 만에 구축했습니다. AI 에이전트 기능이 정말 혁신적이에요."
+
+
K
+
김 부장
제조업 · IT기획팀
+
+
+
+
★★★★★
+
"노코드라서 처음엔 반신반의했는데, 기존 레거시 시스템보다 훨씬 유연하고 빠릅니다."
+
+
P
+
박 차장
물류업 · 경영지원
+
+
+
+
★★★★★
+
"외부 API 연계가 이렇게 쉬울 줄 몰랐습니다. 크롤링, DB 연동까지 설정만으로 끝나요."
+
+
L
+
이 과장
IT서비스 · 개발팀
+
+
+
+
+
+ + +
+
+
+
FAQ
+

자주 묻는 질문

+

invyone을 시작하기 전, 가장 많이 궁금해하시는 내용입니다.

+
+ +
+
+ 개발자 없이도 정말 시스템을 만들 수 있나요?+ +
네. 드래그앤드롭 UI, 시각적 비즈니스 로직 편집기, AI 에이전트가 결합되어 있어 IT 전공자가 아닌 현업 담당자도 실제 운영 시스템을 구축할 수 있습니다. 평균 도입 기간은 2~4주입니다.
+
+
+ 기존에 운영 중인 데이터베이스와 연결할 수 있나요?+ +
PostgreSQL, MySQL, Oracle, MSSQL 등 주요 RDBMS와 REST/GraphQL API, 그리고 웹 크롤링까지 외부 시스템을 별도 미들웨어 없이 바로 연결할 수 있습니다.
+
+
+ AI 에이전트 사용 시 데이터가 외부로 나가나요?+ +
기본 구성은 로컬 LLM 기반이라 기업 데이터가 외부 인프라로 전송되지 않습니다. OpenAI 등 외부 모델이 필요한 경우에만 선택적으로 연결할 수 있으며, 모든 호출은 감사 로그에 남습니다.
+
+
+ 구축 후 확장이나 유지보수는 어떻게 이뤄지나요?+ +
Kubernetes 기반 인프라 위에 자동 배포되어 무중단 업데이트가 가능합니다. 운영 중인 화면은 언제든 드래그앤드롭으로 재구성할 수 있으며, 전담 기술 지원팀이 1:1 상담을 제공합니다.
+
+
+ 가격은 어떻게 책정되나요?+ +
Starter / Business / Enterprise 3단계 플랜을 제공합니다. 14일 무료 체험 이후 사용자 수와 필요한 기능에 맞춰 선택할 수 있으며, 대기업의 경우 맞춤 견적도 가능합니다.
+
+
+
+
+ + +
+
+

코딩 없이, 상상을 현실로.

+

invyone과 함께 기업의 디지털 전환을 시작하세요.
14일 무료 체험으로 모든 기능을 자유롭게 사용해보세요.

+ +
+
+ + + + + + + diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml new file mode 100644 index 0000000..dd19b50 --- /dev/null +++ b/k8s/deployment.yaml @@ -0,0 +1,48 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: homepage + namespace: invyone-homepage + labels: + app: homepage +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + app: homepage + template: + metadata: + labels: + app: homepage + spec: + containers: + - name: homepage + image: localhost:5000/invyone/homepage:latest + imagePullPolicy: Always + ports: + - containerPort: 80 + name: http + resources: + requests: + cpu: 20m + memory: 32Mi + limits: + cpu: 200m + memory: 128Mi + readinessProbe: + httpGet: + path: /healthz + port: 80 + initialDelaySeconds: 2 + periodSeconds: 5 + livenessProbe: + httpGet: + path: /healthz + port: 80 + initialDelaySeconds: 10 + periodSeconds: 15 diff --git a/k8s/namespace.yaml b/k8s/namespace.yaml new file mode 100644 index 0000000..2331526 --- /dev/null +++ b/k8s/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: invyone-homepage diff --git a/k8s/service.yaml b/k8s/service.yaml new file mode 100644 index 0000000..fe14a5a --- /dev/null +++ b/k8s/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: homepage + namespace: invyone-homepage + labels: + app: homepage +spec: + type: NodePort + selector: + app: homepage + ports: + - name: http + port: 80 + targetPort: 80 + nodePort: 30082 diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..ea992e7 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,28 @@ +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + + gzip on; + gzip_types text/plain text/css application/javascript application/json image/svg+xml; + gzip_min_length 1024; + + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "strict-origin-when-cross-origin" always; + + location / { + try_files $uri $uri/ /index.html; + } + + location = /healthz { + access_log off; + return 200 "ok\n"; + } + + location ~* \.(?:css|js|svg|png|jpg|jpeg|gif|ico|woff2?)$ { + expires 7d; + add_header Cache-Control "public, max-age=604800"; + } +}