Skip to content

Commit

Permalink
Merge pull request #24 from ijun17/feature/#23
Browse files Browse the repository at this point in the history
Feature/#23 구글 애널리틱스 스크립트 삽입
  • Loading branch information
ijun17 authored Jan 21, 2025
2 parents d0635d4 + 4ff1ad3 commit 6908fef
Showing 33 changed files with 1,443 additions and 604 deletions.
25 changes: 0 additions & 25 deletions .github/workflows/apply-issue-template.yml

This file was deleted.

6 changes: 3 additions & 3 deletions .github/workflows/client-ci-cd.yml
Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '22'

- name: Setup pnpm
uses: pnpm/action-setup@v3
@@ -61,10 +61,10 @@ jobs:
uses: appleboy/[email protected]
with:
host: ${{ secrets.SSH_HOST }}
username: mira
username: root
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /home/mira/web30-stop-troublepainter
cd /root/deploy
export DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }}
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/troublepainter-nginx:latest
docker compose up -d nginx
6 changes: 3 additions & 3 deletions .github/workflows/server-ci-cd.yml
Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '22'
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
@@ -69,10 +69,10 @@ jobs:
uses: appleboy/[email protected]
with:
host: ${{ secrets.SSH_HOST }}
username: mira
username: root
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /home/mira/web30-stop-troublepainter
cd /root/deploy
export DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }}
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/troublepainter-server:latest
docker compose up -d server
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -12,6 +12,15 @@ dist
dist-ssr
*.local

# playwright
playwright-report
test-results
test-user-data-1
test-user-data-2
test-user-data-3
test-user-data-4
test-user-data-5

# Editor directories and files
.vscode/*
!.vscode/extensions.json
2 changes: 1 addition & 1 deletion Dockerfile.nginx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:20-alpine AS builder
FROM node:22-alpine AS builder

RUN corepack enable && corepack prepare [email protected] --activate

2 changes: 1 addition & 1 deletion Dockerfile.server
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@ COPY . .
RUN pnpm --filter @troublepainter/core build
RUN pnpm --filter server build

FROM node:20-alpine AS production
FROM node:22-alpine AS production
WORKDIR /app

COPY --from=builder /app/pnpm-workspace.yaml ./
27 changes: 12 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -307,24 +307,21 @@

<table align="center">
<tr>
<th><a href="https://github.com/kwaksj329">곽수정</a></th>
<th><a href="https://github.com/rhino-ty">윤태연</a></th>
<th><a href="https://github.com/sweetyr928">유미라</a></th>
<th><a href="https://github.com/aeujoung">정다솔</a></th>
<th><a href="https://github.com/choiseona">최선아</a></th>
<th><a href="https://github.com/kwaksj329">김성환</a></th>
<th><a href="https://github.com/rhino-ty">김준기</a></th>
<th><a href="https://github.com/sweetyr928">김진</a></th>
<th><a href="https://github.com/aeujoung">서산</a></th>
</tr>
<tr>
<td><img src="https://github.com/user-attachments/assets/51fab285-bd79-420e-8626-c0ed8ee495e4" width="120" height="120"></td>
<td><img src="https://github.com/user-attachments/assets/7859d594-9d43-439a-a035-af040d1b368b" width="120" height="120"></td>
<td><img src="https://github.com/user-attachments/assets/c1abc9ca-780d-4677-825b-c18eed526fa1" width="120" height="120"></td>
<td><img src="https://github.com/user-attachments/assets/4c45e9b6-eb90-4257-bdfb-faf5b3eacde0" width="120" height="120"></td>
<td><img src="https://github.com/user-attachments/assets/b435b634-f676-407a-8fba-18c9bc1ace40" width="120" height="120"></td>
<td><img src="https://avatars.githubusercontent.com/u/52474291?v=4" width="150" height="150"></td>
<td><img src="https://avatars.githubusercontent.com/u/54887575?v=4" width="150" height="150"></td>
<td><img src="https://avatars.githubusercontent.com/u/80706216?v=4" width="150" height="150"></td>
<td><img src="https://avatars.githubusercontent.com/u/48199716?v=4" width="150" height="150"></td>
</tr>
<tr align="center">
<td>FE<br />👑 팀장</td>
<td>FE<br />부팀장</td>
<td>FE, BE<br />BE 팀장</td>
<td>FE<br />캔버스 팀장</td>
<td>FE<br />FE 팀장</td>
<td>BE</td>
<td>FE</td>
<td>BE</td>
<td>FE</td>
</tr>
</table>
205 changes: 113 additions & 92 deletions client/index.html
Original file line number Diff line number Diff line change
@@ -1,105 +1,126 @@
<!doctype html>
<html lang="ko">

<head>
<!-- 기본 메타데이터 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoGame",
"name": "방해꾼은 못말려: 그림꾼의 역습",
"description": "잘 그렸나? 망쳤나? 정체를 숨긴 방해꾼이 쏘아올린 혼돈 속에서, 그림꾼들의 진실을 찾아내는 구경꾼들의 훈수가 시작됩니다! 🎨🕵️‍♀️",
"image": "https://troublepainter.site/android-chrome-512x512.png",
"url": "https://troublepainter.site",
"author": {
"@type": "Organization",
"name": "troublepainter"
},
"genre": ["Drawing", "Multiplayer", "Quiz"],
"gamePlatform": "Web Browser",
"numberOfPlayers": {
"@type": "QuantitativeValue",
"minValue": 4,
"maxValue": 5
},
"applicationCategory": "Game",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "KRW",
"availability": "http://schema.org/InStock"
},
"inLanguage": "ko",
"copyrightYear": 2024,
"gameServer": "WebSocket",
"playMode": "Multiplayer",
"audience": "Everyone",
"requirementsMinimum": {
"@type": "GamePlayRequirement",
"requiresDevice": "Desktop or Mobile Browser with WebSocket support"
<head>
<!-- 기본 메타데이터 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoGame",
"name": "방해꾼은 못말려: 그림꾼의 역습",
"description": "잘 그렸나? 망쳤나? 정체를 숨긴 방해꾼이 쏘아올린 혼돈 속에서, 그림꾼들의 진실을 찾아내는 구경꾼들의 훈수가 시작됩니다! 🎨🕵️‍♀️",
"image": "https://troublepainter.site/android-chrome-512x512.png",
"url": "https://troublepainter.site",
"author": {
"@type": "Organization",
"name": "troublepainter"
},
"genre": ["Drawing", "Multiplayer", "Quiz"],
"gamePlatform": "Web Browser",
"numberOfPlayers": {
"@type": "QuantitativeValue",
"minValue": 4,
"maxValue": 5
},
"applicationCategory": "Game",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "KRW",
"availability": "http://schema.org/InStock"
},
"inLanguage": "ko",
"copyrightYear": 2024,
"gameServer": "WebSocket",
"playMode": "Multiplayer",
"audience": "Everyone",
"requirementsMinimum": {
"@type": "GamePlayRequirement",
"requiresDevice": "Desktop or Mobile Browser with WebSocket support"
}
}
}
</script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="theme-color" content="#7A38FF"> <!-- 브라우저 테마 색상 (violet-500) -->
<meta name="description" content="잘 그렸나? 망쳤나? 정체를 숨긴 방해꾼이 쏘아올린 혼돈 속에서, 그림꾼들의 진실을 찾아내는 구경꾼들의 훈수가 시작됩니다! 🎨🕵️‍♀️">
<meta name="keywords" content="게임, 드로잉, 실시간, 멀티플레이어, 웹게임, 온라인게임, 퀴즈게임">
<meta name="author" content="troublepainter">
</script>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#7A38FF" />
<!-- 브라우저 테마 색상 (violet-500) -->
<meta
name="description"
content="잘 그렸나? 망쳤나? 정체를 숨긴 방해꾼이 쏘아올린 혼돈 속에서, 그림꾼들의 진실을 찾아내는 구경꾼들의 훈수가 시작됩니다! 🎨🕵️‍♀️"
/>
<meta name="keywords" content="게임, 드로잉, 실시간, 멀티플레이어, 웹게임, 온라인게임, 퀴즈게임" />
<meta name="author" content="troublepainter" />

<!-- IE 관련 설정, 구버전 IE의 호환성 모드를 방지 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

<!-- IE 관련 설정, 구버전 IE의 호환성 모드를 방지 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- XSS Protection 활성화 -->
<meta http-equiv="X-XSS-Protection" content="1; mode=block" />
<!-- MIME 타입 스니핑 방지 -->
<meta http-equiv="X-Content-Type-Options" content="nosniff" />

<!-- XSS Protection 활성화 -->
<meta http-equiv="X-XSS-Protection" content="1; mode=block">
<!-- MIME 타입 스니핑 방지 -->
<meta http-equiv="X-Content-Type-Options" content="nosniff">
<!-- 모바일 관련 설정 -->
<!-- 모바일 기기에서 웹 앱을 전체 화면 모드로 실행 가능하게 -->
<meta name="mobile-web-app-capable" content="yes" />
<!-- 상태 바를 반투명한 검은색으로 만들어 웹 앱의 콘텐츠가 상태 바 아래로 확장 가능하게 -->
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />

<!-- 모바일 관련 설정 -->
<!-- 모바일 기기에서 웹 앱을 전체 화면 모드로 실행 가능하게 -->
<meta name="mobile-web-app-capable" content="yes">
<!-- 상태 바를 반투명한 검은색으로 만들어 웹 앱의 콘텐츠가 상태 바 아래로 확장 가능하게 -->
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://troublepainter.site/" />
<meta property="og:title" content="방해꾼은 못말려: 그림꾼의 역습 | 실시간 드로잉 퀴즈 게임" />
<meta
property="og:description"
content="잘 그렸나? 망쳤나? 정체를 숨긴 방해꾼이 쏘아올린 혼돈 속에서, 그림꾼들의 진실을 찾아내는 구경꾼들의 훈수가 시작됩니다! 🎨🕵️‍♀️"
/>
<meta property="og:image" content="https://kr.object.ncloudstorage.com/troublepainter-assets/logo/main-logo.png" />
<meta property="og:site_name" content="troublepainter" />

<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://troublepainter.site/">
<meta property="og:title" content="방해꾼은 못말려: 그림꾼의 역습 | 실시간 드로잉 퀴즈 게임">
<meta property="og:description"
content="잘 그렸나? 망쳤나? 정체를 숨긴 방해꾼이 쏘아올린 혼돈 속에서, 그림꾼들의 진실을 찾아내는 구경꾼들의 훈수가 시작됩니다! 🎨🕵️‍♀️">
<meta property="og:image" content="https://kr.object.ncloudstorage.com/troublepainter-assets/logo/main-logo.png">
<meta property="og:site_name" content="troublepainter">
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:url" content="https://troublepainter.site/" />
<meta name="twitter:title" content="방해꾼은 못말려: 그림꾼의 역습 | 실시간 드로잉 퀴즈 게임" />
<meta
name="twitter:description"
content="잘 그렸나? 망쳤나? 정체를 숨긴 방해꾼이 쏘아올린 혼돈 속에서, 그림꾼들의 진실을 찾아내는 구경꾼들의 훈수가 시작됩니다! 🎨🕵️‍♀️"
/>
<meta
property="twitter:image"
content="https://kr.object.ncloudstorage.com/troublepainter-assets/logo/main-logo.png"
/>

<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://troublepainter.site/">
<meta name="twitter:title" content="방해꾼은 못말려: 그림꾼의 역습 | 실시간 드로잉 퀴즈 게임">
<meta name="twitter:description"
content="잘 그렸나? 망쳤나? 정체를 숨긴 방해꾼이 쏘아올린 혼돈 속에서, 그림꾼들의 진실을 찾아내는 구경꾼들의 훈수가 시작됩니다! 🎨🕵️‍♀️">
<meta property="twitter:image" content="https://kr.object.ncloudstorage.com/troublepainter-assets/logo/main-logo.png">
<!-- 기본 파비콘 -->
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<!-- iOS/Safari용 -->
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<!-- Android Chrome용 -->
<link rel="icon" type="image/png" sizes="192x192" href="/android-chrome-192x192.png" />
<link rel="icon" type="image/png" sizes="512x512" href="/android-chrome-512x512.png" />
<!-- 다른 크기의 파비콘들 -->
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<!-- 웹 매니페스트 -->
<link rel="manifest" href="/site.webmanifest" />

<!-- 기본 파비콘 -->
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<!-- iOS/Safari용 -->
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- Android Chrome용 -->
<link rel="icon" type="image/png" sizes="192x192" href="/android-chrome-192x192.png">
<link rel="icon" type="image/png" sizes="512x512" href="/android-chrome-512x512.png">
<!-- 다른 크기의 파비콘들 -->
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<!-- 웹 매니페스트 -->
<link rel="manifest" href="/site.webmanifest">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/neodgm/neodgm-pro-webfont@latest/neodgm_pro/style.css" />

<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/neodgm/neodgm-pro-webfont@latest/neodgm_pro/style.css" />
<title>방해꾼은 못말려 : 그림꾼들의 역습</title>

<title>방해꾼은 못말려 : 그림꾼들의 역습</title>
</head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-L747FWX3VY"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());

<body>
<div id="root"></div>
<div id="modal-root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
gtag('config', 'G-L747FWX3VY');
</script>
</head>

</html>
<body>
<div id="root"></div>
<div id="modal-root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading

0 comments on commit 6908fef

Please sign in to comment.