Poppy Seed is an malware analysis tool
This guide provides instructions for running Poppy Seed using Docker and Docker Compose.
# Install Docker Desktop for Mac
# Download from: https://www.docker.com/products/docker-desktop/
# Or install via Homebrew
brew install --cask docker
# Update package index
sudo apt-get update
# Install Docker
sudo apt-get install docker.io docker-compose
# Start Docker service
sudo systemctl start docker
sudo systemctl enable docker
# Add user to docker group (optional)
sudo usermod -aG docker $USER
docker --version
docker-compose --version
git clone https://github.com/sdswapz/poppy_seed.git
cd poppy_seed
docker-compose up --build
cp env.example .env
# Edit .env file with your production settings
docker-compose -f docker-compose.prod.yml up --build -d
# Build and start containers
docker-compose up --build
# Start in background (detached mode)
docker-compose up -d
# Stop containers
docker-compose down
# View logs
docker-compose logs -f
# Rebuild specific service
docker-compose build poppy-seed
# Execute commands in container
docker-compose exec poppy-seed python manage.py shell
docker-compose exec poppy-seed python manage.py createsuperuser
# Run migrations
docker-compose exec poppy-seed python manage.py migrate
# Create superuser
docker-compose exec poppy-seed python manage.py createsuperuser
# Collect static files
docker-compose exec poppy-seed python manage.py collectstatic --noinput
# View container status
docker-compose ps
# View resource usage
docker stats
# Clean up unused containers and images
docker system prune -a
# Backup database
docker-compose exec poppy-seed cp db.sqlite3 /app/backup_$(date +%Y%m%d).sqlite3
Copy env.example to .env and configure:
# Django Settings
SECRET_KEY=your-secret-key-change-this-in-production
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0
# Database
DATABASE_URL=sqlite:///db.sqlite3
# File Upload Settings
MAX_UPLOAD_SIZE=104857600 # 100MB
The Docker setup includes volume mounts for:
ports:
# Fix file permissions
sudo chown -R $USER:$USER .
# Check logs
docker-compose logs poppy-seed
# Rebuild without cache
docker-compose build --no-cache
# Reset database
docker-compose down -v
docker-compose up --build
The containers include health checks:
# Check container health
docker-compose ps
# Manual health check
docker-compose exec poppy-seed python manage.py check --deploy
SECRET_KEY in .env# Run as non-root user (add to Dockerfile)
USER 1000:1000
# Use specific image tags
FROM python:3.9-slim@sha256:...
# Regular security updates
docker-compose pull
docker-compose up --build
# View application logs
docker-compose logs -f poppy-seed
# View Nginx logs
docker-compose logs -f nginx
# Log rotation (add to crontab)
0 0 * * * docker-compose exec poppy-seed find /app/logs -name "*.log" -mtime +7 -delete
# Monitor resource usage
docker stats
# Check container health
docker-compose ps
# Create backup
docker-compose exec poppy-seed python manage.py dumpdata > backup.json
# Restore backup
docker-compose exec poppy-seed python manage.py loaddata backup.json
# Backup volumes
docker run --rm -v poppy_seed_media_data:/data -v $(pwd):/backup alpine tar czf /backup/media_backup.tar.gz -C /data .
docker run --rm -v poppy_seed_db_data:/data -v $(pwd):/backup alpine tar czf /backup/db_backup.tar.gz -C /data .
# Scale the application
docker-compose up --scale poppy-seed=3
# Use load balancer
# Configure Nginx upstream with multiple instances
# Add to docker-compose.yml
services:
poppy-seed:
deploy:
resources:
limits:
memory: 1G
cpus: '0.5'
reservations:
memory: 512M
cpus: '0.25'
For Docker-related issues:
docker-compose logsdocker --versionnetstat -tulpn | grep :8000