가이드
Docker로 셀프 호스팅
커뮤니티 에디션을 자체 인프라에서 실행하세요.
커뮤니티 에디션(AGPL-3.0)은 Docker가 실행되는 모든 곳에서 운영할 수 있는 완전한 채팅 플랫폼입니다. 엔터프라이즈 부가 기능은 라이선스 키로 보호되는 별도의 비공개 저장소에 있습니다.
사전 요구 사항
- Docker 24+ 및 docker compose v2
- 최소 2 vCPU, 4 GB RAM(8 GB 권장)
- 서버를 가리키는 도메인(TLS용)
설치
git clone https://github.com/singlink/singlink
cd singlink
cp .env.example .env
# edit .env: AUTH_SECRET, DATABASE_URL, REDIS_URL, S3_*
docker compose up -d기본적으로 이 명령은 Postgres(pgvector 포함), Redis, MinIO, web, ws, worker를 실행합니다.docker compose ps를 실행하여 다섯 개의 컨테이너가 모두 정상인지 확인하세요.
초기 설정
docker compose exec web pnpm db:migrate deploy
docker compose exec web pnpm db:seed # optional demo tenant리버스 프록시
앞단에 nginx(또는 Caddy)를 둡니다. /api/*와 /v1/ws는 모두 cookie를 공유하기 위해 동일한 오리진에 도달해야 합니다. WS 엔드포인트에는 upgrade 헤더가 필요합니다:
location /v1/ws {
proxy_pass http://ws:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400s;
}백업
- Postgres — 매일
pg_dump. 여기에는 S3 첨부 파일을 제외한 모든 것이 포함됩니다 - S3 / MinIO — 버킷 버전 관리를 사용하거나
rclone sync로 다른 리전에 동기화합니다 - Redis — 일시적(큐)이므로 백업이 필요 없습니다. 작업은 재시작 시 다시 실행됩니다
업그레이드
git fetch && git checkout v0.x.y
docker compose pull
docker compose up -d
docker compose exec web pnpm db:migrate deploy마이그레이션은 상위 호환됩니다. 메이저 버전 상승 없이 호환성을 깨뜨리는 schema 변경으로 실행 중인 인스턴스를 중단시키지 않습니다.