그동안 쌓여 있던 미커밋 파일들을 정리. 소스·자산만 올리고, 개인 데이터와 런타임 상태는 gitignore로 차단. 추가된 자산: - web-ui/audiomass, web-ui/wavacity — 자체 호스팅 오디오 에디터 - web-ui/drums — 드럼 샘플 - wol-gate — WOL 프록시 컨테이너(Dockerfile + server.js) - glm-1m-fix — GLM 1M 컨텍스트 설치 스크립트(linux/windows) - RENODE_FIXES_SUMMARY*.md, CCTV정보_서울특별시.csv, .claude/plans 수정: - edge_tts_synth.py: rate 인자 추가(말하기 속도 조절) - .smallclaw/config.json: google(gemini) provider 등록 — 키는 vault 참조 - assets/SmallClaw*.png 삭제분 반영 gitignore (중요): - .smallclaw/users/*/workspace/ 전체 차단. 기존 패턴이 memory/uploads와 일부 확장자만 막아서 detective/(고소장·통화녹취·의사소견서·가족관계증명서), generated-media/, music/, pptx/ 등 앱 생성 개인 데이터 403MB가 노출돼 있었음 - .smallclaw/active-sessions.json 차단 — 살아있는 bearer 토큰과 admin 역할이 평문으로 들어있어 커밋 시 게이트웨이 관리자 자격증명이 그대로 공개됨 - google-usage.json, config.json.bak-*, workspace/memory·weather-maps· task_result_*, voice/ 등 런타임 상태도 함께 차단 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
49 lines
1.2 KiB
Go
Executable File
49 lines
1.2 KiB
Go
Executable File
package main
|
|
|
|
import (
|
|
"net/http"
|
|
_ "net/url"
|
|
"fmt"
|
|
"os/exec"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
|
|
changeHeaderThenServe := func(h http.Handler) http.HandlerFunc {
|
|
return func(w http.ResponseWriter, r *http.Request) {
|
|
w.Header().Add("Access-Control-Allow-Origin", "*")
|
|
|
|
if strings.Contains(r.URL.Path, ".wasm") {
|
|
w.Header().Add("Content-Type", "application/wasm")
|
|
}
|
|
|
|
if strings.Contains(r.URL.Path, ".js") {
|
|
var epoch = time.Unix(0, 0).Format(time.RFC1123)
|
|
var noCacheHeaders = map[string]string{
|
|
"Expires": epoch,
|
|
"Cache-Control": "no-cache, private, max-age=0",
|
|
"Pragma": "no-cache",
|
|
"X-Accel-Expires": "0",
|
|
}
|
|
|
|
for k, v := range noCacheHeaders {
|
|
w.Header().Set(k, v)
|
|
}
|
|
}
|
|
|
|
fmt.Println("Req:", r.Host, r.URL.Path)
|
|
h.ServeHTTP(w, r)
|
|
}
|
|
}
|
|
|
|
go func() {
|
|
cmd := exec.Command("open", "-a", "Google Chrome", "http://localhost:5055/")
|
|
cmd.Output()
|
|
}()
|
|
|
|
fmt.Printf("\nListening on http://localhost:5055 \n\n")
|
|
http.Handle("/", changeHeaderThenServe(http.FileServer(http.Dir("."))))
|
|
panic(http.ListenAndServe(":5055", nil))
|
|
} |