Skip to content

DogukanUrker/FlaskBlog

Repository files navigation

FlaskBlog

A modern blog application built with Flask, featuring a clean UI and powerful admin tools.

Try the live demo at flaskblog.dogukanurker.com · self-hosted on my home server behind a Cloudflare Tunnel, auto-deployed on every push and reset nightly. See DEMO.md for how it's wired end to end.

FlaskBlog Desktop Watch demo on YouTubeSee screenshots (mobile/desktop, dark/light)

Features

  • User System - Registration, login, profiles with custom avatars
  • Rich Editor - Custom Markdown editor with toolbar for formatting posts
  • Admin Panel - Full control over users, posts, and comments
  • Dark/Light Themes - Automatic theme switching
  • Categories - Organize posts by topics
  • Search - Find posts quickly
  • Responsive Design - Works great on all devices
  • Advanced Logging - Powered by Tamga logger

Quick Start

Prerequisites

Installation

# Clone the repository
git clone https://github.com/DogukanUrker/flaskBlog.git
cd flaskBlog

# Install app dependencies and run
make install-app
make run

Visit http://localhost:1283 in your browser.

Docker

make docker        # Build and run with Docker

Or step by step:

make docker-build  # Build the image
make docker-run    # Run the container

Configuration

All settings can be configured via environment variables. Copy the example file and modify as needed:

cp .env.example .env

See .env.example for all available options. When using Docker, the .env file is automatically passed to the container.

Default Admin Account

  • Username: admin
  • Password: admin

Running Tests

make install       # Install all dependencies including test deps
make test          # Run E2E tests (parallel)
make test-slow     # Run tests with browser visible (slow-mo)

See tests/README.md for details.

Makefile Commands

make help          # Show all available commands
make install       # Install all dependencies (app + dev + test + Playwright)
make install-app   # Install app dependencies only
make run           # Run the Flask application
make docker        # Build and run with Docker
make docker-build  # Build Docker image
make docker-run    # Run Docker container
make test          # Run E2E tests (parallel)
make test-slow     # Run tests with browser visible (slow-mo)
make lint          # Format and lint code (auto-fix)
make ci            # Run CI checks
make clean         # Remove cache files

Tech Stack

Backend: Flask, Flask-SQLAlchemy, Flask-WTF, Passlib, Bleach, Markdown2
Frontend: Tailwind CSS v4, DaisyUI v5
Icons: Tabler Icons

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Doğukan Ürker
Website | Email


If you find this project useful, please consider giving it a star!