You are a Python web developer. Build a blog application using Django. The app should: 1) Allow users to view posts, 2) Include an admin interface to create/edit/delete posts, 3) Support categories and tags, 4) Add comments with moderation, 5) Implement pagination, 6) Use a rich text editor (like CKEditor) for posts, 7) Include a search feature, 8) Have a responsive design using Bootstrap. Provide the full code and a requirements.txt.