Internal
Public Access
Add Docker deployment configuration
- Add Dockerfile for production (multi-stage build) - Add Dockerfile.dev for development with hot reload - Add docker-compose.yml with 5 services (web, mariadb, redis, celery-worker, celery-beat) - Add docker-compose.dev.yml for development overrides - Add .dockerignore for optimized builds - Add docker/entrypoint.sh startup script - Add .env.docker.example template - Add Makefile for common commands - Add deploy.sh for one-command deployment - Update config/settings/selfhosted.py to support MariaDB via DATABASE_URL - Add mysqlclient to requirements.txt for MariaDB support - Update .gitignore to exclude .env.docker 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.5
parent
a2097dcad3
commit
71399e54b8
@@ -0,0 +1,111 @@
|
||||
.PHONY: help dev dev-build prod build deploy logs logs-web logs-celery shell migrate makemigrations createsuperuser test clean stop restart status backup
|
||||
|
||||
# Default target
|
||||
help:
|
||||
@echo "KeepItGoing Server - Docker Commands"
|
||||
@echo "====================================="
|
||||
@echo ""
|
||||
@echo "Development:"
|
||||
@echo " make dev - Start development environment with live reload"
|
||||
@echo " make dev-build - Rebuild and start development environment"
|
||||
@echo " make shell - Access Django shell"
|
||||
@echo " make test - Run tests"
|
||||
@echo ""
|
||||
@echo "Production:"
|
||||
@echo " make prod - Start production environment"
|
||||
@echo " make build - Build production containers"
|
||||
@echo " make deploy - Deploy to production (pull, build, migrate, restart)"
|
||||
@echo ""
|
||||
@echo "Database:"
|
||||
@echo " make migrate - Run database migrations"
|
||||
@echo " make makemigrations - Create new migrations"
|
||||
@echo " make createsuperuser - Create Django superuser"
|
||||
@echo " make backup - Backup database"
|
||||
@echo " make dbshell - Access MariaDB shell"
|
||||
@echo ""
|
||||
@echo "Logs & Monitoring:"
|
||||
@echo " make logs - View all container logs"
|
||||
@echo " make logs-web - View web container logs"
|
||||
@echo " make logs-celery - View celery worker logs"
|
||||
@echo " make status - Show container status"
|
||||
@echo ""
|
||||
@echo "Control:"
|
||||
@echo " make stop - Stop all containers"
|
||||
@echo " make restart - Restart all containers"
|
||||
@echo " make clean - Stop and remove containers, networks, volumes"
|
||||
@echo ""
|
||||
|
||||
# Development
|
||||
dev:
|
||||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
|
||||
|
||||
dev-build:
|
||||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build
|
||||
|
||||
# Production
|
||||
prod:
|
||||
docker-compose up -d
|
||||
|
||||
build:
|
||||
docker-compose build --no-cache
|
||||
|
||||
deploy:
|
||||
@echo "Deploying to production..."
|
||||
git pull
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
docker-compose exec web python manage.py migrate
|
||||
docker-compose exec web python manage.py collectstatic --noinput
|
||||
docker-compose restart web
|
||||
@echo "Deployment complete!"
|
||||
@make status
|
||||
|
||||
# Database operations
|
||||
migrate:
|
||||
docker-compose exec web python manage.py migrate
|
||||
|
||||
makemigrations:
|
||||
docker-compose exec web python manage.py makemigrations
|
||||
|
||||
createsuperuser:
|
||||
docker-compose exec web python manage.py createsuperuser
|
||||
|
||||
dbshell:
|
||||
docker-compose exec mariadb mysql -u keepitgoing -p keepitgoing
|
||||
|
||||
backup:
|
||||
@echo "Creating database backup..."
|
||||
@mkdir -p backups
|
||||
docker-compose exec mariadb mysqldump -u root -p keepitgoing > backups/backup-$$(date +%Y%m%d-%H%M%S).sql
|
||||
@echo "Backup created in backups/ directory"
|
||||
|
||||
# Django shell and tests
|
||||
shell:
|
||||
docker-compose exec web python manage.py shell
|
||||
|
||||
test:
|
||||
docker-compose exec web python manage.py test
|
||||
|
||||
# Logs
|
||||
logs:
|
||||
docker-compose logs -f
|
||||
|
||||
logs-web:
|
||||
docker-compose logs -f web
|
||||
|
||||
logs-celery:
|
||||
docker-compose logs -f celery-worker
|
||||
|
||||
# Control
|
||||
stop:
|
||||
docker-compose down
|
||||
|
||||
restart:
|
||||
docker-compose restart
|
||||
|
||||
status:
|
||||
docker-compose ps
|
||||
|
||||
clean:
|
||||
docker-compose down -v
|
||||
@echo "Containers, networks, and volumes removed"
|
||||
Reference in New Issue
Block a user