技術ブログのコンテンツ管理システム(CMS)です。Docker、Django、Nginx を使用した最新のウェブアプリケーションプラットフォームです。
- 🔒 SSL/TLS による HTTPS 対応(Let's Encrypt)
- 🐳 Docker による完全コンテナ化
- 🎯 CI/CD パイプライン(GitHub Actions)
- 🔄 自動証明書更新
- 📊 テスト自動化と品質管理
- Web フレームワーク: Django 4.x
- Web サーバー: Nginx
- アプリケーションサーバー: Gunicorn
- データベース: PostgreSQL 16
- キャッシュ: Redis
- コンテナ化: Docker & Docker Compose
- CI/CD: GitHub Actions
- Docker および Docker Compose がインストールされていること
- Git がインストールされていること
# リポジトリのクローン
git clone https://github.com/dendencat/techblog_cms.git
cd techblog_cms
# 環境変数の設定
cp .env.example .env
# .env ファイルを編集して適切な値を設定
# アプリケーションの起動
docker compose up -d# 証明書の初期化と取得
chmod +x scripts/init-letsencrypt.sh
sudo ./scripts/init-letsencrypt.sh# テストの実行
python -m pytest -v開発環境では以下の機能が利用可能です:
- ホットリロード
- デバッグモード
- 開発用サーバー(localhost:8000)
GitHub Actions による自動デプロイが設定されています:
- mainブランチへのプッシュで自動的にテストが実行
- テスト成功後、Docker イメージを GitHub Container Registry にプッシュ
- セキュリティスキャン(Trivy)の実行
- HTTPS 強制リダイレクト
- 最新の TLS 設定
- セキュリティヘッダーの適切な設定
- 定期的な依存関係の更新
このプロジェクトは MIT ライセンスの下で公開されています。
- このリポジトリをフォーク
- 新しいブランチを作成 (git checkout -b feature/amazing-feature)
- 変更をコミット (git commit -m 'Add amazing feature')
- ブランチをプッシュ (git push origin feature/amazing-feature)
- プルリクエストを作成