Eskoz is a Django-based project designed to help you quickly and easily create a multilingual blog, with a straightforward deployment process.
Make sure you have the following installed on your system:
- Docker
- Docker Compose
git clone git@github.com:DonAsako/eskoz.git
cd eskozcp .env.example .envThe .env file stores your environment-specific settings. Here's what each variable does:
# --- Django Settings ---
DEBUG=0 # Enable (1) or disable (0) Django debug mode
DJANGO_SECRET_KEY= # Secret key for Django security
DJANGO_ALLOWED_HOSTS= # Space-separated list of allowed hostnames
ADMIN_URL= # Custom URL path for the Django admin (e.g., "admin")
THEME= # Active theme in themes directory (default: Eskoz)
# --- PostgreSQL Settings ---
POSTGRES_DB= # Name of the PostgreSQL database
POSTGRES_USER= # PostgreSQL username
POSTGRES_PASSWORD= # PostgreSQL password
# --- Caddy / Domain Configuration ---
DOMAIN= # Your domain name (e.g., example.com)
EMAIL= # Email address used for SSL certificatedocker compose -f docker/docker-compose.yml up --build -dTo create the first Django superuser, run:
docker compose -f docker/docker-compose.yml exec web python manage.py createsuperuserTo update your config, run :
docker compose -f docker/docker-compose.yml exec web python manage.py configTo list all available themes with the following command:
python3 manage.py list_themesExample :
Name Path Active
---------------------------------------------------------------------------------------------
Eskoz /Eskoz/themes/Eskoz Yes
Successfully listed 1 theme(s).To create a brand new theme with default structure:
python3 manage.py create_theme MyNewThemeThis will generate the necessary folders and files under the themes/ directory.
To create a new theme based on an existing one (e.g. Eskoz):
python3 manage.py create_theme MyNewTheme EskozThis will copy all templates and static files from the base theme.
Once your theme is created, you can start customizing:
- HTML templates in
templates/ - Styles and scripts in
static/
For template syntax reference, check out the Django Template Language Documentation
To activate a theme, update the .env file:
THEME=MyNewTheme
The default theme is Eskoz.
Then, rebuild your Docker environment:
docker compose up --build -dYour new theme should now be applied and visible on the site.
- Add Django logging configuration
- Set up log rotation (e.g. RotatingFileHandler)
- Mount Docker volume for log files
- Define log levels (INFO, WARNING, ERROR, etc.)
- Redirect container logs to files
- Add .env variable for log level
- Make translation
- Make the layout responsive
- Improve article detail view
- Add article parameters to the article list page
- Update Eskoz Theme
- Add an automatic script to load SSL certificates and simplify deployment
- Finish connection with 2FA OTP
- View Page Settings (block view if false)
- Add members page
- Create Course app
- Ready-to-use multilingual blog
- Easy deployment with Docker
- Built-in Django admin interface
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more details.
