셀프호스팅 가이드
10분 안에 내 서버에서 ShareAux를 실행하세요.
1. 요구사항
- Linux 서버 (Ubuntu 22.04+ 권장) 또는 Docker 지원 호스트
- Docker + Docker Compose v2
- 도메인 (HTTPS용)
- 80/443 포트 개방
2. 설치
git clone https://github.com/Protomothis/ShareAux.git
cd ShareAux
cp .env.example .env 3. 환경 변수
.env 파일을 열고 최소한 아래 값을 변경하세요:
| 변수 | 설명 | 예시 |
|---|---|---|
DB_PASSWORD | PostgreSQL 비밀번호 | my-secure-password |
JWT_SECRET | 토큰 서명용 랜덤 문자열 | openssl rand -hex 32 |
CLIENT_URL | 공개 URL | https://music.example.com |
선택 변수:
| 변수 | 설명 |
|---|---|
GOOGLE_CLIENT_ID | Google OAuth (Google 로그인) |
GOOGLE_CLIENT_SECRET | Google OAuth 시크릿 |
GOOGLE_CALLBACK_URL | https://도메인/api/auth/google/callback |
GEMINI_API_KEY | 가사 AI 번역 (Gemini) |
CAPTCHA_ENABLED | PoW CAPTCHA (기본: true) |
4. HTTPS (리버스 프록시)
ShareAux는 내부 Caddy 게이트웨이를 통해 8080 포트를 노출합니다. HTTPS는 호스트에 외부 리버스 프록시를 설정하세요.
Caddy (권장)
호스트에 Caddy 설치 후 /etc/caddy/Caddyfile 작성:
music.example.com {
reverse_proxy localhost:8080
} Caddy가 Let's Encrypt 인증서를 자동 발급합니다. 끝.
Nginx
server {
server_name music.example.com;
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
} 중요: WebSocket(/ws)은 Upgrade 헤더가 필요합니다. 위 예시에 포함되어 있습니다.
.env의 CLIENT_URL을 공개 URL로 설정하세요 (예: https://music.example.com).
5. 실행
docker compose up -d 상태 확인:
docker compose ps
docker compose logs -f https://music.example.com으로 접속하세요.
6. Google OAuth (선택)
- Google Cloud Console 접속
- OAuth 2.0 클라이언트 ID 생성 (웹 애플리케이션)
- 승인된 리디렉션 URI:
https://도메인/api/auth/google/callback - Client ID와 Secret을
.env에 입력 - 재시작:
docker compose restart server
Google OAuth 없이도 아이디/비밀번호 또는 게스트 초대 코드로 로그인 가능합니다.
7. 첫 로그인
- 사이트에 접속해서 계정 생성
- 첫 번째 가입자가 자동으로 Super Admin이 됩니다
/admin에서 어드민 패널 접근- 설정 변경, 방 생성, 다른 사람 초대
8. 업데이트
cd ShareAux
docker compose pull
docker compose up -d DB 마이그레이션은 시작 시 자동 실행됩니다.