Initial commit

This commit is contained in:
wsc-admin
2026-04-02 19:35:42 +09:00
commit 5522c1f096
14 changed files with 132 additions and 0 deletions

24
.gitea/workflows/ci.yaml Normal file
View File

@@ -0,0 +1,24 @@
name: Build and deploy
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build Docker image
run: DOCKER_BUILDKIT=0 docker build --network=wsc2026-infra_wsc-network . --tag git.webtech.worldskillskorea.io/${{ github.repository }}:latest
- name: Login to registry
run: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login git.webtech.worldskillskorea.io -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin
- name: Push image
run: docker push git.webtech.worldskillskorea.io/${{ github.repository }}:latest
- name: Deploy
run: |
curl -s -X POST https://admin.webtech.worldskillskorea.io/api/deploy \
-H "Authorization: Bearer ${{ secrets.PULLDECK_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"image":"git.webtech.worldskillskorea.io/${{ github.repository }}:latest"}'

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
node_modules
dist
.DS_Store
*.local

1
.npmrc Normal file
View File

@@ -0,0 +1 @@
registry=http://verdaccio.webtech.worldskillskorea.io

14
Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
# build stage
FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# production stage
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
COPY nginx.conf /etc/nginx/conf.d/default.conf
CMD ["nginx", "-g", "daemon off;"]

1
README.md Normal file
View File

@@ -0,0 +1 @@
# Vue 3 + TypeScript + Vite

12
index.html Normal file
View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vue TS App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

9
nginx.conf Normal file
View File

@@ -0,0 +1,9 @@
server {
listen 80;
location / {
root /usr/share/nginx/html/;
include /etc/nginx/mime.types;
try_files $uri $uri/ /index.html;
}
}

20
package.json Normal file
View File

@@ -0,0 +1,20 @@
{
"name": "vue-ts-app",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vue-tsc -b && vite build",
"preview": "vite preview"
},
"dependencies": {
"vue": "^3.5.13"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.2.1",
"typescript": "~5.7.2",
"vite": "^6.2.0",
"vue-tsc": "^2.2.0"
}
}

0
public/vite.svg Normal file
View File

15
src/App.vue Normal file
View File

@@ -0,0 +1,15 @@
<script setup lang="ts">
import { ref } from 'vue'
const msg = ref<string>('Hello Vue + TypeScript!')
</script>
<template>
<div>
<h1>{{ msg }}</h1>
<p>Edit <code>src/App.vue</code> to get started.</p>
</div>
</template>
<style scoped>
h1 { color: #42b883; }
</style>

6
src/env.d.ts vendored Normal file
View File

@@ -0,0 +1,6 @@
/// <reference types="vite/client" />
declare module '*.vue' {
import type { DefineComponent } from 'vue'
const component: DefineComponent<{}, {}, any>
export default component
}

4
src/main.ts Normal file
View File

@@ -0,0 +1,4 @@
import { createApp } from 'vue'
import App from './App.vue'
createApp(App).mount('#app')

16
tsconfig.json Normal file
View File

@@ -0,0 +1,16 @@
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"jsx": "preserve",
"resolveJsonModule": true,
"isolatedModules": true,
"esModuleInterop": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
"noEmit": true
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}

6
vite.config.ts Normal file
View File

@@ -0,0 +1,6 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
})