테무에서 산 싸이월드
싸이월드 미니홈피를 재구현한 Flask 웹 애플리케이션입니다.
- Python venv를 준비합니다. 개발 환경이 3.11이었으며, 3.12에서 테스트 되었습니다.
pip install -r requirements.txt
를 실행합니다. 앱 동작에 필요한 PyPI 디펜던시를 설치합니다.conf.py
를 수정합니다.python3 y2k_server.py
를 실행합니다.- data 디렉터리가 초기화되었습니다.
site_settings.yaml
을 포함한 사이트 구성을 취향에 맞게 변경합니다.
Rocky Linux 9.4(x86_64), podman 4.9를 기준으로 합니다. 배포판 및 Docker 설치 형태에 따라 일부 내용에 차이가 있을 수 있습니다.
# 이미지 빌드
docker build -t crapworld .
# 컨테이너를 만들고 실행
docker run -v [data가 저장될 장소]:/app/data -p [원하는 포트]:11111 --name [컨테이너 이름] crapworld
Let's Encrypt SSL을 사용하고자 하는 경우, /etc/apache2/sites-available에 설정 파일을 만든 후, a2ensite [설정 파일] && systemctl reload apache2
를 실행합니다.
예제 설정 :
<VirtualHost *:80>
ServerName [도메인]
Redirect permanent / https://[도메인]
</VirtualHost>
<VirtualHost *:443>
ServerName y2k.erpin.club
RewriteEngine On
RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC,OR]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:11111%{REQUEST_URI} [P,QSA,L]
<Location />
Require all granted
ProxyPass http://127.0.0.1:11111/
ProxyPassReverse http://127.0.0.1:11111/
ProxyPassReverseCookieDomain 127.0.0.1 [도메인]
</Location>
SSLCertificateFile /etc/letsencrypt/live/[도메인]/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[도메인]/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
싸구려월드는 오픈 소스 프로젝트이며, BSD 3-Clause 라이센스로 제공됩니다.
해당 프로젝트를 사용하고자 하는 경우, 라이센스를 준수해야 합니다.
자세한 내용은 LICENSE
를 참조하십시오.
- 커스텀 테마
- (홈) 오늘의 기분
- 사진첩 / 갤러리 (= Instagram / X 피드)
- 방명록 / 게시판 (= Quesdon@Planet)
- 프로필
- 사진첩
- 동영상 (= YouTube)
- 사이트 관리 도구
- 쥬크박스
- 일촌평
- 자체 방명록
- 다이어리 댓글 작성
- Dockerfile
- (상시 퀘스트) 성능 개선이 가능한 로직을 정상화
- 캐싱 루틴 도입
- 사진첩 이미지를 썸네일화하여 트래픽 및 로딩 시간 절감
- 방명록을 Quesdon@Planet으로 대체하는건 좋은 방법이 아닌 것 같음
- 테마를 css-only화