{"id":29385751,"url":"https://github.com/mrcolorr/wagtail","last_synced_at":"2026-04-14T15:31:48.183Z","repository":{"id":302245419,"uuid":"1011671816","full_name":"MRColorR/wagtail","owner":"MRColorR","description":"The easiest way to run a simple Wagtail CMS website in Docker or Kubernetes","archived":false,"fork":false,"pushed_at":"2025-07-08T12:27:08.000Z","size":106,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-08T13:39:25.880Z","etag":null,"topics":["cms","docker","docker-image","dockerfile","kubernetes","wagtail","wagtail-blog","wagtail-cms","wagtail-docker","wagtail-images","wagtail-kubernetes","wagtail-quickstart","wagtail-website"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/mrcolorrain/wagtail","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MRColorR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-01T07:09:13.000Z","updated_at":"2025-07-08T12:27:11.000Z","dependencies_parsed_at":"2025-07-01T10:39:59.458Z","dependency_job_id":null,"html_url":"https://github.com/MRColorR/wagtail","commit_stats":null,"previous_names":["mrcolorr/wagtail"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MRColorR/wagtail","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRColorR%2Fwagtail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRColorR%2Fwagtail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRColorR%2Fwagtail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRColorR%2Fwagtail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MRColorR","download_url":"https://codeload.github.com/MRColorR/wagtail/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRColorR%2Fwagtail/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31803200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cms","docker","docker-image","dockerfile","kubernetes","wagtail","wagtail-blog","wagtail-cms","wagtail-docker","wagtail-images","wagtail-kubernetes","wagtail-quickstart","wagtail-website"],"created_at":"2025-07-10T05:40:39.532Z","updated_at":"2026-04-14T15:31:48.171Z","avatar_url":"https://github.com/MRColorR.png","language":"Python","funding_links":["https://patreon.com/mrcolorrain","https://buymeacoffee.com/mrcolorrain","https://ko-fi.com/mrcolorrain"],"categories":[],"sub_categories":[],"readme":"# 🎯 Wagtail Image Starter Kit\n\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/mrcolorr/wagtail/build-push-images.yml?style=flat-square\u0026link=https%3A%2F%2Fhub.docker.com%2Fr%2Fmrcolorrain%2Fwagtail)\n![Docker Pulls](https://img.shields.io/docker/pulls/mrcolorrain/wagtail?style=flat-square\u0026link=https://hub.docker.com/r/mrcolorrain/wagtail)\n![Docker Stars](https://img.shields.io/docker/stars/mrcolorrain/wagtail?style=flat-square\u0026link=https://hub.docker.com/r/mrcolorrain/wagtail)\n\n\u003e **🔍 Overview:** The easiest way to run Wagtail CMS in Docker or Kubernetes. Launch a simple Wagtail CMS website in minutes with persistent storage (Docker volumes, bind mounts, or Kubernetes PVCs), automated setup, and zero manual configuration. **Keywords:** wagtail docker image, wagtail starter kit, wagtail cms, wagtail kubernetes, wagtail docker-compose, wagtail quickstart, wagtail CMS, wagtail website, wagtail blog, wagtail image\n\n⭐️ If you found this project helpful, please give it a star on GitHub! ⭐️\n\n## Table of Contents\n\n- [🌟 Key Features](#-key-features)\n- [🚀 Quick Start](#-quick-start)\n- [📚 Usage](#-usage)\n- [🔧 Configuration](#-configuration)\n- [📦 Modules and Plugins](#-modules-and-plugins)\n- [📝 Examples](#-examples)\n- [❓ FAQ](#-faq)\n- [🤝 Contributing](#-contributing)\n- [🫶 Support the Project](#-support-the-project)\n- [📄 License](#-license)\n- [🔗 Links and Support](#-links-and-support)\n\n## 🌟 Key Features\n\n- **🚀 Instant Wagtail Setup:** Start a new Wagtail CMS project with a single Docker command—no manual steps required.\n- **💾 Persistent Storage:** Supports Docker volumes, bind mounts, and Kubernetes PVCs for database and media files.\n- **🔒 Secure by Default:** Secrets and admin credentials set via environment variables.\n- **🖼️ Media Management:** Store uploads and static files outside the container for easy backup and migration.\n- **⚡ Automated Admin Creation:** Superuser is created automatically on first run with your provided credentials.\n- **🐳 Docker \u0026 ☸️ Kubernetes Ready:** Use as a standalone Docker image or deploy with Kubernetes manifests.\n- **🦄 Customizable:** Easily override project name, data directory, and admin credentials.\n\n\u003e _Why choose Wagtail Image Starter Kit?_ Launch your Wagtail CMS in minutes—just pull, run, and go! ⭐️\n\n## 🚀 Quick Start\n\nGet up and running in less than 5 minutes:\n\n### 🐳 Docker\n\nIf you have Docker installed, you can run Wagtail with a single command:\n\n```bash\ndocker pull mrcolorrain/wagtail:latest\ndocker run -d --name wagtail \\\n  -v $PWD/app/data:/app/data \\\n  -e DJANGO_SECRET_KEY=your-secret \\\n  -e DJANGO_SUPERUSER_USERNAME=admin \\\n  -e DJANGO_SUPERUSER_EMAIL=admin@example.com \\\n  -e DJANGO_SUPERUSER_PASSWORD=supersecret \\\n  -p 8000:8000 \\\n  mrcolorrain/wagtail:latest\n```\n\n### ☸️ Kubernetes\n\nIf you prefer Kubernetes, you can deploy Wagtail using the provided manifests:\n\n1. **Edit manifests** (if needed):\n\n   - Update `k8s/pvc.yaml` for your storage class.\n   - Set secrets and credentials in `k8s/secret.yaml`.\n   - Set the other variables in `k8s/configmap.yaml`.\n   - (Optional) Customize other manifests like `deployment.yaml`, `service.yaml`, and `ingress.yaml` as needed.\n\n   \u003e **Tip:** Use a custom domain or host for the Ingress.\n\n2. **Apply manifests**\n   ```bash\n   kubectl apply -f k8s/pvc.yaml\n   kubectl apply -f k8s/configmap.yaml\n   kubectl apply -f k8s/secret.yaml\n   kubectl apply -f k8s/deployment.yaml\n   kubectl apply -f k8s/service.yaml\n   kubectl apply -f k8s/ingress.yaml\n   ```\n\n\u003e **Tip:** Use Docker volumes or bind mounts for local dev, and PVCs for Kubernetes.\n\n### 📦 Build from Source\n\nIf you want to customize the image or contribute to the project, you can build it from source:\n\n```bash\ngit clone https://github.com/MRColorR/wagtail.git\ncd wagtail\ndocker build -t mrcolorrain/wagtail:latest -f Dockerfile .\n```\n\nThen run the image as shown above.\n\n## 📚 Usage\n\nTo customize your project name and data directory, add the `PROJECT_NAME` and `DEST_DIR` environment variables and adjust the volume mount:\n\n```bash\ndocker run -d --name wagtail \\\n  -v $PWD/mydata:/app/data/custom \\\n  -e DJANGO_SECRET_KEY=your-secret \\\n  -e DJANGO_SUPERUSER_USERNAME=admin \\\n  -e DJANGO_SUPERUSER_EMAIL=admin@example.com \\\n  -e DJANGO_SUPERUSER_PASSWORD=supersecret \\\n  -e PROJECT_NAME=myproject \\\n  -e DEST_DIR=/app/data/custom \\\n  -p 8000:8000 \\\n  mrcolorrain/wagtail:latest\n```\n\n_For a full list of `manage.py` commands, open a shell inside the container and run:_\n\n```bash\npython manage.py --help\n```\n\n## ▶️ Run the Example Project\n\nThe included Wagtail example `/app/examples/your-first-wagtail-site/`  is available in both image and source code.\n\n### 🐍 Run locally from source code with Python\n\nYou can run it directly with Python for local development, or copy it to your data directory to start a new project:\n\n1. **Install dependencies**\n   ```bash\n   cd app/examples/your-first-wagtail-site\n   pip install -r ../requirements.txt\n   ```\n\n2. **Apply migrations and create a superuser**\n   ```bash\n   python manage.py migrate\n   python manage.py createsuperuser\n   ```\n\n3. **Run the development server**\n   ```bash\n   python manage.py runserver 0.0.0.0:8000\n   ```\n\n4. **Access the site**\n   - Website: [http://localhost:8000/](http://localhost:8000/)\n   - Admin: [http://localhost:8000/admin/](http://localhost:8000/admin/)\n\n\u003e **Note:** The example is tracked in `app/examples/your-first-wagtail-site/` in the repo, and always available at `/app/examples/your-first-wagtail-site/` inside the container, even if you mount a volume over `/app/data`.\n\n### 🐳 Run using Docker image\n\nIf you want to run the included example project in Docker, you can use it from the `/app/examples/your-first-wagtail-site/` path, even if you mount a volume over `/app/data`:\n\n```bash\n# Run the example directly from the image (no need to copy anything):\ndocker run -d --name wagtail \\\n  -v $PWD/app/data:/app/data \\\n  -e DJANGO_SECRET_KEY=your-secret \\\n  -e DJANGO_SUPERUSER_USERNAME=admin \\\n  -e DJANGO_SUPERUSER_EMAIL=admin@example.com \\\n  -e DJANGO_SUPERUSER_PASSWORD=supersecret \\\n  -e PROJECT_NAME=mysite \\\n  -e DEST_DIR=/app/examples/your-first-wagtail-site \\\n  -p 8000:8000 \\\n  mrcolorrain/wagtail:latest\n```\n\nOr, to start a new project based on the example, copy it to your data directory and set `DEST_DIR` accordingly:\n\n```bash\n# Example: copy the example to your data directory\n# Option 1: copy example from inside the container shell to data directory\ncp -r /app/examples/your-first-wagtail-site /app/data/my-new-site\n# Option 2: copy example from source code to data directory\ncp -r app/examples/your-first-wagtail-site app/data/my-new-site\n# Then run the image again with:\ndocker run -d --name wagtail \\\n  -v $PWD/app/data:/app/data \\\n  -e DJANGO_SECRET_KEY=your-secret \\\n  -e DJANGO_SUPERUSER_USERNAME=admin \\\n  -e DJANGO_SUPERUSER_EMAIL=admin@example.com \\\n  -e DJANGO_SUPERUSER_PASSWORD=supersecret \\\n  -e PROJECT_NAME=mysite \\\n  -e DEST_DIR=/app/data/my-new-site \\\n  -p 8000:8000 \\\n  mrcolorrain/wagtail:latest\n```\n\n\u003e **Tip:** The ready to use example is always available at `/app/examples/your-first-wagtail-site/` inside the container, so you can copy it out at any time, even if `/app/data` is mounted as a volume.\n\n## 🔧 Configuration\n\nSet environment variables to customize your instance:\n\n| Variable                  | Description          | Required | Default          |\n| ------------------------- | -------------------- | -------- | ---------------- |\n| DJANGO_SECRET_KEY         | Django secret key    | Yes      | -                |\n| PROJECT_NAME              | Wagtail project name | No       | myawesomewebsite |\n| DEST_DIR                  | Data directory path  | No       | /app/data        |\n| DJANGO_SUPERUSER_USERNAME | Admin username       | Yes      | -                |\n| DJANGO_SUPERUSER_EMAIL    | Admin email          | Yes      | -                |\n| DJANGO_SUPERUSER_PASSWORD | Admin password       | Yes      | -                |\n\n## 📦 Modules and Plugins\n\n| Module/Plugin | Description       | Enabled by Default |\n| ------------- | ----------------- | ------------------ |\n| Wagtail       | CMS core          | Yes                |\n| Gunicorn      | Production server | Yes                |\n| SQLite        | Default DB        | Yes                |\n| wagtail-markdown | Markdown support for content fields (choose between RichText and Markdown editors) | Yes |\n\n\u003e **Tip:** Use your own database and add your desired plugins by overriding settings or mounting a custom config. This makes it easy to extend your Wagtail project with any third-party or custom modules you prefer.\n\n## ✍️ Markdown Support\n\nThis starter kit includes built-in support for Markdown content editing using the [wagtail-markdown](https://github.com/torchbox/wagtail-markdown) plugin.\n\n- **Per-page editor selection:** For all main content types (homepage, blog, knowledge base), you can choose between the standard Wagtail RichText editor or a Markdown editor for each page.\n- **How it works:** In the Wagtail admin, select your preferred editor type (\"RichText\" or \"Markdown\") when creating or editing a page. If you select Markdown, the content field will use a Markdown editor and render Markdown on the site.\n- **Technical details:**\n  - The example project models include both RichText and Markdown fields, plus an `editor_type` selector.\n  - Templates use `{% load wagtailmarkdown %}` and render the correct content type based on the selector.\n  - The `wagtail-markdown` package is included in `requirements.txt` and enabled in `INSTALLED_APPS`.\n- **Extending:** You can apply this pattern to your own models and templates for flexible Markdown/RichText support.\n\n\u003e See the example project in `app/examples/your-first-wagtail-site/` for implementation details.\n\n## 📝 Examples\n\n- **Run with Docker Compose:**\n\n  ```yaml\n  version: \"3.8\"\n  services:\n    wagtail:\n      image: mrcolorrain/wagtail:latest\n      ports:\n        - \"8000:8000\"\n      volumes:\n        - ./app/data:/app/data\n      environment:\n        DJANGO_SECRET_KEY: your-secret\n        DJANGO_SUPERUSER_USERNAME: admin\n        DJANGO_SUPERUSER_EMAIL: admin@example.com\n        DJANGO_SUPERUSER_PASSWORD: supersecret\n  ```\n\n- **Backup your data:**\n  ```bash\n  tar czvf wagtail-backup.tar.gz ./data\n  ```\n\n## ❓ FAQ\n\n**Q: Can I use this for production?**\nA: This is a starter kit for easy Wagtail deployment. For high-traffic or production use, consider switching to PostgreSQL and customizing security settings.\n\n**Q: How do I persist data?**\nA: Use Docker volumes, bind mounts, or Kubernetes PVCs to store `/app/data` (the default value for `DEST_DIR`) outside the container. You can override this path by setting the `DEST_DIR` environment variable.\n\n**Q: How do I backup my site?**\nA: Backup the `/app/data` directory (contains SQLite DB and media files). If you changed `DEST_DIR`, backup that directory instead.\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 🫶 Support the Project\n\nYour support helps keep this project alive and accessible for everyone. Here’s how you can help:\n\n### 💖 Ways to Support\n\n- ⭐️ Star the project\n- 🐛 Reporting bugs\n- 💡 Suggesting enhancements\n- 🤝 Contributing code\n- 📝 Writing documentation\n- 📢 Sharing with friends and online on social media\n- 💖 Donating to support development\n\n### ☕️ Donate\n\nIf you find value in this project, consider making a donation\n\n### Cryptocurrency Wallets\n\n- **Bitcoin (BTC):** `1EzBrKjKyXzxydSUNagAP8XLeRzBTxfHcg`\n- **Ethereum (ETH):** `0xE65c32004b968cd1b4084bC3484C0dA051eeD3ee`\n- **Solana (SOL):** `6kUAWW8q5169qnUJdxxLsNMPpaKPvbUSmryKDYTb9epn`\n- **Polygon (MATIC):** `0xE65c32004b968cd1b4084bC3484C0dA051eeD3ee`\n- **BNB (Binance Smart Chain):** `0xE65c32004b968cd1b4084bC3484C0dA051eeD3ee`\n\n### Support via Other Platforms\n\n- **Patreon:** [Support me on Patreon](https://patreon.com/mrcolorrain)\n- **Buy Me a Coffee:** [Buy me a coffee](https://buymeacoffee.com/mrcolorrain)\n- **Ko-fi:** [Support me on Ko-fi](https://ko-fi.com/mrcolorrain)\n\nYour support, no matter how small, is enormously appreciated and directly fuels ongoing and future developments. Thank you for your generosity! 🙏\n\n## Disclaimer ⚠️\n\nThis project and its artifacts are provided \"as is\" and without warranty of any kind.\n\nThe author makes no warranties, express or implied, that this Wagtail Docker Starter Kit is free of errors, defects, or suitable for any particular purpose.\n\nThe author shall not be held liable for any damages suffered by any user of this project or its documentation, whether direct, indirect, incidental, consequential, or special, arising from the use of or inability to use this project.\n\n## 📄 License\n\nDistributed under the **GNU General Public License v3.0**. See `LICENSE` for more information.\n\n## 🔗 Links and Support\n\n- **Documentation:** [Wagtail Docs](https://docs.wagtail.org/)\n- **Issues:** [GitHub Issues](https://github.com/MRColorR/wagtail/issues)\n- **DockerHub:** [DockerHub Image](https://hub.docker.com/r/mrcolorrain/wagtail)\n- **Author:** [MRColorR]\n\n---\n\n_Made with ❤️ for the community_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrcolorr%2Fwagtail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrcolorr%2Fwagtail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrcolorr%2Fwagtail/lists"}