Awesome Flask 
A curated list of awesome things related to Flask.
Flask is a lightweight WSGI web application framework written in Python.
Contents
- Third-Party Extensions
- Admin
- APIs
- Auth
- Cache
- Data Validation and Serialization
- Databases
- Developer Tools
- Forms
- Full-text Search
- Security
- Task Queues
- Utils
- Resources
- Official Resources
- External Resources
- Community
- Conferences
- Meetups
- Podcasts
- Tutorials
- Courses
- Books
- Videos
- Hosting
- PaaS
- IaaS
- Serverless
- Projects
- Boilerplates
- Open Source Projects
Third-Party Extensions
Admin
- Flask-Admin - Functional admin panel that provides a user interface for managing data based on your models.
APIs
RESTful API Support
- Eve - RESTful API framework designed for human beings.
- Flask-Classful - Adds support for class-based views for setting up RESTful API route endpoints.
- Flask-MongoRest - RESTful API framework wrapped around MongoEngine.
- Flask-RESTful - Quickly build RESTful APIs.
RESTful API + Swagger/OpenAPI Documentation Support
- Connexion - Open source, OpenAPI-based, REST framework built on top of Flask.
- Flask-Rebar - Combines Flask, marshmallow, and OpenAPI for robust REST services.
- Flask-RESTX - Community-driven fork of Flask-RESTPlus that makes it easy to build and document RESTful APIs with Flask.
Swagger/OpenAPI Documentation Support
- Flask-APISpec - Auto-documenting REST APIs.
- SAFRS: Python OpenAPI & JSON:API Framework - SAFRS, which is an acronym for SqlAlchemy Flask-Restful Swagger, is meant to help developers create self-documenting JSON APIs for SQLAlchemy database objects and relationships.
Auth
Basic Auth and Session-based (for HTML Endpoints)
- Flask-HTTPAuth - Authentication.
- Flask-Login - Account management and authentication.
- Flask Principal - Authorization.
- Flask-Security-Too - Account management, authentication, authorization.
- Flask-SimpleLogin - Authentication.
- Flask-User - Account management, authentication, authorization.
Curious about the differences differences between Flask-User and Flask-Security? Review the Flask-User FAQ.
JWT-based (for JSON Endpoints)
- Flask-JWT - Basic support for working with JWTs.
- Flask-JWT-Extended - Advanced support for working with JWTs.
- Flask-JWT-Router - Adds authorized routes to a Flask app.
- Flask-Praetorian - Authentication and authorization for Flask APIs.
OAuth
- Authlib - Library for building OAuth and OpenID clients and servers.
- Authomatic - Framework agnostic library for Python web applications that simplifies authentication and authorization of users via OAuth and OpenID.
- Flask-Dance - OAuth support via OAuthLib.
Cache
- Flask-Caching - Caching support.
Data Validation and Serialization
- Flask-Marshmallow - Thin integration layer for Flask and marshmallow (an object serialization /deserialization library) that adds additional features to marshmallow.
- Flask-Pydantic - Pydantic support.
Databases
ORMs
- Flask-Peewee - Support for Peewee, an ORM and database migration tool.
- Flask-Pony - Support for Pony ORM.
- Flask-SQLAlchemy - Support for SQLAlchemy, a SQL toolkit and ORM.
ODMs
- Flask-MongoEngine - Bridges Flask and MongoEngine for working with MongoDB.
- Flask-PyMongo - Bridges Flask and PyMongo for working with MongoDB.
Migrations
- Flask-Alembic - Configurable Alembic migration environment around a Flask-SQLAlchemy database for handling database migrations.
- Flask-DB - Flask CLI extension that helps you migrate, drop, create and seed your SQL database.
- Flask-Migrate - Handles SQLAlchemy database migrations via Alembic.
Curious about the differences between Alembic, Flask-Alembic, Flask-Migrate, and Flask-DB? Review this item from Flask-DB's FAQ.
Other Tools
- Flask-Excel - Uses pyexcel to read, manipulate, and write data in different Excel formats: csv, ods, xls, xlsx and xlsm.
Developer Tools
Debugging
- Flask-DebugToolbar - Port of Django's debug toolbar for Flask.
- Flask-Profiler - Endpoint analyzer/profiler.
Fixtures
- Flask-Fixtures - Create database fixtures from JSON or YAML.
- Mixer - Object generation tool.
Logging
- Rollbar - Flask error logging with Rollbar.
Monitoring
- Airbrake - Airbrake Flask integration.
- Elastic APM Agent - Elastic APM Flask integration.
- Flask Monitoring Dashboard - Dashboard for automatic monitoring of Flask web-services.
- Sentry Python SDK - Sentry SDK Flask integration.
Tracing
- Flask-OpenTracing - OpenTracing instrumentation.
Testing
- Flask-Testing - Unittest extensions.
- Pytest-Flask - Pytest support for testing Flask applications.
- Flask-Mail - Provides simple email sending capabilities.
- Flask-Mailman - A port of
django.mailfor Flask.
Forms
- Flask-WTF - Integrates Flask with WTForms (provides CSRF protection as well).
Full-text Search
- flask-msearch - Full-text search.
- Flask-WhooshAlchemy3 - Full-text search + Whoosh indexing capabilities for Flask-SQLAlchemy.
- SQLAlchemy-Searchable - Provides full-text search capabilities for SQLAlchemy models.
Security
- Flask-Bcrypt - Provides bcrypt hashing utilities.
- Flask-CORS - Cross Origin Resource Sharing (CORS) handling.
- Flask-SeaSurf - Cross-site request forgery (CSRF) prevention.
- Flask-Talisman - HTTPS and security headers.
Task Queues
- Celery - The most commonly used Python library for handling asynchronous tasks and scheduling.
- Dramatiq - Fast and reliable alternative to Celery.
- Flask-RQ - RQ (Redis Queue) integration.
- Huey - Redis-based task queue that aims to provide a simple, yet flexible framework for executing tasks.
Utils
- Flask-Babel - Support for internationalization (i18n) and localization (l10n).
- Flask-File-Upload - Easy file uploads.
- Flask-FlatPages - Provides flat static pages based on text files.
- Frozen-Flask - Freezes a Flask application into a set of static files.
- Flask-GraphQL - GraphQL support.
- Flask-Injector - Adds support for dependency injection.
- Flask-Limiter - Rate limiting features to Flask routes.
- Flask-Moment - Moment.js date and time formatting helpers for Jinja2 templates.
- Flask-Paginate - Pagination support.
- Flask-Reactize - Replaces the Node.js development backend for React with Flask.
- Flask-Shell2HTTP - RESTful/HTTP wrapper for Python's subprocess API, so you can convert any command-line tool into a RESTful API service.
- Flask-Sitemap - Sitemap generation.
- Flask-SocketIO - Socket.IO integration.
Resources
Official Resources
- Project Website - Official Flask website.
- Documentation - Comprehensive documentation for all Flask versions.
- Flaskr Tutorial - Build a basic blog application called Flaskr.
- Source Code - Hosted on GitHub.
External Resources
- Full Stack Python's Flask Page - Explanation of Flask philosophy and links to other resources and tutorials.
-
Miguel Grinberg's Blog - Multiple Flask-specific tutorials.
-
Nick Janetakis's Blog - Flask Tips, Tricks and Tutorials.
- Patrick Kennedy's Blog - Numerous tutorials on learning Python web application development with Flask.
- RealPython - Many high-quality tutorials on Flask.
- TestDriven.io - Up-to-date tutorials on Flask.
Community
- Discord - Pallets Projects community on Discord (use the
#get-helpchannel for Flask support). - IRC Channel - Chat with other Flask users on IRC channel
#pocooon FreeNode. - Mailing List - General discussion of Flask and the Pallets projects (
flask@python.org). - Reddit - Flask subreddit.
- Stack Overflow - Questions tagged
flask. - Twitter - For official announcements on updates, security fixes, etc.
Conferences
- FlaskCon - Community driven Flask event intended for speakers and attendees all over the world to participate in technical and evangelical sessions related to Flask.
- PyConWeb - Covers Django, Tornado, Flask, API frameworks. AsyncIO, networking, Frontend, JavaScript, and web security.
- Flask Conf Brazil - Conference for the developers and users of Flask.
- PyCon US - The largest annual gathering for the community using and developing the open-source Python programming language.
- PyCon Australia - National conference organized for the Python Programming Community.
- Euro Python - The largest Python conference in Europe.
- PyCon - Complete listing of all PyCons globally.
Meetups
- Flask - 40+ groups in 20 countries.
- Python Web Development - 600+ groups in 81 countries.
- Python - 2,400+ groups in 100 countries.
Podcasts
- TalkPython - The leading Python podcast with several episodes on Flask.
- Podcast Init - A popular Python podcast that features Flask guests on occasion.
- Python Bytes - Another Python podcast that discusses Flask from time to time.
- Full Stack Python's Best Python Podcasts Page - A list of active Python-specific podcasts.
Tutorials
- Flask Mega-Tutorial - Overarching tutorial for Python beginner and intermediate developers that teaches web development with the Flask framework.
- Flaskr TDD - Intro to Flask, Test-Driven Development (TDD), and JavaScript.
- Make a Web App Using Python & Flask! - Creating a Python Website from the Bottom Up.
Courses
- Developing Web Applications with Python and Flask - This course focuses on teaching the fundamentals of Flask by building and testing a web application using Test-Driven Development (TDD).
- Test-Driven Development with Python, Flask, and Docker - Learn how to build, test, and deploy a production-grade microservice powered by Python, Flask, and Docker.
- Authentication with Flask, React, and Docker - Learn how to add authentication to a Flask and React microservice!.
- Deploying a Flask and React Microservice to AWS ECS - Learn how to deploy microservices to Amazon ECS powered by Flask, React, and Docker.
- Build a SAAS App with Flask - Learn to build web applications with Flask and Docker.
- Full Stack Foundations - Build a data-driven web app with Python.
- Designing RESTful APIs - Build and Secure a backend API server.
Books
- Flask Web Development - Learn the framework from the ground up by developing, step-by-step, a real-world project.
- Real Python - Learn Python programming, by example.
- Explore Flask - Best practices and patterns for developing web applications with Flask.
Videos
- PyVideo
- Practical Flask Web Development Tutorials
- Python Flask Tutorial: Full-Featured Web App
- Discover Flask - Full Stack Web Development with Flask
Hosting
PaaS
(Platforms-as-a-Service)
- Heroku
- PythonAnywhere
- AWS Elastic Beanstalk
- Google App Engine
- Microsoft Azure App Service
- Divio
- Render
IaaS
(Infrastructure-as-a-Service)
Serverless
Frameworks:
Compute:
Projects
Boilerplates
- cookiecutter-flask - With Bootstrap 4, asset bundling annd minification with webpack, starter templates, and registration/authentication.
- Cookiecutter Flask Skeleton - Flask starter project for Cookiecutter.
- Flask-AppBuilder - Simple and rapid application development framework that includes detailed security, auto CRUD generation for your models, Google charts, and much more.
- flask-base - Includes SQLAlchemy, Redis, User Authentication, and more.
- Flask-Bootstrap - Integrated SQLAlchemy, authentication, and Bootstrap frontend.
- uwsgi-nginx-flask-docker - Docker image with uWSGI and Nginx for Flask applications in Python running in a single container.
- React-Redux-Flask - Boilerplate application for a Flask JWT Backend and a React/Redux Front-End with Material UI.
- Flask-Scaffold - Prototype Database driven Web apps in Angular 6, Bootstrap 4 and REST API's with Flask.
- Flask-VueJS - Connect Flask application with VueJS.
Open Source Projects
- ActorCloud - Open-source IoT Platform.
- Airflow
- Busy Beaver - Chicago Python's Community Engagement Slack bot.
- FlaskBB - Classic forum software.
- Indico - Feature-rich event management system, made at CERN.
- Quokka CMS - The happiest CMS in the world.
- PythonBuddy - Online Python Editor with live syntax checking and execution.
- Redash - Designed to enable anyone, regardless of the level of technical sophistication, to harness the power of data big and small.
- SkyLines - Live tracking, flight database, and competition framework.
- Security Monkey - Monitors AWS, GCP, OpenStack, and GitHub orgs for assets and their changes over time.
- SecureDrop - Open-source whistleblower submission system that media organizations can use to securely accept documents from, and communicate with anonymous sources.
- SimpleLogin - Protect your online identity with email alias.
- sr.ht - Git hosting service (check out Why I chose Flask to build sr.ht's mini-services as well).
- Timesketch - Collaborative forensic timeline analysis.
NOTE: This project is powered by TestDriven.io. Please support this open source project by purchasing one of our Flask courses. Learn how to build, test, and deploy microservices powered by Docker, Flask, and React!
Awesome Docker

A curated list of Docker resources and projects
If you would like to contribute, please read CONTRIBUTING.md first. It contains a lot of tips and guidelines to help keep things organized. Just click README.md to submit a pull request. If this list is not complete, you can contribute to make it so. Here is a great video tutorial to learn how to contribute on Github.
You can see the updates on TWITTER
Please, help organize these resources so that they are easy to find and understand for newcomers. See how to Contribute for tips!
If you see a link here that is not (any longer) a good fit, you can fix it by submitting a pull request to improve this file. Thank you!
The creators and maintainers of this list do not receive any form of payment to accept a change made by any contributor. This page is not an official Docker product in any way. It is a list of links to projects and is maintained by volunteers. Everybody is welcome to contribute. The goal of this repo is to index open-source projects, not to advertise for profit.
All the links are monitored and tested with a home baked Node.js script
Contents
- Legend
- What is Docker
- Where to start
- Where to start (Windows)
- Projects
- Container Operations
- Docker Images
- Development with Docker
- Services based on Docker (mostly :heavy_dollar_sign:)
- Useful Resources
- Awesome Lists
- Demos and Examples
- Good Tips
- Raspberry Pi & ARM
- Security
- Videos
- Communities and Meetups
- Brazilian
- Chinese
- English
- Russian
- Spanish
- Stargazers over time
- Contributor over time
Legend
- Abandoned :skull:
- Beta :construction:
- Monetized :heavy_dollar_sign:
What is Docker
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.
Source: What is Docker
Where to start
- Benefits of using Docker for development and delivery, with a practical roadmap for adoption.
- Bootstrapping Microservices by Ashley Davis - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster.
- Docker Curriculum: A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service.
- Docker Documentation: the official documentation.
- Docker for beginners: A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts.
- Docker for novices An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews.
- Docker Training :heavy_dollar_sign:
- Docker Tutorial for Beginners (Updated 2019 version) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language.
- Katacoda: Learn Docker using Interactive Browser-Based Labs
- Learn Docker: step-by-step tutorial and more resources (video, articles, cheat sheets) by @dwyl
- Play With Docker: PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser.
- Practical Guide about Docker Commands in Spanish This spanish guide contains the use of basic docker commands with real life examples.
- Practical Introduction to Container Terminology The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology.
- The Docker Handbook An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on fhsinchy/the-docker-handbook and the projects are hosted on fhsinchy/docker-handbook-projects repository.
Cheatsheets by
- @eon01
- @dimonomid (PDF)
- @JensPiegsa
- @wsargent (Most popular)
Where to start (Windows)
- A Comparative Study of Docker Engine on Windows Server vs Linux Platform Comparing the feature sets and implementations of Docker on Windows and Linux
- Build And Run Your First Docker Windows Server Container Walkthrough installing Docker on Windows 10, building a Docker image and running a Windows container
- Docker on Windows behind a firewall by @kaitoedter
- Docker Quick Tutorial Introduces you to the official Getting Started Tutorial using Windows 10 and Hyper-V.
- Docker Reference Architecture: Modernizing Traditional .NET Framework Applications - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization.
- Docker with Microsoft SQL 2016 + ASP.NET Demonstration running ASP.NET and SQL Server workloads in Docker
- Exploring ASP.NET Core with Docker in both Linux and Windows Containers Running ASP.NET Core apps in Linux and Windows containers, using Docker for Windows
- Running a Legacy ASP.NET App in a Windows Container Steps for Dockerizing a legacy ASP.NET app and running as a Windows container
- Windows Containers and Docker: The 101 :movie_camera: - A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps
- Windows Containers Quick Start Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016
Projects
- Moby = open source development
- Docker CE = free product release based on Moby
- Docker EE = commercial product release based on Docker CE.
Docker EE is on the same code base as Docker CE, so also built from Moby, with commercial components added, such as "docker data center / universal control plane"
- Moby
- Docker Images
- Docker Compose (Define and run multi-container applications with Docker)
- Docker Machine (Machine management for a container-centric world)
- Docker Registry (The Docker toolset to pack, ship, store, and deliver content)
- Docker Swarm (Swarm: a Docker-native clustering system)
Container Operations
Container Composition
- bocker (2) :skull: - Write Dockerfile completely in Bash. Extensible and simple. --> Reusable by @icy
- bocker (1) :skull: - Docker implemented in 100 lines of bash by p8952
- box - Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation
- Capitan - Composable docker orchestration with added scripting support by @byrnedo.
- compose_plantuml :skull: - Generate Plantuml graphs from docker-compose files by @funkwerk
- Composerize - Convert docker run commands into docker-compose files
- crowdr - Tool for managing multiple Docker containers (
docker-composealternative) by @polonskiy - docker-compose-graphviz :skull: - Turn a docker-compose.yml files into Graphviz .dot files by @abesto
- docker-config-update - Utility to update docker configs and secrets for deploying in a compose file by @sudo-bmitch
- draw-compose :skull: - Utility to draw a schema of a docker compose by @Alexis-benoist
- elsy - An opinionated, multi-language, build tool based on Docker and Docker Compose
- habitus - A Build Flow Tool for Docker by @cloud66
- kompose - Go from Docker Compose to Kubernetes
- Maestro :skull: - Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit by @tascanini
- Nuxx - Visually generate docker-compose.yaml code with drag-n-drop UI. By @corpulent
- percheron :skull: - Organise your Docker containers with muscle and intelligence by @ashmckenzie
- plash - A container run and build engine - runs inside docker.
- podman-compose - a script to run docker-compose.yml using podman by @containers
- rocker-compose :skull: - Docker composition tool with idempotency features for deploying apps composed of multiple containers. By@grammarly.
- rocker :skull: - Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by @grammarly.
- Smalte – Dynamically configure applications that require static configuration in docker container. By @roquie
- Stacker :skull: - Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience).
- Stitchocker - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By @alexaandrov
- Zodiac :skull: - A lightweight tool for easy deployment and rollback of dockerized applications. By @CenturyLinkLabs
Deployment and Infrastructure
- awesome-stacks - Deploy 80+ open-source web apps with one Docker command
- blackfish - a CoreOS VM to build swarm clusters for Dev & Production by @blackfish
- BosnD - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments.
- Centurion - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By @newrelic
- Clocker - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages Calico and Weave for networking and Brooklyn for application blueprints. By @brooklyncentral
- Conduit - Experimental deployment system for Docker by @ehazlett
- depcon - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By @ContainX
- deploy :skull: - Git and Docker deployment tool. A middle ground between simple Docker composition tools and full blown cluster orchestration by @ttiny
- dockit :skull: - Do docker actions and Deploy gluster containers! By @humblec
- gitkube - Gitkube is a tool for building and deploying docker images on Kubernetes using
git push. By @Hasura. - Grafeas - A common API for metadata about containers, from image and build details to security vulnerabilities. By grafeas
- Longshoreman :skull: - Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By longshoreman
- SwarmManagement - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create.
- werf - werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps by @flant
Monitoring
- Autoheal - Monitor and restart unhealthy docker containers automatically.
- Axibase Collector - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems.
- cAdvisor - Analyzes resource usage and performance characteristics of running containers. Created by @Google
- Docker-Alertd - Monitor and send alerts based on docker container resource usage/statistics
- Docker-Flow-Monitor - Reconfigures Prometheus when a new service is updated or deployed automatically by @docker-flow
- Dockerana :skull: - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker.
- DockProc - I/O monitoring for containers on processlevel.
- dockprom - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by @stefanprodan
- Dozzle - Monitor container logs in real-time with a browser or mobile device. @amir20
- Dynatrace :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands
- Glances - A cross-platform curses-based system monitoring tool written in Python by @nicolargo
- Grafana Docker Dashboard Template - A template for your Docker, Grafana and Prometheus stack @vegasbrianc
- InfluxDB, cAdvisor, Grafana - InfluxDB Time series DB in combination with Grafana and cAdvisor by @vegasbrianc
- LogJam - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by @gocardless
- Logspout - Log routing for Docker container logs by @gliderlabs
- monit-docker - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus]
- NexClipper - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes by @Nexclipper
- Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in Automated Nginx Reverse Proxy (jwilder's).
- SuperVisor CPM Frontend Service and Driver Service :construction: - A simple and accessible FOSS container performance monitoring service written in Python by @t0xic0der
- SwarmAlert - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running.
- Zabbix Docker module - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution.
- Zabbix Docker - Monitor containers automatically using zabbix LLD feature.
Networking
- Calico-Docker - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other.
- Flannel - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By @coreos
- Freeflow - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By @Microsoft
- netshoot - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues by @nicolaka
- Pipework - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By @jpetazzo
- Weave (The Docker network) - Weave creates a virtual network that connects Docker containers deployed across multiple hosts.
Orchestration
- athena - An automation platform with a plugin architecture that allows you to easily create and share services.
- blimp :skull: - Uses Docker Machine to easily move a container from one Docker host to another, show containers running against all of your hosts, replicate a container across multiple hosts and more by @defermat and @schvin
- CloudSlang - CloudSlang is a workflow engine to create Docker process automation
- clusterdock - Docker container orchestration to enable the testing of long-running cluster deployments
- Crane - Control plane based on docker built-in swarm @Dataman-Cloud
- Docker Flow Swarm Listener - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By @docker-flow
- gantryd :skull: - A framework for easy management of docker-based components across machines by @DevTable
- Haven - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By @codeabovelab
- Helios :skull: - A simple platform for deploying and managing containers across an entire fleet of servers by @spotify
- Kontena :skull: - The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use.
- Kubernetes - Open source orchestration system for Docker containers by Google
- ManageIQ - Discover, optimize and control your hybrid IT. By ManageIQ
- Mantl - Mantl is a modern platform for rapidly deploying globally distributed services
- Marathon - Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on"
- Mesos - Resource/Job scheduler for containers, VM's and physical hosts @apache
- Nebula - A Docker orchestration tool designed to manage massive scale distributed clusters.
- Nomad - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler by @hashicorp
- Panamax :skull: - An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop by @CenturyLinkLabs.
- Rancher - An open source project that provides a complete platform for operating Docker in production by @rancher.
- RedHerd Framework - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By @RedHerdProject.
- Swarm-cronjob - Create jobs on a time-based schedule on Swarm by @crazy-max
PaaS
- Atlantis :skull: - Atlantis is an Open Source PaaS for HTTP applications built on Docker and written in Go
- caprover - [previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids
- Convox Rack - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices.
- Dcw - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels.
- Dokku - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by @progrium)
- Empire - A PaaS built on top of Amazon EC2 Container Service (ECS)
- Exoframe - A self-hosted tool that allows simple one-command deployments using Docker
- Flynn - A next generation open source platform as a service
- Hephy Workflow - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of Deis Workflow
- Krane - Toolset for managing container workloads on remote servers
- Nanobox :heavy_dollar_sign: - An application development platform that creates local environments that can then be deployed and scaled in the cloud.
- OpenShift - An open source PaaS built on Kubernetes and optimized for Dockerized app development and deployment by Red Hat
- Tsuru - Tsuru is an extensible and open source Platform as a Service software
Reverse Proxy
- bunkerized-nginx - Web app hosting and reverse proxy secure by default. By @bunkerity
- Docker Dnsmasq Updater - Update a remote dnsmasq server with Docker container hostnames.
- docker-flow-proxy - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By @docker-flow
- docker-proxy :skull: - Transparent proxy for docker containers, run in a docker container. By @silarsis
- fabio - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By @magiconair (Frank Schroeder)
- h2o-proxy :skull: - Automated H2O reverse proxy for Docker containers. An alternative to jwilder/nginx-proxy by @zchee
- Let's Encrypt Nginx-proxy Companion - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By @JrCs
- muguet :skull: - DNS Server & Reverse proxy for Docker environments. By @mattallty
- Nginx Proxy Manager - A beautiful web interface for proxying web based services with SSL. By @jc21
- nginx-proxy - Automated nginx proxy for Docker containers using docker-gen by @jwilder
- Swarm Ingress Router :skull: - Route DNS names to Swarm services based on labels. By @tpbowden
- Swarm Router - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By @flavioaiello
- Træfɪk - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By @EmileVauge
Runtime
- aind - AinD launches Android apps in Docker, by nesting Anbox containers inside Docker by @aind-containers
- cri-o - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by cri-o
- lxc - LXC - Linux Containers
- podman - libpod is a library used to create container pods. Home of Podman by @containers
- rlxc - LXC binary written in Rust by @brauner
- runtime-tools - oci-runtime-tool is a collection of tools for working with the OCI runtime specification by @opencontainers
Security
- Anchor Engine - Analyze images for CVE vulnerabilities and against custom security policies by @Anchor
- Aqua Security :heavy_dollar_sign: - Securing container-based applications from Dev to Production on any platform
- bane - AppArmor profile generator for Docker containers by @genuinetools
- CIS Docker Benchmark - This InSpec compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By @dev-sec
- Clair - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By @coreos
- Dagda - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By @eliasgranderubio
- Deepfence Enterprise :heavy_dollar_sign: - Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By @deepfence
- Deepfence Threat Mapper - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By @deepfence
- docker-bench-security - script that checks for dozens of common best-practices around deploying Docker containers in production. By @docker
- docker-explorer - A tool to help forensicate offline docker acquisitions by @Google
- docker-lock - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By @safe-waters
- KICS - an infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By Checkmarx
- notary - a server and a client for running and interacting with trusted collections. By @TUF
- oscap-docker - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By OpenSCAP
- Prisma Cloud :heavy_dollar_sign: - (previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications.
- Sysdig Falco - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity.
- Sysdig Secure :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response.
- Trend Micro DeepSecurity :heavy_dollar_sign: - Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets.
- Trivy - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI).
Service Discovery
- docker-consul by @progrium
- etcd - Distributed reliable key-value store for the most critical data of a distributed system by @etcd-io (former part of CoreOS)
- istio - An open platform to connect, manage, and secure microservices by @IstioMesh
- proxy :skull: - lightweight nginx based load balancer self using service discovery provided by registrator. by @factorish
- registrator - Service registry bridge for Docker by @gliderlabs and @progrium
Volume Management / Data
- Blockbridge :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By @blockbridge
- Convoy - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By @rancher
- Docker Machine NFS Activates NFS for an existing boot2docker box created through Docker Machine on OS X.
- Docker Unison A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By @leighmcculloch
- Local Persist Specify a mountpoint for your local volumes (created via
docker volume create) so that files will always persist and so you can mount to different directories in different containers. - Minio - S3 compatible object storage server in Docker containers
- Netshare Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By @ContainX
- portworx :heavy_dollar_sign: - Decentralized storage solution for persistent, shared and replicated volumes.
- quobyte :heavy_dollar_sign: - fully fault-tolerant distributed file system with a docker volume driver
- REX-Ray provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By@thecodeteam (DELL Technologies)
- Storidge :heavy_dollar_sign: - Software-defined Persistent Storage for Kubernetes and Docker Swarm
User Interface
IDE integrations
- JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has built-in Docker plugin
- Eclipse Docker Tooling plugin
- docker.vim - Manage docker containers and images in Vim. By @skanehira
- docker.el Manage docker from Emacs by @Silex
Desktop
Native desktop applications for managing and montoring docker hosts and clusters
- Docker Desktop - Official native app. Only for Windows and MacOS
- Dockeron - A project built on Electron + Vue.js for Docker on desktop. @fluency03
- DockerStacks - Local LAMP/LEMP Development Studio @sfx101
- DockStation - A developer centric UI to configure, monitor, and manage services and containers @dock_station
- Lifeboat - An easy way to launch Docker projects with a graphical interface on your Mac. @jplhomer
- Simple Docker UI - built on Electron. By @felixgborrego
Terminal
Terminal UI
- ctop (1) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python) by @yadutaf
- ctop (2) - Top-like interface for container metrics (Golang) by @bcicen
- dive - A tool for exploring each layer in a docker image. By wagoodman.
- dockdash detailed stats. By @byrnedo
- Docker-mon :skull: - Console-based Docker monitoring by @icecrime
- dockly - An interactive shell UI for managing Docker containers by @lirantal
- DockSTARTer - DockSTARTer helps you get started with home server apps running in Docker by GhostWriters
- docui - An interactive shell UI for managing Docker containers. Also works in Windows. By @skanehira
- dry - An interactive CLI for Docker containers by @moncho
- lazydocker - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By @jesseduffield
- sen - :skull: Terminal user interface for docker engine, by @TomasTomecek
CLI tools
- captain - Easily start and stop docker compose projects from any directory. By @jenssegers
- dcinja - The powerful and smallest binary size of template engine for docker command line environment. By @Falldog
- docker-ls - CLI tools for browsing and manipulating docker registries by @mayflower
- docker pushrm - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By @christian-korneck
- dockersql - A command line interface to query Docker using SQL by @crosbymichael
- DVM - Docker version manager by @howtowhale
- goinside - Get inside a running docker container easily. by @iamsoorena
- ns-enter - :skull: no more ssh, enter name spaces of container by @jpetazzo
- Pdocker - A simple tool to manage and maintain Docker for personal projects by @g31s
- proco - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. by @shiwaforce
- reg - Docker registry v2 command line client by @genuinetools
- scuba - Transparently use Docker containers to encapsulate software build environments, by @JonathonReinhart
- skopeo - Work with remote images registries - retrieving information, images, signing content by @containers
- supdock - Allows for slightly more visual usage of Docker with an interactive prompt. By @segersniels
- tsaotun - Python based Assistance for Docker by @qazbnm456
- wharfee - Autocompletion and syntax highlighting for Docker commands. by @j-bennet
Other
- dext-docker-registry-plugin - Search the Docker Registry with the Dext smart launcher. By @vutran
- docker-ssh - SSH Server for Docker containers ~ Because every container should be accessible. By @jeroenpeeters
- dockercraft - Docker + Minecraft = Dockercraft by @docker
- dockerfile-mode An emacs mode for handling Dockerfiles by @spotify
- MultiDocker - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container.
- Powerline-Docker - A Powerline segment for showing the status of Docker containers by @adrianmo
Web
- Admiral Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By VMWare
- Container Web TTY - Connect your containers via a web-tty @wrfly
- Docker Compose UI - Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI
- Docker Registry Browser - Web Interface for the Docker Registry HTTP API v2 by @klausmeyer
- Docker Registry UI (Joxit) - The simplest and cleanest UI for private registries by @Joxit
- Docker Registry UI - A web UI for easy private/local Docker Registry integration by @atcol
- docker-registry-web - Web UI, authentication service and event recorder for private docker registry v2 by @mkuchin
- docker-swarm-visualizer - Visualizes Docker services on a Docker Swarm (for running demos).
- dockering-on-rails :skull: - Simple Web-Interface for Docker with a lot of features by @Electrofenster
- DockerSurfer :skull: - A web service for analyze and browse dependencies between Docker images in the Docker registry, by @Simone-Erba
- Kubevious - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way by @rubenhak.
- netdata - Real-time performance monitoring
- OctoLinker - A browser extension for GitHub that makes the image name in a
Dockerfileclickable and redirect you to the related Docker Hub page. - Portainer - A lightweight management UI for managing your Docker hosts or Docker Swarm clusters by @portainer
- Rapid Dashboard - A simple query dashboard to use Docker Remote API by @ozlerhakan
- Seagull - Friendly Web UI to monitor docker daemon. by @tobegit3hub
- Swarmpit - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc.
- Swirl - Swirl is a web management tool for Docker, focused on swarm cluster By @cuigh
- Theia - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies.
- Yacht :construction: - A Web UI for docker that focuses on templates and ease of use in order to make deployments as easy as possible. By @SelfhostedPro
Docker Images
Base Tools
Tools and applications that are either installed inside containers or designed to be run as a sidecar
- amicontained - Container introspection tool. Find out what container runtime is being used as well as features available by @genuinetools
- autodock - Daemon for Docker Automation by @prologic
- Chaperone - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. by @garywiz
- ckron - A cron-style job scheduler for docker, by @nicomt
- CoreOS - Linux for Massive Server Deployments
- distroless - Language focused docker images, minus the operating system, by @GoogleContainerTools
- docker-alpine - A super small Docker base image (5MB) using Alpine Linux by @gliderlabs
- docker-gen - Generate files from docker container meta-data by @jwilder
- dockerize - Utility to simplify running applications in docker containers by @jwilder
- GoSu - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool) by @tianon
- is-docker - Check if the process is running inside a Docker container by @sindresorhus
- lstags - sync Docker images across registries by @ivanilves
- NVIDIA-Docker - The NVIDIA Container Runtime for Docker by @NVIDIA
- su-exec - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By ncopa
- sue - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by @theAkito
- supercronic - crontab-compatible job runner, designed specifically to run in containers by @aptible
- TrivialRC - A minimalistic Runtime Configuration system and process manager for containers @vorakl
Builder
Applications designed to help or simplify building new images
- ansible-bender - A tool utilising
ansibleandbuildahby @TomasTomecek - buildah - A tool that facilitates building OCI images by @containers
- BuildKit - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit by @moby project
- cekit - A tool used by openshift to build base images using different build engines by @cekit.
- container-diff - An image tool for comparing and analyzing container images by @GoogleContainerTools
- container-factory - Produces Docker images from tarballs of application source code by @mutable
- copy-docker-image - Copy a Docker image between registries without a full Docker installation by @mdlavin
- Derrick - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By @alibaba.
- dlayer - docker layer analyzer by @orisano
- docker-companion - A command line tool written in Golang to squash and unpack docker images by @mudler
- docker-make - Build, tag,and push a bunch of related docker images via a single command.
- docker-replay - Generate
docker runcommand and options from running containers. By bcicen - DockerMake - A reproducible Docker image build system for complex software stacks. By @avirshup
- DockerSlim shrinks fat Docker images creating the smallest possible images.
- Dockly - Dockly is a gem made to ease the pain of packaging an application in Docker by @swipely
- dockramp :skull: - Proof of Concept: A Client Driven Docker Image Builder by @jlhawn
- essex - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. @jamesbrink
- HPC Container Maker - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components by @NVIDIA
- img - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder by @genuinetools
- kaniko - Build Container Images In Kubernetes. By @GoogleContainerTools
- makisu - Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By @uber
- packer - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible
- portainer - Apache Mesos framework for building Docker images by @duedil-ltd
- Production-Ready Python Containers :heavy_dollar_sign: - A template for creating production-ready Docker images for Python applications.
- RAUDI - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By @SecSI
- runlike - Generate
docker runcommand and options from running containers by @lavie - SkinnyWhale :skull: - Skinnywhale helps you make smaller (as in megabytes) Docker containers.
- Smith - A Micocontainer Builder and can perform multi-stage builds after the image is built Oracle
- Whaler - Program to reverse Docker images into Dockerfiles by @P3GLEG.
- Whales - A tool to automatically dockerize your applications by @icalialabs.
Dockerfile
- chaperone-docker - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits.
- Dockerfile Generator
dfgis both a Go library and an executable that produces valid Dockerfiles using various input channels. - Dockerfile Generator
- Dockerfile Project - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container.
- dockerfilegraph - Visualize your multi-stage Dockerfiles. By @PatrickHoefler
- Dockershelf - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. Maintained by @CollageLabs.
- dockmoor :construction: - Manage docker image references and help to create reproducible builds with Docker. By @MeneDev
- Vektorcloud - A collection of minimal, Alpine-based Docker images
Examples by:
- @arun-gupta
- @awesome-startup
- @crosbymichael
- @jessfraz
- @komljen
- @kstaken
- @ondrejmo
- @pandrew
- @vimagick
Linter
- docker-image-size-limit - A tool to keep an eye on your docker images size.
- Dockerfile Linter action - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images.
- dockfmt :construction: - Dockerfile formatter and parser by @jessfraz
- FROM:latest - An opinionated Dockerfile linter by @replicatedhq
- Hadolint - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in
RUNinstructions; by @lukasmartinelli - Whale-linter - A simple and small Dockerfile linter written in Python3+ without dependencies by @jeromepin
Metadata
- opencontainer - A convention and shared namespace for Docker labels defined by OCI Image Spec.
Registry
Services to securely store your Docker images.
- Amazon Elastic Container Registry :heavy_dollar_sign: - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images.
- Azure Container Registry :heavy_dollar_sign: - Manage a Docker private registry as a first-class Azure resource
- CargoOS - A bare essential OS for running the Docker Engine on bare metal or Cloud. By @RedCoolBeans
- cleanreg - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC by @hcguersoy
- Cloudsmith :heavy_dollar_sign: - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source.
- Container Registry Service :heavy_dollar_sign: - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories.
- Cycle.io :heavy_dollar_sign: - Bare-metal container hosting.
- DigitalOcean :heavy_dollar_sign: - DigitalOcean Container Registry.
- Dist :heavy_dollar_sign: - Private cloud-based Docker container registry
- Docker Hub provided by Docker Inc.
- Docker Registry v2 - The Docker toolset to pack, ship, store, and deliver content
- Docket - Custom docker registry that allows for lightning fast deploys through bittorrent by @netvarun
- GCE Container Registry :heavy_dollar_sign: Fast, private Docker image storage on Google Cloud Platform
- GitLab Container Registry - Registry focused on using its images in GitLab CI
- Harbor An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By CNCF formerly VMWare
- JFrog Artifactory :heavy_dollar_sign: - Artifact Repository Manager, can be used as private Docker Registry as well
- Kraken - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds.
- Portus - Authorization service and frontend for Docker registry (v2) by @SUSE
- Quay.io :heavy_dollar_sign: (part of CoreOS) - Secure hosting for private Docker repositories
- Registryo - UI and token based authentication server for onpremise docker registry
- Rescoyl - Private Docker registry (free and open source) by @noteed
- Sonatype Nexus - Repository with Universal Support, also for Docker images
- TreeScale - Build and Distribute container based applications. By @tigranbs
Development with Docker
API Client
- ahab - Docker event handling with Python by @instacart
- clj-docker-client :skull: - Idiomatic Clojure client for the Docker remote API. By @lispyclouds
- contajners - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By @lispyclouds
- Docker Client for JVM - A Docker remote api client library for the JVM, written in Groovy by @gesellix
- Docker Client TypeScript - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By @masaeedu
- docker-client :skull: - Java client for the Docker remote API. By @spotify
- docker-it-scala - Docker integration testing kit with Scala by @whisklabs
- docker-java-api - Lightweight, truly object-oriented, Java client for Docker's API. By @amihaiemil
- docker-maven-plugin - A Maven plugin for running and creating Docker images by @fabric8io
- Docker-PowerShell - PowerShell Module for Docker
- Docker.DotNet - C#/.NET HTTP client for the Docker remote API by @ahmetalpbalkan
- Docker.Registry.DotNet - .NET (C#) Client Library for interacting with a Docker Registry API (v2) @rquackenbush
- dockerfile-maven - A Maven plugin for building and pushing Docker images by @spotify
- dockerode - Docker Remote API node.js module by @apocas
- DoMonit - A simple Docker Monitoring wrapper For Docker API
- go-dockerclient - Go HTTP client for the Docker remote API by @fsouza
- Gradle Docker plugin - A Docker remote api plugin for Gradle by @gesellix
- libcompose - Go library for Docker Compose.
- Portainer stack utils :construction: - Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By @greenled.
- sbt-docker-compose - Integrates Docker Compose functionality into sbt by @kurtkopchik
- sbt-docker - Create Docker images directly from sbt by @marcuslonnberg
CI/CD
- Buddy :heavy_dollar_sign: - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development.
- Captain - Convert your Git workflow to Docker containers ready for Continuous Delivery by @harbur.
- Cyclone - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources by @caicloud.
- Diun - Receive notifications when an image or repository is updated on a Docker registry by @crazy-max.
- Docker plugin for Jenkins - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave.
- Dockupdater - Automatically keep your docker services and your docker containers up-to-date
- Drone - Continuous integration server built on Docker and configured using YAML files.
- GitLab Runner - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners.
- GOCD-Docker :skull: - Go Server and Agent in docker containers to provision.
- Microservices Continuous Deployment - Continuous deployment of a microservices application.
- mu - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS @Stelligent
- Ouroboros :skull: - Automatically update running Docker containers with notifications
- Popper - Github actions workflow (HCL syntax) execution engine.
- Screwdriver :heavy_dollar_sign: - Yahoo's OpenSource buildplatform designed for Continous Delivery.
- Skipper - Easily dockerize your Git repository by @Stratoscale
- SwarmCI - Create a distributed, isolated task pipeline in your Docker Swarm.
- Watchtower - Automatically update running Docker containers
Development Environment
- batect - build and testing environments as code tool: Dockerised build and testing environments made easy by @charleskorn
- Binci - Containerize your development workflow. (formerly DevLab by @TechnologyAdvice)
- Boot2Docker :skull: - Docker for OSX and Windows
- construi - Run your builds inside a Docker defined environment by @lstephen
- Crashcart - Sideload Linux binaries into a running container for troubleshooting by @Oracle
- dde :construction: - Local development environment toolset based on Docker. By @whatwedo
- Devstep :skull: - Development environments powered by Docker and buildpacks by @fgrehm
- Dinghy - An alternative way to use Docker on Mac OS X using Docker Machine with virtualbox, vmware, xhyve or parallels
- DIP - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By @bibendi
- DLite :skull: - Simplest way to use Docker on OSX, no VM needed. By @nlf
- dobi - A build automation tool for Docker applications. By @dnephin
- Docker Missing Tools - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By @NandoQuintana.
- Docker osx dev :skull: - A productive development environment with Docker on OS X by @brikis98
- Docker-Arch - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By @Ph3nol
- docker-setup - Install, configure and update container tools. By @nicholasdille
- Docker-sync - Drastically improves performance (50-70x) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By @EugenMayer
- docker-vm - Simple and transparent alternative to boot2docker (backed by Vagrant) by @shyiko
- DockerBuildManagement - Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution.
- Dusty - Managed Docker development environments on OS X
- Eclipse Che - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE
- EnvCLI - Replace your local installation of Node, Go, ... with project-specific docker containers. By @EnvCLI
- footloose - Spin containers that look like Virtual Machines - By @dlespiau
- forward2docker :skull: - Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM by @bsideup
- Gebug - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly.
- Lando - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By Tandem
- Vagga - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments by @tailhook
- Zsh-in-Docker - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By Deluan
Garbage Collection
- caduc - A docker garbage collector cleaning stuff you did not use recently
- Docker Clean - A script that cleans Docker containers, images and volumes by @zzrotdesign
- docker_gc - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service by @pdacity
- Docker-cleanup :skull: - Automatic Docker image, container and volume cleanup by @meltwater
- docker-custodian - Keep docker hosts tidy. By @Yelp
- docker-garby - Docker garbage collection script by @konstruktoid.
- docker-gc :skull: - A cron job that will delete old stopped containers and unused images by @spotify
- sherdock :skull: - Automatic GC of images based on regexp by @rancher
Serverless
- AMP :skull: - The open source unified CaaS/FaaS platform for Docker, batteries included. By @Appcelerator
- Apache OpenWhisk - a serverless, open source cloud platform that executes functions in response to events at any scale. By @apache
- Docker-Lambda - Docker images and test runners that replicate the live AWS Lambda environment. By @lamb-ci
- Funker - Functions as Docker containers example voting app. By @bfirsh
- IronFunctions - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions
- Koyeb :heavy_dollar_sign: - Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery.
- OpenFaaS - A complete serverless functions framework for Docker and Kubernetes. By OpenFaaS
- SCAR - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda) by @grycap
Testing
- Container Structure Test - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By @GoogleContainerTools
- dgoss - A fast YAML based tool for validating docker containers.
- DockerSpec - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By @zuazo
- Dockunit :skull: - Docker based integration tests. A simple Node based utility for running Docker based unit tests. By @dockunit
- InSpec - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By @chef
- Pull Dog - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source.
- Pumba - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By @alexei-led
Wrappers
- Ansible - Manage the life cycle of Docker containers. By RedHat
- Azk - Orchestrate development environments on your local machine by @azukiapp
- Beluga :skull: - CLI to deploy docker containers on a single server or low amount of servers. By @cortextmedia
- dexec - Command line interface written in Go for running code with Docker Exec images.
- dockerized - Seamlessly execute commands in a container.
- Dray - An engine for managing the execution of container-based workflows by @CenturyLinkLabs
- FuGu :skull: - Docker run wrapper without orchestration by @mattes
- Hokusai - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From @artsy
- Shutit - Tool for building and maintaining complex Docker deployments by @ianmiell
- subuser - Makes it easy to securely and portably run graphical desktop applications in Docker
- T.A.D.S. boilerplate - The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By @Thomvaill
- Terraform cloud-init config - Terraform module for deploying a single Docker image or
docker-compose.yamlfile to any Cloud™ VM - Turbo - Simple and Powerful utility for docker. By @ramitsurana
- udocker - A tool to execute simple docker containers in batch or interactive systems without root privileges by @inidigo-dc
- Vagrant - Docker provider - Good starting point is vagrant-docker-example by @bubenkoff
Services based on Docker (mostly :heavy_dollar_sign:)
CI Services
- CircleCI :heavy_dollar_sign: - Push or pull Docker images from your build environment, or build and run containers right on CircleCI.
- CodeFresh :heavy_dollar_sign: - Everything you need to build, test, and share your Docker applications. Provides automated end to end testing.
- CodeShip :heavy_dollar_sign: - Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security.
- ConcourseCI :heavy_dollar_sign: - A CI SaaS platform for developers and DevOps teams pipeline oriented.
- Semaphore CI :heavy_dollar_sign: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production.
- Shippable :heavy_dollar_sign: - A SaaS platform for developers and DevOps teams that significantly reduces the time taken for code to be built, tested and deployed to production.
- TravisCI :heavy_dollar_sign: - A Free github projects continuous integration Saas platform for developers and Devops.
CaaS
- Amazon ECS :heavy_dollar_sign: - A management service on EC2 that supports Docker containers.
- Appfleet :heavy_dollar_sign: - Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency.
- Azure AKS :heavy_dollar_sign: - Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service.
- Cloud 66 :heavy_dollar_sign: - Full-stack hosted container management as a service
- Dockhero :heavy_dollar_sign: - Dockhero is a Heroku add-on which turns a Docker image into a microservice attached to the Heroku app. Currently in beta.
- Giant Swarm :heavy_dollar_sign: - Simple microservice infrastructure. Deploy your containers in seconds.
- Google Container Engine :heavy_dollar_sign: - Docker containers on Google Cloud Computing powered by Kubernetes.
- Jelastic Cloud :heavy_dollar_sign: - "Easy-to-use" container hosting platfrom with automatic vertical and horizontal scaling. Available over 50+ hosting providers worldwide.
- Mesosphere DC/OS Platform :heavy_dollar_sign: - Integrated platform for data and containers built on Apache Mesos by @mesosphere
- Red Hat CodeReady Workspaces - A collaborative Kubernetes-native solution for rapid application development that delivers consistent developer environments on Red Hat OpenShift to allow anyone with a browser to contribute code in under two minutes.
- Red Hat OpenShift Dedicated :heavy_dollar_sign: - Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud
- Sloppy.io :heavy_dollar_sign: - all-in-one solution for container deployment and hosting – made and hosted in Germany
- Triton :heavy_dollar_sign: - Elastic container-native infrastructure by Joyent.
Monitoring Services
- AppDynamics - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP.
- Broadcom Docker Monitoring :heavy_dollar_sign: - Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies)
- Collecting docker logs and stats with Splunk
- Datadog :heavy_dollar_sign: - Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos.
- Prometheus :heavy_dollar_sign: - Open-source service monitoring system and time series database
- Site24x7 :heavy_dollar_sign: - Docker Monitoring for DevOps and IT is a SaaS Pay per Host model
- SPM for Docker :heavy_dollar_sign: - Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. @sematext
- Sysdig Monitor :heavy_dollar_sign: - Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes.
Useful Resources
- Valuable Docker Links High quality articles about docker! MUST SEE
- Become a Docker Power User with Visual Studio Code - :heavy_dollar_sign: A training course to help you become a Docker Power user with Visual Studio Code
- Cloud Native Landscape
- Docker Certification :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate.
- Docker Community on Hashnode
- Docker dev bookmarks - use the tag docker
- Docker in Action, Second Edition
- Docker in Practice, Second Edition
- Docker Newsletter Docker newsletter for regular updates
- Docker packaging guide for Python - a series of detailed articles on the specifics of Docker packaging for Python.
- Learn Docker in a Month of Lunches
- Learn Docker - Learn Docker - curated list of the top online docker tutorials and courses.
- Programming Community Curated Resources for learning Docker
Awesome Lists
- Awesome CI/CD - Not specific to docker but relevant.
- Awesome Compose - Docker Compose samples
- Awesome Kubernetes by @ramitsurana
- Awesome Linux Container more general about container than this repo, by @Friz-zy.
- Awesome Selfhosted list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. By @Kickball
- Awesome Sysadmin by @n1trux
- ToolsOfTheTrade a list of SaaS and On premise applications by @cjbarber
Demos and Examples
- An Annotated Docker Config for Frontend Web Development A local development environment with Docker allows you to shrink-wrap the devops your project needs as config, making onboarding frictionless.
- Local Docker DB a list of docker-compose samples for a lot of databases by @alexmacarthur
- Webstack-micro Demo web app showing how Docker Compose might be used to set up an API Gateway, centralized authentication, background workers, and WebSockets as containerized services.
Good Tips
- Dealing with linked containers dependency in docker-compose by @rochacbruno
- Docker Caveats What You Should Know About Running Docker In Production (written 11 APRIL 2016) MUST SEE
- Docker Containers on the Desktop - The funniest way to learn about docker by @jessfraz who also gave a presentation about it @ DockerCon 2015
- Docker vs. VMs? Combining Both for Cloud Portability Nirvana
- Dockerfile best practices - This repository has best-practices for writing Dockerfiles
- Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files by @King Chung Huang
- GUI Apps with Docker by @fgrehm
Raspberry Pi & ARM
- Docker Pirates ARMed with explosive stuff Huge resource on clustering, swarm, docker, pre-installed image for SD card on Raspberry Pi
- Get Docker up and running on the RaspberryPi in three steps
- git push docker containers to linux devices Modern DevOps for IoT, leveraging git and Docker.
- Installing, running, using Docker on armhf (ARMv7) devices
Security
- Bringing new security features to Docker
- CVE Scanning Alpine images with Multi-stage builds in Docker 17.05 by @tomwillfixit
- Docker Secure Deployment Guidelines
- Docker Security - Quick Reference
- Docker Security Cheat Sheet
- Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare
- How CVE's are handled on Offical Docker Images
- Lynis is an open source security auditing tool including Docker auditing
- Security Best Practices for Building Docker Images
- Software Engineering Radio interview of Docker Security Team Lead (Diogo Mónica)
- Ten Docker Image Security Best Practices Cheat Sheet
- Top ten most popular docker images each contain at least 30 vulnerabilities
- Tuning Docker with the newest security enhancements
Videos
- Contributing to Docker by Andrew "Tianon" Page (InfoSiftr) (34:31)
- Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic (3:11:06) by @jpetazzo
- Docker and SELinux by Daniel Walsh from Red Hat (40:23)
- Docker Course (Spanish) by @pablokbs
- Docker for Developers (54:26) by @jpetazzo <== Good introduction, context, demo
- Docker from scratch (1:22:01) on YouTube by Paris Nakita Kejser
- Docker: How to Use Your Own Private Registry (15:01)
- Docker in Production by @jpetazzo (36:05)
- Docker Primer to Docker Compose (1:56:45) on YouTube by LoginRadius
- Docker Registry from scratch (44:40) on YouTube by Paris Nakita Kejser
- Docker Swarm from scratch (1:41:28) on YouTube by Paris Nakita Kejser
- Extending Docker with Plugins (15:21)
- From Local Docker Development to Production Deployments by @jpetazzo @ AWS re:Invent 2015
- Immutable Infrastructure with Docker and EC2 by Michael Bryzek (Gilt) (42:04)
- Introduction to Docker and containers (3:09:00) by @jpetazzo
- Logging on Docker: What You Need to Know (51:27)
- Performance Analysis of Docker - Jeremy Eder (1:36:58)
- Scalable Microservices with Kubernetes Free Udacity course
- State of containers: a debate with CoreOS, VMware and Google (27:38)
Communities and Meetups
Brazilian
- Docker BR on Slack - Auto invite url
- Docker BR on Telegram
Chinese
- DockerOne Docker Community (in Chinese) by @LiYingJie
English
Russian
Spanish
Stargazers over time
Contributor over time
Awesome Vagrant
A curated list of awesome Vagrant resources, plugins, tutorials and other nice things.
Official resources
- Vagrant site - installation instruction, official manuals and docs.
- GitHub repo - source code, issues discussion and collaboration.
Boxes
Where to find OS boxes ?
- Vagrantbox.es - the biggest list of all available boxes, maintained by community via GitHub pull requests.
- Vagrant Cloud - config share, boxes distribution and discovery (also premium features of private collaboration and sharing).
- Cloud Images Ubuntu.com - "clean" official Ubuntu cloud images.
- Baseboxes from Opscode - CentOS, Fedora, Debian, FreeBSD, Ubuntu.
- Puppet Labs Vagrant Boxes - these boxes are provided to be used by various Puppet projects.
- Cloudsmith - A fully managed package management SaaS with support for Vagrant repositories (and many others).
Provisioning
- All available build in provisioning providers - official doc.
- Vaprobash - Vagrant Provisioning Bash Scripts.
Notable plugins
You can install these modules by this command vagrant plugin install MODULE-NAME
- List of available Vagrant plugins from GitHub wiki.
- vagrant-vbguest - autoupdate VirtualBox guest additions (according to VB version).
- vagrant-hostsupdater - adds an entry to your /etc/hosts file on the host system.
- vagrant-cachier - share a common package (apt-get, npm, etc.) cache among similar VM instances.
- vagrant-host-shell - a vagrant provisioner to run commands on the host when a VM boots.
- vagrant-ansible-local allow provisioning your VM with ansible playbooks directly from the guest VM.
- sahara - easy manage VM state (commit/rollback while experimenting with software stack).
- vagrant-registration - add "register" and "unregister" capabilities to Vagrant guests for updates on systems with a subscription model(like Red Hat Enterprise Linux).
- vagrant-service-manager - enable easier access to the features and services provided by the Atomic Developer Bundle (ADB).
- vagrant-scp - Copy files to a Vagrant VM via SCP.
Helpers / Tools
- Packer - a tool for creating identical machine images for multiple platforms from a single source configuration. For fast infrastructure deployment with multi-provider portability.
- T.A.D.S. boilerplate - boilerplate to create, develop and deploy a Docker Swarm environment, using Vagrant to reproduce production environment locally.
- Veewee - a tool for easily (and repeatedly) building custom Vagrant base boxes, KVMs, and virtual machine images.
- Vagrant plugin for ZSH shell - auto-complete for commands, task names, box names and built-in documentation.
- CLI Vagrant Manager - simple command-line tool to manage multiple vagrant boxes
Desktop tools
- Vagrant Manager for OS X.
Web services
To generate Vagrantfile with automated provisioning scripts.
- Phansible - provides an easy to use interface that helps you generate Ansible Playbooks for PHP based projects.
- PuPHPet - a simple GUI to set up virtual machines for
PHPWeb development. - Protobox - PuPHPet analog, but uses own installer with YAML configuration format to control everything that is installed on the virtual machine.
- Rove - a service that allows you to pregenerate typical Vagrant builds.
Proxy services
To proxy your local web server and make it publicly available over the internet.
- Vagrant share - allows you to share your Vagrant environment with anyone in the world.
- nip.io - a magic domain name that provides wildcard DNS for any IP address.
- ngrok - tool to create secure tunnels to expose a local server behind a NAT or firewall to the internet.
- serveo - expose local servers to the internet, without installing any client!
- proxylocal.com - proxy your local web-server and make it publicly available over the internet.
- localtunnel.me - assign you a unique publicly accessible url that will proxy all requests to your locally running webserver.
- portmap.io - OpenVPN based free port forwarding solution.
Tutorials
- Getting Started With Vagrant by This Programming Thing.
- Getting started with Vagrant - automated dev servers deploy and provisioning.
- Working with Advanced Vagrant features in PhpStorm.
- Sharing Your Virtual Machine on the Web with Vagrant Share.
- Programming Community Curated Resources for Learning Vagrant
- Vagrant Online Courses at Classpert List of Vagrant Online Courses (free and paid)
Books
- Vagrant: Up and Running by Mitchell Hashimoto.
- Vagrant CookBook by Erika Heidi.
- Pro Vagrant by by Wlodzimierz Gajda.
- Creating Development Environments with Vagrant / 2nd Edition by Michael Peacock
- Vagrant Virtual Development Environment Cookbook by Chad Thompson
Popular readymade environments
- Vagrantpress - development environment for creating and modifying WordPress sites.
- Varying Vagrant Vagrants - An open source Vagrant configuration focused on WordPress development.
- Joomla-Vagrant.
- VDD - Vagrant Drupal Development.
- Drupal VM - A VM for local Drupal development, built with Vagrant + Ansible
- Try Yii2 - try Yii2 with Vagrant VM + Ansible provisioning = Complete readymade virtual server playground.
- Laravel4-Vagrant - run Laravel 4 inside a Ubuntu 12.04 Vagrant Virtual Machine w/PHP 5.5.
- OpenStack on Ansible with Vagrant.
- Laravel Homestead - Official Vagrant Box for Laravel development, based on Ubuntu 16.04 LTS, PHP 7, Nginx, and multiple database platforms.
- Scotch Box - Simple Vagrant Box with LAMP stack, plus some useful extras, based on Ubuntu 14.04 LTS.
License
To the extent possible under law, Ievgen Kuzminov has waived all copyright and related or neighboring rights to this work.
Awesome Pyramid
A curated list of awesome Pyramid apps, projects and resources. Inspired by and based on awesome-python.
Admin interface
Packages that extend the Admin interface, adding or improving features.
- pyramid_formalchemy - provides a CRUD interface for pyramid based on FormAlchemy.
- pyramid_sacrud - Pyramid CRUD interface.
Provides an administration web interface for Pyramid.
Unlike classic CRUD, pyramid_sacrud allows overrides and flexibility to
customize your interface, similar to django.contrib.admin but uses a
different backend to provide resources. New Architecture
built on the resources and mechanism traversal, allows to use it in various cases.
- ps_alchemy - extension for pyramid_sacrud which provides SQLAlchemy models.
- ps_tree - extension for pyramid_sacrud which displays a list of records as tree. This works fine with models from sqlalchemy_mptt.
- Websauna - a full stack application framework for Pyramid
Asset Management
Packages that help manage the static assets of a project.
- pyramid_webassets - Pyramid extension for working with the webassets library.
- pyramid_bowerstatic - integration of Bowerstatic in Pyramid
Async
- aiopyramid - Run pyramid using asyncio.
- gevent-socketio - gevent-socketio is a Python implementation of the Socket.IO protocol, developed originally for Node.js by LearnBoost and then ported to other languages.
- Stargate - Stargate is a package for adding WebSockets support to pyramid applications using the excellent eventlet library for long running connections.
- channelstream - websocket communication server (gevent).
Authentication
Packages that improve or extend the authentication methods of Pyramid.
- pyramid_ldap - an LDAP authentication policy for Pyramid.
- pyramid_ldap3 - Provides LDAP authentication services for your Pyramid application based on the ldap3 package.
- pyramid_who - Authentication policy for pyramid using repoze.who 2.0 API.
- velruse - Simplifying third-party authentication for web applications. it supports most of auth providers.
- pyramid_simpleauth - session based authentication and role based security for Pyramid application
- Python Social Auth - Social authentication/registration mechanism with support for a large number of providers.
- Authomatic - Simple yet powerful authorization / authentication client library for Python web applications.
- apex - Toolkit for Pyramid, a Pylons Project, to add Authentication and Authorization using Velruse (OAuth) and/or a local database, CSRF, ReCaptcha, Sessions, Flash messages and I18N.
- pyramid_authsanity - That will make it simpler to have a secure authentication policy with an easy to use backend.
- pyramid_jwt - This package implements an authentication policy for Pyramid that using JSON Web Tokens. This standard (RFC 7519) is often used to secure backens APIs. The excellent PyJWT library is used for the JWT encoding / decoding logic.
- pyramid_ipauth - Pyramid authentication policy based on remote ip address.
Authorization
Packages related to authorization infrastructure and permissions.
- ziggurat_foundations - Framework agnostic set of sqlalchemy classes that make building applications that require permissions an easy task.
- pyramid_multiauth - An authentication policy for Pyramid that proxies to a stack of other authentication policies.
- pyramid_authstack - Use multiple authentication policies with Pyramid.
- horus - User registration and login system for the Pyramid Web Framework.
- pyramid_yosai - Pyramid integration with security Framework for Python applications featuring Authorization (rbac permissions and roles), Authentication (2fa totp), Session Management and an extensive Audit Trail https://yosaiproject.github.io/yosai/
Caching & Session
Packages that help with caching and session.
- pyramid_beaker - A Beaker session factory backend for Pyramid, also cache configurator.
- pyramid_redis_sessions - Pyramid web framework session factory backed by Redis.
- pyramid_dogpile_cache - dogpile.cache configuration package for Pyramid
- pyramid_sessions - Multiple session support for the Pyramid Web Framework
- pyramid_nacl_session - defines an encrypting, pickle-based cookie serializer, using PyNaCl to generate the symmetric encryption for the cookie state.
Debugging
Packages that help hunt down bugs.
- pyramid_debugtoolbar - provides a debug toolbar useful while you're developing your Pyramid application.
- pyramid_exclog - a package which logs exceptions from Pyramid applications.
- pyramid_debugtoolbar_dogpile - dogpile caching support for pyramid_debugtoolbar
- pyramid_ipython - IPython bindings for Pyramid's pshell
- pyramid_bpython - bpython bindings for Pyramid's pshell
- pyramid_pycallgraph - Pyramid tween to generate a callgraph image for every request
Packages that help manage email sending.
- pyramid_mailer - A package for sending email from your Pyramid application.
- pyramid_marrowmailer - Pyramid integration package for marrow.mailer, formerly known as TurboMail
- pyramid_mailgun - Mailgun integration for Pyramid framework.
Forms
Packages that extend the functionality of forms or add new types of forms.
- deform - is a Python HTML form generation library.
- colander - A serialization/deserialization/validation library for strings, mappings and lists.
- WTForms - is a flexible forms validation and rendering library for python web development.
- ColanderAlchemy - helps you to auto-generate Colander schemas that are based on SQLAlchemy mapped classes.
- marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes (i.e. (de)serialization and validation).
Media-Management
- pyramid_elfinder - This is conector for elfinder file manager, written for pyramid framework.
- pyramid_storage - This is a package for handling file uploads in your Pyramid framework application.
RESTful API
Packages for developing RESTful APIs.
- cornice - provides helpers to build & document REST-ish Web Services with Pyramid, with decent default behaviors. It takes care of following the HTTP specification in an automated way where possible.
- rest_toolkit - is a Python package which provides a very convenient way to build REST servers. It is build on top of Pyramid, but you do not need to know much about Pyramid to use rest_toolkit.
- pyramid_royal - Royal is a pyramid extension which eases writing RESTful web applications.
- cliquet - Cliquet is a toolkit to ease the implementation of HTTP microservices, such as data-driven REST APIs.
- webargs - A friendly library for parsing HTTP request arguments, with built-in support for popular web frameworks.
- ramses - Generate a RESTful API using RAML. It uses Nefertari which provides ElasticSearch-powered views.
- nefertari - Nefertari is a REST API framework sitting on top of Pyramid and ElasticSearch.
- pyramid_swagger - Convenient tools for using Swagger to define and validate your interfaces in a Pyramid webapp. (Swagger 2.0 document)
- pyramid-openapi3 - Validate Pyramid views against an OpenAPI 3.0 document. Similar to pyramid_swagger but for OpenAPI 3.0.
- pyramid_jsonapi - Automatically create a JSON API standard API from a database using the sqlAlchemy ORM and pyramid framework.
- pyramid_apispec - Create an OpenAPI specification file using apispec and Marshmallow schemas.
Search
Packages that provide search capabilities to projects.
- hypatia - A Python indexing and searching system.
Security
Packages that improve the security of a project.
Services
- pyramid_sms - SMS services for Pyramid web framework.
Settings
Packages that help manage the configurability of projects.
- pyramid_zcml - Zope Configuration Markup Language configuration support for Pyramid.
- pyramid_services - defines a pattern and helper methods for accessing a pluggable service layer from within your Pyramid apps.
- hupper - A process monitor/reloader for developers that can watch files for changes and restart the process.
Storage
Packages that extend the functionality of the existing storage backend or provide new storage backends.
- pyramid_tm - Centralized transaction management for Pyramid applications (without middleware).
- zope.sqlalchemy - Integration of SQLAlchemy with transaction management.
- pyramid_sqlalchemy - provides some basic glue to facilitate using SQLAlchemy with Pyramid.
- pyramid_zodbconn - ZODB Database connection management for Pyramid.
- pyramid_mongoengine - pyramid-mongoengine package based on flask-mongoengine
- pyramid_mongodb - Basic Pyramid Scaffold to easily use MongoDB for persistence with the Pyramid Web framework
- pyramid-excel - pyramid-excel is based on pyexcel and makes it easy to consume/produce information stored in excel files over HTTP protocol as well as on file system. This library can turn the excel data into a list of lists, a list of records(dictionaries), dictionaries of lists. And vice versa. Hence it lets you focus on data in Pyramid based web development, instead of file formats.
Task Queue
Packages that make working with task/background queues easier.
- pyramid_celery - Pyramid configuration with celery integration. Allows you to use pyramid .ini files to configure celery and have your pyramid configuration inside celery tasks.
- pyramid_rq - Support using the rq queueing system with pyramid. The easiest way to monitor and use RQ in your Pyramid projects.
Templates
- pyramid_mako - Mako templating system bindings for the Pyramid web framework.
- pyramid_chameleon - Chameleon template compiler for pyramid.
- pyramid_jinja2 - Jinja2 templating system bindings for the Pyramid web framework.
- Tonnikala - Python templating engine with Pyramid integration
- Kajiki - provides fast well-formed XML templates, with Pyramid integration
Testing
Packages that help test code or generate test data.
- webtest - Wraps any WSGI application and makes it easy to send test requests to that application, without starting up an HTTP server.
Translations
Packages help with the task of translating projects.
- lingua - Lingua is a package with tools to extract translatable texts from your code, and to check existing translations. It replaces the use of the xgettext command from gettext, or pybabel from Babel.
- pyramid_i18n_helper - helper to create new smgid and translate msgid to local langs .
Web frontend integration
- PyramidVue - Pyramid and VueJs (JavaScript) template with Hot-Module-Replacement starter template.
Workflows
Packages that do process, procedure and/or business tasks management.
Other
- pyramid_layout - Pyramid add-on for managing UI layouts.
- pyramid_skins - This package provides a simple framework to integrate code with templates and resources.
- waitress - Waitress is meant to be a production-quality pure-Python WSGI server with very acceptable performance. It has no dependencies except ones which live in the Python standard library.
- pyramid_handlers - analogue of Pylons-style “controllers” for Pyramid.
- pyramid_rpc - RPC service add-on for Pyramid, supports XML-RPC in a more extensible manner than pyramid_xmlrpc with support for JSON-RPC and AMF.
- pyramid_autodoc - Sphinx extension for documenting your Pyramid APIs.
- pyramid_pages - Provides a collections of tree pages to your Pyramid application. This is very similar to django.contrib.flatpages but with a tree structure and traversal algorithm in URL dispatch.
- paginate - Python pagination module.
- pyramid_tablib - tablib renderer (xlsx, xls, csv) for pyramid
- tomb_routes - Simple utility library around pyramid routing
- pyramid_extdirect - This pyramid plugin provides a router for the ExtDirect Sencha API included in ExtJS. ExtDirect allows to run server-side callbacks directly through JavaScript without the extra AJAX boilerplate.
- pyramid_retry - pyramid_retry is an execution policy for Pyramid that wraps requests and can retry them a configurable number of times under certain "retryable" error conditions before indicating a failure to the client.
Projects
Outstanding Pyramid projects.
Framework
- Ringo - Ringo is a Python based high level web application framework build on top of Pyramid. The framework can be used to build form based management or administration software.
- cone.app - A comprehensive web application stub on top of Pyramid.
CMS
- nive_cms - Nive is professional out the box content management system for mobile and desktop websites based on python and the webframework pyramid. Please refer to the website cms.nive.co for detailed information.
- substanced - An application server built upon the Pyramid web framework. It provides a user interface for managing content as well as libraries and utilities which make it easy to create applications.
- Kotti - A user-friendly, light-weight and extensible web content management system. Based on Pyramid and SQLAlchemy.
- KARL - A moderately-sized application (roughly 80K lines of Python code) built on top of Pyramid. It is an open source web system for collaboration, organizational intranets, and knowledge management. It provides facilities for wikis, calendars, manuals, searching, tagging, commenting, and file uploads. See the KARL site for download and installation details.
Cookiecutters
- Pylons - official cookiecutter templates
-
Pyramid Runner - A minimal Pyramid scaffold that aims to provide a starter template to build small to large web services.
-
Traversal based application
- JSON only response
- JWT authentication policy
- Alembic for database revisions
- Some simple modifications to base tests, views and models base to reduce typing
e-Commerce
Other
- cluegun - A simple pastebin application based on Rocky Burt’s ClueBin. It demonstrates form processing, security, and the use of ZODB within a Pyramid application.
- shootout - An example “idea competition” application by Carlos de la Guardia and Lukasz Fidosz. It demonstrates URL dispatch, simple authentication, integration with SQLAlchemy and pyramid_simpleform.
- virginia - A very simple dynamic file rendering application. It is willing to render structured text documents, HTML documents, and images from a filesystem directory. It’s also a good example of traversal. An earlier version of this application runs the repoze.org website.
- Akhet - A Pyramid library and demo application with a Pylons-like feel. Its most known for its former application scaffold, which helped users transition from Pylons and those preferring a more Pylons-like API. The scaffold has been retired but the demo plays a similar role.
- Khufu Project - Khufu is an application scaffolding for Pyramid that provides an environment to work with Jinja2 and SQLAlchemy.
- Ptah - Ptah is a fast, fun, open source high-level Python web development environment.
- warehouse - Warehouse is a next generation Python Package Repository designed to replace the legacy code base that currently powers PyPI.
- travelcrm - TravelCRM is effective free and open source application for the automation of customer relationships for travel agencies at all levels, from small to large networks.
- RhodeCode - enterprise source code management platform. It applies unified user control, permissions, code reviews, and tool integration across Mercurial, Git, and Subversion repositories. Large and growing software teams all over the world use RhodeCode to collaborate in a secure, behind-the-firewall environment.
Project Management
- AppEnlight - Performance, exception, and uptime monitoring for the Web
Resources
Where to discover new Pyramid apps and projects.
Books
- Python Web Frameworks - Dive into details on the top six Python frameworks—Django, Flask, Tornado, Bottle, Pyramid, and CherryPy.
Websites
- Try Pyramid - The Start Small, Finish Big, Stay Finished Framework. Official website.
Conferences
- Sushi Sprint at PloneConf 2018 in Tokyo, Japan (November 10-11, 2018)
- Pyramid Workshop in Munich, Germany. (May 28, 2017, 10:30 a.m. - 12:30 p.m.)
- PloneConf 2017 - Barcelona Plone Digital Experience Conference (16~22 Oct. 2017)
- PloneConf 2016 - Boston Plone Digital Experience Conference (17~23 Oct. 2016)
- DragonSprint 2016 - DragonSprint is a week-long sprint on Pyramid. The sprint takes place in Ljubljana, Slovenia, EU in the first week of December (5th to 9th). The main two sprint topics are Pyramid 2.0 and Pyramid for Newcomers.
Videos
- List of videos from the official site
- Online Video Courses at Talk Python Training
- Web Applications with Python and the Pyramid Framework - In this Web Applications with Python and the Pyramid Framework training course, expert author Paul Everitt will teach you about the features needed for Python web development, as well as Pyramid's unique features. This course is designed for users that already have a basic knowledge of Python.
You will start by learning about single file web apps, templating, and multiple routes and views. From there, Paul will teach you about MyApp Python package, views and routes, and templating and static assets. This video tutorial also covers forms, databases, and sessions, authentication and authorization, and JSON. Finally, you will learn about extensibility, including custom configuration settings, extending and overriding, and custom view predicates.
Once you have completed this computer based training course, you will have gained a basic understanding of the features needed for Python web development and the features unique to Pyramid.
Who uses it?
- Projects, Websites, Companies and Organizations that use Pyramid - add your project to the list
Contributing
Just fork and send a pull request with your awesome Pyramid apps, projects or resources.
License
To the extent possible under law, @uralbash has waived all copyright and related or neighboring rights to this work.
Awesome Play1

A collection of awesome Play 1.x modules, tools, and resources.
Inspired by awesome-php, awesome-python, frontend-dev-bookmarks and awesome-ruby.
Contributions are always welcome!
Modules
Lists all the modules available with the following badges :
| Badge | Meaning |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | the module is registered in playframework.com/modules. The badge points to the registered page. |
|
| the module is not registered in playframework.com/modules. You have to add an external repository in your
dependencies.yml file. The badge points to the official module page. |
| | the module is available in MavenCentral thanks to the maven-play-plugin. The badge poins to the maven repository of the module. |
|
| the module has been updated since playframework.com/modules has been frozen. The badge points to the official module page. |
The modules are divided in the following categories : * Database * Deployment * Injection/dependencies * Language * Messaging/events * Monitoring * Persistence * Presentation * Rest * Scaffolding * Search * Security * Template * Translation * Misc
If you want to contribute information about a module, please refer to the guide.
Database
- [carbonate] Carbonate
Creates and runs database migrations using Hibernate schema update to automatically generate SQL to the migrations. See this blog post
- [chronostamp] Chronostamp
Enhances Models by adding and updating timestamp fields (created_at & updated_at).
- [db] Database module
Export your Play! domain model to a DDL file and import a database into your Play! domain model.
- [jpagen] JpaGen
Generates JPA Entities and Composite keys (when needed) from metadata or a file containing a list of tables.
- [liquibase] Liquibase
Liquibase is a simple, reliable and elegant solution for database refactoring management
- [logisimayml] logisima-yml
Exports your database into an yml file
- [migrate] Database migration
Maintains database versions for your project.
- [multidb] Multiple Databases
Scale your application to multiple databases with a common schema.
Deployment
- [capistrano] Capistrano
Deploys a remote application using Capistrano + SSH + VCS and run it in nohup/background mode.
- [cargo] Cargo
Remotely deploys your application.
- [cloudbees] CloudBees
Provides integration with CloudBees.
- [cloudfoundry] CloudFoundry
Automatically configure the database your application is deployed in In CloudFoundry.
- [dotcloud] Dotcloud
Deploys your application to dotcloud
- [gae] Google App Engine
Creates application for the Google App Engine platform.
- [heroku] Heroku
Deploys your application on Heroku.
- [jelastic] Jelastic Deployment Support
Deploy your application in the Jelastic Platform.
- [openebay] Open eBay
Provides the basic plumbing to create an Open eBay Application
- [openshift] Openshift
Openshift is Red Hat’s free, auto-scaling, cloud-based platform-as-a-service for Java, Perl, PHP, Python, and Ruby applications.
- [play-gae-q42] Q42's Google App Engine
Maintained module for Google App Engine integration. Should be used instead of [gae]
- [playapps] playapps.net
playapps.net is a streamlined deployment environment designed to get your Play applications up and running quickly and efficiently
- [reverseproxy] ReverseProxy
Configures your application to automatically switch between the HTTP and HTTPS protocols per page when used behind a front end.
- [router] Play Router Annotations
Adds routes through annotations, allowing you to declare your routes in your controllers.
- [stax] Stax
Easy deployment to Stax cloud hosting platform (http://www.stax.net).
- [vhost] VHost
Adds some virtual hosts functionality with separate datasource and customizable application settings for each virtual host.
Injection/dependencies
- [constretto] Constretto
Makes integration with the Constretto configration framework easy
- [guice] Guice
Injects Guice managed components into your application.
- [ivy] Ivy dependency management
Manages your dependencies with apache ivy.
- [maven] Maven dependency management
Manages your dependencies with apache maven
- [spring] Spring
Allows to use Spring managed beans inside your play! 1.x applications.
Language
- [googleclosure] Google Closure
This module is aimed at integrating Google Closure tools with play!.
- [gwt] Google Web Toolkit
This module provides a helper to simplify the integration of a GWT UI with Play as an application server.
- [gwt2] GWT2
Integrates Play with GWT
- [scala] Scala
Play Scala enables you to use the Scala language for your application keeping key properties of the Play framework
- [scalagen] Scala Gen
Scala code generators for the Play! framework
- [scalasecure] Scala secure
This module provides basic security (authentication/ authorization) for Play applications written in Scala.
Messaging/events
- [akka] Akka support
Allows you to configure akka through The Play! framework’s conf/application.conf file.
- [camel] Camel
A EIP + Messaging module for the Play! Framework
- [pusher] Pusher
This module lets you easily add realtime functionality to your Play applications with Pusher using websockets.
- [rabbitmq] RabbitMQ
RabbitMQ offers a highly available and scalable, and yet lightweight, messaging system.
Monitoring
- [accesslog] Accesslog
A Play framework module that performs request logging similar to an access log file in nginx or apache.
- [betterlogs] BetterLogs
Enhances the default logs adding the class and method names, where the log has been called, its signature, the file name and the line.
- [infoplay] InfoPlay
InfoPlay is a module which gives many informations like infophp in PHP language.
- [jpastats] Jpastats
Record how many database queries were executed during a request
- [log4play] Log4Play
Provides a log4j appender which publishes log entries to an EventStream
- [play-hibernate-statistics] Hibernate statistics
Displays MBean Hibernate statistics
- [playerrors] Playerrors
Playerrors gathers and informs you about the errors in your production webapps, so you can fix them before your visitors get a chance to complain
- [profiler] Mini-profiler
Displays a mini profiler in your application
- [recordtracking] RecordTracking
RecordTracking unobtrusively tracks the creation, updating and elimination events regarding to records.
- [statsd] Statsd
The module is a wrapper over StatsD which allow for dead simple statistic aggregation from within play.
Persistence
- [associations] Associations
This module reduces the code to manage bi-directional associations.
- [cream] JCR for Play!
A module that seamlessly integrates Apache Jackrabbit(JCR 2.0) with Play framework
- [ebean] EBean ORM support
Adds Ebean ORM to play!. Still in very experimental phase.
- [mongo] MongoDB
Provides a simple, elegant solution for using models stored in mongodb. For a more complex use cases, please take a look at the morphia module.
- [morphia] MongoDB Integration
Seamlessly MongoDB access integration with Play’s Model interface.
- [mybatisplay] MyBatisPlay
Provides support for MyBatis persistence framework.
- [neo4j] logisima-neo4j
Integrate neo4j database into your play! project.
- [objectify] Objectify
Objectify is a flexible abstraction on Google App Engine/J which makes data access simple and elegant
- [orientdb] OrientDB
OrientDB for Play! Framework
- [redis] Redis
The Redis Play! module helps you easily use Redis in your Play! applications
- [riak] Riak
Allow to use riak-java-client in play! way.
- [s3blobs] S3Blobs
The S3Blobs Play Framework Module provides an easy way to read an write files from Amazon S3 from within JPA entities.
- [siena] Siena
Enables Siena support to map your Java entities to GAE/MySQL/PostgreSQL/H2 from your play application
- [twig] Twig
Twig superpowers Google App Engine’s Datastore for Play applications. Get a fluid API, in-memory joins, and asynchronous queries out of the box.
Presentation
- [coffee] CoffeeScript
CoffeeScript is a great way to produce javascript. This module provides support for it (Java and Scala).
- [excel] Excel
Template based Excel report generator
- [formee] Formee
Helps to write forms and add client and server side validation.
- [greenscript] Minimize javascript/css files
Play with your javascript/css files!
- [html5validation] HTML5 Validation
Client-side form validation based on your Play framework model annotations using HTML5 attributes.
- [jqueryui] Jqueryui
The jQuery UI module provides working examples of jQuery UI widgets, integrated with a Play application.
- [jqvalidate] JQuery Validation
Client-side form validation via jQuery, based on your model annotation
- [jqvalidation] Jqvalidation
A jquery library API for validation, supports Ajax validation (per field or per form)
- [less] Less module
Converts less to CSS, and handles error reporting in your Play application
- [markdown] Markdown
Easily bring markdown contents into your application.
- [menu] Menu
Eases the implementation of navigation menu.
- [navigation] Navigation
Define and display navigation menus in your Play application.
- [paginate] Paginate
A replacement for #{list} tags that allows for easy pagination.
- [pdf] PDF module
Renders PDF document from your HTML templates. This module is based on the YaHP Converter library.
- [pegdown] PegDown Markdown
Integrates the pegdown Markdown processor with your Play application
- [press] Minimize javascript/css files
A JavaScript, CSS and Less minimizer that is designed to be transparent to the application developer.
- [sass] Syntactically Awesome Stylesheets
Sass makes CSS fun again. Sass is CSS, plus nested rules, variables, mixins, and more, all in a concise, readable syntax.
- [table] Table
Simplifies the code needed to display data in HTML tables.
- [tabularasa] Tabula Rasa
Tabula Rasa provides support for user-customisable tables in views
- [twitterbootstrap] Twitterbootstrap
Bundles up the twitter-bootstrap stylekit and the play less plugin, easing the .less files edition (changes are dynamically taken into account).
Rest
- [jersey] Jersey
Integrates Jersey into the Play! Framework.
- [resteasy] RESTEasy Play! module
The RESTEasy Play! module allows you to define JAX-RS RESTful web services in the Play! Framework using RESTEasy.
- [resteasycrud] RESTEasy CRUD module
The Play! RESTEasy CRUD module which allows you to automagically generate your RESTful CRUD resources for a given model
- [swagger] Swagger
Creates a self-documenting meta-description for REST APIs which allows for code-gen, UI-sandbox, and test framework.
Scaffolding
- [crudsiena] CRUD for Siena
Offers a fully usable web interface for your Siena Model objects with a few more features than default [crud] module.
- [mocha] Mocha
An implementation of mocha UI javascript interface for Play!
- [play-bootstrap] Basic bootstrap scaffolding
Creating Bootstrap based applications (derived from the default [scaffold] module).
- [scaffold] Scaffold
Scaffold will generate basic scaffolding for bootstrapping a project from your JPA or Senia entities
Search
- [elasticsearch] ElasticSearch
Elastic Search is a Distributed Search Solution based on Apache Lucene. This module provides an embedded Elastic Server instance for Rapid Development.
- [search] Search
Search allows you to have basic full text search functionalities to your JPA Model. It is based on Lucene.
Security
- [browserid] BrowserID
BrowserID is an experimental new way of signing into websites. The goal with BrowserID is to design something safe and easy for users and the developers.
- [cas] logisima-cas
This module is a CAS client for Play! application.
- [casino] Casino
This project provides a simple method to integrate sign-up and password recovery to your project
- [deadbolt] Deadbolt
Deadbolt is an authorisation mechanism for defining access rights to certain controller methods or parts of a view
- [fbconnect] Facebook connect
Easily integrate Facebook based authentication into any Play framework application.
- [force] Force.com
Build Play! applications that integrates to Force.com. Provides OAuth authentication and REST API adapter.
- [linkedin] LinkedIn OAuth Authentication
Easily integrate LinkedIn’s OAuth authentication into your Play Framework application
- [oauth] OAuth Client
This module provides tools to connect to an OAuth provider, such as Twitter or Google.
- [recaptcha] Recaptcha
Quickly integrate reCaptcha.com challenge-response test in your applications.
- [securepermissions] Secure Permissions
Extends the defaut secure module to add permission checks based on the rules in the Seam Framework (based on Drools rules).
- [securesocial] SecureSocial
SecureSocial allows you to add an authentication UI to your app that works with services based on OAuth1, OAuth2, OpenID and OpenID+OAuth hybrid protocols
- [shibboleth] Shibboleth
Allow users to login to your Play! application via Shibboleth.
Template
- [fastergt] Faster Groovy Templates
Replaces the default groovy template implementation with GT-Engine which is faster and uses less memory.
- [japid] Japid Template Engine
A pure Java-based fast statically typed template engine for the Play! framework version 1.2.x.
- [mustache] Mustache
Allows you to define logic-less template snippets that can be used server-side in your Play! views as well as client-side in your JavaScript.
- [rythm] Rythm Template Engine
PlayRythm is a Razor like template engine.
- [scalate] Scalate
Scalate Template engine support.
- [thymeleaf] Thymeleaf
Play framework module to use Thymeleaf 2.0 as a template engine.
Testing
- [cobertura] Cobertura
Integrates with Cobertura to calculate the percentage of code accessed by tests (test coverage).
- [httpmock] HttpMock
Caches WebService requests to emulate them in order to overcome connection problems (lag, denial of service, HTTP errors) for fast developping.
- [mockito] Mockito
Mockito is a mocking framework that tastes really good
- [qunit] QUnit
The QUnit module provides integration of JUnit Javascript tests with the Play! Framework.
- [spocktests] Spock tests
Runs Spock specifications and to write BDD style tests (still wrapped as junit) with the expressive power of groovy.
- [springtester] spring tester
Write tests that can auto-magically inject mocks (using Mockito) into Play applications wired up using the spring module.
- [tests] Alternative Test module
The Test Module for Play!Framework helps you write tests quicker, is a cleaner and reusable manner.
- [webdrive] Webdrive
WebDrive module provides Selenium 2 testing support for Play framework
Translation
- [i18ntools] I18ntools
This module will add some tools to ease use of i18n in your Play! projects.
- [messages] @messages
Module messages provides a web based tool for managing your application’s localizations.
- [nemrod] Nemrod
This module helps to import and export translations from your application to a Nemrod instance automatically.
- [play-i18ned] Play-i18ned
Converts default i18n files from an Excel Sheet and the other way around.
Misc
- [bespin] Bespin online editor
Allows you to edit all the application sources directly in the browser using bespin, the web code editor.
- [bhave] Bhave
Integrates with bhave, a web-based behavior driven development (BDD) framework, for web apps, done in a funky way!
- [cheese] Cheese
Simplified API for integration your application with the CheddarGetter subscription management service.
- [cms] Cms
A very simple embedded CMS
- [cnm] Content Negotiation
Helps using content types which are not directly supported by default such as VCard and Atom/RSS feeds using annotations.
- [externalconfig] External Config
Allows easy loading of external config / properties files. This allows for easy configuration of an app deployed in a war.
- [featureflags] Feature Flags
Enables you to easily use flags in your application that you can switch ON and OFF at runtime, using an admin screen.
- [googlecheckout] Google Checkout
Enable your Play application to integrate with Google Checkout as a merchant.
- [gravatar] Gravatar
Integrate Gravatar into your Play application
- [hazelcast] Hazelcast
Dropin replacement for EhCacheImpl or MemcachedImpl from Play
- [postmark] Postmark
Postmark module provides easy integration with postmarkapp.com for handling outgoing emails
- [useragentcheck] UserAgentCheck
UserAgentCheck displays a banner to notify users when their browser is outdated.
- [play1-chart] Play1-Chart
The Chart module allows for easy generation of chart images.
Tools
You know a tool that every player should use? Tell us!
Resources
- Mavenized modules and how to use them
- Using Play's controller with a nice roundup about caching, expiration and eTags
- Using Luo's
cache4annotation
License
To the extent possible under law, PerfectCarl has waived all copyright and related or neighboring rights to this work.
Awesome CakePHP 
A curated list of amazingly awesome CakePHP 3.x+ plugins, resources and shiny things.
Plugins with the ":strawberry:" icon have CakePHP 4 compatible release too.
If you are looking for CakePHP 2.x resources please visit: - the CakePHP 2.x version of this awesome list - this wiki with a list of not-yet upgraded plugins
Additional lists you might find useful: - CakePHP Plugins - Awesome PHP - Awesome Awesomeness
For those wondering; this list differs from plugins.cakephp.org by supporting plugin subparts (instead of only the whole plugin/repo), more granular grouping and the primary focus on task specific functionality.
Table of Contents
- Plugins
- APM
- Architecture
- Asset Management
- Auditing / Logging
- Authentication and Authorization
- Caching
- Code Analysis
- Debugging
- Dependency Injection
- E-commerce
- Environment
- File Manipulation
- Filtering and Validation
- Geolocation
- HTTP
- I18n
- Imagery
- Libs
- Markup
- Migration
- Miscellaneous
- Navigation
- NoSQL
- Notifications
- ORM / Database / Datamapping
- Queue
- REST and API
- Search
- Security
- SEO
- Skeleton
- Social
- Templating
- Testing
- Third Party APIs
- Software
- Web Applications
- Resources
- Conferences
- Contributing
Plugins
APM
Plugins for Application Performance Monitoring.
- NewRelic plugin - A complete plugin that enables full New Relic integration for a CakePHP application, including CLI naming, exceptions sending, custom timings, etc.
- NewRelic plugin - A simple plugin that enables just name transaction and browser timing using the New Relic PHP agent.
Architecture
- :strawberry: Burzum/CakeServiceLayer plugin - Service layer and domain/business model implementation.
Asset Management
Tools for managing, compressing and minifying website assets.
- :strawberry: AssetCompress plugin - A complete asset manager for CakePHP.
- :strawberry: AssetMix plugin - Provides integration with Laravel Mix asset compilation.
- Assets plugin - Dynamic and "on the fly" asset files.
- Less plugin - Less parser plugin for CakePHP.
- MinifyHtml plugin - Compress HTML output.
Auditing / Logging
Plugins for auditing and logging.
- :strawberry: AuditStash plugin - Flexible and rock solid audit log tracking.
- :strawberry: DatabaseLog plugin - Simple and stand-alone logging to database instead of files.
- :strawberry: Muffin/Footprint plugin - Plugin to allow passing currently logged in user to model layer.
- Version plugin - A plugin that facilitates versioned database entities.
Authentication and Authorization
Plugins and libraries for implementing authentication and authorization.
- :strawberry: Acl plugin - Managing ACL as database approach.
- :strawberry: ADmad/JwtAuth plugin - A plugin for authenticating using JSON Web Tokens.
- :strawberry: ADmad/SocialAuth plugin - A plugin which allows you to authenticate using social providers like Facebook/Google/Twitter etc. using SocialConnect/auth social sign on library.
- :strawberry: Authentication plugin - Official CakePHP authentication middleware plugin.
- :strawberry: Authorization plugin - Official CakePHP authorization stack.
- CakeDC/NavAuth plugin - A plugin for authenticating against Navision® service using SOAP or OData services. It includes NTLM authentication and more.
- :strawberry: CakeDC/Users plugin - Complete user management (admin panel, remember me, etc), Social login (FB, Twitter, LinkedIn, Google, Instagram), RBAC, API and more.
- CookieAuth plugin - A simple Cake 3 plugin to automatically authenticate users with Cookies.
- HierAuth plugin - A CakePHP plugin for hierarchical, role based, simple authorization.
- Muffin/OAuth2 plugin - OAuth2 authentication using the
league/oauth2-client. - :strawberry: Muffin/Tokenize plugin - Event driven behavior for easily generating single-use security tokens.
- MultiTenant plugin - Easily build SaaS enabled web applications.
- :strawberry: TinyAuth plugin - Authentication and role based (single/multi) authorization as very light-weight approach.
- :strawberry: Tools:Passwordable - Containing Passwordable behavior for a DRY approach on password hashing.
- :strawberry: TwoFactorAuth plugin - Allows two factor authentication using Google Authenticator or similar app to generate one-time codes. Based on RobThree/TwoFactorAuth library.
- UserPermissions plugin - Allow groups of users or single users to view a specific page.
Caching
Plugins for caching data.
- :strawberry: Cache plugin - For caching views (HTML, CSV, JSON, XML, ...) as static cache files.
Code Analysis
Plugins for analysing, parsing and manipulation codebases.
- :strawberry: CakeDC/PHPStan - A PHPStan extension to resolve CakePHP magic around getter return types for the static analyzer.
- :strawberry: IdeHelper plugin - Helps to make IDE support better by adding annotations to your existing code similar to what baking does to new code.
- :strawberry: TestHelper plugin - Provides testing enhancements and TDD support as browser backend.
Debugging
Plugins for debugging and local development.
- Airbrake plugin A plugin to seamlessly integrate Airbrake with CakePHP for errors and exceptions.
- AssociationsDebugger plugin - A plugin that draws your model associations as diagram.
- :strawberry: CakephpWhoops plugin - PHP errors and exceptions for cool kids with filp/whoops.
- :strawberry: DebugKit plugin - The de-facto standard for debugging.
- ErrorEmail plugin - A plugin to email exception/error information to your dev team.
- :strawberry: Execution order - A demo app to display the execution order of files, methods and callbacks.
- Psa/FixtureCheck plugin - A plugin to help detect mismatches in live DB and fixtures in order to make fixture based tests more reliable and deployments safer.
- :strawberry: Sentry plugin A plugin to seamlessly integrate Sentry with CakePHP for errors and exceptions.
- :strawberry: Setup plugin - A lightweight setup plugin containing debugging and maintenance tools.
Dependency Injection
Plugins that implement the dependency injection design pattern.
- PimpleDi plugin Allows dependency injection based on Pimple library.
- PipingBag plugin - Dependency injection container plugin that adds the ability to configure object instances and their dependencies before they are used, and to store them into a container class for easy access.
E-commerce
Plugins and applications for taking payments and building online e-commerce stores.
- PaypalWPP plugin - For communicating with Paypal Web Payments Pro for transactions and information about your account.
Plugins for sending and parsing email.
- Elastic Email plugin - Email transport plugin for sending email via Elastic Email API.
- :strawberry: EmailQueue plugin - Email queue plugin with a preview and sender shell.
- Gourmet/Email plugin - Email helper, layout and more.
- :strawberry: Mailgun plugin - Email transport plugin for sending email via Mailgun.
- SendGrid plugin - Email transport plugin for sending email via SendGrid API.
Environment
Plugins for environment.
- Environments plugin - Plugin to handle environments.
- Gourmet/Aroma plugin - Database based configuration.
- Settings plugin - A plugin to manage your settings via your database.
File Manipulation
Plugins for file manipulation.
- :strawberry: FileStorage plugin - Abstract file storage and upload plugin.
- FlyPie plugin - Abstract filesystem access using Flysystem.
- Image plugin - Image behavior that works much like Cake's built in TranslateBehavior.
- :strawberry: Josbeir/Filesystem plugin - Abstract Flysystem + file entity based upload plugin.
- :strawberry: Josegonzalez/Upload plugin - A customisable plugin that uses Flysystem to write to multiple backends (Dropbox, FTP, S3, Local, etc.).
- Proffer plugin - A customisable upload plugin with thumbnail generation.
- Xety/Cake3Upload plugin - A little plugin to upload file.
Filtering and Validation
Plugins for filtering and validating data.
- Gourmet/Filters plugin - Extra dispatcher filters (maintenance, robots, ip, etc).
- Gourmet/Validation plugin - Extra validation providers (Respect, IsoCodes, etc.) and rules.
- HtmlPurifier plugin - Purifier Plugin that features a trait, behavior and helper to allow you to get sanitization and filtering where you need it. You can configure multiple sets of filter rules as well.
- HtmlPurifier plugin - Purifier Plugin Behavior that cleanses data before it is marshaled into the entity and/or before saving.
Geolocation
Plugins for geocoding addresses and working with latitudes and longitudes.
- :strawberry: Geo plugin - Containing Geocoder behavior and GoogleMaps helper.
HTTP
Plugins for HTTP and client abstraction
- :strawberry: Http/Adapter/Cake library - Adapter for HTTPlug HTTP client abstraction.
I18n
Plugins for I18n (Internationalization) and L10n (Localization).
- :strawberry: ADmad/I18n plugin - A plugin with I18n related tools.
- :strawberry: Cake/Localized plugin - Localized validation and ready-to-use translation PO files.
- :strawberry: ShadowTranslate plugin - A plugin with shadow table based replacement for core's Translate behavior.
- Transifex plugin - Managing i18n PO files and translations via Transifex API.
- Translate plugin - Manage translations of your static content the easy way via web backend, incl. import from POT files, auto-suggest and auto-translate via API.
- Translation plugin - Extract pot files, translate string (manually, google, community), export translations to pot files.
Imagery
Plugins for manipulating images.
- :strawberry: ADmad/Glide plugin - A plugin for using Glide image manipulation library.
- HtmlToImageView plugin - Render HTML view as image (jpg or png) using wkhtmltoimage.
- Imagine plugin - An image manipulation plugin and wrapper around Imagine.
- Thumber plugin - A plugin to create thumbnails using intervention/image.
Libs
Useful libraries or tools that don't fit in any of the other categories.
- Capcake - Deploy CakePHP applications using Capistrano.
- Chronos - A simple standalone DateTime API extension (successor of Carbon).
- Composer Installers - A multi framework Composer library installer.
- Composer/Packagist - A package and dependency manager.
- Graphviz - A Graphviz library.
- Rocketeer - PHP task runner and deployment package.
- makallio85/YamlRoute plugin - Configure routes with simple YAML files.
Markup
Plugins for working with markup.
- Gourmet/CommonMark plugin - Adds CommonMark Markdown parsing.
- :strawberry: Markup plugin - Allows to use PHP or JS based syntax highlighting.
Migration
Plugins and resources around migration and upgrading.
- :strawberry: Migrations plugin - (DB) Migration plugin.
- :strawberry: Upgrade app - Official upgrade app for 2.x=>3.x and 3.x=>4.x.
- :strawberry: Upgrade app (extended) - An extended upgrade app for 2.x=>3.x, between 3.x and some 4.x snippets.
- Upgrade/Migration Guide - Official migration guide.
Miscellaneous
Misc plugins and libraries.
- ActionsClass plugin - Gives you the ability to manage your Controller actions as single classes.
- :strawberry: Ajax plugin - A plugin to ease handling AJAX requests.
- CakeAdmin plugin - A non-stable user management plugin with a built-in admin area.
- :strawberry: CakeDC/Enum plugin - A plugin to add enumeration list support to your app.
- :strawberry: CakeDto plugin - Quickly generate useful data transfer objects for your app (mutable/immutable), replacing messy arrays and leveraging your IDE through typehinting and autocomplete.
- :strawberry: CakeImpersonate plugin - A component that stores the current authentication session and creates new session for impersonating Users. User can revert back to original authentication sessions without the need to re-login.
- CakeMiddlewares - A collection of Cakephp Middlewares.
- :strawberry: Calendar plugin - For generating basic calendars. Includes IcalView for ICS calendar file generation.
- Comments plugin - A fully customizable Comments plugin.
- CurrencyConverter plugin - A plugin to convert currency into another one.
- Dashboard plugin - Build beautiful dashboards for your cakes.
- DatabaseBackup plugin - A plugin to export, import and manage database backups.
- :strawberry: Feedback plugin - Allow visitors to send quick and easy feedback incl. a screenshot via sidebar form.
- :strawberry: Flash plugin - More powerful flash messages for your application.
- :strawberry: OPCache Preloader - An OPCache Preloader for CakePHP 4.x applications.
- OrcaServices/Heartbeat plugin - Monitor the hearbeat of your application (e.g. whether the database is available and up-to-date).
- Inertia plugin - Server side adapter for Inertia.js.
- Interval plugin - Converts seconds to human readable string (string to seconds), uses business hours (1 week = 5 days, 1 day = 8 hours).
- LinkScanner plugin - A plugin for recursively scanning links.
- Robotusers/Tactician plugin - Tools for Tactician command bus integration.
- :strawberry: Setup:Maintenance - Maintenance shell to go into maintenance mode for all requests with optional IP whitelisting.
- :strawberry: Shim plugin - A plugin containing useful shims and improvements as basis for your application.
- TokenVerify plugin - Easily issue tokens that can be used for mail authentication.
- :strawberry: Tools plugin - Containing lots of useful libs, helpers, behaviors, components, shells and more.
- UserTools plugin - User tools for login, registration, password reset and more. Works out of the box CRUD like and is highly configurable.
- Utils plugin - Containing useful components (Authorizer, Menu) and behaviors (WhoDidIt, Uploadable, Metas, Stateable).
- Wrench plugin - Maintenance Mode plugin. Easily extensible and customizable.
- Yaml plugin - For using YAML config files instead of PHP arrays.
Navigation
Tools for building navigation structures.
- :strawberry: Icings/Menu plugin - A KnpMenu seasoned menu plugin for CakePHP.
NoSQL
Plugins for working with "NoSQL" backends.
- Monga plugin - Provides access to MongoDB datasource using
thephpleague/monga.
Notifications
Plugins for working with notification software.
- ker0x/CakeGcm plugin - A plugin to send downstream messages to an Android or iOS device through Google Cloud Messaging.
- Notifier plugin - A plugin that makes creating and reading notifications easy.
- ker0x/Push plugin - A plugin to send push notifications through services like Firebase Cloud Messaging.
ORM / Database / Datamapping
Plugins that implement object-relational mapping or data-mapping techniques.
- :strawberry: ADmad/Sequence plugin - Behavior for maintaining ordered list of records.
- :strawberry: CakeDecimal plugin - A value object approach on handling decimals.
- :strawberry: Duplicatable plugin - Behavior for duplicating entities including related data.
- Fetchable plugin - Behavior for fetching entities from cache / memory.
- :strawberry: Lampager/Cake plugin - Rapid pagination without using OFFSET.
- JeremyHarris/LazyLoad plugin - An association lazy loader for entities.
- Lqdt/OrmJson plugin - Behavior and Trait for selecting, finding, getting and setting properties and values inside JSON type fields through CakePHP ORM.
- Money plugin - Money data type for CakePHP entities using sebastianbergmann/money.
- :strawberry: Muffin/Orderly plugin - Allows setting default order for your tables.
- :strawberry: Muffin/Sti plugin - Single Table Inheritance for CakePHP.
- :strawberry: Muffin/Trash plugin - Soft-delete behavior for CakePHP.
- PersistRelatedData plugin - Behavior for persisting selected fields of related models.
- Robotusers/Excel plugin - ORM wrapper for PHPExcel.
- :strawberry: Robotusers/TableInheritance plugin - Singe Table Inheritance (STI) plugin.
- :strawberry: RowLocker plugin - Exclusive locks for rows in your tables.
- Serializeable Data Types plugin - Serialize DB content as JSON or using phps serializing functions.
- :strawberry: Muffin/Webservices ORM plugin - An ORM like interface for webservices.
- :strawberry: Connehito/CakephpMasterReplica plugin - Switch master/replica database connections.
- :strawberry: Itosho/EasyQuery plugin - Behavior for easily generating some complicated queries like (bulk) insert/upsert etc.
- :strawberry: Icings/Partitionable plugin - Partitionable associations allowing for basic limiting per group.
Plugins and software for working with PDF files.
- :strawberry: CakePdf plugin - A plugin around PDF generation.
Queue
Plugins for working with event and task queues.
- CakeResque plugin - A plugin for Resque, a library for creating background jobs.
- :strawberry: CakeQueuesadilla plugin - A plugin that provides queueing integration with a variety of backends (BeanstalkD, MySQL, Redis, etc.).
- Gearman plugin - A plugin for offloading CakePHP tasks to a Gearman Job Server.
- :strawberry: Queue plugin - A minimal and dependency-free queue solution.
REST and API
Plugins and web tools for developing REST-ful APIs.
- :strawberry: Alt3/Swagger plugin - Swagger 2.0 documentation for your CakePHP APIs using swagger-php and swagger-ui.
- Alt3/ValidationExposer plugin - Easily expose your application's validation rules.
- ApiPagination plugin - Injects pagination information from CakePHP's Paginator into serialized JsonView and XmlView responses.
- :strawberry: CakeDC/Api plugin - All-in-one solution to provide a complete API. It includes versioning, renderers, CRUD, authentication, extensions (paginate, filter, HATEOAS), and much more.
- Cors plugin - Activate CORS with Middleware.
- Cors plugin - A lightweight plugin for adding CORS headers to specified endpoints.
- CrudJsonApi plugin - Crud listener for building JSON API compliant APIs.
- :strawberry: FractalTransformerView plugin - A plugin which allows using Fractal transformers for your API output.
- :strawberry: MixerApi - Streamline development of modern RESTful APIs for your teams CakePHP project.
- :strawberry: SwaggerBake plugin - This plugin automatically builds your Swagger UI documentation from your existing models and routes. A redoc option is also available.
Search
Plugins and software for indexing and performing search queries on data.
- :strawberry: Cake/ElasticSearch plugin - Alternative ORM using Elasticsearch as its backend.
- :strawberry: PlumSearch plugin - Search plugin implements custom, flexible and extendable search strategies. Implements PRG pattern.
- :strawberry: Search plugin - Provides easy searching/filtering for paginated views using PRG pattern.
- SphinxSearch plugin - Basic behaviour implementation for querying SphinxSearch indexes.
- :strawberry: Tags plugin - For tagging and finding tagged records.
Security
Plugins and information around security, preventing vulnerabilities and protection against XSS and alike.
- :strawberry: Bruteforce - Simple way to add Brute Force Protection to your installation without involving database.
- BryanCrowe/EncryptedType - Simple solution that enables Encrypted data types to be stored in the database.
- :strawberry: Captcha plugin - Simple, unobstrusive and extendable captcha solution providing by default an image based math captcha.
- CipherBehavior plugin - Cipher your entities data with this behavior. Encryption is done at PHP level using CakePHP Security class.
- :strawberry: Expose plugin - Expose entities through additional UUIDs instead of their AIID primary keys to obfuscate those IDs and data associated with these numerically ordered values.
- :strawberry: Muffin/Obfuscate plugin - Primary key obfuscation/shortening using UUIDs, HashIds, Optimus, Tiny and/or custom obfuscation strategies.
- :strawberry: Muffin/Throttle plugin - A plugin for rate limiting (API) requests.
- :strawberry: Recaptcha plugin - Simple, lightweight Google Recaptcha v2.
- Recaptcha Mailhide plugin - A plugin that allows you to hide email addresses using reCAPTCHA.
- StopSpam plugin - A plugin that allows you to check if a username, email address or IP address has been reported as a spammer.
SEO
Search Engine Optimization.
- :strawberry: Muffin/Slug plugin - A plugin for generating slugs and finding records by slug. Uses a pluggable architecture which allows using your own slug generator class.
- Seo plugin - Auto-creates and manages your SEO tags.
- Sluggable plugin - A simple Cake3 plugin to slug fields and find records by slug.
- :strawberry: Tools:Slugged - Containing Slugged behavior to auto-generate URL-compatible slugs from titles.
Skeleton
Plugins and repositories around app skeletons.
- :strawberry: App template - An empty CakePHP project for use with composer.
- :strawberry: Crud plugin - CakePHP Application development on steroids - rapid prototyping / scaffolding & production ready code.
- :strawberry: MixerApi/Bake - Bake theme for generating RESTful controllers.
- Plugin Skeleton - A skeleton example to create a Cake3 plugin.
Social
Plugins around social features.
- CakeDC/Forum plugin - Forum plugin including categories, threads and replies, reporting messages, moderators, admin interface and more.
- :strawberry: Ratings plugin - Allows users to rate records and displays ratings.
- SocialShare plugin - Link generator for sharing content on social networks.
Templating
Plugins for templating and lexing.
- Address plugin - An address helper that outputs a marked up address.
- :strawberry: Bake plugin - Provides code generation functionality.
- Bootstrap plugin - A Bootstrap 3 plugin with support for LESS.
- :strawberry: BootstrapUI plugin - Bootstrap 3 integration.
- CakeExcel plugin - An Excel view to generate XLSX files.
- Chocolate plugin - Front-End framework FormHelper extensions.
- CommonMark plugin - Adds CommonMark (markdown) support to models and views.
- :strawberry: CsvView plugin - A view class to easily generate CSV.
- Datalist plugin - Support for HTML5 datalist element with the possibility to create new entries into associated models.
- :strawberry: Feed plugin - Containing an RssView class to easily generate (complex) RSS feeds.
- InlineCss plugin - A plugin to convert HTML style blocks to inline CSS on a View template (intended for use with email templates).
- JadeView plugin - Jade template engine plugin.
- Liquid plugin - A plugin to use the Liquid templating language for views.
- :strawberry: Meta plugin - Makes handling meta tags and SEO relevant HTML markup DRY and easy.
- SocialMeta plugin - Adds support for Facebook's OpenGraph and Twitter's Card meta tags.
- :strawberry: TwigView plugin - A plugin to use the Twig Templating Language for views.
- VideoEmbed plugin - Helper for embedding YouTube, Vimeo and Dailymotion videos.
Testing
Plugins/Tools for testing codebases and generating test data.
- CakePHP Codeception module - The official CakePHP integration with Codeception.
- CakePHP CodeSniffer rules - The official CakePHP CS rules.
- :strawberry: CakephpFixtureFactories plugin - Create your fixtures dynamically on a test basis, accelerate the writing and maintainance of your tests.
- Faker plugin - Faker support for CakePHP fixtures.
- Fixtures plugin - Fixtures plugin to read existing fixtures and create table/insert data for quick start with app.
- FriendsOfCake/Fixturize plugin - More efficient inserting fixtures when running test suites by decreasing amount of inserts (mysql only).
- Gourmet/Muffin plugin - FactoryMuffin support for CakePHP fixture records.
Third Party APIs
Plugins for accessing third party APIs.
- CakeTmdb plugin - The Movie Database (TMDB) API integration.
- CloudflareDeploy Plugin - Useful console commands for deploying CakePHP apps using Cloudflare.
- GitHub plugin - Allows access to the GitHub REST APIs using the Webservice ORM.
- Jira plugin - Provides a helper to allow access to Jira's REST API using lesstif/php-jira-rest-client as the Vendor. Currently read-only access.
- Ratchet plugin - Brings the Ratchet websocket package to CakePHP.
- Salesforce plugin - Allows use of CakePHP's ORM to Query and Interact with Salesforce Enterprise Instances.
- Twitter plugin - Allows access to the Twitter REST and streaming APIs using the Webservice ORM.
Software
Software for creating a development environment.
Development Environment
Software and tools for creating a sandboxed development environment.
- CakePHP.gitignore - The .gitignore file proposals.
- :strawberry: CakePHP Docker - A cakephp/app template for docker and kubernetes setup.
- CakePHP Vagrant Setup - Tool for spinning up multiple CakePHP 3.x Vanilla Dev Environments.
- Devilbox - A docker development environment for (CakePHP) apps to be auto-setup including a lot of tools.
- Docker - CakePHP in a docker container environment.
- :strawberry: Galley - A small Docker dev environment for CakePHP development which includes a simple command line utility.
- Mixer - A plugin to discover and manage CakePHP plugins.
- NetBeans - This package provides support for CakePHP in NetBeans 8.1+.
- Oven - Setup your favorite framework with 1 file and 1 click.
- PhpStorm plugin - CakePHP auto-completion support for console commands in PhpStorm IDE.
- Puppet - A server automation framework and application.
- Vagrant - A portable development environment utility.
IDE specific compatibility information and tips can be found here.
Web Applications
CMS and applications built on CakePHP
- CakeBlog - Open source blog software.
- Croogo - CMS software
- QuickApps-CMS - Open source content management system.
Demo
Web-based (demo) applications and tools.
- BlogMVC - A simple Blog example with CakePHP based on BlogMVC Project.
- Bookmarkr A bookmarking application built with the CRUD plugin.
- CakeFest - Demo application around the annual CakePHP Conference "CakeFest".
- Croogo 3.x - Croogo 3.x demo
- RealWorld - Example CakePHP codebase containing real world examples (CRUD, auth, advanced patterns and more) that adheres to the RealWorld spec and API.
- Sandbox - A sandbox CakePHP application with lots of demos and plugin showcasings.
- Query Examples Advanced query building examples.
- Xeta - A resource to help people starting with CakePHP.
- Vue.js Demo App - A CakePHP + VueJS single page application skeleton.
Resources
Various resources, such as books, websites and articles, for improving your CakePHP development skills and knowledge.
Help
Where to get help.
- CakePHP-FR.org - The french community website.
- Official CakePHP Forum - This is for generic questions and alike.
- IRC Channel - Live chat/discussion with other devs and core devs.
- stackoverflow.com/questions/tagged/cakephp - This is for specific questions, ideally along with some example code.
CakePHP Websites
Useful and current CakePHP-related websites and blogs.
- CakeDC - Articles around CakePHP.
- dereuromark.de - An extensive CakePHP core dev blog.
- jedistirfry.co.uk - A CakePHP related dev blog.
- josediazgonzalez.com - A mainly CakePHP related core dev blog.
- mark-story.com - CakePHP lead dev blog.
- waltherlalk.com - A CakePHP related core dev blog.
CakePHP Books and Articles
Fantastic CakePHP-related (e)books and other reading material.
CakePHP Videos
Fantastic CakePHP-related videos.
- CakePHP - Channel about CakePHP videos.
CakePHP Tutorials
Must-do tutorials.
CakePHP Reading and Listening
Documentation and CakePHP-related reading and listening materials.
- CakePHP Cookbook(!) - The official CakePHP documentation.
CakePHP Internals Reading
Reading materials related to the CakePHP internals and decisions.
- Top 10 (and more) core contributors - Give 'em a hand.
Conferences
Official
International conference.
- cakefest.org - Annual CakePHP Conference.
MeetUps
Regional meet-ups.
- CakePHP-DE - MeetUps in Germany.
Contributing
Please see CONTRIBUTING for details.
Credits
awesome-cakephp has been created by dereuromark and is currently maintained by him and the FriendsOfCake group. Thank you to all contributors, too.
Awesome Symfony 
A list of awesome Symfony bundles, utilities and resources.
Table of contents:
- Administration
- Certification
- Community
- Development
- Distributions
- Ecommerce
- Forms
- Internationalization
- Miscellaneous
- Monitoring
- Payments Management
- Queues
- Reading
- Resources
- Service Container
- Storage
- Template Engine
- Third Party APIs
- User Management
- Validation
- Web Services
Administration
- AdminCrudBundle - AdminCrudBundle - Use SensioGeneratorBundle. Extend controller, add paginator, filter, others.
- AdmingeneratorGeneratorBundle - Admingenerator for Symfony2, parse generator.yml files to build classes
- EasyAdminBundle - Simple admin generator for Symfony applications
- SonataAdminBundle - AdminBundle - The missing Symfony2 Admin Generator
- AdminLTEBundle - Admin theme based on the AdminLTE Template
- Umbrella framework - Admin components and theme to create administration backends.
Certification
- CLI tool to train certifications
- Symfony 3 certification guide
- Symfony certification preparation list
Community
- Facebook - notable, large and active Facebook groups:
- Google+ - Large and active group on Google+.
- IRC:
- #symfony - Official IRC channel for Symfony support.
- #symfony-docs - Channel to discuss about the documentation of Symfony.
- Local:
- Community events - Find Symfony events near you.
- Meetup - Get involved locally and find Symfony users from your local area.
- Telegram - Symfony group on Telegram.
- Quora - Symfony topics on Quora.
- Reddit - Ask and answer questions, discussion.
- SensioLabs Connect - Developer social network, earn achievements for your community involvement and commitment.
- Slack - Symfony on Slack, platform for team communication.
- Stack Overflow - Symfony support on Stack Overflow.
- Twitter - Keep up with Symfony news in a twitter-like way.
Development
- AccessibleBundle - Define your class' getters, setters and constructor using powerful annotations.
- ApiExceptionBundle - Exception API Bundle.
- AvAjaxBundle - This bundle offers a simple structure to run ajax actions.
- BeelabTestBundle - This bundle contains just an opinionated extension of Symfony WebTestCase.
- CacheAdministrationBundle - This bundle includes a controller with actions to clear the various caches.
- ControllerExtraBundle - Set of useful Controller annotations.
- DunglasActionBundle - A replacement for the Symfony controller system based on the Action-Domain-Responder pattern.
- http-bundle - Provides extra HTTP related functionality.
- JMSDebuggingBundle - Provides advanced debugging tools.
- LadybugBundle - The Simple and Extensible PHP Dumper.
- LiipCodeBundle - A set of Symfony2 console commands to help developers deal with the various ways of identifying classes, templates, bundles, services, etc.
- LiipFunctionalTestBundle - Some helper classes for writing functional tests in Symfony 2.
- ListenersDebugCommandBundle - A console command to debug listeners.
- ParamConverterBundle - This bundle provides additional param converters for Symfony.
- PhpMetricsCollectorBundle - Integrates PhpMetrics in Symfony2 debug toolbar.
- PsyshBundle - Provides an enhanced PHP interactive shell loaded with a Symfony context.
- PUGXGeneratorBundle - An enhancement of SensioGeneratorBundle.
- redaktilo-bundle - Integrates Redaktilo into Symfony 2.
- SandboxBundle - Overriding controller logic & response in a Sandbox environment.
- StatsDClientBundle - Easily monitor your symfony2 production env., with ready-to-use stats.
- TagDebugCommandBundle - Integrate TagDebug library for inspecting and debugging tags.
- TwigReflectionBundle - Displays what's in Twig.
- WebfactoryExceptionsBundle - Easily develop custom, user-friendly error pages.
- WebProfilerExtraBundle - Adding routing, container, assetic & twig information in the web profiler.
- XhprofBundle - XHProf bundle.
Distributions
- API Platform framework
- Kunstmaan Bundles Standard Edition
- Symfony CMF Standard Edition
- Symfony Standard Edition
Ecommerce
- Aimeos - Ultra fast PHP e-commerce framework for #gigacommerce
- Bamboo - Full-stack E-commerce application based on Symfony and Elcodi components
- Elcodi - E-commerce PHP Components and Symfony Bundles
- Sylius - E-Commerce PHP framework built on top of Symfony with component-based architecture and format-agnostic rendering
Forms
- CraueFormFlowBundle - Multi-step forms.
- InfiniteFormBundle - A collection of useful form types and extensions.
- IvoryCKEditorBundle - CKEditor integration in Symfony.
- IvoryOrderedFormBundle - Provides a form ordering support.
- KarserRecaptcha3Bundle - Integrates Google ReCAPTCHA v3 into Symfony.
- LexikFormFilterBundle - Lexik Form Filter bundle.
Internationalization
- BazingaJsTranslationBundle - A pretty nice way to expose your Symfony2 translation messages to your client applications.
- JMSI18nRoutingBundle - Bundle for multilingual websites to support international routes.
- JMSTranslationBundle - Translate your website with ease - extract messages & translate them via a web-based UI.
- LexikTranslationBundle - Allows to import translation files content into the database and provide a GUI to edit translations.
- LuneticsLocaleBundle - Guess the visitor’s locale from different parameters.
- TimezoneBundle - Serverside Timezone detection.
- TranslationFormBundle - Translation field to facilitate the use of the Translatable Doctrine extension.
Miscellaneous
- AnhTaggableBundle - Bundle provides integration of doctrine-extensions-taggable, adds form types for editing tag and tagging.
- AntennaBundle - Makes it easier to integrate Antenna (and through it JWT) authentication.
- APYBreadcrumbTrailBundle - This bundle provides annotations and PHP methods to generate a breacrumb trail.
- APYDataGridBundle - Datagrid Bundle.
- AvAlertifyBundle - This bundle allows you to easily harmonize alerts and others notifications.
- AviaryBundle - This bundle provides multiple file uploads, based on the BlueImp jQuery file uploader package. It provides also Aviary editing image functionnalities.
- AvListBundle - Easily make paginate and orderable list in Symfony2.
- BackupManagerBundle - A simple database backup manager for Symfony2 with support for S3, Rackspace, Dropbox, FTP, SFTP.
- BazingaFakerBundle - Put the awesome Faker library into the Symfony2 DIC and populate your database with fake data.
- BazingaGeocoderBundle - Integration of the Geocoder library.
- BCCMyrrixBundle - Myrrix is a recommendation engine built on Apache Mahout libraries.
- BGBarcodeBundle - Bundle for barcode rendering using our barcode generator base library.
- BlogBundle - Simple blog module.
- bootstrap-bundle - Integrates Bootstrap into Symfony2 by providing templates, Twig extensions, services and commands.
- BreadcrumbsBundle - A small breadcrumbs bundle.
- BrowscapBundle - Bundle to access the browscap information.
- CacheToolBundle - Bundle to integrate cachetool library in Symfony2 (Clear acp/opcache from the command line).
- CarbonBundle - This bundle provides an opportunity to convert Request data into Carbon objects.
- CheckBundles - Checks installed but not activated in AppKernel bundles.
- CloudBackupBundle - Be able to backup your database(s) and upload it to the cloud.
- ConsoleBundle - Commandline interface in browser.
- EightPointsGuzzleBundle - Integrates Guzzle 6.x, a PHP HTTP Client, into Symfony 2-4 and provides plugins to extend basic functionality.
- CsaGuzzleBundle - Bundle integrating Guzzle >=4.0 in Symfony.
- CsvBundle - An integration for thephpleague/csv into Symfony.
- DomainParserBundle - Integration of Domain Parser into Symfony.
- EasyAuditBundle - This bundle provides audit logging for your application - works with Doctrine2 entities and allows logging selective events.
- EmbedlyBundle - Bundle for the embed.ly library.
- ExcelBundle - Excel integration in Symfony2 thanks to https://github.com/PHPOffice/PHPExcel library.
- FeatureToggleBundle - Configure your feature toggling in Symfony2 by adding some simple tags to twig and extending it's configuration.
- ffmpeg-bundle - This bundle provides a simple wrapper for the PHP_FFmpeg library, exposing the library as a Symfony service.
- FlorianvSwapBundle - This Bundle integrates the Swap library.
- FMBbCodeBundle - Adds BBCode support to Symfony project.
- FMElfinderBundle - Provides Elfinder filebrowser integration with popular WYSIWYG editors.
- GnugatWizardBundle - Magically shrinks bundle installation steps into a single command.
- godfather - A library for the strategy pattern in PHP.
- guzzle-bundle - Integrates Guzzle.
- highcharts-bundle - Integrates PHP Highcharts.
- HTMLPurifierBundle - HTML Purifier is a standards-compliant HTML filter library written in PHP.
- IbrowsWizardAnnotationBundle - Give's a Symfony2 controller a simple wizard/workflow with annotations.
- ImageCropBundle - ImageCrop lets you crop images in Symfony applications, this bundle add a new form field type.
- JMDUnoconvBundle - Bundle which provides gate for converting files from one format to another via unoconv (LibreOffice) thru php-unoconv library.
- KayueEssenceBundle - This bundle integrates the Essence library (an oEmbed library) into Symfony 2.
- KitpagesDataGridBundle - This bundle provides a simple datagrid bundle.
- KnpMarkdownBundle - Wrapper for PHP markdown.
- KnpSnappyBundle - Easily create PDF and images by converting html using webkit.
- LexikMaintenanceBundle - This Symfony2 bundle allows you to place your website in maintenance mode by calling two commands in your console.
- LiipImagineBundle - Image manipulation bundle, based on Imagine library.
- LiipUrlAutoConverterBundle - Add a Twig Extension for templates with a new filter for automatically converting urls and emails in a string to html links.
- marshaller-bundle - A PHP library that converts from one format to another.
- metrics - Simple library that abstracts different metrics collectors.
- MhorMediaInfoBundle - Integrates php-mediainfo library into the Symfony2 full-stack framework.
- MobileDetectBundle - Bundle for detect mobile devices, manage mobile view and redirect to the mobile and tablet version.
- MultiParamBundle - MultiParam Annotation Bundle.
- ObHighchartsBundle - Aims to ease the use of highcharts to display rich graph and charts.
- OneupUploaderBundle - Provides server implementations for several multi file uploader.
- phone-number-bundle - Integrates libphonenumber.
- prezent-grid-bundle - Integrate the prezent/grid library in Symfony2.
- query-bus-bundle - QueryBus integration in Symfony.
- rss-atom-bundle - RSS and Atom Bundle.
- Search-SphinxsearchBundle - Sphinx search bundle.
- SettingsBundle - Database centric configuration management. Global and per-user settings supported.
- shorturl-bundle - Provides short URLs for your project.
- SimpleArrayBundle - Symfony 2 bundle for simple tags management, based on doctrine 2 simple_array type.
- sphinx-realtime-bundle - A bundle which automatically syncs Doctrine entities to a Sphinx real-time index.
- SphinxsearchBundle - Provide to use Sphinx search.
- StringGeneratorBundle - This bundle allows you to automatically generate a unique random string on an entity property, useful for creating keys.
- TbbcCacheBundle - Cache abstraction bundle.
- TbbcMoneyBundle - This bundle is used to integrate the Money library from mathiasverraes into a symfony2 project.
- TemplatedUriBundle - Expose the hautelook/TemplatedUriRouter.
- ThruwayBundle - Bundle for building Real-time Apps in Symfony.
- timeline-bundle - Symfony2 bundle to make timeline.
- TransmissionBundle - Bundle for Transmission API client.
- versioning-bundle - Simple way to version (semantic versioning 2.0.0).
- VisithorBundle - Symfony Bundle for PHP Package visithor.
- WhiteOctoberPagerfantaBundle - Bundle to use Pagerfanta.
- WidopFrameworkExtraBundle - Adds annotation configuration for Controller classes.
- WozbeRedirectBundle - A short bundle to manage many domains.
Monitoring
- LiipMonitorBundle - Bundle provides a way to run a series of application related health checks.
- SoclozMonitoringBundle - A monitoring bundle for production servers
Payments Management
- CartBundle - High quality cart for developers.
- JMSPaymentCoreBundle - This bundle provides the foundation for various payment plugins.
- JMSPaymentPaypalBundle - Payment Bundle providing access to the PayPal API.
- MangopayBundle - Mangopay API implementation for Symfony2.
- PaymentAdyenBundle - Provides access to the Adyen API. Based on JMSPaymentCoreBundle.
- PayumBundle - Rich payment solutions for symfony2. Paypal, Stripe, Payex, Authorize.NET, Be2bill, Klarna, recurring paymens, instant notifications and many more
Queues
- BernardBundle - Bernard is a multi-backend PHP library for creating background jobs for later processing.
- GearmanBundle - A bundle intended to provide an easy way to support developers who need to use job queues.
- HeriJobQueueBundle - This Symfony bundle provides the use of Zend Queue from Zend Framework.
- JMSJobQueueBundle - Allows to schedule console commands as jobs.
- LeezyPheanstalkBundle - Bundle for Pheanstalk, PHP client for beanstalkd queue.
- qpush-bundle - The QPush Bundle relies on the Push Queue model of Message Queues to provide asynchronous processing in your application.
- RabbitMqBundle - RabbitMQ bundle.
- RSQueueBundle - Queues infrastructure based on Redis, with Producer-Consumer and Publisher-Subscriber
- Enqueue - Provides a common way for programs to create, send, read messages. Inspired by Java JMS
Reading
- Symfony 5: The Fast Track - Book written by Symfony's creator, free online.
- High Performance Websites with Symfony2
- Symfony - project tamed
- Symfony 4.1 Jobeet Tutorial
Resources
- Symfony2 Service Config Converter - A simple service to convert services configuration between YAML, XML and INI.
- Twigfiddle - Small development environment to develop, run, store and access Twig code online.
Service Container
- CraueConfigBundle - Manages configuration settings stored in the database and makes them accessible via a service in your Symfony 2 project.
- JMDSettingsBundle - Simple service for store configuration in database an accessible via service and twig in your project.
- JMSDiExtraBundle - Provides Advanced Dependency Injection Features.
- KutnyAutowiringBundle - a bundle providing autowiring for service arguments.
- PHP-DI - The dependency injection container for humans.
Storage
- AliceBundle - A Symfony2 bundle to help load Doctrine Fixtures with Alice.
- AliceFixturesBundle - A Symfony2 bundle for using Alice and Faker with data fixtures.
- AvSpoolMailerBundle - Store your mails as a spool and send transactionnal direct mails or store it in DB.
- doctrine-routing-bundle - Dynamic database routing.
- DoctrineEncryptBundle - Bundle allows you to create doctrine entities with fields that will be protected by encryption algorithms such as AES.
- DoctrineEnumBundle - Provides support of MySQL ENUM type for Doctrine2.
- DoctrineFixturesBundle - Integrates the Doctrine2 Data Fixtures library.
- DoctrineMigrationsBundle - Integrates the Doctrine2 Migrations library.
- elastica-query-bundle - Query builder bundle for ElasticSearch.
- FeedBundle - A bundle to build RSS feeds from your entities.
- FPNTagBundle - This bundle adds tagging, with the ability to associate tags with any number of different entities.
- GaufretteBrowserBundle - This Bundle allows you to browse a Gaufrette Filesystem like a Doctrine Connection.
- KnpGaufretteBundle - Integrates Gaufrette.
- MysqlDoctrineFunctions - MySQL Function for Doctrine : RAND(), ROUND() DATE(), DATE_FORMAT().
- OneupFlysystemBundle - Integrates Flysystem.
- RelationBundle - Bundle to manage relations between models/entities. (Not maintained anymore)
- SncRedisBundle - Bundle to integrate Redis into your app.
- StofDoctrineExtensionsBundle - This bundle provides integration for DoctrineExtensions.
- VichGeographicalBundle - A bundle which provides geographical features for ORM and ODM entities and object oriented javascript maps rendering.
- WizadDoctrineDocBundle - Allows you to generate a decent documentation for your doctrine model schema.
Template Engine
- CgKintBundle - This bundle lets you use the Kint library in your Twig templates.
- FlashAlertBundle - Simplified way to handle (add/display) Symfony flash messages.
- GravatarBundle - Simple wrapper to gravatar API.
- KnpTimeBundle - Provides helpers for time manipulation.
- swift-css-inliner-bundle - A Swiftmailer plugin that provides css inline features.
- TwigCacheBundle - Bundle for asm89/twig-cache-extension.
- TwigExtraBundle - Twig Extra Tools Extensions.
- TwigInflectionBundle - Apply inflection via a Twig extension.
- TwigJackBundle - Handy additional features for Twig.
- TwitalBundle - An attribute template engine built on top of Twig and 100% compatible with all twig's features.
- UcoTwigExtensionsBundle - Provides some filters.
Third Party APIs
- AlgoliaSearchBundle - Seamless integration of Algolia Search into your Symfony project.
- CoopTilleulsOvhBundle - Send SMS using the OVH API.
- GordalinaMixpanelBundle - Mixpanel integration in Symfony2.
- SwarrotBundle - A bundle for swarrot integration.
- SwmMailHookBundle - Bundle to catch API webhook from different mail service (Mailjet, Mandrill, custom)
- YuccaPrerenderBundle - Symfony2 Bundle to use prerender.io.
User Management
- FOSUserBundle - Adds support for a database-backed user system.
- HWIOAuthBundle - OAuth client integration. Supports both OAuth1.0a and OAuth2.
- JmikolaAutoLoginBundle - This bundle integrates the AutoLogin library with Symfony2, which implements a security firewall listener to authenticate users based on a single query parameter.
- JMSSecurityExtraBundle - Enhances the Security Component with several new features.
- SamlBundle - The SamlBundle adds support for SAML 2.0 Service Provider in Symfony2.
- two-factor-bundle - This Symfony2 bundle provides two-factor authentication for your website.
Validation
- dms-filter-bundle - Provides a FilterService to allow users to implement input filtering in entities using Annotations.
- PasswordStrengthBundle - Validator for ensuring strong passwords.
- vatin-bundle - A Symfony2 bundle for the VATIN library (validate VAT identification numbers).
Web Services
- api2symfony-bundle - Symfony 2 bundle allowing to automatically generate controllers from standard API specifications.
- BazingaHateoasBundle - Integration of the Hateoas library.
- DunglasAngularCsrfBundle - Automatic CSRF protection for Symfony APIs used with AngularJS and other major AJAX libraries
- DunglasApiBundle - Bundle to build hypermedia-driven REST API.
- FOSOAuthServerBundle - A server side OAuth2 bundle.
- FOSRestBundle - Provides various tools to rapidly develop RESTful API's & applications.
- JMDRestBundle - Provide fast and simple way to generate REST api for your project entities without editing configs and creating any controllers.
- JMSSerializerBundle - Easily serialize, and deserialize data of any complexity.
- JSONApiBundle - Bundle which provides support for formatting REST reponses to follow the JSON API specification.
- KnpJsonSchemaBundle - Provide a service which allow you to generate json schema based on validation metadata.
- LemonRestBundle - An opinionated bundle providing REST endpoints for Doctrine entities.
- LexikJWTAuthenticationBundle - This bundle provides JWT (Json Web Token) authentication for your REST API using the lcobucci/jwt library.
- NelmioApiDocBundle - Generates documentation for your REST API from annotations.
- NelmioCorsBundle - Adds ability to add CORS-related headers based on simple ACL-style per-URL configurations.
- RateLimitBundle - Add rate limits to your controllers/actions easily through annotations.
- RequestLimitBundle - With this bundle you can easy limit requests to your application.
- ResourceBundle - Bundle that helps in developing REST APIs.
- SerializedResponseBundle - A simple bundle to provide an easy way to send out json/xml/yaml responses of serialized objects with annotations.
- SRIORestUploadBundle - A symfony bundle to handle multiple upload ways on your REST API.
License
To the extent possible under law, Emanuele Minotto (the repo's original creator) and SitePoint have waived all copyright and related or neighboring rights to this work.
Awesome Symfony Education 
A curated list of amazingly awesome Symfony articles, series and books.
For bundles selection, check sitepoint-editors/awesome-symfony.
Single Action Controller
Tutorials and Video Courses
- SymfonyCasts - Learn Symfony 4
- Videos + articles. Straightforward, simple & with examples.
- Working with Symfony 2
- Short video series for starters
- Symfony 2 - under 5 minutes
- Short video series for starters
Series for begginers
- Joyful Development with Symfony 3 [2016] by SymfonyCasts
- Symfony po krůčkách na Zdroják.cz [2015/2016] [česky]
- Symfony 4.1 Jobeet Tutorial [2018]
Dependency Injection
- How to refactor to new Dependency Injection features in Symfony 3.3 by Tomas Votruba [2017]
EventDispatcher
- Decouple your application with (Domain-)Events by Benjamin Eberlei [2013]
- Re-thinking Event Listeners [2015]
- Journey to the Center of Symfony: HttpKernel Request-Response by SymfonyCasts [2015]
Security
- Symfony Security, Roles vs. Voters [2015]
- Do not use FOSUserBundle [2015]
- The new Voter Class [2016] by SymfonyCasts
Forms
- Don't Use Entities in Symfony Forms. Use Custom Data Objects Instead [2017]
- Avoiding Entities in Forms [2016]
- Rethinking Form Development [2016]
Doctrine
- How to use Repository with Doctrine as Service in Symfony [2017]
- Mastering Symfony2 Performance – Doctrine [2014]
- Rich domain model with Symfony 2.5 and Doctrine 2.5 [2014]
Translations
- How Happyr work with Symfony translations [2015]
- Translation workflow with Symfony2 [2015]
- How to organize your translations in Symfony [2013]
Bundles
- High Quality Symfony Bundles [2014]
Decoupling
- The Framework as an implementation by Marcello Duarte & Konstantin Kudryashov [2013], Github repository
- Symfony2: How to create framework independent controllers [2014]
Legacy
- Bringing Symfony Components into Your Legacy Code [2016]
- Eating spaghetti with Symfony [2016]
- Migrating your project to Symfony [2016]
Performance
- Mastering Symfony2 Performance – Internals [2014]
- 5 Ways to optimize Symfony Baseline Performance [2015]
DDD
General
- Lessons Learned from My First Symfony Project [2016]
- Symfony best practices [2014]
- Symfony tips and tricks [2014]
- Some Symfony 2 practices
- Výhody a nevýhody Symfony v bodech [2014] [česky] - by @spicimedved
Books
- Symfony Framework Deepdive - Console [2015]
- Detailed guide to Console Component by Joshua Thijssen
- Symfony Framework Deepdive - Security [2015]
- Detailed guide to Security Component by Joshua Thijssen
- Symfony Certification - Unofficial self-study guide [2015]
- Short Q-A based section about Symfony foundations
- A Year with Symfony [updated 2014]
- Great book for beginners to understand basic Symfony lifecycle and how to use it to your advantages.
License
To the extent possible under law, Tomas Votruba has waived all copyright and related or neighboring rights to this work.
Awesome Laravel

A curated list of awesome bookmarks, packages, tutorials, videos and other cool resources from the Laravel ecosystem.
Inspired by ziadoz/awesome-php
Table of Contents
- Essentials
- Packages
- Popular Packages
- Development Setup
- Application Hosting
- Application Deployment
- Code Snippets
- Tutorials & Blogs
- Videos
- Conferences
- Books
- Starter Projects
- Codebases for Reference
- Content Management Systems
- Podcasts
- Community
- Jobs
- Hosted Development Tools
- Miscellaneous
Essentials
- Laravel (Documentation)
- Laravel API Reference
- Lumen (Documentation)
- Laracasts
- Laravel News (Archive)
Packages
Popular Packages
This is a list of well-documented, tested packages that are frequently used in Laravel projects. If you're looking for an exhaustive list of PHP packages, then check out the Package Repositories mentioned above.
Developer Tools
- Scaffold Interface - A Smart CRUD Generator For Laravel
- IDE Helper - Generates a helper file for IDE auto-completion
- Laravel 5 Extended Generators - Extends built-in file generators
- Laravel API/Scaffold/CRUD Generator - Generator for APIs, CRUD scaffolds etc.
- Laravel Tinx - Reload your Laravel Tinker session from inside Tinker
- Laravel API Documentation Generator - Automatically generate your API documentation
- Laravel Packager - A CLI tool for creating Laravel packages
- Workbench Export to Migrations - Workbench plugin for exporting Models to Laravel migrations
- Laravel Decomposer - List all installed packages, their dependencies, app & server details
- LaRecipe - Write gorgeous documentations for your products using Markdown inside your Laravel app.
- Prequel - A clear and concise database management GUI tweaked for Laravel.
Testing & Debugging
- Laravel TestTools - Chrome extension to generate Laravel integration tests while using your app
- Laravel Test Factory Generator - Generate Laravel test factories from your existing models
- Clockwork - Integrates Clockwork Chrome extension for debugging and profiling apps
- Debug Bar - Integrates PHP Debug Bar with Laravel
- Ignition - A beautiful error page for Laravel apps
- Laravel 5 Log Viewer - Log viewer
- LogViewer - Provides a log viewer
- LERN - Record exceptions into a database and will send you a notification
- Mail Preview - Preview sent mail in a web browser or mail client
- Laravel Tracy - A Laravel Package to integrate Nette Tracy Debugger
- Laravel Terminal - run artisan in a web browser
- Laravel API Tester - Postman-like tool with Laravel routes
- Laravel Tail - The missing tail command
- Laravel Telescope - Laravel Telescope is an elegant debug assistant for the Laravel framework
Authentication & Authorization
- Bouncer - Roles & Permissions
- Laratrust - Roles, Permissions and teams
- Entrust - Role-based Permissions
- JWT Auth - JSON Web Token authentication for APIs
- Laravel Permission - Associate users with roles and permissions
- Defender - Roles & Permissions
- OAuth2 Server Laravel - OAuth 2.0 authorization server and resource server
- Socialite - OAuth authentication with Facebook, Google, Twitter etc.
- Socialite Providers 2.0 - 100+ social authentication providers for Socialite with Lumen support
- Google2FA - Google Two-Factor Authentication Module
- Laravel User Verification - Handle the user verification flow and validate email
- Adldap2 Laravel - LDAP authentication and Active Directory management
- Doorman - Limit access to your Laravel applications by using invite codes
- Laravel Heyman - Heyman continues where the above role-permission packages left off
Utilities
- Awes.io - boilerplate for CRM, SaaS, ERP based on Vue (Nuxt.js), TailwindCSS plus Laravel as a backend.
- Artisan View - Manage the views in Laravel projects via artisan
- Bootstrapper - Set of classes to create Bootstrap 3 markup
- Captcha - An anti-bot image captcha system
- Charts - Multi-library chart package to create interactive charts
- Lavacharts - Charts and Graphs for PHP Powered by the Google Chart API
- Eloquent Filter - Filter models and their Relationships
- Eloquent Sluggable - Create slugs for Eloquent models
- Eloquent Sortable - Sortable behaviour for Eloquent models
- HTML - HTML and Form Builders for Laravel
- Multi-tenant - Flexible multi tenancy with secure separation of routes, assets and databases
- Laravel Form Builder - Form builder inspired by Symfony's form builder
- Laravel Activitylog - Log activity inside your Laravel app
- Laravel Auditing - Audit for Eloquent models
- Laravel Breadcrumbs - Create and manage breadcrumbs
- Laravel Collection Macros - A set of handy collection macros
- Laravel Cookie Consent - Make your Laravel app comply with the crazy EU cookie law
- Laravel Datatables - jQuery DataTables API
- Laravel GeoIP - Determine the location of website visitors based on their IP addresses
- Laravel Hashids - Generate unique, non-sequential ids using Hashids
- Laravel Impersonate - A package to authenticate as one of your users
- Laravel Mailbox - A package to handle incoming emails
- Laravel Markdown - CommonMark markdown parser
- Laravel Menu - Html menu generator for Laravel
- Laravel Talk - Realtime User messaging system
- Laravel Messenger - User messaging system
- Laravel Moderation - Approve or reject resources like posts, comments, users, etc.
- Laravel Tags - Add tags and taggable behaviour
- Laravel Stats Tracker - Gather information from requests to identify and store
- Listify - Add sorting/ordering capabilities to any Eloquent model
- noCAPTCHA - Helper for Google's new noCAPTCHA (reCAPTCHA)
- Purifier - HTML filter
- Revisionable - Create a revision history for Eloquent models
- SEOTools - Helpers for some common SEO techniques
- Page Cache - Caches responses as static files on disk for lightning fast page loads
- Laravel Setting - Persistent configuration settings that are stored in JSON files
- Friendship - Friendship management system
- Teamwork - User to team associations with an invite system
- Validating - Trait for validating Eloquent models
- VAT Calculator - Handle all the hard stuff related to EU MOSS vat regulations
- Laravel UUID - Generate a UUID according to the RFC 4122 standard
- Laravel Installer - Allow users to install your application just by following the setup wizard, like WordPress
- Laravel Modules - Easy module management
- Laravel Phone - Phone number validator and formatter
- Laravel Ban - Simplify blocking and banning Eloquent models
- Laravel Proxy - Handling sessions when behind load balancers or other intermediaries.
- Laravel Video Chat - Video Chat using Socket.IO and WebRTC
- Widgets for Laravel - A powerful alternative to view composers.
- Secure Headers - Add security related headers to HTTP response
- Laravel Nova - Nova is a beautifully designed administration panel for Laravel
- Laravel Love - It lets people express how they feel about the content. React on Eloquent models with Likes or Dislikes.
- stancl/tenancy - Automatic tenancy for your Laravel app. No code changes needed.
Media & Document Management
- Intervention Image - Image handling library for creating, editing and composing images
- Laravel ImageUp - Yet another image manipulation package, adds tons of extra functionality
- Laravel Glide - Easily convert images with Glide
- Laravel MediaLibrary - Associate files with Eloquent models
- Laravel Snappy - HTML to PDF generator using wkhtmltopdf
- Laravel DOMPDF - HTML to PDF generator using dompdf
- Laravel Stapler - ORM-based file upload manager
- Laravel Excel - Import and export Excel and CSV files
- Fast Excel - Fast XLSX, CSV and ODT import and export for Laravel
- Laravolt Avatar - Plug n play avatar, turn name, email, and any other string into beautiful avatar (or gravatar), effortless.
- Laravel FFmpeg - This package provides an integration with FFmpeg for Laravel 5.8.
Integration with Javascript
- Laroute - Generate Laravel route URLs from JavaScript
- PHP Vars to JavaScript Transformer - Pass server-side string/array/collection/whatever to JavaScript
- Javascript Validation - Use validation rules, messages, FormRequest and validators to validate forms in client-side
- Laravel Pjax - A Pjax middleware
- Laravel Blade Javascript - A Blade directive to export variables to JavaScript
- Ziggy - Use your Laravel named routes in JavaScript
- LiveWire - A magical front-end framework for Laravel
Databases, ORMs, Migrations & Seeding
- Backup Manager - Backup and restore databases from S3, Dropbox, SFTP etc.
- Laravel Nestedset - Nested Sets pattern implementation
- ClosureTable - Closure table pattern implementation
- Eloquence - Extra features for Eloquent models
- iSeed - Generate a new seed file from an existing database table
- Laravel OCI8 - Oracle DB driver via OCI8
- Laravel Backup - Backup your app
- Laravel Doctrine - Doctrine 2 ORM implementation
- Laravel MongoDB - Eloquent model and query builder with support for MongoDB
- Migrations Generator - Generate migrations from an existing database
- Sofa/Eloquence - Extensions for the Eloquent ORM
- Tenanti - Multi-tenant database schema manager
- Laravel Repository - Repositories to abstract the database layer
- Lada Cache - A Redis based, fully automated and scalable database cache layer
- Laravel MySQL Spatial extension - easily work with MySQL Spatial Data Types and MySQL Spatial Functions
Search
- Algolia Search - Integrates the Algolia Search API to the Laravel Eloquent ORM
- Elasticquent - Elasticsearch for Eloquent models
- Plastic - Fluently mapping and searching Elasticsearch
- Laravel Search - Unified API for Elasticsearch, Algolia, and ZendSearch
- SearchIndex - Store and retrieve objects from Algolia or Elasticsearch
- Searchable - Trait that adds a simple search function to Eloquent models
- TNTSearch - A fully featured full text search engine written in PHP
- TNTSearch driver - Driver for Laravel Scout search package based on TNTSearch
- Laravel-Searchy - Fuzzy search, basic string matching, Levenshtein Distance
APIs
- ApiGuard - Allow API authentication with API keys
- Dingo API - Multi-purpose toolkit for developing RESTful APIs
- Laravel CORS - Add CORS (Cross-Origin Resource Sharing) headers support
- Laravel Fractal - Output complex, flexible, AJAX/RESTful data structures with Fractal
- Laravel GraphQL - Supports Relay, eloquent models, validation and GraphiQL
- Lighthouse - An up and coming GraphQL library for Laravel
- Laravel Responder - Build custom API responses with Fractal
Tasks, Commands and Scheduling
- Dispatcher - Scheduler for Artisan commands
- Elixir - Node (NPM) package to run Gulp tasks
- Mix - Fluent API for defining basic webpack build steps
- Envoy - SSH Task Runner
Payments
- Cashier - Subscription billing with Stripe
- Omnipay for Laravel - Integrate the Omnipay PHP library
Optimization
- Intervention Image Cache - Caching extension for the Intervention Image Class
- Laravel HTMLMin - Blade/HTML/CSS/javascript minifier
- Rememberable - Query caching for Eloquent
- Widgetize - Page Partial caching
- Laravel Responsecache - Speed up app by caching the entire response
Monitoring
- Horizon - Monitor and configure queues with a simple web UI
- Laravel Failed Job Monitor - Get notified when a queued job fails
- Laravel Uptime Monitor - A powerful and easy to configure uptime and ssl monitor
- Larametrics - A self-hosted metrics and notifications platform for Laravel apps
Localization
- Language Files - Validation, Pagination and Reminders language lines in 37 languages
- Laravel Localization - Add i18n support via routes
- Laravel Translatable - Making Eloquent models translatable by storing translations as JSON
- Laravel Translatable - Retrieve and store translatable Eloquent model instances
- Laravel Translator - Translate Eloquent models into multiple languages
- Laravel Date - A library to help you work with dates in multiple languages, based on Carbon
- Laravel Langman - Manage language files from Artisan Console
- Laravel Translation - Translation and localization management
- Linguist - i18n localization support for Laravel
Third-party Service Integration
- Laravel Analytics - Retrieve pageviews and other data from Google Analytics
- Laravel DigitalOcean - DigitalOceanV2 bridge
- Laravel GitHub - PHP GitHub API bridge
- Laravel Instagram - Instagram API bridge
- Laravel Newsletter - Send newsletters with Mailchimp
- Laravel Pusher - Pusher API bridge
Development Setup
- Homestead - Official Vagrant box for Laravel
- Valet - Development environment for Mac users
- Valet Linux - Development environment for Linux users
- LaraDock - Run Laravel on Docker (Like Homestead but for Docker instead of Vagrant)
- LaraEdit Docker - Homestead environment in a single Docker container
- Laragon - Isolated development environment on Windows
- Stacker - The environment for local web development on Docker
- Devilbox - A dockerized and general-purpose LAMP/MEAN stack for every PHP version
- Vessel - Simple Docker development environments for Laravel
- Lando - A local development environment tool built on Docker
Application Hosting
- Vapor
- Forge (ForgeRecipes)
- FortRabbit
- Heroku (Documentation)
- AWS Elastic Beanstalk (Tutorial)
- Cloudways
- Ploi
- CodePier
- RunCloud
Application Deployment
- Deployer - A deployment tool with support for Laravel out of the box
- Envoyer - Zero down-time Deployer for PHP & Laravel projects
- Rocketeer - Task runner and deployment package
Code Snippets
Tutorials & Blogs
- Taylor Otwell
- Tuts+
- Medium
- Laravel Daily
- Scotch
- Digital Ocean
- Matt Stauffer
- Vegi Bit
- Neon Tsunami
- Dor.ky
- Stillat
- Easy Laravel Book Blog
- Laraveles (ES)
- Styde (ES)
- Cloudways Laravel Blog
- Laravel Best Practices
- Pusher Laravel Tutorials
- LaraShout
Videos
- Laracasts
- Codecourse (YouTube)
- Tuts+
- Servers for Hackers
- Test-Driven Laravel
- Duilio Palacios (ES)
- CodigoFacilito (ES)
- DevDojo
- Amitav Roy
- Laracademy
- Dev Marketer
- Udemy
- Lynda
- Pluralsight
- Bitfumes
- ConfidentLaravel
Conferences
- Laracon US
- Laracon EU
- Laracon Online
- Laraconf Brasil
- Laracon Australia
- Laravel Live UK
- Laravel Live India
- Laravel Nigeria
Videos
- Laracon EU 2018
- Laracon US 2018
- Laracon EU 2017
- Laracon US 2017
- Laracon EU 2016
- Laracon US 2016
- Laracon EU 2015
- Laracon US 2015
- Laracon EU 2014
- Laracon US 2014
- Laracon EU 2013
- Laracon US 2013
Books
- Laravel Starter by Shawn McCool
- Laravel: Code Happy by Dayle Rees
- Laravel: Code Bright by Dayle Rees
- Laravel: Code Smart by Dayle Rees
- Laravel: From Apprentice To Artisan by Taylor Otwell
- Laravel 4 Cookbook by Christopher Pitt and Taylor Otwell
- Laravel Testing Decoded by Jeffrey Way
- Refactoring to Collections by Adam Wathan
- Implementing Laravel by Chris Fidao
- Getting Stuff Done with Laravel 4 by Chuck Heintzelman
- Laravel Application Development Blueprints by Arda Kılıçdağı and Halil İbrahim Yılmaz
- Build APIs You Won't Hate by Phil Sturgeon
- Integrating Front end Components with Web Applications by Maksim Surguy
- Laravel Design Patterns and Best Practices by Arda Kılıçdağı and Halil İbrahim Yılmaz
- Learning Laravel 4 Application Development by Hardik Dangar
- Getting Started with Laravel 4 by Raphaël Saunier
- Laravel Application Development Cookbook by Terry Matula
- Building Web Applications Using Parse REST API by Mhd Zaher Ghaibeh
- Laravel - My First Framework by Maksim Surguy
- Easy Laravel 5 by W. Jason Gilmore
- Laravel 5 Essentials by Martin Bean
- Easy E-Commerce Using Laravel and Stripe by W. Jason Gilmore and Eric L. Barnes
- Laravel 5.1 Beauty by Chuck Heintzelman
- Design Patterns with PHP and Laravel by Kelt Dockins
- Mastering Laravel by Christopher John Pecoraro
- How to Build Real-Time Laravel Apps with Pusher by Pusher
- Learning Laravel's Eloquent by Francesco Malatesta
- Laravel 5 Learn Easy by Sanjib Sinha
- Laravel and AngularJS by Daniel Schmitz and Daniel Pedrinha Georgii
- Laravel Collections Unraveled by Jeff Madsen
- Writing APIs With Lumen by Paul Redmond
- The Laravel Survival Guide by Tony Lea
- Laraboot: Laravel 5 For Beginners by Bill Keck
- Laravel 5.4 For Beginners by Bill Keck
- Laravel Up & Running by Matt Stauffer
- Laravel Companion by Johnathon Koster
- Deploy Laravel on AWS with CloudFormation by Lionel Martin
- React Native and Laravel for Future Mobile Development by Ega Radiegtya
- Servers for Hackers by Chris Fidao
- Full-Stack Vue.js 2 and Laravel 5 by Anthony Gore
- Build an API with Laravel by Wacky Studio
Starter Projects
- Spark
- LaraAdmin
- Grafite Builder
- Laravel Boilerplate
- Laravel Angular Material Starter
- AdminLTE Laravel
- Laravel Hackathon Starter
- Laravel API Starter Kit
- Backpack for Laravel
- SomelineStarter
- Laravel Admin
- Voyager
- Orchid
- Laravel REST API Boilerplate
- Hello API
- REST API With Lumen
- Laravel Zero - Console application
- Apiato
- Laravel Adminpanel
- Laravel Vue Boilerplate
- Laravel Enso
- Laravel Template with Vue
Codebases for Reference
- Cachet - Status page system for websites and APIs
- Deployer - Application deployment system
- GitScrum - Task management with Git and Scrum
- Invoice Ninja - Invoicing, expenses, & time-tracking application
- Koel - Personal music streaming server
- Laravel.io - Source for the Laravel.io Community Portal
- Attendize - Ticket selling and event management platform
- Antvel - Ecommerce platform
- Jigsaw - Static site generator
- Canvas - A Laravel Publishing Platform
- Vuedo - Vuedo is blog platform, built with Laravel and Vue.js
- Screeenly - Create website screenshots through an API
- Voten - A real-time social bookmarking for the 21st century
- Monica - Personal relationship management system
- Snipe-IT - IT asset/license management system
- Akaunting - Accounting software for small businesses and freelancers
- Torch - Examples of using each Illuminate component in non-Laravel applications
- Pixelfed - A free and ethical photo sharing platform, powered by ActivityPub federation
Content Management Systems
- OctoberCMS
- SleepingOwlAdmin
- PyroCMS
- Lavalite
- TypiCMS
- Asgard CMS
- Microweber
- Coaster CMS
- Statamic
- Borgert CMS
- PJ Blog
- Laralum
- Twill
Podcasts
Community
- Laracasts Forum
- Laravel.io Forum
- Larachat Slack (Signup)
- Gitter
- IRC Channel
- StackOverflow
- Google+
- Quora
Local User Groups
- Laravel Global Community
- LaravelES Slack (Signup)
- Laravel India, Slack Signup, Twitter, Facebook, Youtube
- Laravel UK, Slack Signup
- Laravel Russia (VK group)
- Laravel France
- Laravel Bangladesh
- Laravel Indonesia (Facebook, Telegram)
- Laravel Brasil (Facebook, Slack, Telegram, GitHub, Discord)
- Laravel Turkey (Facebook)
- Laravel Nigeria (Facebook)
- Laravel China
- Laravel Taiwan (Facebook)
- Laravel Spanish
- Laravel Korea (Facebook)
- Laravel Japan (Facebook)
- Laravel Malaysia
- Laravel Algeria
- Laravel Greece (Facebook)
- Laravel Middle East (Facebook)
- Laravel Georgia
- Laravel Italy
- Laravel Vietnam
- Laravel Slovenia
- Laravel Hungary
- Laravel Cameroon (Slack, GitHub, Facebook, Twitter)
- Laravel Philippines
Meetups
- All Meetups
- London Meetup
- Buenos Aires Meetup
- Athens-Greece Meetup
- Copenhagen Meetup
- Detroit Meetup
- Paris Meetup
- Melbourne Meetup
- Budapest Meetup
Jobs
Hosted Development Tools
- Laravel Shift - Automated upgrade tool for Laravel projects
- Laravel Schema Designer - Create, export and share database schemas
- StyleCI - PHP Coding Style Service
Miscellaneous
- CodeCanyon - Paid scripts and plugins
- Laravel Collections - Every Laravel Developers Goto Resource Site
- LaravelLinks - A Telegram Channel dedicated to sharing great Laravel Resources
Contributing
Found an awesome package, blog, course or video? Send me a pull request!
Guidelines
- Please make an individual pull request for each suggestion
- Make sure the Travis tests pass on your pull request
- Use the following format for links: [Resource](URL)
- Want to suggest a package? Read the Contribution Guide
- New categories or improvements to the existing categorization are welcome
License
Awesome Laravel is licensed under a Creative Commons Attribution 4.0 International License.
Awesome Laravel Education 
A curated list of resources for learning about the Laravel PHP Framework, to help you beginner, intermediate or advanced developer.
Translations
Please select the curated list below to begin your learning of the Laravel PHP Framework!
How to contribute?
- Please make an individual pull request for each suggestion
- New categories or improvements to the existing categorization are welcome
Make a difference
These guys below contributed with content, translations and more. What are you waiting for? Come join us and put yourself down below ;)

English Version
Index
- New to Laravel
- Quick References
- Learn From Video / Posts
- Composer / Homestead / Docker
- Routing / Controllers / Requests / Responses
- Database
- Models / Eloquent
- Views / Blade / Language
- Forms / Validation
- Architecture Foundations / IoC
- Auth / Security
- Middleware
- Front End
- Session
- Filesystem / Cloud Storage
- Cache
- Testing and Coding Standard
- Case Study
- Tutorial
- Blogs
- Newsletters
- Open Source Laravel
- Coding Standard
- Dependency Management
- Develop Tools
- PHP Book List for Developer
- Interview
- Misc
New to Laravel
- Laracasts: Laravel From Scratch
- Laracasts: Laravel 5 Fundamentals
- Laravel 5.1 Homestead Install Guide
- Laravel Homestead on Windows 8
- Laravel Homestead on Linux or Mac #5.4
- Laracasts: Say Hello to Laravel Homestead 2.0
- Setup Laravel excutable enviroment on AWS EC2 quickly
- Learn from tutorial
- Laravel Documentation: Basic Task List #5.1
- Laravel Documentation: Intermediate Task List #5.1
- Laravel Documentation #5.4
Quick References
- Awesome Laravel
- Awesome PHP
- Laravel API #5.4
- Laravel Cheat Sheet
- bestmomo/laravel5-3-example - A good example of how to use Laravel 5.3 to build an web application.
Learn From Awesome Video / Posts
Composer / Homestead / Docker
- Getting Started
- Laracasts: Meet Composer #Composer
- Laracasts: Virtual Machines and Homestead #Homestead #Virtual Machine #Vagrant
- Composer Intro #Composer
- Laravel Documentation: Setup Homestead #5.4 #Homestead
- Laravel in Docker #5.4 #Docker
Routing / Controllers / Requests / Responses
- Getting Started
- Laracasts: A Gentle Introduction to Routing, Controllers, and Views #Routing #Controller #View
- Laravel Documentation: The Basics Routing #5.4 #Routing
- Laravel Documentation: The Basics Controllers #5.4 #Controller
- Laravel Documentation: The Basics Requests #5.4 #Request
- Laravel Documentation: The Basics Responses #5.4 #Response
- Advanced
- Laracasts: Route Model Binding #Routing
- Simple Way To HTTPS All Laravel Routes #5.4 #Routing
Database
- Getting Started
- Laracasts: Migrations #Migration
- Laravel Documentation: Database Getting Started #5.4 #Database
- Laravel Documentation: Database Migrations #5.4 #Migration
- Advanced
- Laravel Documentation: Database Query Builder #5.4 #Database
- Laravel Documentation: Database Seeding #5.4 #Migration
Models / Eloquent
- Getting Started
- Laracasts: Eloquent 101 #Eloquent
- Laracasts: Basic Model/Controller/View Workflow #Model #Eloquent
- Laravel Documentation: Eloquent ORM Getting Started #5.4 #Eloquent
- Advanced
- Laravel Documentation: Eloquent ORM Relationships #5.4 #Eloquent
- Laravel Documentation: Eloquent ORM Collections #5.4 #Eloquent
- Laravel Documentation: Eloquent ORM Mutators #5.4 #Eloquent
- Laravel Documentation: Eloquent ORM Serialization #5.4 #Eloquent
- Laracasts: Dates, Mutators, and Scopes #Eloquent #Carbon
- Laracasts: Eloquent Relationships #Eloquent
Views / Blade / Language
- Getting Started
- Laracasts: Passing Data to Views #View
- Laravel Documentation: The Basics Views #5.4 #View
- Laracasts: Blade 101 #View #Blade
- Laravel Documentation: The Basics Blade Templates #5.4 #View #Blade
- Advanced
- Laracasts: View Partials and Form Reuse #View
- Php vars @ JS with the help of a Laravel SP & View Composer #5.4 #View #Language
Forms / Validation
- Getting Started
- Laracasts: Forms #Form #View
- Laracasts: Form Requests and Controller Validation #Form #Validation
- Laravel Documentation: Services Validation #5.4 #Validation
Architecture Foundations / IoC
- Getting Started
- Laracasts: Environments and Configuration #Architecture
- Laravel Documentation: Architecture Foundations Application Structure #5.4 #Architecture
- Advanced
- Laravel Documentation: Architecture Foundations Request Lifecycle #5.4 #Architecture
- Laravel Documentation: Architecture Foundations Service Providers #5.4 #Architecture
- Laravel Documentation: Architecture Foundations Service Container #5.4 #Architecture
- Laravel Documentation: Architecture Foundations Contracts #5.4 #Architecture
- Laravel Documentation: Architecture Foundations Facades #5.4 #Architecture
- Laracasts: The Service Container #Architecture #Ioc
Auth / Security
- Getting Started
- Laracasts: Easy Auth #Authentication #Eloquent
- Laravel Documentation: Services Authentication #5.4 #Authentication
- Laravel Documentation: Services Authorization #5.4 #Authentication
Middleware
- Getting Started
- Laracasts: Ogres Are Like Middleware #Middleware #Security
- Laravel Documentation: The Basics Middleware #5.4 #Middleware
Front End
- Getting Started
- Laracasts: Manage Your Assets #Front-End #Elixir
- Laravel Documentation: Services Elixir #5.1 #Elixir
- Advanced
- Setup Bootstrap Sass with Laravel Elixir - Eric L. Barnes #Elixir
Session
- Getting Started
- Laracasts: Flash Messaging #Session
- Laravel Documentation: Services Session #5.4 #Session
Filesystem / Cloud Storage
- Getting Started
- Laravel Documentation: Services Filesystem / Cloud Storage #5.4 #Filesystem
Cache
- Getting Started
- Laravel Documentation: Services Cache #5.4 #Cache
- Getting Started
- Laravel Documentation: Services Mail #5.4 #Mail
Testing and Coding Standard
- Getting Started
- Laravel Documentation: Services Testing #5.4 #Testing
- Advanced
- BDD in Laravel: Getting Started with Behat and PhpSpec - Bruno Skvorc #Testing
Case Study
- Advanced
- Article and Tags
Tutorial
Blogs
- Taylor Otwell
- Matt Stauffer
- Mohammad Gufran
- Adam Engebretson
- Sheikh Heera
- Kirk Bushell
- Andrews Ang
- Jens Segers
- Neon Tsunami
- Scott Wilcox
- Stillat
- Bosnadev
- Laravel 5 Beauty
- Diving Laravel
- Bootsity
Newsletters
Open Source Laravel
- Laravel Framework
- Laravel Application
- Laravel Documentation
- Laravel Cashier
- Laravel Envoy
- Laravel Homestead
- Laravel Homestead Build Scripts
- Laravel Website
- Laravel Art
- Laravel Antares
Coding Standard
Dependency Management
Develop Tools
- Sublime Text
- Alignment - Easy alignment of multiple selections and multi-line selections
- Blade Snippets - Provide snippets for blade template engine
- BracketHighlighter - Bracket and tag highlighter
- DocBlockr - Simplifies writing DocBlock comments
- Emmet - Improves HTML & CSS workflow
- Laravel Blade Highlighter - Adds syntax definitions for the Laravel 5 Blade engine
- phpfmt - Plugin to format PHP code - supports also PSR1/2
- Sidebar Enhancements - Enhancements to Sublime Text sidebar
- SublimeCodeIntel - Full-featured code intelligence and smart autocomplete engine
- SublimeLinter - Interactive code linting framework, you have to install SublimeLinter-php too for coding in PHP
- SublimeLinter-php - SublimeLinter plugin for PHP
- Syntax Highlighting for Sass - Syntax highlighting for both SCSS and Sass
- Trailing Spaces - Highlight trailing spaces and delete them
- PhpStorm IDE
- Laravel Plugin for PhpStorm
PHP Book List for Developer
- Getting Started
- Learning PHP, MySQL & JavaScript With jQuery, CSS & HTML5, 4th edition ISBN:9781491918661
- Programming PHP, Third Edition ISBN:9781449361068
- Learning PHP, MySQL, JavaScript, and CSS, 2nd Edition ISBN:9781449319267
- Head First PHP & MYSQL ISBN:9781449363581
- Head First HTML and CSS, 2nd Edition ISBN:9780596159900
- Advanced
- Laravel: From Apprentice To Artisan
- Laravel Testing Decoded
- Laravel 5.1 Beauty
- Modern PHP: New Features and Good Practices ISBN:9781491905012
- Learning PHP Design Patterns ISBN:9781449344917
- Beautiful Testing: Leading Professionals Reveal How They Improve Software ISBN:9780596159818
- PHP Master: Write Cutting Edge Code ISBN:9780987090874
- Laravel 5 Essentials: Explore the Fundamentals of Laravel, One of the Most Expressive and Robust Php Frameworks ISBN:9781785283017
- Laravel Design Patterns and Best Practices ISBN:9781783287987
- Learning Laravel's Eloquent ISBN:9781784391584
- Concept
- Head First Object-Oriented Analysis and Design ISBN:9780596008673
- Head First Design Patterns ISBN:0000596007124
- Refactoring: Improving the Design of Existing Code ISBN:9780201485677
- Design Patterns: Elements of Reusable Object-Oriented Software ISBN:9780201633610
- Scrum: The Art of Doing Twice the Work in Half the Time ISBN:9781847941107
- Clean Code: A Handbook of Agile Software Craftsmanship ISBN:9780132350884
- The Clean Coder: A Code of Conduct for Professional Programmers ISBN:0076092046981
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation ISBN:9780321601919
- Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design ISBN:9780596517984
- The Art of Readable Code ISBN:9780596802295
- Design Patterns Explained: A New Perspective on Object-Oriented Design ISBN:9780321247148
- Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman ISBN: 9780596518387
- Quality Code: Software Testing Principles, Practices, and Patterns ISBN:9780321832986
- Implementation Patterns ISBN:0785342413090
Interview
- Awesome PHP Interview Questions
- Introduction to Algorithms, 3rd Edition ISBN:9780262033848
- Cracking the Coding Interview: 150 Programming Questions and Solutions ISBN:9780984782802
- Elements of Programming Interviews: The Insiders' Guide ISBN:9781479274833
- Cracking the Facebook Coding Interview - Gayle McDowell
- careercup
- LeetCode
- Laravel Interview Questions and Answers
Misc
License
The MIT License (MIT)
Copyright (c) 2015 fukuball
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Awesome TALL Stack

A curated list of awesome things related to the TALL stack.
The TALL stack is a full stack development solution featuring some of the libraries built by the Laravel community. It features tools that allows you to write apps with a focus on backend and without having to write too much JavaScript, thus allowing you to focus on a smaller set of programming tools.
Contents
The TALL Stack
- Tailwind CSS - (Awesome List) - A utility-first CSS framework for rapidly building custom designs.
- Alpine.js - (Awesome List) - A rugged, minimal framework for composing JavaScript behavior in your markup.
- Livewire - (Awesome List) - A full-stack framework for Laravel that takes the pain out of building dynamic UIs.
- Laravel - (Awesome List) - A PHP web application framework with expressive, elegant syntax.
Community Websites
- talltips - Collection of tips and ideas across the TALL stack.
Libraries
- Alptail - A collection of open-source UI components, using Tailwind CSS and Alpine.js.
- Blade Icons - A package to easily make use of SVG icons in your Laravel Blade views.
- Blade Script - A package to easily add transpiled & minified scripts to your Blade components.
- Blade Style - A package to easily minify styles and make use of sass, less, etc. in your Blade components.
- Blade UI Kit - A set of renderless components to utilise in your Laravel Blade views.
- Docdress - A package to create markdown documentations from GitHub repositories in a Laravel-like design.
- Filament - The elegant TALL stack admin panel for Laravel artisans.
- Laravel Form Components - A set of Blade components to rapidly build forms with Tailwind CSS Custom Forms and Bootstrap 4.
- Laravel TALL Preset - A front-end preset for Laravel to scaffold an application using the TALL stack.
- Laravel TALL Preset - A preset for installing the TALL stack with just one command.
- Laravel TTALL Preset - A preset for Turbolinks + TALL stack, bundled with some helpful packages and their configurations.
- Laravel Views - Laravel package to create beautiful common views like data tables using the TALL stack.
- Livewire Datatables - Package to create tables with sorting, filtering, searching, exporting etc.
- Livewire PowerGrid - ⚡ PowerGrid ⚡ creates modern, powerful and easy to customize Datatables.
- MarkdownX - An advanced Markdown Editor with dropdowns, image uploads, code blocks, and more.
- Tailwind UI - Beautiful UI components built with Tailwind CSS. Offers Alpine.js integration.
- TALL Forms - A dynamic, responsive Laravel Livewire form component with realtime validation, file uploads, array fields, blade form input components and more.
- X Blade Components - Ready-to-use Blade components.
- WireUI - A simple, fast and elegant way to add blade components made with alpine.js and tailwind, ready to use, enjoy the ease. Livewire components and Tall Stack components
Learning
Legend: ✍️ Blog Post · 🎥 Cast
- 🎥 A contact form with Livewire and Tailwind CSS - Learn how to build a contact form with Livewire and Tailwind CSS.
- 🎥 Blade Component Cookbook - Learn how to build Blade components using Laravel, Tailwind CSS & Alpine.js.
- ✍️ Building a realtime dashboard powered by Laravel, Livewire and Tailwind
- ✍️ Building complex forms with Laravel Livewire in Oh Dear
- ✍️ Embracing The Tall Stack with Event Sourcing, an adventure into the unknown
- ✍️ How to Build a Job Board With the TALL Stack + Demo
Examples
These apps & websites were built using the TALL stack.
Legend: 🔓 Open Source · 🔐 Closed Source
- 🔓 aw-studio.de - repository - Built using Laravel & Tailwind CSS.
- 🔐 devdojo.com - Developer Community and Tools
- 🔓 driesvints.com - repository - Built using Laravel & Tailwind CSS.
- 🔓 fullstackbelgium.be - repository - Built using Laravel & Tailwind CSS.
- 🔓 fullstackeurope.com - repository - Built using Laravel, Alpine.js & Tailwind CSS.
- 🔓 novapackages.com - repository - Discover new Laravel Nova packages.
- 🔐 pingping.io - Website uptime && SSL monitoring.
Awesome Rails

Table of Contents
Use the "Table on Contents" menu on the top-left corner to explore the list.
Resources
Official Resources
- Rails Official Website
- Rails Official Guide
- Rails Official Guide (Edge Guide)
- Rails API Documentation
- Rails Source Code
- Rails Official Blog
External Resources
Books
- Ruby on Rails Tutorial Book
- Agile Web Development with Rails 6
- Docker for Rails Developers
- Rails 5 Test Prescriptions
- Rails, Angular, Postgres, and Bootstrap, Second Edition
- Growing Rails Applications in Practice
- Crafting Rails 4 Applications
- The Rails 6 Way
Video tutorials
- RailsCasts *(inactive since 2013)
- GoRails *(freemium)
- Drifting Ruby *(freemium)
Youtube channels
Other external resources
Jobs
- Stack Overflow
- railsjobs on Reddit
- rails jobs on indeed.com
- rails jobs on glassdoor.com
- rails jobs on gorails.com
- rails jobs on remoteok.io
- rails jobs on weworkremotely.com
- reverse job board for rails devs - railsdevs.com
Tip: You can find list of remote job boards including Rails jobs on awesome-remote-job
Community
Articles
from dev.to:
- More than "Hello World" in Docker: Build Rails + Sidekiq web apps in Docker
- Design Patterns with Ruby on Rails part 1: Introduction and Policy Object - Part 2
- The Progressive Rails App
- Modern Rails flash messages (part 1): ViewComponent, Stimulus & Tailwind CSS - Part 2
- Building a Rails App With Multiple Subdomains
- Reactive Rails applications with StimulusReflex
- 1 Backend, 5 Frontends - Todo List with Rails, React, Angular, Vue, Svelte, and jQuery
- Create a Video Party App With Rails Part 1: Building the Backend - Part 2
- The Rails Model Introduction I Wish I Had
- How to create a gem in Ruby on Rails? -From Scratch-
- Multiple Foreign Keys for the Same Relationship in Rails 6
- QR Code Reader on Rails
- Magic Links with Ruby On Rails and Devise
- I created the same application with Rails and no JavaScript
- Instantly speed up your Rails application by self-hosting your fonts
- Reactive Map with Rails, Stimulus Reflex and Mapbox
- A Future for Rails: StimulusReflex
- Introduction to Ruby on Rails Patterns and Anti-patterns Part 1 - Part 2
- Rails Concerns: To Concern Or Not To Concern
- Building an Event Sourcing System in Rails, Part 1: What is Event Sourcing? - Part 2
- Real Time Notification System with Sidekiq, Redis and Devise in Rails 6
- Deploying Your Rails 6 App
- What's Cooking in Rails 7?
- Using Hotwire Turbo in Rails with legacy JavaScript
- From Rails scaffold listing to Hotwire infinite scroll
- Building a Component Library in Rails With Storybook
- How to Speed Up Load Times In A Rails App - What I Wish I Knew Four Months Ago
- Endless Scroll / Infinite Loading with Turbo Streams & Stimulus
from shopify.engineering:
- How to Write Fast Code in Ruby on Rails
- How to Introduce Composite Primary Keys in Rails
- Enforcing Modularity in Rails Apps with Packwerk
from blog.planetargon.com:
- 8 Useful Ruby on Rails Gems We Couldn't Live Without
- Ruby on Rails Code Audits: 8 Steps to Review Your App
- Rails 6.1 is Out! How to Prepare Your App Now
- When Should You Upgrade Your Rails Application?
- Helpful Resources for Upgrading Your Rails App Version
- Upgrading Rails: Interview with Eileen Uchitelle
from blog.arkency.com:
- nil?, empty?, blank? in Ruby on Rails - what's the difference actually?
- How well Rails developers actually test their apps
- Rails multitenancy story in 11 snippets of code
- Painless Rails upgrades
- Comparison of approaches to multitenancy in Rails apps
- Managing Rails Event Store Subscriptions — How To
- Rails connections, pools and handlers
- How to balance the public APIs of an open-source library — practical examples from RailsEventStore
- Rack apps mounted in Rails — how to protect access to them?
from scotch.io:
- File Upload in Rails with PaperClip
- Build a Blog with Ruby on Rails - Part 2
- Uploading Files With Rails and ActionCable
- Create an Online Streaming Radio With Rails and Icecast
- Integrating Social Login in a Ruby on Rails Application
- Asynchronous Chat With Rails and ActionCable
from sitepoint.com:
- 10 Ruby on Rails Best Practices
- Building APIs with Ruby on Rails and GraphQL
- Understanding the Model-View-Controller (MVC) Architecture in Rails
- Beyond Rails Abstractions: A Dive into Database Internals
- Search and Autocomplete in Rails Apps
- Start Your SEO Right with Sitemaps on Rails
- Handle Password and Email Changes in Your Rails API
- Master Many-to-Many Associations with ActiveRecord
- Common Rails Security Pitfalls and Their Solutions
from pganalyze.com:
- Efficient GraphQL queries in Ruby on Rails & Postgres
- Similarity in Postgres and Rails using Trigrams
- Effectively Using Materialized Views in Ruby on Rails
- Full Text Search in Milliseconds with Rails and PostgreSQL
- Advanced Active Record: Using Subqueries in Rails
- PostGIS vs. Geocoder in Rails
- Creating Custom Postgres Data Types in Rails
from semaphoreci.com:
- Integration Testing Ruby on Rails with Minitest and Capybara
- Mocking in Ruby with Minitest
- How to Test Rails Models with RSpec
- Dockerizing a Ruby on Rails Application
from evilmartians.com:
- Dockerizing Ruby and Rails development
- How to GraphQL with Ruby, Rails, Active Record, and no N+1
- Keep up with the Tines: Rails frontend revamp
- Pulling the trigger: How to update counter caches in your Rails app without Active Record callbacks
- GraphQL on Rails: On the way to perfection
- Danger on Rails: make robots do some code review for you!
- GraphQL on Rails: From zero to the first query
- A fixture-based approach to interface testing in Rails
from digitalocean.com
from not yet classified sources:
- Protecting your users data from Rails application using cryptography
- The 3 Tenets of Service Objects in Ruby on Rails
- Famous Web Apps Built with Ruby on Rails
- Building a JSON API with Rails 5
- Five Practices for Robust Ruby on Rails Applications
- Crafting APIs With Rails
- Working with the SQL ‘time’ type in Ruby on Rails
- Upgrading Rails apps with dual boot
- What Are Rails Parameters & How to Use Them Correctly
- How to Remove Single Table Inheritance from Your Rails Monolith
- Build a Rails application with VueJS using JSX
- Fetching millions of rows from PostgreSQL with Rails
- Implementing Multi-Table Full Text Search with Postgres in Rails
- Ruby on Rails ActiveRecord PostgreSQL Data Integrity and Validations
- Programming Community Curated Resources For Learning Ruby on Rails
- Choosing ruby on rails for your next web development project (business guide)
- Dockerizing a Rails application
- How to painlessly set up your Ruby on Rails dev environment with Docker
- How I used Docker with Rails
- Rails 6 Features: What's New and Why It Matters
- Ruby on Rails configuration tutorials
- Containerizing Ruby on Rails Applications
- Behind The Scenes: Rails UJS
Open Source Rails Apps
Note: Rails versions of these apps are valid as the date of latest commit. They are defined in their Gemfile and/or Gemfile.lock and they might be outdated. If you find it outdated, don't forget to notfiy us by opening a pull request.
- activeWorkflow - An intelligent process and workflow automation platform based on software agents (using Rails 5.2).
- adopt-a-hydrant - A civic infrastructure detection app (using Rails 4.2).
- airCasting - A platform for recording, mapping, and sharing health and environmental data using your smartphone (using Rails 5.2). - :earth_africa:
- alaveteli - A platform for making public freedom of information requests - using Rails 5.1 - :earth_africa:
- alonetone - A music hosting, management & distribution app (using Rails 6.0). - :earth_africa:
- api.rss - A RSS feed conversion (to API) app (using Rails 5.2).
- asakusaSatellite - A realtime chat application for developers (using Rails 6.0). - :earth_africa:
- askaway - Question & answer app specialized in politics (using Rails 4.1).
- autolab - A course management app (using Rails 4.2). - :earth_africa:
- beatstream - A music streaming app - using Rails 3.2
- bike_index - A bike registry tracking app (using Rails 4.2). - :earth_africa:
- blackCandy - A music streaming app (using Rails 6.0).
- brimir - An email helpdesk app (using Rails 5.2). (archived).
- calagator - A community calendaring app (using Rails 4.2).
- campo - A forum app (using Rails 4.2). - :earth_africa:
- canvas-lms - A learning management app (using Rails 5.2).
- catarse - A crowdfunding platform for creative projects (using Rails 4.2). - :earth_africa:
- chatwoot - A simple and elegant live chat software (using Rails 6.0).
- ciao - A URL status checking app (using Rails 6.0).
- coRM - A customer relationship management app - using Rails 3.2 - :earth_africa:
- coderwall (legacy) - A social network app for software engineers - using Rails 3.2
- coderwall (next) - A social network app for software engineers - using Rails 5.0
- codetriage - An open source project finder app (using Rails 6.0). - :earth_africa:
- commudle - A community management app (using Rails 5.2).
- contribulator - An open source project finder app - using Rails 5.1
- coursemology2 - Learning platform app (using Rails 5.2).
- covoiturage-libre - A carpooling app - using Rails 5.0 (archived).
- crabgrass-core - A collaboration platform for activist groups (using Rails 4.2).
- crowdAI - An app for data science challenges (using Rails 5.2). - :earth_africa:
- crowdtiltOpen - A crowdfunding platform - using Rails 3.2
- cw-ovp - video packaging to *.m3u8 for HLS (HTTP Live Streaming) with FFMPEG on website (using Rails 6.0).
- danbooru - A taggable image board app (using Rails 6.0).
- dcaf_case_management - A case management app (using Rails 5.2).
- dgidb - A drug gene interaction platform - using Rails 5.1
- diaper - An inventory management app for diaper banks (using Rails 6.0). - :earth_africa:
- diaspora - A social networking app - using Rails 5.1 - :earth_africa:
- discourse - A platform for community discussion (using Rails 6.0). - :earth_africa:
- ekylibre - A farm management app (using Rails 4.2).
- postal - A mail delivery platform (using Rails 5.2).
- encrypt.to - A messaging app with encryption support (using Rails 4.2).
- eol - An encyclopedia app - using Rails 3.2 - :earth_africa:
- expertiza - A learning material sharing app (using Rails 4.2).
- FAE - A modern CMS deveveloped by FINE (using Rails 5.2)
- fairmondo - A marketplace app (using Rails 4.2). - :earth_africa:
- fat-free-crm - An open source, Ruby on Rails customer relationship management platform (CRM) (using Rails 5.2). - :earth_africa:
- feedbin - A RSS reader app (using Rails 6.0). - :earth_africa:
- follow-all - A Twitter account management app (using Rails 4.2). (archived).
- forem - Social platform app specialized for web development (using Rails 5.2). - :earth_africa:
- fromthepage - A wiki-like app for crowdsourcing transcription of handwritten documents (using Rails 4.1). - :earth_africa:
- gitlabhq - A code collaboration app (using Rails 6.0).
- graff_mags - A graffiti magazine sharing app (using Rails 4.1). - :earth_africa:
- growstuff - A data management app for food gardeners (using Rails 5.2). - :earth_africa:
- hackershare - Social bookmarks website for hackers (using Rails 6.0). - :earth_africa:
- hashrobot - A social media management app (using Rails 4.2). - :earth_africa:
- helpy - A customer support app (using Rails 4.2). - :earth_africa:
- hitobito - An event organization app (using Rails 4.2). - :earth_africa:
- hours - A time tracking app (using Rails 4.2). - :earth_africa:
- inaturalist - A community app for nature and related stuff (using Rails 4.2). - :earth_africa:
- intercityup.com - A control panel app for app deployment (using Rails 4.1).
- kanban - A Trello clone (using Rails 4.2).
- kitsu-tools - An anime discovery platform (using Rails 4.1).
- lavish - A color scheme generator (using Rails 4.2).
- lifeToRemind - A career planning app (using Rails 5.2).
- lobsters - A link aggregation app (using Rails 5.2). - :earth_africa:
- loomio - A collaborative decision-making app (using Rails 5.2). - :earth_africa:
- mastodon - A microblogging app (using Rails 5.2). - :earth_africa:
- obtvse2 - A blogging app (using Rails 4.0).
- onebody - A social networking app for churches - using Rails 5.1
- openFarm - A database for information about farming and gardening (using Rails 5.2). -
- opencongress - A website for getting information about US Congress - using Rails 3.0 (archived).
- openproject - A project management app (using Rails 6.0). - :earth_africa:
- openstreetmap-website - A map viewing app (using Rails 6.0). - :earth_africa:
- opensourcefriday - A project contribution tracking app (using Rails 6.0). - :earth_africa:
- otwarchive - A social networking app for fans - using Rails 5.1 - :earth_africa:
- passwordPusher - A password delivery app (using Rails 4.2). - :earth_africa:
- peatio - A crypto currency exchange app (using Rails 4.0).
- planningalerts-app - A planned applications tracking app (using Rails 5.2). - :earth_africa:
- popHealth - A population health reporting app (using Rails 4.1).
- publify - A blogging app (using Rails 5.2).
- quant - A personal health tracker (using Rails 4.1).
- racing_on_rails - A bike racing organization app (using Rails 5.2).
- rapidFTR - An information provider app for aid workers (using Rails 4.0).
- redmine - A project management app (using Rails 5.2). - :earth_africa:
- rentmybikes-rails - A marketplace app - (using Rails 4.0).
- reservations - An inventory management app (using Rails 6.0). - :earth_africa:
- rletters - A frontend for database of journal articles for researchers (using Rails 6.0). - :earth_africa:
- rubygems.org - A gem hosting platform (using Rails 6.0). - :earth_africa:
- sanataro - An account tracker (using Rails 4.2).
- scholarsphere - A digital assets management app - using Rails 5.1
- selfstarter - A crowdfunding app (using Rails 4.0).
- sharetribe - A peer-to-peer marketplace platform (using Rails 5.2). - :earth_africa:
- socify - A social networking platform - using Rails 5.0
- splits-io - A speedrun data store and analysis engine. (using Rails 6.0). - :earth_africa:
- spokenvote - A social voting app (using Rails 4.2).
- stackneveroverflow - A question asking & answering platform - using Rails 5.0
- teambox - A collaboration app - using Rails 3.0 - :earth_africa: (archived).
- theodinproject - A teaching & learning platform (using Rails 5.2). - :earth_africa:
- tracks - A goal tracking app (using Rails 5.2). - :earth_africa:
- trado - An e-commerce platform (using Rails 4.2).
- vglist - A video game library tracking web app (using Rails 6.0). - :earth_africa:
- websiteOne - A project tracking app (using Rails 5.2). - :earth_africa:
- whitehall - A content management app used by UK government - using Rails 5.1
Gems
[:red_circle:] : RubyGems link of gems
- rails - A full-stack web development framework :red_circle:
Direct dependencies of the "rails" gem:
- actioncable - A gem to integrate websocket with a Rails app :red_circle: - Action Cable Overview
- actionmailbox - A gem to handle incoming emails within a Rails app :red_circle: - Action Mailbox Basics
- actionmailer - A gem to compose, deliver & test emails within a Rails app :red_circle: - Action Mailer Basics
- actionpack - A gem to manage requests & responses within a Rails app :red_circle:
- actiontext - A gem to integrate rich text editor into a Rails app :red_circle: - Action Text Overview
- actionview - A gem to handle view templates within a Rails app :red_circle: - Action View Overview
- activejob - A gem to handle background jobs within a Rails app :red_circle: - Active Job Basics
- activemodel - A gem to define a set of interfaces to use in model classes within a Rails app :red_circle: - Active Model Basics
- activerecord - A gem to connect model classes with relational databases within a Rails app :red_circle: - Active Record Basics
- activestorage - A gem to handle file uploads to cloud storage providers within a Rails app :red_circle: - Active Storage Overview
- activesupport - A gem to provide some extensions to support a Rails app :red_circle: - Active Support Core Extensions
- railties - A gem to handle gems & engines used in a Rails app to work together :red_circle:
Other gems that can be used with Rails
- ace-rails-ap - A gem to integrate ajax.org cloud9 editor into Rails asset pipeline. :red_circle:
- action_policy - A tool to handle authorization. :red_circle:
- active_decorator - A gem to keep views & helpers object-oriented. :red_circle:
- active_enum - A gem to provide enum classes :red_circle:
- activeadmin - A gem to provide admin panel. :red_circle:
- activerecord-analyze - A gem to add EXPLAIN ANALYZE to Rails Active Record query objects. :red_circle:
- activerecord-import - A gem to handle bulk data insertion using ActiveRecord. :red_circle:
- activerecord-pg_enum - A gem to integrate PostgreSQL's enumerated types with the Rails enum feature. :red_circle:
- activerecord-postgis-adapter - ActiveRecord connection adapter for PostGIS. :red_circle:
- activerecord-postgres_enum - A gem to adds migration and schema.rb support to PostgreSQL enum data types. :red_circle:
- activerecord-sqlserver-adapter - ActiveRecord connection adapter for the SQL Server. :red_circle:
- activerecord-typedstore - A gem to implement
ActiveRecord::Storewith type definition. :red_circle: - activity_notification - A gem to integrate user activity notification. :red_circle:
- aggregate_root - A gem to handle event sourcing. :red_circle:
- ahoy_email - A tool to provide mail analytics. :red_circle:
- algoliasearch-rails - A gem to integrate Algolia search. :red_circle:
- annotate - A gem to annotate rails classes with schema & routes info. :red_circle:
- anycable-rails - A gem to handle websocket server. :red_circle:
- apipie-rails - A REST API documentation tool. :red_circle:
- auther - A gem to provide simple, form-based authentication. :red_circle:
- autoprefixer-rails - A gem to add vendor prefixes to stylesheets. :red_circle:
- avo - Configuration-based, no-maintenance, extendable Ruby on Rails admin panel. rubygems
- better_errors - A tool to provide better error page. :red_circle:
- brakeman - A gem to scan code against security vulnerabilities. :red_circle:
- breadcrumbs_on_rails - A gem to create & manage breadcrumbs-style navigation. :red_circle:
- bulma-rails - A wrapper for Bulma, a CSS framework based on flexbox. :red_circle:
- cancancan - A gem to handle authorization. :red_circle:
- carrierwave - A gem to handle file uploads. :red_circle:
- caxlsx_rails - A gem to generate entity-relationship diagram. :red_circle:
- counter_culture - A gem to provide counter caches. :red_circle:
- devise - A gem to provide authentication. :red_circle:
- doorkeeper - A gem to introduce OAuth2 provider functionality. :red_circle:
- draper - A gem to add presentation logic. :red_circle:
- factory_bot_rails - A fixture replacement for testing in Rails :red_circle:
- filestack-rails - A gem to integrate Filestack. :red_circle:
- formtastic - A Rails form builder gem with semantically rich and accessible markup. :red_circle:
- friendly_id - A gem to deal with slugs & permalinks. :red_circle:
- frozen_record - A gem to provide ActiveRecord-like interface to query static YAML files. :red_circle:
- geokit-rails - A gem to integrate Geokit in Rails apps. :red_circle:
- good_job - A gem to provide Postgres-based ActiveJob backend. :red_circle:
- gretel - A tool to generate breadcrumbs. :red_circle:
- groupdate - A gem to manage temporal data. :red_circle:
- hotwire-rails - A gem to integrate Hotwire in Rails apps. :red_circle:
- image_optim_rails - A gem to handle image optimization. :red_circle:
- js-routes - A tool to generate all Rails routes as JavaScript helpers. :red_circle:
- kaminari - A gem to provide pagination. :red_circle:
- kt-paperclip - A gem to handle file uploads. :red_circle:
- lockbox - A gem to deal with encryption. :red_circle:
- lograge - A gem to customize logger in Rails apps. :red_circle:
- mailkick - A tool to handle mail unsubscriptions. :red_circle:
- marginalia - A gem to attach comments to ActiveRecord's SQL queries. :red_circle:
- metka - A gem to manage tags using Postgresql array columns. :red_circle:
- money-rails - A gem to integrate Money gem in Rails apps. :red_circle:
- paloma - A gem to manage page-specific JavaScript in Rails apps. :red_circle:
- pgcli-rails - A replacement of
rails:dbconsolecommand to manage Postgresql. :red_circle: - premailer-rails - A gem to handle email styling. :red_circle:
- prerender_rails - A gem to prerender JavaScript-rendered pages. :red_circle:
- rails-erd - A gem to generate entity-relationship diagram. :red_circle:
- rails-settings-cached - A gem to manage global settings as key-value pairs. :red_circle:
- rails_admin - A gem to create & manage admin panel for Rails app. :red_circle:
- rails_event_store - A gem to implement event store in Rails :red_circle:
- rails_semantic_logger - A gem to provide alternative logging approach for Rails app. :red_circle:
- ranked-model - A gem to handle sorting for rows. :red_circle:
- ransack - A gem to provide search functionality. :red_circle:
- react-rails - A gem to integrate React.js with Rails app. :red_circle:
- redisWebManager - Web interface that allows you to manage easily your Redis instance. :red_circle:
- reform-rails - A gem to wrap Reform gem, a form validation tool, with Rails app. :red_circle:
- rgeo-activerecord - A gem to provide common tools used by RGeo-based spatial adapters. :red_circle:
- rodauth-rails - A gem to wrap Rodauth, an authentication handler, for Rails apps. :red_circle:
- rollup - A gem to handle time-series data in Rails :red_circle:
- route_translator - A tool to handle route translation. :red_circle:
- rspec-rails - A testing framework. :red_circle:
- rubocop-rails - A code style checking tool. :red_circle:
- scenic - A gem to manage database views. :red_circle:
- searchkick - A gem to provide search functionality. :red_circle:
- select2-rails - A gem to integrate Select2 library in Rails apps. :red_circle:
- sequel-activerecord_connection - A gem to allow Sequel to reuse an ActiveRecord connection. :red_circle:
- simple_form - A gem to handle forms. :red_circle:
- solidus - A fork of Spree gem, an open source e-commerce platform. :red_circle:
- sorbet-rails - A gem to integrate Sorbet gem in Rails apps. :red_circle:
- spree - An open source e-commerce platform. :red_circle:
- spring - A gem to preload Rails app. :red_circle:
- sprockets - A gem to compile & serve web assets. :red_circle:
- stimulus-rails - A gem to integrate Stimulus.js in Rails apps. :red_circle:
- tinymce-rails - A gem to integrate Tinymce in Rails apps. :red_circle:
- transloadit-rails - A gem to integrate Transloadit's file uploading and encoding service. :red_circle:
- trove - A gem to handle machine learning models deployment. :red_circle:
- turbo-rails - A gem to integrate Turbo.js in Rails apps. :red_circle:
- view_component - A gem to introduce view components. :red_circle:
- webpacker - A gem to bundle web assets using Webpack. :red_circle:
- zeitwerk - A gem to handle thread-safe code loading. :red_circle:
Starters/Boilerplates
- default_rails_template - Default template for generating new Rails applications.
- docker-Rails-Template - A freshly updated version of "rails new", preconfigured to be run with Docker.
- docker-rails
- jumpstart(excid3) - Easily jumpstart a new Rails application with a bunch of great features by default.
- jumpstart(thomasvanholder) - Template for set-up of Rails 6, Tailwind 2.0 and Devise.
- kickoff_tailwind - A rapid Rails 6 application template for personal use bundled with Tailwind CSS.
- rails-devise-graphql - A Rails 6 boilerplate to create your next Saas product. Preloaded with graphQL, devise, JWT, CanCanCan, RailsAdmin, Rubocop, Rspec, and more.
- rails-template(mattbrictson) - Application template for Rails 6 projects; preloaded with best practices for TDD, security, deployment, and developer productivity.
- rails-template(TristanToye) - MVP Ready Rails - A Template for Your Next Rails App
- rails-template(ackama) - Application template for Rails 6.1 projects; preloaded with best practices for TDD, security, deployment, and developer productivity.
- rails-template(astrocket) - Template for Rails 6.0 + Kubernetes + Webpacker + Stimulus + TailwindCSS + Let's Encrypt.
- rails-template(dao42) - A best & newest & fastest rails 6.x template for senior rails developer.
- rails-templates(lewagon) - Jump start your Rails development with Le Wagon best practices.
- rails-templates(nimblehq) - Our optimized Rails templates used in our projects.
- rails-vue-template - An example of how to use VueJS as a single page application inside Rails using Webpacker.
- rails_new - A thoughtfully designed template for building modern Rails apps. Get started in minutes instead of hours. railsnew.io has a generator listed in the generators section.
- suspenders - A Rails template with our standard defaults, ready to deploy to Heroku.
- vuejs-rails-starterkit - Vue.js + Rails Starting Kit GitHub Template to develop Hybrid Mobile Application.
- rails_api_base - Rails 6 boilerplate project for JSON RESTful APIs.
- rails_hotwire_base - Rails 6 boilerplate project with Hotwire for full-stack applications with a modern SPA-like experience.
Other Rails Tools
Platforms
- Nanobox - A micro-PaaS (μPaaS) for creating consistent, isolated, development environments deployable anywhere :earth_africa:.
Generators
| Generator | Ready to run | Complex Apps | Sets git | Heroku config | | --------- | ------------ | ------------ | -------- | ------------- | | railsnew.io | A web app where you pick some options from a limited menu, and it generates a template for you to clone. It also has instructions to quickly verify that everything is happy after setup. | yes | yes | yes | no | Rails Composer| yes, but Stripe needs to be configured | Example apps reaching a SaaS with Stripe. | yes | yes | | Hix on Rails| yes | Monitoring, Redis Sentinel, Sidekiq. | yes | no |
DevTools
- rails-dashboard - A dev-tool to improve your rails log.
- Optic - Optic automatically documents and tests your APIs.
Awesome Rails Gem 
A collection of awesome Ruby Gems for Rails development.
The goal is to help every Rails developer to build an awesome Rails product/service.
- Rails Gem List
- User
- Active Record
- Plugins
- API
- File Uploading
- Searching
- Scheduled/Recurrence Jobs
- View Helper
- Environment Variables
- Admin Panel
- Logging
- Debug
- Coding Style
- Testing
- Production
- Error Logging
- Database
User
Authentication
- Devise - Devise is a flexible authentication solution for Rails based on Warden.
- Knock - Seamless JWT authentication for Rails API.
- Clearance - Rails authentication with email & password.
- Devise token auth - Token based authentication for Rails JSON APIs.
- Sorcery - Magical Authentication for Rails. Supports ActiveRecord, DataMapper, Mongoid and MongoMapper.
Authorization
- Pundit - Pundit provides a set of helpers which guide you in leveraging regular Ruby classes and object oriented design patterns to build a simple, robust and scaleable authorization system.
- cancancan - Continuation of CanCan, the authorization Gem for Ruby on Rails.CanCan is an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access. All permissions are defined in a single location (the Ability class) and not duplicated across controllers, views, and database queries.
- rolify - Role management library with resource scoping.
- acl9 - Acl9 is a role-based authorization system that provides a concise DSL for securing your Rails application.
Omniauth
- omniauth-facebook
- omniauth-google-oauth2
- omniauth-weibo-oauth2
- omniauth-twitter
- omniauth-github
- omniauth-linkedin-oauth2
Active Record
- Enumerize - Enumerated attributes with I18n and ActiveRecord/Mongoid support. It can be integrated with Simple Form.
- counter_culture - Turbo-charged counter caches for your Rails app. Huge improvements over the Rails standard counter caches.
- custom_counter_cache - A simple approach to creating a custom counter cache that can be used across multiple models.
- Sequenced - Sequenced is a simple gem that generates scoped sequential IDs for ActiveRecord models.
- FriendlyId - FriendlyId is the “Swiss Army bulldozer” of slugging and permalink plugins for ActiveRecord. It allows you to create pretty URL’s and work with human-friendly strings as if they were numeric ids for ActiveRecord models.
- AASM - State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid).
- PaperTrail - PaperTrail lets you track changes to your models' data. It's good for auditing or versioning.
- paranoia - ActiveRecord plugin allowing you to hide and restore records without actually deleting them.
- Validates - Validates provides collection of useful custom validators for Rails applications, including:
- EmailValidator
- UrlValidator
- SlugValidator
- MoneyValidator
- IpValidator
- AssociationLengthValidator
- AbsolutePathValidator
- UriComponentValidator
- ColorValidator
- EanValidator (EAN-8 & EAN-13)
- globalize - Rails I18n de-facto standard library for ActiveRecord model/data translation.
- deep_cloneable - This gem gives every ActiveRecord::Base object the possibility to do a deep clone that includes user specified associations.
- social_shares - Check how many times url was shared in social networks.
- public_activity - Easy activity tracking for models - similar to Github's Public Activity.
- goldiloader - Automatic ActiveRecord eager loading to reduce the number of database queries run by your application.
- Tagging
- ActsAsTaggableOn - A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts.
- closure_tree - Easily and efficiently make your ActiveRecord models support hierarchies.
- ActionStore - Store different kind of actions (Like, Follow, Star, Block ...) in one table via ActiveRecord Polymorphic Association.
Plugins
- Spreadsheet - Library is designed to read and write Spreadsheet Documents.
- Chartkick - Chartkick helps your to create beautiful Javascript charts with one line of Ruby.
- kaminari - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for Rails 3 and 4.
- CKEditor - CKEditor is a WYSIWYG text editor designed to simplify web content creation. It brings common word processing features directly to your web pages. Enhance your website experience with our community maintained editor. ckeditor.com
- HTML::Pipeline - GitHub HTML processing filters and utilities. This module includes a small framework for defining DOM based content filters and applying them to user provided content.
- Slack Notifier is a simple wrapper to send notifications to Slack webhooks.
- Rails ERD - Generate Entity-Relationship Diagrams for Rails applications.
- Parity - Shell commands for development, staging, and production parity for Heroku apps.
- Airbrussh - Airbrussh pretties up your SSHKit and Capistrano output
API
- Grape - Microframework to create REST-ful APIs in Ruby.
- ActiveModel::Serializers - Serializer brings convention over configuration to your JSON generation.
- Jbuilder - Jbuilder gives you a simple DSL for declaring JSON structures that beats massaging giant hash structures. This is particularly helpful when the generation process is fraught with conditionals and loops.
- rest-client - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
- has_scope - Map incoming controller parameters to named scopes in your resources.
- Documentation
- Grape Swagger - Autogenerate documentation on Grape API.
- Grape Swagger UI - Display documentation that is generated using Grape Swagger.
- apiary - Work together to quickly design, prototype, document and test APIs.
- apiblueprint - API Documentation with powerful tooling.
- letter_opener - Preview mail in the browser instead of sending.
File Uploading
- Carrierwave - Carrierwave is a classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks.
- carrierwave_backgrounder - Offload CarrierWave's image processing and storage to a background process using Delayed Job, Resque, Sidekiq, Qu, Queue Classic or Girl Friday.
- CarrierWave Crop - Carrierwave extension to crop uploaded images using Jcrop plugin with preview.
- CarrierWave ImageOptimizer - This gem allows you to simply optimize CarrierWave images via jpegoptim or optipng using the image_optimizer gem.
- remotipart - Rails jQuery file uploads via standard Rails "remote: true" forms.
- MiniMagick - MiniMagick is a ruby wrapper for ImageMagick or GraphicsMagick command line.
- fog - Fog is the Ruby cloud services library, top to bottom.
- refile - Refile is a modern file upload library for Ruby applications. It is simple, yet powerful.
- Paperclip - Easy file attachment management for ActiveRecord.
- Dragonfly - Dragonfly is for on-the-fly file processing - suitable for images or other attachments
- shrine -File Attachment toolkit for Ruby applications
Searching
- ransack - Ransack enables the creation of both simple and advanced search forms for your Ruby on Rails application.
- elasticsearch-rails - Elasticsearch integrations for ActiveModel/Record and Ruby on Rails.
- Chewy - High-level Elasticsearch Ruby framework based on the official elasticsearch-ruby client.
- pg_search - pg_search builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search
- sunspot - Sunspot is a Ruby library for expressive, powerful interaction with the Solr search engine. Sunspot is built on top of the RSolr library, which provides a low-level interface for Solr interaction; Sunspot provides a simple, intuitive, expressive DSL backed by powerful features for indexing objects and searching for them.
- searchkick - Intelligent search made easy with Rails and Elasticsearch.
Scheduled/Recurrence Jobs
- Whenever - Whenever is a Ruby gem that provides a clear syntax for writing and deploying cron jobs.
- Resque - Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later.
- Rufus-Scheduler - Rufus-scheduler is a Ruby gem for scheduling pieces of code (jobs). It understands running a job AT a certain time, IN a certain time, EVERY x time or simply via a CRON statement.
- Delayed Job - Database based asynchronous priority queue system.
- Sidekiq - Simple, efficient background processing for Ruby.
- sidetiq - Recurring jobs for sidekiq.
- sidekiq-cron - Scheduler / Cron for Sidekiq jobs
- sidekiq-scheduler - Lightweight job scheduler extension for Sidekiq
- Sucker Punch - Sucker punch is a single-process Ruby asynchronous processing library.
View Helper
- formtastic - Formtastic is a Rails FormBuilder DSL (with some other goodies) to make it far easier to create beautiful, semantically rich, syntactically awesome, readily stylable and wonderfully accessible HTML forms in your Rails applications
- Simple Form - Simple form aims to be as flexible as possible while helping you with powerful components to create your forms. The basic goal of Simple Form is to not touch your way of defining the layout, letting you find the better design for your eyes.
- Nested Form - This is a Rails gem for conveniently manage multiple nested models in a single form. It does so in an unobtrusive way through jQuery or Prototype. It can also be integrated with Simple Form.
- meta-tags - Search Engine Optimization (SEO) plugin for Ruby on Rails applications.
- active_link_to - active_link_to adds css 'active' class to your links.
- cells - Cells allow you to encapsulate parts of your UI into components into view models. View models, or cells, are simple ruby classes that can render templates.
- i18n Country Code Select - I18n Country Code Select Form Helper for Rails 3 & 4.
- Subdivision Select - A Rails plugin to populate a state/province select box from country_select.
- cocoon - Dynamic nested forms using jQuery made easy
Environment Variables
- Config - Multi-environment YAML style configurations that helps easily manage environment specific settings in an easy and usable manner.
- Figaro - Figaro is very simple, Heroku-friendly Rails app configuration using ENV and a single YAML file.
- dotenv - Dotenv is a gem that allows you to set your environment variables in .env file, and it will load it in to ENV.
- opsworks-dotenv - Opsworks-dotenv let you configure the environment for you Rails application using OpsWorks, Chef and Dotenv.
Admin Panel
- ActiveAdmin - ActiveAdmin is a administration framework for Ruby on Rails applications.
- active_skin: Flat skin for active admin.
- RailsAdmin - RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.
- Typus - Typus is a control panel for Ruby on Rails applications to allow trusted users edit structured content.
- administrate - A Rails engine that helps you put together a super-flexible admin dashboard.
- Trestle - A modern, responsive admin framework for Ruby on Rails
Logging
- Impressionist - Impressionist can log page impressions (technically action impressions), but it is not limited to that. You can log impressions multiple times per request. And you can also attach it to a model. The goal of this project is to provide customizable stats that are immediately accessible in your application as opposed to using Google Analytics and pulling data using their API.
- Ahoy - Ahoy provides a solid foundation to track visits and events in Ruby, JavaScript, and native apps.
- Lograge - An attempt to tame Rails' default policy to log everything.
Debug
- byebug - Byebug is a simple to use, feature rich debugger for Ruby 2. It uses the new TracePoint API for execution control and the new Debug Inspector API for call stack navigation, so it doesn't depend on internal core sources.
- pry-byebug - Pry navigation commands via byebug.
- pry-rails - Avoid repeating yourself, use pry-rails instead of copying the initializer to every rails project. This is a small gem which causes rails console to open pry. It therefore depends on pry.
- awesome_print - Awesome Print is a Ruby library that pretty prints Ruby objects in full color exposing their internal structure with proper indentation.
- web-console - Web Console is a debugging tool for your Ruby on Rails applications.
- spring - Spring is a Rails application preloader. It speeds up development by keeping your application running in the background so you don't need to boot it every time you run a test, rake task or migration.
- rails-footnotes - Rails footnotes displays footnotes in your application for easy debugging, such as sessions, request parameters, cookies, filter chain, routes, queries, etc.
- g - The Kernel.g that works like Kernel.p by using terminal-notifier or growl.
- terminal-notifier - terminal-notifier is a command-line tool to send Mac OS X User Notifications, which are available in Mac OS X 10.8 and higher.
- letter_opener - Preview email in the default browser instead of sending it. This means you do not need to set up email delivery in your development environment, and you no longer need to worry about accidentally sending a test email to someone else's address.
- Better Errors - Better errors replaces the standard Rails error page with a much better and more useful error page.
- If you would like to use Better Errors' advanced features (REPL, local/instance variable inspection, pretty stack frame names), you need to add the binding_ _of__caller.
- RailsPanel - RailsPanel is a Chrome extension for Rails development that will end your tailing of development.log.
Coding Style
- RuboCop - Rubocop is a Ruby static code analyzer. Out of the box it will enforce many of the guidelines outlined in the community Ruby Style Guide.
- Rails Best Practice - Rails best practice is a code metric tool to check the quality of rails codes.
- Metric Fu - A fist full of code metrics
- Pronto - Quick automated code review of your changes
Testing
- rspec-rails - Rspec-rails is a testing framework for Rails 3.x and 4.x.
- Capybara - Capybara helps you test web applications by simulating how a real user would interact with your app. And drivers:
- capybara-webkit - Capybara-webkit is a capybara driver that uses Webkit via QtWebkit.
- selenium-webdriver - Selenium-webdriver provides ruby bindings for WebDriver.
- poltergeist - Poltergeist allows you to run your Capybara tests on a headless WebKit browser, provided by PhantomJS.
- page-object - Page-object is a simple gem that assists in creating flexible page objects for testing browser based applications.
- factory_bot - Factory_bot is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, attribute hashes, and stubbed objects), and support for multiple factories for the same class (user, admin_user, and so on), including factory inheritance.
- factory_bot_rails - Factory_bot_rails provides Rails integration for factory_bot.
- factory_factory_girl - FactoryFactoryGirl lets you generate factory files more efficiently with naming rules.
- Database Cleaner - Database Cleaner is a set of strategies for cleaning your database in Ruby.Support ActiveRecord, DataMapper, Sequel, MongoMapper, Mongoid, CouchPotato, Ohm and Redis.
- shoulda-matchers - Shoulda-matchers provides serveral matchers for testing common Rails functionality.
- ResponseCodeMatchers - ResponseCodeMatchers provides rspec matchers to match http response code.
- SimpleCov - SimpleCov is a code coverage analysis tool for Ruby.
- Timecop - A gem providing "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent code.
- VCR - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
Security
- brakeman - Brakeman is a static analysis tool which checks Ruby on Rails applications for security vulnerabilities.
- bundle-audit - bundler-audit is a patch-level verification tool for Bundler which checks for vulnerable versions of gems and insecure gem sources.
- Secure Headers - Secure Headers will automatically apply several headers that are related to security.
Production
- Capistrano - Remote multi-server automation tool.
- Slowpoke - Rack::Timeout is great. Slowpoke makes it better.
- Rack Attack - Rack middleware to blocking & throttling.
- Responders - A set of Rails responders to dry up your application.
- production_rails - Best practices for running Rails in production.
- Mina - fast deployer and server automation tool.
Error Logging
- Rollbar - Exception tracking and logging from Ruby to Rollbar.
- Airbrake - Notifier gem for integrating apps with Airbrake
- Errbit - Open source notifier gem compliant with Airbrake.
Database
- rails_db - Rails Database Viewer and SQL Query Runner
Asset Pipeline
- Alaska - ExecJS runtime with persistent connection to nodejs, speeds up your coffeescript compilation process during development and deployment.
Contribute
Contributions welcome! Read the contribution guidelines first.
Awesome Phalcon
A curated list of awesome Phalcon libraries and resources. Inspired by awesome-go.
Contributing
Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!
Join us on Discord to chat with other awesome-phalcon maintainers!
Contents
ACL
Access control list.
- PhalconUserPlugin - Plugin based on Vökuró ACL idea
Application Skeleton
Various application skeletons.
- Album O'Rama - Sample modular application for the Phalcon Framework
- Base App - The base application in Phalcon Framework
- INVO Application - Sample application for the Phalcon Framework
- MVC - Examples of Phalcon MVC file structures
- Phalcon Composer - Phalcon with Composer support MySql MongoDb Redis, clean + beauty
- Vökuró - Sample application for Phalcon Framework (Acl, Auth, Security)
- Webird - Webird was created to merge the latest PHP and Node.js innovations into a single application stack
- NovaMOOC - Sample application with API/BackEnd and FrontEnd + Authentication with JWT + Cypress tests with GitHub Actions + Docker compose.
- Sakura Panel - A Phalcon Panel created to install plugins Without Editing the Panel Source Code (Auth, ACL, Lite Bootstrap Template, And more...).
Authentication & OAuth
Libraries for implementing authentications schemes.
- Padlock - A docker-based phalcon authentication server built on top of the PHP OAuth 2.0 Server
- phalcon-authmiddleware - Add middleware events to the dispatcher. Generic design that's compatible with ACL or a custom auth library.
- Phalcon Auth - Out-of-the-box authentication component based on guards and providers.
CMS & Blogs
Content management systems & blogs.
- giada-www - Official website of Giada Loop Machine
- KikCMS - CMS built on Phalcon Framework
- Skopy Blog Engine - A simple blog engine for those who want to start learning Phalcon
- Yona CMS - CMS based on Phalcon Framework with modular structure
- PhalconCMS - A blog built on Phalcon Framework
- Hummingbird CMS - A CMS based on Phalcon 4 with many powerful features
Command Line
Command line applications & tools.
- phalcon-console - Sample bootstraping application for command line applications using the outstanding Phalcon Framework
- phalcon-cron - Cron component for Phalcon
Config
- Phalcon Config Loader for Yaml - Loads all the yml in the directory of the app/config.
Dashboard
Admin Panels & Dashboards.
- PhalconTime - TimeKeeping tool / Dashboard skeleton
Debug
Debug & profiling tools.
- dd - This package will add the
ddanddumphelpers to your Phalcon application - Phalcon BB Debugger - Phalcon BB Debugger Strong and easy install.
- Phalcon Debugbar - Integrates PHP Debug Bar with Phalcon Framework
- Prophiler - PHP Profiler & Developer Toolbar (built for Phalcon)
i18n
List of i18n and l10n libraries and services.
- xgettext-template - Extract gettext messages from Volt templates using a command line program that is identical to the xgettext invocation.
Integration
Integration with third party services
- phalcon-logentries - Sends log messages to the Logentries log management service
## IDE List of extensions for IDE
- volt-phalcon-language - An extension for VS Code which provides support for the Phalcon Volt syntax and completion-auto
Miscellaneous
These libraries were placed here because none of the other categories seemed to fit
- Breadcrumbs - Powerful and flexible component for building site breadcrumbs in Phalcon 2+.
- Feedback - Is intended to be used as a replacement for Phalcon's built-in Flash and Message functionality
- Incubator - Repository to publish/share/experiment with new adapters, prototypes or functionality that can potentially be incorporated into the Phalcon Framework
- yarak - Laravel inspired Phalcon devtools
- phalcon-data-table - Allows you to simplify the interaction with the bootstrap-table in the Phalcon
ORM
Libraries that implement Object-Relational Mapping or datamapping techniques.
- phalcon-boundmodels - Automatically get models based on dispatcher parameters within the Phalcon framework
- phalcon-repositories - Easy Repository pattern for Phalcon
- phalcon-seeder - Database seeder component for Phalcon
- phalcon-redis-model - redis based ORM and Easy Criteria (The correspondence of MySQL sharding.)
ODM
Libraries that implement Object-Document Mapper techniques.
- phalcon-collection-paginator - A pagination adapter for classes that extend
Phalcon\Mvc\Collection
Provisioning
Tools for provisioning a system for a Phalcon application.
- ansible-phalcon - Ansible Role to install Phalcon Framework in Debian (provides PHP 5.6 and PHP 7.0 packages)
- setupify - A collection of bash scripts for provisioning a Zephir and Phalcon based system for deployement or development
RESTful
Representational state transfer.
- phalcon-json-api-package - A composer package designed to help you create a JSON:API in Phalcon
- PhREST API - Phalcon Framework REST API Package
- REST API - Implementation of an API application using the Phalcon
Routing
Various routing libraries & extensions.
- Phalcon-autorouter - Simple way to auto load modules without complicate definition of routes
- Phalcon Routing for Yaml - Routing can be easily configured with yaml
Searching
Searching tools & libraries.
- ElasticsearchIndexer - Elasticsearch indexer component for Phalcon
SEO
Seo tools.
- Phalcon meta tags - Tools for work with meta tags.
Shop & Ecommerce
- Shopping Cart - Simple cart for online store
Talks
Conferences, Chats, Forums, etc..
- Phanbook - The source for code phanbook.com website
- Phosphorum - The source for official Phalcon Forum
Templating
Libraries and tools for templating.
- twig-phalcon - Twig Template Engine for Phalcon Framework
Testing
Testing tools and solutions.
- phalcon-demo - A modified Phalcon INVO Application to demonstrate basics of Codeception testing.
Server Applications
- packagecloud - Phalcon distribution hosted on PackageCloud
- phalcon-docker-nginx - Phalcon 3, PHP7, Docker sample starter application
- phalcon-vm - Vagrant configuration for Phalcon 3.x and PHP7.0 development + MySQL/PostgreSQL/MongoDB, Redis/Memcached, Gearman/RabbitMQ, Elasticsearch/Sphinxsearch on your choice
- phalcon3-compose - Docker Phalcon 3 development environment
Resources
Where to discover new Phalcon libraries.
Conferences
Conferences, IRC, Forums, etc..
Communities
- Facebook - Phalcon on Facebook
- Gab - Phalcon on Gab
- Phalcon Forums - Phalcon Forums
- Phalcon Russian Community Chat - Russian Community Chat in Gitter.im
- Stack Overflow - StackOverflow Tagged Questions
- Twitter - Phalcon on Twitter
Slides
- Phalcon - Develop powerful web applications in PHP - Slides used to present Phalcon V4 during the Human Talks Lyon - 11 february 2020
Books
- Phalcon Book (in French) - Phalcon : Develop complex and powerful web applications in PHP
E-Books
- Phalcon PDF Documentation - Phalcon Framework Documentation
Magazines
- French magazine - Programmez n°239 - The 10 commandments of eco-design (article mentioning Phalcon as a light and ecological Framework)
- French magazine - Programmez n°241 - Phalcon : the new must-know PHP framework
- German magazine - PHPMagazin n°1.21 - The Phalcon among the PHP frameworks
Websites
- Built With - Gallery of applications, demos and projects built with Phalcon Framework
- Phalcon Blog - Phalcon Blog
- Phalconist - Resources catalog for Phalcon Framework on Phalconist
Tutorials
- Phalcon Documentation - Phalcon Documentation
- Sitepoint - Articles, tutorials and so more
- Tutsplus - Tutsplus Code Courses
.htaccess Snippets 
A collection of useful .htaccess snippets, all in one place.
NOTE: .htaccess files are for people that do not have rights to edit the main server configuration file. They are intrinsically slower and more complicated than using the main config. Please see the howto in the httpd documentation for further details.
Disclaimer: While dropping the snippet into an .htaccess file is most of the time sufficient, there are cases when certain modifications might be required. Use at your own risk.
IMPORTANT: Apache 2.4 introduces a few breaking changes, most notably in access control configuration. For more information, check the upgrading document as well as this issue.
Credits
What we are doing here is mostly collecting useful snippets from all over the interwebs (for example, a good chunk is from Apache Server Configs) into one place. While we’ve been trying to credit where due, things might be missing. If you believe anything here is your work and credits should be given, let us know, or just send a PR.
Table of Contents
- Rewrite and Redirection
- Force www
- Force www in a Generic Way
- Force non-www
- Force non-www in a Generic Way
- Force HTTPS
- Force HTTPS Behind a Proxy
- Force Trailing Slash
- Remove Trailing Slash
- Redirect a Single Page
- Redirect Using RedirectMatch
- Alias a Single Directory
- Alias Paths to Script
- Redirect an Entire Site
- Alias "Clean" URLs
- Exclude a URL from Redirection
- Security
- Deny All Access
- Deny All Access Except Yours
- Allow All Access Except Spammers'
- Deny Access to Hidden Files and Directories
- Deny Access to Backup and Source Files
- Disable Directory Browsing
- Disable Image Hotlinking
- Disable Image Hotlinking for Specific Domains
- Password Protect a Directory
- Password Protect a File or Several Files
- Block Visitors by Referrer
- Prevent Framing the Site
- Performance
- Miscellaneous
Rewrite and Redirection
Note: It is assumed that you have mod_rewrite installed and enabled.
Force www
apacheconf
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
Force www in a Generic Way
apacheconf
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
This works for any domain. Source
Force non-www
It’s still open for debate whether www or non-www is the way to go, so if you happen to be a fan of bare domains, here you go:
apacheconf
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
Force non-www in a Generic Way
apacheconf
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]
Force HTTPS
``` apacheconf RewriteEngine on RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Note: It’s also recommended to enable HTTP Strict Transport Security (HSTS)
on your HTTPS website to help prevent man-in-the-middle attacks.
See https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security
Force HTTPS Behind a Proxy
Useful if you have a proxy in front of your server performing TLS termination.
apacheconf
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Force Trailing Slash
apacheconf
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
Remove Trailing Slash
This snippet will redirect paths ending in slashes to their non-slash-terminated counterparts (except for actual directories), e.g. http://www.example.com/blog/ to http://www.example.com/blog. This is important for SEO, since it’s recommended to have a canonical URL for every page.
apacheconf
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]
Source
Redirect a Single Page
apacheconf
Redirect 301 /oldpage.html http://www.example.com/newpage.html
Redirect 301 /oldpage2.html http://www.example.com/folder/
Source
Redirect Using RedirectMatch
apacheconf
RedirectMatch 301 /subdirectory(.*) http://www.newsite.com/newfolder/$1
RedirectMatch 301 ^/(.*).htm$ /$1.html
RedirectMatch 301 ^/200([0-9])/([^01])(.*)$ /$2$3
RedirectMatch 301 ^/category/(.*)$ /$1
RedirectMatch 301 ^/(.*)/htaccesselite-ultimate-htaccess-article.html(.*) /htaccess/htaccess.html
RedirectMatch 301 ^/(.*).html/1/(.*) /$1.html$2
RedirectMatch 301 ^/manual/(.*)$ http://www.php.net/manual/$1
RedirectMatch 301 ^/dreamweaver/(.*)$ /tools/$1
RedirectMatch 301 ^/z/(.*)$ http://static.askapache.com/$1
Source
Alias a Single Directory
apacheconf
RewriteEngine On
RewriteRule ^source-directory/(.*) /target-directory/$1 [R=301,L]
Alias Paths to Script
apacheconf
FallbackResource /index.fcgi
This example has an index.fcgi file in some directory, and any requests within that directory that fail to resolve a filename/directory will be sent to the index.fcgi script. It’s good if you want baz.foo/some/cool/path to be handled by baz.foo/index.fcgi (which also supports requests to baz.foo) while maintaining baz.foo/css/style.css and the like. Get access to the original path from the PATH_INFO environment variable, as exposed to your scripting environment.
apacheconf
RewriteEngine On
RewriteRule ^$ index.fcgi/ [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L]
This is a less efficient version of the FallbackResource directive (because using mod_rewrite is more complex than just handling the FallbackResource directive), but it’s also more flexible.
Redirect an Entire Site
apacheconf
Redirect 301 / http://newsite.com/
This way does it with links intact. That is www.oldsite.com/some/crazy/link.html will become www.newsite.com/some/crazy/link.html. This is extremely helpful when you are just “moving” a site to a new domain. Source
Alias “Clean” URLs
This snippet lets you use “clean” URLs -- those without a PHP extension, e.g. example.com/users instead of example.com/users.php.
apacheconf
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^.]+)$ $1.php [NC,L]
Source
Exclude URL from Redirection
This snippet allows you to exclude a URL from redirection. For example, if you have redirection rules setup but want to exclude robots.txt so search engines can access that URL as expected.
apacheconf
RewriteEngine On
RewriteRule ^robots.txt - [L]
Security
Deny All Access
``` apacheconf
Apache 2.2
Deny from all
Apache 2.4
Require all denied
```
But wait, this will lock you out from your content as well! Thus introducing...
Deny All Access Except Yours
``` apacheconf
Apache 2.2
Order deny,allow Deny from all Allow from xxx.xxx.xxx.xxx
Apache 2.4
Require all denied
Require ip xxx.xxx.xxx.xxx
``xxx.xxx.xxx.xxxis your IP. If you replace the last three digits with0/12` for example, this will specify a range of IPs within the same network, thus saving you the trouble to list all allowed IPs separately. Source
Now of course there's a reversed version:
Allow All Access Except Spammers'
``` apacheconf
Apache 2.2
Order deny,allow Deny from xxx.xxx.xxx.xxx Deny from xxx.xxx.xxx.xxy
Apache 2.4
Require all granted
Require not ip xxx.xxx.xxx.xxx
Require not ip xxx.xxx.xxx.xxy
```
Deny Access to Hidden Files and Directories
Hidden files and directories (those whose names start with a dot .) should most, if not all, of the time be secured. For example: .htaccess, .htpasswd, .git, .hg...
apacheconf
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
Alternatively, you can just raise a “Not Found” error, giving the attacker no clue:
apacheconf
RedirectMatch 404 /\..*$
Deny Access to Backup and Source Files
These files may be left by some text/HTML editors (like Vi/Vim) and pose a great security danger if exposed to public.
``` apacheconf
## Apache 2.4
# Require all denied
``` Source
Disable Directory Browsing
apacheconf
Options All -Indexes
Disable Image Hotlinking
``` apacheconf RewriteEngine on
Remove the following line if you want to block blank referrer too
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.+.)?example.com [NC] RewriteRule .(jpe?g|png|gif|bmp)$ - [NC,F,L]
If you want to display a “blocked” banner in place of the hotlinked image,
replace the above rule with:
RewriteRule .(jpe?g|png|gif|bmp) http://example.com/blocked.png [R,L]
```
Disable Image Hotlinking for Specific Domains
Sometimes you want to disable image hotlinking from some bad guys only. ``` apacheconf RewriteEngine on RewriteCond %{HTTP_REFERER} ^https?://(.+.)?badsite.com [NC,OR] RewriteCond %{HTTP_REFERER} ^https?://(.+.)?badsite2.com [NC,OR] RewriteRule .(jpe?g|png|gif|bmp)$ - [NC,F,L]
If you want to display a “blocked” banner in place of the hotlinked image,
replace the above rule with:
RewriteRule .(jpe?g|png|gif|bmp) http://example.com/blocked.png [R,L]
```
Password Protect a Directory
First you need to create a .htpasswd file somewhere in the system:
bash
htpasswd -c /home/fellowship/.htpasswd boromir
Then you can use it for authentication:
apacheconf
AuthType Basic
AuthName "One does not simply"
AuthUserFile /home/fellowship/.htpasswd
Require valid-user
Password Protect a File or Several Files
``` apacheconf AuthName "One still does not simply" AuthType Basic AuthUserFile /home/fellowship/.htpasswd
Block Visitors by Referrer
This denies access for all users who are coming from (referred by) a specific domain. Source ``` apacheconf RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} somedomain.com [NC,OR] RewriteCond %{HTTP_REFERER} anotherdomain.com RewriteRule .* - [F] ```
Prevent Framing the Site
This prevents the website to be framed (i.e. put into an iframe tag), when still allows framing for a specific URI.
apacheconf
SetEnvIf Request_URI "/starry-night" allow_framing=true
Header set X-Frame-Options SAMEORIGIN env=!allow_framing
Performance
Compress Text Files
``` apacheconf
# Force compression for mangled headers.
# https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# Compress all output labeled with one of the following MIME-types
# (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
# and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines
# as `AddOutputFilterByType` is still in the core directives).
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/x-web-app-manifest+json \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml
</IfModule>
``` Source
Set Expires Headers
Expires headers tell the browser whether they should request a specific file from the server or just grab it from the cache. It is advisable to set static content's expires headers to something far in the future.
If you don’t control versioning with filename-based cache busting, consider lowering the cache time for resources like CSS and JS to something like 1 week. Source
``` apacheconf
# CSS ExpiresByType text/css "access plus 1 year"
# Data interchange ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds"
# Favicon (cannot be renamed!) ExpiresByType image/x-icon "access plus 1 week"
# HTML components (HTCs) ExpiresByType text/x-component "access plus 1 month"
# HTML ExpiresByType text/html "access plus 0 seconds"
# JavaScript ExpiresByType application/javascript "access plus 1 year"
# Manifest files ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" ExpiresByType text/cache-manifest "access plus 0 seconds"
# Media ExpiresByType audio/ogg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType video/webm "access plus 1 month"
# Web feeds ExpiresByType application/atom+xml "access plus 1 hour" ExpiresByType application/rss+xml "access plus 1 hour"
# Web fonts ExpiresByType application/font-woff2 "access plus 1 month" ExpiresByType application/font-woff "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" ExpiresByType application/x-font-ttf "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ```
Turn eTags Off
By removing the ETag header, you disable caches and browsers from being able to validate files, so they are forced to rely on your Cache-Control and Expires header. Source
apacheconf
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
FileETag None
Miscellaneous
Set PHP Variables
``` apacheconf
php_value
For example:
php_value upload_max_filesize 50M php_value max_execution_time 240 ```
Custom Error Pages
apacheconf
ErrorDocument 500 "Houston, we have a problem."
ErrorDocument 401 http://error.example.com/mordor.html
ErrorDocument 404 /errors/halflife3.html
Force Downloading
Sometimes you want to force the browser to download some content instead of displaying it.
apacheconf
<Files *.md>
ForceType application/octet-stream
Header set Content-Disposition attachment
</Files>
Now there is a yang to this yin:
Prevent Downloading
Sometimes you want to force the browser to display some content instead of downloading it.
apacheconf
<FilesMatch "\.(tex|log|aux)$">
Header set Content-Type text/plain
</FilesMatch>
Allow Cross-Domain Fonts
CDN-served webfonts might not work in Firefox or IE due to CORS. This snippet solves the problem.
apacheconf
<IfModule mod_headers.c>
<FilesMatch "\.(eot|otf|ttc|ttf|woff|woff2)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
Source
Auto UTF-8 Encode
Your text content should always be UTF-8 encoded, no? ``` apacheconf
Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8
Force UTF-8 for a number of file formats
AddCharset utf-8 .atom .css .js .json .rss .vtt .xml ``` Source
Switch to Another PHP Version
If you’re on a shared host, chances are there are more than one version of PHP installed, and sometimes you want a specific version for your website. The following snippet should switch the PHP version for you.
``` apacheconf AddHandler application/x-httpd-php56 .php
Alternatively, you can use AddType
AddType application/x-httpd-php56 .php ```
Disable Internet Explorer Compatibility View
Compatibility View in IE may affect how some websites are displayed. The following snippet should force IE to use the Edge Rendering Engine and disable the Compatibility View.
apacheconf
<IfModule mod_headers.c>
BrowserMatch MSIE is-msie
Header set X-UA-Compatible IE=edge env=is-msie
</IfModule>
Serve WebP Images
If WebP images are supported and an image with a .webp extension and the same name is found at the same place as the jpg/png image that is going to be served, then the WebP image is served instead.
apacheconf
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1]
Source
Nginx Resources 
A collection of resources covering Nginx, Nginx + Lua, OpenResty and Tengine.
This list is maintained by Frederic Cambus. For updates, follow me on Twitter: @fcambus
Understanding Nginx
- History of Nginx
- Understanding Nginx versioning
- Interview with the creator of Nginx
- Interview with Igor Sysoev, author of Apache's competitor NGINX
- The case for Nginx in front of application servers
- Nginx Optimization: understanding sendfile, tcp_nodelay and tcp_nopush
Architecture
- The Architecture of Open Source Applications (Volume 2): nginx
- Nginx Guts - Shedding light on Nginx internals
- Nginx discovery journey
- Nginx Internals
- Inside NGINX: How We Designed for Performance & Scale
- Thread Pools in NGINX
Configuration
- Beginner's Guide
- Alphabetical index of variables
- Nginx Pitfalls
- Useful Rewrites for Nginx
- Nginx Configuration Primer
- Nginx Primer 2: From Apache to Nginx
- Understanding the Nginx Configuration Inheritance Model
- Nginx HTTP server boilerplate configs
- Nginx Boilerplate - Configuration template and a set of handy must-have snippets
- How to Configure OCSP Stapling in Apache and Nginx
- NGINX Config - Online nginx configuration generator
- Nice nginx features for developers
- Nice nginx features for operators
- Avoiding the Top 10 NGINX Configuration Mistakes
- Gixy - Nginx configuration static analyzer
Tutorials
- NGINX and NGINX Plus Admin Guide
- agentzh's Nginx Tutorials (Source)
- Introduction to nginx.conf scripting
- Load Balancing with NGINX and NGINX Plus (Part 2)
- Optimizing Nginx for High Traffic Loads
- NGINX as a WebSockets Proxy
- HTTP Keepalive Connections and Web Performance
- CORS on Nginx
- Serving precompressed content with Nginx and Zopfli
- Nginx on FreeBSD
- Using New Debugging Features to Probe NGINX Internals
- Performing A/B Testing with NGINX and NGINX Plus
Modules development
- Official Development Guide
- Guide to Nginx Module Development
- Advanced Topics In Nginx Module Development
- Developing Nginx Modules
APIs
- Telize - JSON IP and GeoIP REST API (IP Geolocation) built on Nginx and Lua
- GIN - JSON-API framework
- Outbound API rate limits: the nginx way
- Using Nginx to comply with a third-party API's rate limits
- Simple API with Nginx and PostgreSQL
- Kong - Management Layer for Microservices and APIs
Hacks
- Nginx JSON hacks
- Using Environment Variables In Nginx.conf
- Log rotation directly within Nginx configuration file
- Realtime pixel tracking with Nginx, syslog-ng, and Redis
- Dynamic log formats in Nginx
- Capture and delay unwanted requests
- Nginx: a caching, thumbnailing, reverse proxying image server?
Tips
- Things you didn't know Nginx could do
- Finding the nginx gzip_comp_level sweet spot
- nginx mirroring tips and tricks
Nginx + Lua
- Nginx, Lua, and beyond
- Pushing Nginx to its limit with Lua
- Augmenting APIs with Nginx and Lua
- Adding OAuth Support to Nginx via Lua
- Scripting libdrizzle with Lua inside Nginx
- Nginx and Lua
- Writing an Nginx authentication module in Lua
- Scaling TextRazor in the Cloud with Nginx and Lua
- LSSO - Lua + Nginx SSO System with an OAuth Backend
- Measuring Nginx Cache Performance using Lua and Redis
- nginx-lua - Nginx 1.19+ with LUA support based on Alpine Linux, Amazon Linux, CentOS, Debian, Fedora and Ubuntu.
OpenResty
- OpenResty - Fast web app server by extending Nginx
- Lapis - A web framework for Lua or MoonScript powered by OpenResty
- Nginx image processing server with OpenResty and Lua
- Building an OpenResty events server
- SysAdvent 2014 - OpenResty, Nginx and Lua (Source)
- OpenResty (Nginx) with dynamically generated certificates
- Ceryx - A dynamic reverse proxy
- An Introduction To OpenResty
- Programming OpenResty (written by the OpenResty creator)
- VeryNginx - Nginx distribution which provides WAF, Control Panel, and Dashboards
Tengine
Talks
- NGINX Conference 2019 Videos
- NGINX Conference 2018 Videos
- NGINX Conference 2017 Videos
- NGINX Conference 2016 Videos
- NGINX Conference 2015 Videos
- NGINX Conference 2014 Videos
- NGINX Conference
- NGINX User Summit 2014 - Lightning talks
License
To the extent possible under law, Frederic Cambus has waived all copyright and related or neighboring rights to this work.
Awesome Dropwizard 
Useful resources for creating apps with Dropwizard
Contributing
Please take a quick look at the contribution guidelines first.
Editor Support
Support for your favorite editors.
Eclipse
- dropwizard-tools - Eclipse Tools for Dropwizard
Open Source
- dropwizard-swagger - Serves Swagger UI static content and loads Swagger endpoints.
- dropwizard-jaxws - enables building SOAP web services and clients using JAX-WS API.
- dropwizard-redirect-bundle - allows for HTTP redirects.
- dropwizard-template-config - enables you to write your config.yaml as a Freemarker template.
- dropwizard-caching-bundle - generate cache-control options for resources and caching responses.
- dropwizard-xml - Dropwizard bundle for processing and validating XMLs
- dropwizard-crypto - A Cryptographic Bundle for Dropwizard
- dropwizard-circuitbreaker - A circuit breaker design pattern for dropwizard
- dropwizard-maxmind-bundle - MaxMind GeoIP2 support for dropwizard
- dropwizard-protobuf - Support for reading and writing Google Protocol Buffer objects within Dropwizard
- dropwizard-activemq-bundle - send and receive JSON via ActiveMQ in your Dropwizard application
- dropwizard-consul - A Consul bundle for Dropwizard
- dropwizard-zipkin - A Zipkin bundle for Dropwizard
- dropwizard-graphql - A GraphQL bundle for Dropwizard
- dropwizard-money - A Money bundle for Dropwizard
- breakerbox - Frontend for Tenacity + Archaius
- tenacity - A Hystrix bundle for Dropwizard
- dropwizard-grpc - use a gRPC server in a Dropwizard service
- sqs-dropwizard - Amazon SQS integration
- dropwizard-simple-cors - A Dropwizard bundle to provide simple, sensible CORS support
- dropwizard-version-info - A Dropwizard bundle which exposes a version endpoint
Boilerplate Destruction
- Brahma-HibernateUtils - An annotation processor to keep track of
@Entityclasses to make entity registration in dropwizard super simple.
Authentication
- dropwizard-auth-ldap - LDAP authentication for Dropwizard
- dropwizard-jwt-cookie-authentication - Dropwizard bundle managing authentication through JWT cookies
Assets
- dropwizard-configurable-assets-bundle - An implementation of an AssetBundle for use in Dropwizard that allows user configuration.
- dropwizard-markdown-assets-bundle - renders Markdown files as pretty HTML
Data Stores
- dropwizard-etcd - A Dropwizard Bundle for Etcd
- dropwizard-mongo - Factories and health checks for connecting to mongoDB.
- dropwizard-elasticsearch - A set of classes for using Elasticsearch in a Dropwizard service
- dropwizard-service-discovery - Zookeeper service discovery bundle and client for dropwizard.
- dropwizard-cassandra - Dropwizard support for Cassandra
- dropwizard-riak - Dropwizard support for Riak
- dropwizard-orient-server - Embedded OrientDB server for dropwizard
- dropwizard-atomix - Integration with Atomix
Metrics
- riemann-bundle - Simplifies dropwizard metrics integration into Riemann
- metrics - Metrics Libraries
Logging
- dropwizard-gelf - Addon bundle for Dropwizard to support logging to a GELF-enabled servers
- dropwizard-raven - Dropwizard integration for error logging to Sentry
- dropwizard-logstash-encoder - Dropwizard logging addon for sending logs using the logstash-logback-encoder
Scheduled/Recurrence Jobs
- dropwizard-quartz - Simple Job Scheduler implementation integrating Guice and Quartz.
- dropwizard-jobs - Quartz integration for dropwizard
- dropwizard-sundial - Scheduled jobs in Dropwizard using Sundial
Guice
- dropwizard-guice - Adds support for Guice.
- dropwizard-guicey - Dropwizard guice integration
- dropwizard-guicier - A Dropwizard bundle to handle Guice integration.
Deployment
- WizToWar - Build WARs from your Dropwizard apps
- wizard-in-a-box - deploy Dropwizard apps as a war
Tutorials
Guides
- Serving Static Assets with DropWizard
- Hooking up Custom Jersey Servlets in Dropwizard
- Using Hibernate DAOs in DropWizard Tasks
- Heroku for Highly Available Dropwizard Apps
- Enabling Newrelic for Dropwizard
- Application Health Checks with DropWizard
- Using Hystrix with Dropwizard
- Using Dropwizard in combination with Elasticsearch
- Deploy a Dropwizard Unikernel to AWS
- Use Consul's KV store for Dropwizard settings
- Deploying Dropwizard on App Engine Flex
- Measuring the performance of your Dropwizard application
- Heroku + Gradle + Dropwizard
Community
Videos
Contribute
Contributions welcome! Read the contribution guidelines first.
Awesome!
Check out more awesome projects.
License
To the extent possible under law, Steve Agalloco has waived all copyright and related or neighboring rights to this work.
Awesome-Kubernetes
A curated list for awesome kubernetes sources inspired by @sindresorhus' awesome

"Talent wins games, but teamwork and intelligence wins championships."
-- Michael Jordan
Without the help from these amazing contributors, building this awesome-repo would never has been possible. Thank You very much everyone !!
Thanks to Gitbook.This awesome list can now be downloaded and read in the form of a book. Check it out --> https://ramitsurana.gitbook.io/awesome-kubernetes/docs .Keep Learning Keep Sharing !!
If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!
What is Kubernetes?
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery.
Source: What is Kubernetes
History
Kubernetes is known to be a descendant of Google's system BORG
The first unified container-management system developed at Google was the system we internally call Borg. It was built to manage both long-running services and batch jobs, which had previously been handled by two separate systems: Babysitter and the Global Work Queue. The latter’s architecture strongly influenced Borg, but was focused on batch jobs; both predated Linux control groups.
Source: Kubernetes Past
Date of Birth
Kubernetes celebrates its birthday every year on 21st July. Kubernetes 1.0 was released on July 21 2015, after being first announced to the public at Dockercon in June 2014.
Roadmap
The awesome-kubernetes will now soon be available in the form of different releases and package bundles, It means that you can download the awesome kubernetes release up to a certain period of time, The release for awesome kubernetes 2015 bundle is released. Checkout the releases column for more info.
Featured On
Starting Point
A place that marks the beginning of a journey
- Kubernetes Community Overview and Contributions Guide by Ihor Dvoretskyi
- Are you Ready to Manage your Infrastructure like Google?
- Google is years ahead when it comes to the cloud, but it's happy the world is catching up
- An Intro to Google’s Kubernetes and How to Use It by Laura Frank
- Kubernetes: The Future of Cloud Hosting by Meteorhacks
- Kubernetes by Google by Gaston Pantana
- Key Concepts by Arun Gupta
- Application Containers: Kubernetes and Docker from Scratch by Keith Tenzer
- Learn the Kubernetes Key Concepts in 10 Minutes by Omer Dawelbeit
- The Children's Illustrated Guide to Kubernetes by Deis
- The ‘kubectl run’ command by Michael Hausenblas
- Docker Kubernetes Lab Handbook by Peng Xiao
- Curated Resources for Kubernetes
- Kubernetes Comic by Google Cloud Platform
- Kubernetes 101: Pods, Nodes, Containers, and Clusters by Dan Sanche
- An Introduction to Kubernetes by Justin Ellingwood
- Kubernetes and everything else - Introduction to Kubernetes and it's context by Rinor Maloku
- Installation on Centos 7
- Setting Up a Kubernetes Cluster on Ubuntu 18.04
- Cloud Native Landscape
- The Kubernetes Handbook by Farhan Hasin Chowdhury
- Bootstrapping Microservices by Ashley Davis
- Kubernetes Native Microservices with Quarkus, and MicroProfile by John Clingan and Ken Finnigan
- How to Deploy a REST API in Kubernetes
- Securing Kubernetes Secrets by Alex Soto Bueno and Andrew Block
- Kubeflow in Action by Juana Nakfour and Sanjay Arora
- Kubernetes on Windows by Jay Vyas and James Sturtevant
- Kubernetes explained
Contributing
Contributions are most welcome!
This list is just getting started, please contribute to make it super awesome.
Check out the Contributing Guidelines.
License

awesome-kubernetes by Ramit Surana is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
Awesome lumen

Curated list of resources: books, videos, articles about using Lumen ( PHP Microframework by Laravel )
Inspired by the awesome list thing. You might also like awesome-tdd.
Please read the contribution guidelines before contributing.
Check out my blog or say hi on Twitter.
Table of Contents
Essentials
- Lumen Homepage
- Documentation - Lumen 5
- GitHub Repository
Demos
Tutorials
Written
- Building a Micro Markdown API app with Lumen
- Lumen by Laravel - First tutorial
- Developing a web application with lumen and Mysql
- Getting Started with Lumen
- Building a web app with Lumen Web Api and Oauth2 Authentication
- Build an API with Lumen and Fractal
- Developing a microservice with Lumen
- Json Web token authentication for Lumen
- Creating Your First Artisan Command in Lumen 5.5
Videos
- Introducing Lumen by Taylor Otwell
- Zero to API with Lumen
- Building a Bookings API with Lumen
- Lumen 5.1 and Homestead of Laravel: Create a RESTful API
- Building APIs with Lumen by Oz Brignoni
- Lumen Restful API and Homestead
Packages and Middleware
- Lumen Cors - A simple lumen CORS
- Alternative Lumen Cors - CORS Middleware for Lumen micro-framework
- Phpspec Lumen - Test your Lumen app with phpspec
- Understand Lumen - Laravel Lumen service provider for Understand.io
- Badge Poser - Lumen Badge Generator
- Cors Illuminate - CORS (Cross-Origin Resource Sharing) support for Laravel and Lumen
- Jwt Artisan - JWT auth for Laravel and Lumen
- Facebook SDK - Facebook SDK for Laravel and Lumen
- Lumen Generators - A collection of generators for Lumen and Laravel 5.
- Dingo API - A RESTful API package for the Laravel and Lumen frameworks.
- Lumen Tinker - An interactive shell to Lumen framework
- Lumen Maintenance Mode - Define Lumen Application Maintenance Mode
- Lumen Vendor Publish - Vendor publish command for Lumen framework.
- Lumen Make - Ports most of the make commands from Laravel to Lumen.
- Lumen File Manager - File manager module for the Lumen PHP framework.
- Lumen 5.2 HTTP Basic Auth Guard - Brings back basic authentication for Lumen 5.2.
- Larasupport - Adds Laravel Packages Support to Lumen and Other Helpers.
- REST API With Lumen - A RESTful API boilerplate for Lumen micro-framework.
- Lumen Passport - Making Laravel Passport work with Lumen.
Made With Lumen
- Slack Invitator - A Slack Invitator made with Lumen Framework
- Email Microservice - Microservice for sending emails with Lumen
- Lissandra - API for Laracasts Feed built with Lumen.
- Lumen Solder - An implementation of Solder in Laravel's Lumen Framework.
- Lumen Microservices Skeleton - Skeleton structure for Microservices with Docker and Lumen
Books
- Writing APIs with Lumen
- Lumen Programming Guide: Writing PHP Microservices, REST and Web Service APIs
Community
Tips
- Contribute some ;)
Contributing
Found an awesome package, article, blog, video etc.? Send me a pull request! Just follow the guidelines
Guidelines
- Make sure what you are adding is not already on the list
- Make a separate pull request for each addition
- Use the format:
* [Name](Link) - Description if needed - Add it to the bottom of the section, not top or middle
- Check your spelling and grammar
- Feel free to create or improve a category
- Make sure there is no trailing whitespace
- Last, Make sure it is awesome!
License
This work (Awesome Lumen) is free of known copyright restrictions.
Awesome Serverless 
A curated list of resources about all things serverless.
Inspired by the awesome list project.
Say hello on Twitter.
Table of contents
- General
- Blogs
- Blog posts
- Screencasts
- Talks
- Projects
- Related projects
- Serverless Framework Plugins
- Literature / Education
- Professional services
General
- Serverless.com - Serverless.com homepage.
- Documentation - Serverless.com Documentation.
- Forum - Official Serverless forum.
- Meetups - List with all official Serverless meetups.
- Stack Overflow - Stack Overflow questions.
- ServerlessConf - Serverless specialized conference.
- Serverless Weekly - A weekly newsletter about serverless architectures and paradigms.
- Serverless working group - CNCF serverless working group.
- Serverless Summit - Conference about serverless technologies / computing.
- Serverless Plugin Directory - A directory of Serverless Framework plugins.
- OpenEvents - A specification for describing event data in a common way.
- The power of serverless - Overview why serverless is a great choice - especially for frontend developers.
Blogs
- Serverless Code - Blog about everything serverless related.
- Serverless Zone - Everything Serverless related.
- Serverless Blog - Official blog of the Serverless Framework.
- Serverless Stories - Medium publication from the team behind the Serverless Framework.
- Going Serverless - Blog about serverless architectures and the Serverless Framework.
- Foobar Tech - Blog about serverless architectures and programming in general.
- Serverless Guy - Blog about a "life without servers".
- Serverless City - News, products, opinions, howtos, and everything you need to know to be a Serverless Citizen.
- FaaS Forward - Learning & living on the FaaS-Lane.
- ServerlessOps - Design, build and run reliable serverless systems.
Blog posts
- Serverless computing requires a shift in mindset - Why IT leaders must communicate business value when talking about serverless solutions.
- Hosted vs. installable serverless platforms - Survey which covers hosted vs. installable serverless solutions.
- Launching TriggerMesh - TriggerMesh (serverless management platform on top of knative) announcement blog post.
- Serverless without containers - How Cloudflare utilizes the v8 engine to isolate and run Cloudflare Workers written in Node.js.
- Takeaways from ServerlessNYC 2018 - Key takeaways from the ServerlessNYC 2018 conference.
- Serverless & Functions - Not one and the same - Post about the differences between serverless computing and FaaS.
- Serverless for startups - Why serverless is the fastest way to build a technology idea.
- Serverless monitoring, security, frameworks, tools - Post about the different serverless monitoring, security, framework and tooling solutions.
- Writing portable serverless applications - Post on how to write portable serverless applications that can run on different compute environments.
- Serverless sea change - Article which defines and explains how serverless is different from other application architectures.
- Serverless Instant Checkout Links with Square - An example showing how to build serverless instant checkout links backed by Square APIs.
Screencasts
- Build apps faster with Azure Serverless - Walkthrough of the Microsoft Azure Functions serverless offering.
- FaaS performance comparison - Comparing serverless function performance.
- Introduction to Kubeless - Video which introduces the Kubeless project and their Serverless Framework integration.
- What's new in Serverless v1.22 - Video walkthrough about all the new features in Serverless v1.22.
- Kuhiro: Birth of the NearCloud - Video which explains the concepts of NearCloud.
- How to build a regionally distributed serverless architecture - Webinar on how to build a regionally distributed serverless architecture.
- Autoscaling DynamoDB with the Serverless Framework - Walkthrough on how to use DynamoDB autoscaling functionality with the Serverless Framework.
- Building React + Serverless full stack apps - How to build full stack apps using React and the Serverless Framework.
- Become a serverless black belt - AWS online tech talk on how to optimize serverless applications.
- Jazz serverless developer teaser - T-Mobiles Jazz serverless developer teaser.
Talks
- The serverless and event-driven future - How the Event Gateway enables a new way to build event-driven applications.
- Serverless, Not So FaaS - CloudNativeCon 2018 Keynote by Kelsey Hightower, Kubernetes Community Member, Google.
- Bringing serverless to Rock 'n Roll - Podcast on how Fender utilizes serverless technologies for their digital learning platform.
- Using the Event Gateway to build serverless multi-cloud applications - How the Event Gateway can be used to build multi-cloud applications.
- Deep dive into serverless - Slide deck about serverless application development.
- Discussing serverless - Podcast about the serverless landscape.
- Confusion in the land of the serverless - Sam Newmans talk about serverless technologies at GOTO 2018.
- Serverless state of the union - Austen Collins keynote talk about serverless and the state of the union at the Open Source Summit 2018.
- ServerlessConf SF 2018 videos - Talks from the ServerlessConf SF 2018.
- Serverless at iRobot - How serverless technologies are used at iRobot.
Projects
- Official joke API - Vue Jokester application backend.
- Event Gateway Getting Started - Walkthrough application for using the Event Gateway.
- Utils - General Serverless utilities.
- CloudWatch public metrics - Expose AWS CloudWatch metrics as a public HTML page.
- Invoicely - Invoice automation tool.
- World Cup Slackbot - Post 2018 FIFA World Cup Russia™ matches events to Slack.
- Serverless Express - Run your unmodified express app on AWS Lambda via the Serverless Framework.
- TypeScript composite monorepo - Yarn / Lerna workspaces with Typescript 3.0 composite references using
nohoistfor compatible serverless application packaging. - Next serverless - Deploys your next.js application to AWS Lambda.
- Serverless Central - Sample Lambda monorepo.
- Tipe - Next generation serverless CMS.
- Spiderless - A web spider / scraper / website change detector built with Lambda, API Gateway, DynamoDB and SNS.
- PriceTrack - API / Website for E-commerce price tracking. Built with Firebase functions and Firebase Hosting.
Related projects
- FaaS boilerplates - Boilerplates for FaaS offerings that work in conjunction with Hasura GraphQL Engine's event triggers.
- CloudCompose - An open community marketplace for serverless functions and workflows.
- Mutton - A Python shim library for better AWS Lambda handlers.
- Begin - Create AWS serverless apps, APIs, and sites with databases, sessions, and full CI/CD.
- Operiant - Connect your event streams to actions.
- TriggerMesh - Serverless cloud with a library of event triggers to enable hybrid cloud and workload portability.
- Handly - A wrapper for serverless handlers to prevent silly mistakes.
- Serverless boilerplate - Minimal yet super-functional Serverless boilerplate.
- Firecracker - Secure and fast microVMs for serverless computing.
- Cirrus - Serverless machine learning framework.
- OpenFaaS - Serverless Functions Made Simple for Docker and Kubernetes.
- OpenFaaS Cloud - OpenFaaS Cloud: multi-user serverless functions driven by git.
Serverless Framework Plugins
- Local environment - Set local environment variables.
- Offline SSM - Read SSM parameters from a
.envfile instead of AWS. - Nocode - Deploy nocode via the Serverless Framework.
- Canary deployments - Implement canary deployments of AWS Lambda functions.
- Flow-based programming - Flow-based programming plugin for Serverless.
- Go serverless - GoFormation for the Serverless Framework. Create Serverless configs with Go structs.
- Event Gateway - Event Gateway plugin for the Serverless Framework.
- Fn - Fn provider plugin.
- Cloudflare Workers - Provider plugin for Cloudflare Workers.
- S3 Deploy - Plugin to deploy files to an S3 Bucket.
Literature / Education
- Going serverless - Building scalable applications with the Serverless Framework and AWS Lambda.
- AWS Lambda, Kinesis & Serverless Framework - Udemy Course on the Serverless Framework.
- The Serverless Framework: Quick Start - Video course which provides a quick start for the Serverless Framework.
- Intro to the Serverless Framework - Introduction course for the Serverless Framework.
- ServerlessLab - Effective serverless, AWS Lambda and Node.js training.
- Serverless Applications with AWS - Introduction course with AWS and Serverless Framework. Build a production like app using the most common AWS Serverless services.
- Event Gateway Workshop - Learn what the Event Gateway is, how it works and build your first event-driven multi-cloud application.
- Serverless streaming architectures - Serverless streaming architectures and best practices.
- Develop a Serverless Backend using Node.js on AWS Lambda - Learn how to create a serverless API and connecting it to DynamoDB leveraging Lambda's new async / await syntax.
- Agile development for serverless platforms - How to apply agile practices in fully serverless architectures.
- AI as a Service A book that teaches you how to harness the power of cloud-based AI services and serverless computing. An engineering approach to serverless AI.
Professional services
- Cloudonaut - Consultancy.
- PromptWorks - Consultancy.
- Craftship - Consultancy.
- EPX Labs - Consultancy.
- Red Badger - Agency.
- Langa - Agency.
- Emerging Technology Advisors - Consultancy.
- OneSpeed - Agency.
- Seraro - Agency.
- Superluminar - Agency.
Awesome Wicket 
A curated list of awesome projects powered by Apache Wicket
Your contributions are always welcome!
Wicket is an open source, component oriented, serverside, Java web application framework. With a history of over a decade, it is still going strong and has a solid future ahead.
Table of Contents
Generic Info
- Apache Wicket - Wicket official site.
- Wicket on Github - Official mirror of Wicket on GitHub.
- Wicket on Twitter - Official account of Wicket.
- Wicket wiki - Official knowledge base on Wiki about Wicket.
- Build With Wicket - Official Tumblr account of Wicket.
- Wicket User Guide - Wicket user guide for version 7.x.
- Wicket JavaDocs - Wicket JavaDocs for version 7.x.
- Wicket in Action - Blog and book about Wicket.
Libraries
List of libraries and components which can be used in your application
- JNPM - Java library for JS Node Package Manager(NPM). Provides Wicket resource for transparent obtaining of NPM package and providing required file from it.
- wicket-akka - Integration of Akka for Wicket.
- wicket-autowire - Makes your life easier by automatic creation of component according to provided annotation.
- wicket-bootstrap - Integration of Bootstrap Toolkit for Wicket.
- wicket-clientside-logging - Helper library that allows javascript logging on client side, all log messages will be stored on server side too.
- wicket-console - Lightweight AJAX-enabled web console for runtime execution JS scripts on server side.
- wicket-crudifier - Library to easily create CRUD's with wicket.
- wicket-dnd - Generic Drag&Drop framework for Wicket.
- wicket-extjs-integration - Integration of Wicket with ExtJS with event handling and a focus on making the Java-API as close to the JS-API as possible.
- wicket-fullcalendar - Integration of FullCalendar javascript lib with Wicket.
- wicket-jersey - Adapter to run JAR-RX resources on Jersey2 under Wicket.
- wicket-jquery-selectors - Library for working with JQuery and Wicket.
- wicket-jquery-ui - JQuery UI integration in Wicket 1.5.x, Wicket 6.x & Wicket7.x.
- wicket-modelfactory - Wicket-modelfactory is an API to create Wicket PropertyModels in a typesafe and refactoring-safe way.
- wicket-mustache - Provides a specialized panel and some related utilities that enables users to work with Mustache and Wicket.
- wicket-orientdb - Integration of Wicket with OrientDB.
- wicket-requirejs - Helper to use require.js in your Wicket application.
- wicket-shieldui - Components leveraging the use of the Shield UI JavaScript library.
- wicket-source - Speeds up Wicket development by providing click-through from browser HTML back to the original Wicket components in your source.
- wicket-spring-boot - Makes it easy to create Wicket projects with a minimum of configuration effort by using Sprint Boot.
- wicket-webjars - Integration of webjars for Wicket.
- wicked-charts - Beautiful and interactive javascript charts for Java-based web applications.
WicketStuff
WicketStuff based libraries
- Annotation - Mount your pages declarativly by java annotations.
- Annotation Event Dispatcher - Improves events handling in Wicket by annotations.
- Async Tasks - Control a background process within a Wicket application.
- Autocomplete TagIt - TagIt integration with Wicket.
- BrowserId - Mozilla Persona integration with Wicket.
- Console - Provides support for executing code dynamically (at runtime).
- Context - Used to locate components,models and models' objects declaratively with @Context annotation.
- Dashboard - Support of dashboards for Wicket for quick access to required information in widgets.
- DataStores - Collection of various implementation of IDataStore: MemCached, Apache Cassandra, Redis, Hazelcast.
- Datatable Autocomplete - Provides a search data structure known as a Trie that allows AJAX searches on large datasets fast.
- DataTables - DataTables jQuery Plugin Integration.
- Editable Grid - A grid component with add/edit/delete feature all at once, apart from supporting sorting/filtering/paging.
- Eidogo - SGF viewer and editor for GO game (also called baduk, igo or weiqi).
- Facebook - Contains wicket components and behaviors to use the Facebook social plugins with wicket.
- Fast Serializer - Wicket Serializer using the Fast 1.x (FST) library.
- Fast Serializer 2 - Wicket Serializer using the Fast 2.x (FST) library.
- GMap3 - Offers a component to use Google Maps v3 within Wicket applications.
- Google AppEngine Initializer - Provides Wicket's org.apache.wicket.IInitializer implementation that auto-configures the Wicket Application to be runable at Google AppEngine.
- Google Charts - Allows creation of charts using the Google Chart API.
- HTML5 - Contains classes that give wicket support for using exciting new Html5 features.
- HTML Compressor - Integration library for Wicket and htmlcompressor.
- InMethodGrid - Data grid component.
- Java EE Inject - Provides integration through Java EE 5 resource injection.
- JEE Web Integration - Embed Servlet, JSP abd JSF content into wicked HTML pages.
- JqPlot Plugin Integration - Produces beautiful line, bar and pie charts with many features.
- JWicket UI Toolip - Generate the JavaScript needed to provide a Wicket Component with a jQuery UI tooltip.
- Kryo Serializer - An implementation of org.apache.wicket.serialize.ISerializer for Wicket.
- Kryo2 Serializer - An implementation of org.apache.wicket.serialize.ISerializer for Wicket.
- LazyModel - Type-safe model implementation.
- Lightbox2 Plugin Integration - Simple, unobtrusive script used to overlay images on top of the current page.
- Logback - The home for classes that can help with using wicket and logback together.
- MBeanView - JMX panel, to view and operate the applications mbeans.
- Minis - Collection of assorted components and behaviors that are too small to warrant their own project.
- ModalX - A lightweight extension to Wicket's ModalWindow capabilities that comes with standardized MessageBox class and allows easy definition of Modal dialog box classes.
- OSGI - Lets you use Wicket in OSGi environments.
- Open Layers 3 - Provides a set of components that may be used to add interactive maps to a Wicket application.
- POI - Integrates Wicket projects to Apache POI.
- Progressbar - Provides a progress bar component for Wicket.
- Push - Provides support for Reverse AJAX in Wicket applications and allows them to "push" partial Web page updates to the Web browser.
- Scala Extensions - Improves the syntax of Wicket models when using the Scala programming language.
- Select2 - Provides Apache Wicket components that leverage Select2 JavaScript library to build select boxes that provide Ajax choice filtering, custom rendering and etc.
- Servlet Container Authentication and Authorization - Simplify the integration of wicket-auth-roles with the servlet 3 security container.
- Spring Reference - Can be used to integrate a wicket web application with spring.
- Stateless - Adds a few components that provide more comprehensive stateless features for Wicket.
- TinyMCE Integration - Integration of the well-known TinyMCE WYSIWYG editor in Wicket.
- Twitter - Contains wicket components and behaviors to use the Twitter widgets with wicket.
- UrlFragment - With this you can build bookmarkable AJAX features and still support the back button.
- WHighCharts - Provides WiQuery bindings for HighCharts.
- Whiteboard - Provides a Whiteboard which can be integrated in any wicket application.
- wicket-foundation - Integrates Wicket and Zurb Foundation.
- Wicket Rest Annotations - Provides a special resource class and a set of annotations to implement REST API/services in much the same way as we do it with Spring MVC or with the standard JAX-RS.
- WiQuery - Wicket integration with jQuery and jQuery UI.
- WqPlot - Provides WiQuery bindings for JqPlot.
Web Frameworks
Web Framework on top of wicket which allow you to build your system easily and smoothly
- Apache Isis - A framework for rapidly developing domain-driven apps in Java.
- BrixCMS - Wicket based CMS (seems to be dead).
- Hippo CMS - Enables enterprises to continuously refine their online business strategy by responding quickly to content performance metrics.
- Nocket - Naked Object based framework for wicket.
- NoWicket - A naked objects framework for Wicket that enables developers to write less boilerplate Wicket code during implementation of complex websites.
- Orienteer - Web framework on top of Wicket and OrientDB to build you own CRM, CMS, ERP, mobile app backend or just common site.
- Vuecket - Web Framework which integrates VueJS and Wicket and most natural way for both of them
- Wicketopia - Rapid Application Development (RAD) library for the Wicket.
Solutions
End-to-end solution based on wicket and derived Web Frameworks
- eFaps - A list od modules and applications that together form the base of a configurable ERP implementation.
- eHour - Open source time tracking tool.
- Estatio - Open source estate management built on Apache Isis and wicket.
- GeoServer - Open source software server written in Java that allows users to share and edit geospatial data.
- NextReports - Smart business reportins.
- Orienteer - Open source Business Application Platform for implementation of data warehouse, CRM, ERP, app/site backend system and other business apps.
- ProjectForge - Open source software for your project management.
- Yes Cart - Pure e-Commerse platform.
IDE Plugins and Tools
- qwickie - Eclipse plugin for the Java Webframework Wicket
- WicketForge - IDE plugin for IntelliJ IDEA designed to assist developers creating applications using Apache Wicket.
License
Awesome Vert.x 
Awesome Vert.x is a list of awesome frameworks, libraries or other components for use with or that use Vert.x version.
If you want your component to appear here send a pull request to this repository to add it.
Please note that we can't vouch for the stability or production-worthiness of everything on this list unless it has
the icon
next to it. This icon means the component is part of the official
Vert.x stack.
For Vert.x version 2 check this page.
Contents
- Books
- Build tools
- Web Frameworks
- Authentication Authorisation
- Database Clients
- Integration
- Middleware
- Language Support
- Reactive
- Sync Thread Non Block
- Vert.x Event Bus Clients
- Vert.x Event Bus Extensions
- Cluster Managers
- Cloud Support
- Docker
- Microservices
- Search Engines
- Template Engines
- Service Factory
- Config
- Dependency Injection
- Testing
- Development Tools
- Miscellaneous
- Distribution
- Examples
- Deployment
- Utilities
- Front-End
Books
- A gentle guide to asynchronous programming with Eclipse Vert.x for Java developers by Julien Ponge, Thomas Segismont and Julien Viet
- Building Reactive Microservices in Java by Clément Escoffier
- Vert.x in Action by Julien Ponge
Build tools
- Vert.x Maven plugin
- Vert.x Gradle plugin
- Vert.x Codegen Gradle plugin - A Gradle plugin to facilitate the codegen usage for Vert.x Java projects.
Web Frameworks
- Vert.x Web
- Full featured web toolkit for Vert.x.
- Vert.x Jersey - Create JAX-RS Jersey resources in Vert.x.
- Kovert - Invisible REST framework for Kotlin + Vert.x Web.
- Handlers - Open web framework for Vert.x.
- QBit - REST and WebSocket method call marshaling and reactive library.
- vertx-rest-storage - Persistence for REST resources in the filesystem or a redis database.
- Jubilee - A rack compatible Ruby HTTP server built on Vert.x 3.
- Knot.x - Efficient & high-performance integration platform for modern websites built on Vert.x 3.
- Irked - Annotations-based configuration for Vert.x 3 Web and controller framework.
- REST.VertX - Lightweight JAX-RS (RestEasy) like annotation processor for Vert.x verticals.
- Atmosphere Vert.x - Realtime Client Server Framework for the JVM, supporting WebSockets and Server Sent Events with Cross-Browser Fallbacks.
- Vert.x Vaadin - Run Vaadin applications on Vert.x.
- Serverx - Allows you to quickly and easily set up a Vert.x-powered server using only route handler annotations.
- Cloudopt Next - Cloudopt Next is a very lightweight and modern, JVM-based, full stack kotlin framework designed for building modular, easily testable JVM applications with support for Java, Kotlin language, crafted from the best of breed Java libraries and standards.
- Donkey - Modern Clojure HTTP server and client built for ease of use and performance.
- SCX - An open and easy-to-use web framework, most functions are based on annotations.
Authentication Authorisation
- Vert.x Auth JDBC
- Vert.x authentication/authorisation JDBC based.
- Vert.x Auth JWT
- Vert.x Authorisation based on JSON Web Tokens.
- Vert.x Auth Shiro
- Vert.x AuthN/AuthZ based on Apache Shiro.
- Vert.x Auth htdigest
- Vert.x Authorisation/Authentication based on Apache htdigest.
- Vert.x Auth Mongo
- Vert.x Authorisation/Authentication based on MongoDB.
- Vert.x Auth OAuth2
- Vert.x Authorisation/Authentication based on OAuth 2.
-
Vert.x Auth htpasswd
- Vert.x Authorisation/Authentication based on htpasswd.
-
Vert.x-Pac4j - Vert.x authentication/authorisation implemented using pac4j.
Database Clients
Clients for connecting to databases
- Relational Databases
- Reactive SQL Client
- High performance reactive SQL client.
- JDBC
- Asynchronous interface around a JDBC datasource.
- MySQL / PostgreSQL
- Asynchronous Client for MySQL/PostgreSQL.
- PostgreSQL - Reactive PostgreSQL Client.
- database - Client for Oracle, PostgreSQL, SQL Server, HyperSQL, etc. designed for security, correctness, and ease of use.
- jOOQ - Doing typesafe, asynchronous SQL and generate code using jOOQ.
-
jOOQx - Leverages the power of typesafe SQL from
jOOQ DSLand uses the reactive and non-blocking SQL driver from Vert.x. -
NoSQL Databases
- MongoDB
- An asynchronous client for interacting with a MongoDB database.
- Redis
- Asynchronous API to interact with Redis.
- Cassandra
- A Vert.x client allowing applications to interact with a Cassandra service.
- Cassandra - Asynchronous API to interact with Cassandra and Cassandra Mapping.
- OrientDB - Non-blocking OrientDB server integration.
- Bitsy - Non-blocking Bitsy Graph server integration.
- MarkLogic - Asynchronous client for Marklogic Database Server.
- SirixDB - Non-blocking SirixDB HTTP-server.
- DGraph - An example on how to build a Vert.x gRPC compliant client. Here targeting dgraph
- RxFirestore - Non-blocking Firestore SDK written in a reactive way.
- MongoDB - Pure functional and reactive MongoDB client on top of Vert.x Effect. Full support for retry, fallback and recovery operations.
-
Aerospike - Asynchronous and non-blocking API to interact with Aerospike server. Uses AerospikeClient's async commands internally and handles the result on the Vert.x Context.
-
vertx-pojo-mapper - Non-blocking POJO mapping for MySQL and MongoDB.
- vertx-mysql-binlog-client - A Vert.x client for tapping into MySQL replication stream.
Integration
- Server-Sent Events
- jEaSSE - Java Easy SSE. A simple, lightweight implementation of SSE.
-
vertx-sse - Vert.x SSE implementation + event-bus SSE bridge.
-
Mail
- SMTP
- Async SMTP client.
-
vertx-smtp-server - SMTP server bridging to EventBus.
-
REST
- Vert.x REST Client - A REST client for Vert.x with support for RxJava and request caching.
- Retrofit adapter for Vert.x - A highly scalable adapter for Retrofit with Vert.x.
- openapi4j adapter for Vert.x - OpenAPI 3 request validator and router factory alternative.
-
Vert.x Effect HTTP client - Pure functional and reactive HTTP client using Vert.x Effect with OAuth support and retry, fallback and recovery operations.
-
File Server
- Vert.x TFTP Client - TFTP client for Vert.x support download/upload files.
- Messaging
- AMQP 1.0
- Interact with AMQP 1.0 servers using the Vert.x Producer and Consumer APIs.
- MQTT
- Provides two different components: an MQTT server for handling all the MQTT communication and messages exchanges with clients and an MQTT client for sending and receiving messages against an MQTT broker.
- RabbitMQ
- A RabbitMQ client (AMQP 0.9.1).
- Kafka Client
- A Kafka client.
- kafka - Kafka client for consuming and producing messages.
- Kafka Service - Kafka producer and consumer with retry logic.
- SaltStack - A bi-directional bridge between the SaltStack event system and the Vert.x event bus.
- STOMP
- A Kafka client and server.
- ZeroMQ - ZeroMQ Event Bus bridge.
- MQTT Broker - MQTT Broker (MQTT ver. 3.1.1 and 3.1 compliant).
- Azure ServiceBus - Azure ServiceBus producer and consumer (fully async, doesn't use Microsoft Azure SDK).
- AMQP 1.0 - Kafka bridge - Bridge for sending/receiving messages to/from Apache Kafka using the AMQP 1.0 protocol.
- Vert.x Kafka Client
- Apache Kafka client for reading and sending messages from/to an Apache Kafka cluster.
- The White Rabbit - An asynchronous RabbitMQ (AMQP) client based on Kotlin coroutines.
-
WAMP Broker - A WAMP broker you can embed into your Vert.x application.
-
JavaEE
- JCA adaptor
- Java Connector Architecture Adaptor for the Vert.x event bus.
-
Weld - Brings the CDI programming model into the Vert.x ecosystem (register CDI observer methods as Vert.x message consumers, CDI-powered Verticles, define routes in a declarative way, etc.).
-
Meteor
-
Meteor - Meteor integration support through Vert.x event bus.
-
Metrics
- Hawkular metrics - Hawkular implementation of the Vert.x Metrics SPI.
- DropWizard metrics
- Metrics implementation using DropWizard metrics.
- Micrometer metrics
- Metrics implementation using Micrometer metrics.
- OpenTsDb Metrics - OpenTsDb metrics client for Vert.x.
-
Bosun Monitoring - Bosun client library for Vert.x.
-
Netflix - Hystrix
-
Hystrix Metrics Stream - Emits metrics for Hystrix Dashboard from a Vert.x application with Hystrix.
-
Dart
-
Vert.x Dart SockJS - Dart integration for Vert.x SockJS bridge and plain SockJS with use of dart:js.
-
Push Notifications
-
Onesignal - Send push notifications to (mobile/web) apps from your Vert.x application with OneSignal.
-
CNCF CloudEvents
- CloudEvents.io Java SDK - Send and receive CloudEvents using the Vert.x HTTP Transport for CloudEvents.
Middleware
- Apache Camel - Apache Camel component for bridging Camel with the Vert.x event bus.
- Gateleen - Middleware library based on Vert.x to build advanced JSON/REST communication servers.
- Gravitee.io - An OSS API Platform including an API Gateway and an OAuth2 / OIDC authorization server based on Vert.x Core / Vert.x Web and other modules.
- API Framework - Vert.x and Glue based microservice framework removing distinction between standalone and serveless application. All services can run in standalone server, but, if required, same codebase can be used to run any service as serverless application.
Language Support
Programming language support for Vert.x
- Ceylon
- Ceylon support.
- Groovy
- Groovy support.
- Java
- Vert.x main repository (including the Java API).
- JavaScript
- JavaScript support.
- Python - Python support.
- Ruby
- Ruby support.
- Scala -
- Scala support.
- Kotlin -
- Kotlin support.
- EcmaScript - EcmaScript >=6 (JavaScript) support.
- Php - Php support.
Language extensions
- Grooveex - Syntactic sugar + utilities (DSL builders, etc.) on top of vertx-lang-groovy.
Reactive
- Reactive Streams
- Vert.x Reactive Streams.
- Vert.x Rx
- Vert.x Reactive Extensions.
- Vert.x Sync
- Vert.x fiber support.
- Kotlin coroutines
- Vert.x support for Kotlin coroutines.
- vertx-util - Light weight promises & latches for Vert.x.
- QBit - Async typed actor-like lib that runs easily in Vert.x Async Callbacks. Callback management.
- VxRifa - Utility library for Vert.X that allows using strong-typed interfaces in communication through EventBus.
- Vert.x Effect - Pure functional and reactive library based on the IO Monad to implement any complex flow. Full support for retry, fallback and recovery operations.
Sync Thread Non Block
- Sync - Synchronous but non-OS-thread-blocking verticles.
Vert.x Event Bus Clients
Clients to connect applications to the Vert.x event bus
- JavaScript
- JavaScript event bus client.
- C++11 - C++11 event bus client.
- Java - Java implementation of vertxbus.js.
- Java - Java and Android Event Bus Client.
- Java - Simple Java Event Bus Client using plain TCP socket I/O.
- CLI - Command-line binary client for Vert.x event bus - pipe in JSON, emit JSON.
- Swift - Event bus client for Apple's Swift using the TCP-based protocol.
- Python - Event bus client for Python using the TCP-based protocol.
- C# - Event bus client for C# using the TCP-based protocol.
- C - Event bus client for C99 using the TCP-based protocol.
- Go- Event bus client for Go-lang using the TCP-based protocol.
- Smalltalk- Event bus client for Pharo Smalltalk using the TCP-based protocol.
- Java - Event bus support in JavaScript through Java code.
- Elixir - Event bus support for Elixir apps using TCP socket.
- Rust - Event bus client for Rust applications through TCP.
Vert.x Event Bus Extensions
- Eventbus Service - Code generator for type-safe event bus communication via simple Kotlin interfaces.
Cluster Managers
Implementations of the Vert.x cluster manager SPI
- Hazelcast Cluster Manager
- Hazelcast cluster manager.
- Ignite Cluster Manager
- Ignite cluster manager.
- JGroups Cluster Manager - JGroups cluster manager.
- Zookeeper Cluster Manager
- Zookeeper cluster manager.
- Atomix Cluster Manager - An Atomix based cluster manager implementation for Vert.x 3.
- Infinispan Cluster Manager
- Infinispan cluster manager.
- Consul Cluster Manager - Consul cluster manager.
Cloud Support
- OpenShift DIY cartridge
- OpenShift DIY Cartridge using Vert.x.
- OpenShift Vert.x cartridge
- OpenShift Vert.x Cartridge using Vert.x.
- S3 - A fully functional Vert.x client for S3.
- AWS SDK - Use AWS Java SDK v2 (async) with Vert.x
Docker
- Docker images
- Docker images for Vert.x.
Microservices
- Service Discovery
- Vert.x Service Discovery.
- Circuit Breaker
- Vert.x Circuit Breaker.
- Service Discovery - Consul
- Consul extension to Vert.x Service Discovery.
- Service Discovery - Docker links
- Docker extension to Vert.x Service Discovery.
- Service Discovery - Kubernetes
- Kubernetes extension to Vert.x Service Discovery.
- Service Discovery - Redis backend
- Redis storage backend for Vert.x Service Discovery.
- Vert.x GraphQL Service Discovery - GraphQL service discovery and querying for your Vert.x microservices.
- Resilience4j - Resilience4j is a fault tolerance library designed for Java8 and functional programming. Resilience4j provides modules for Circuit Breaking, Rate Limiting, Bulkheading, Automatic retrying, Response caching and Metric measuring.
- Autonomous Services - A toolkit for creating autonomous services. An architecture that leverages vert.x and nannoq-tools to provide an event-based reactive architecure without centralized components, neither for communication or data, providing a theoretically linear scalability across the architecture.
- Apache ServiceComb Java Chassis - ServiceComb Java Chassis is a Software Development Kit (SDK) for rapid development of microservices in Java, providing service registration, service discovery, dynamic routing, and service management features.
Search Engines
- Vert.x Elasticsearch Service - Vert.x 3 Elasticsearch service with event bus proxying.
- Vert.x Elasticsearch Service (redesign) - Vert.x 3 Elasticsearch service with event bus proxying. Redesign of the Vert.x Elasticsearch Service. Heavy usage of DTOs over eventbus and no more JsonObjects. Added support for ES plugins.
- Vert.x Solr Service - Vert.x 3 Solr service with event bus proxying.
Template Engines
- KorTE Template Engine - Kotlin Template Engine similar to Twig/Django/Liquid supporting calling Kotlin suspend methods.
Service Factory
- Service Factory
- Vert.x Service Factory.
- Maven Service Factory
- Maven Vert.x Service Factory.
- HTTP Service Factory
- Vert.x HTTP Service Factory.
- Node.js Service Factory - Vert.x Node.js Service Factory.
- Eclipse SISU Service Factories - Vert.x integration with Eclipse SISU DI container offering alternatives for
vertx-service-factoryandvertx-maven-service-factory.
Config
- Vert.x Config AWS SSM Store - A config store implementation for retrieving configuration values from the AWS EC2 SSM Parameter Store.
- Vert.x Boot - Deploying verticles from a HOCON configuration.
Dependency Injection
- Vert.x Guice - Vert.x verticle factory for Guice dependency injection.
- Vert.x HK2 - Vert.x verticle factory for HK2 dependency injection.
- Spring Vert.x Extension - Vert.x verticle factory for Spring DI injection.
- Vert.x Beans - Inject Vert.x objects as beans into your Spring application.
- QBit - QBit works with Spring DI and Spring Boot (and of course Vert.x). Allows you to use QBit, Vert.x, Spring DI and Spring Boot in the same application.
- Vert.x Eclipse SISU - Vert.x integration with Eclipse SISU DI container.
- Vert.x Spring Verticle Factory - A Vert.x Verticle Factory that makes use of Spring to obtain and configure Verticles.
- Glue - Proven and opinionated programming, and configuration model for Java and Vert.x based applications. Inspired from ATG Nucleus, provides powerful layer base configuration management using simple properties file.
Testing
- Vert.x Unit
- Async polyglot unit testing for Vert.x.
- Vert.x JUnit5
- Async unit testing for Vert.x with junit5.
- Vert.x WireMongo - Lightweight MongoDB mocking for Vert.x
Development Tools
- Vert.x shell
- Allows for interaction with Vert.x from the command line.
- Vert.x health check - Allows for remote health checking in Vert.x projects.
- Vert.x Hot - A Maven plugin for the hot-deploy of Maven Vert.x projects.
- slush-vertx - A template driven Vert.x project generator for different languages and build tools.
- Vert.x for Visual Studio Code - A Visual Studio Code (polyglot) plugin for Vert.x. Also available from the Marketplace.
- Vert.x Starter - A browser-based project starter and project templates for Vert.x applications.
- Vert.x LiveReload - A simple livereload server for Vert.x applications.
- openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3).
Miscellaneous
- Vert.x Child Process - Spawn child process from Vert.x.
- vertx-redisques - A highly scalable redis-persistent queuing system for Vert.x.
- Simple File Server - An OpenStack Swift compatible distributed object storage server that can serve and securely store billions of large and small files using minimal resources implemented using Vert.x.
- Vert.x Boot - Deploying verticles from a HOCON configuration.
- GDH - Generalized Diffie-Hellman key exchange Java library built on top of Vert.x.
Distribution
- Vert.x Stack
- Vert.x + the endorsed modules.
Examples
- Vert.x blueprint - Microservice application
- The official Vert.x blueprint showing how to build a complex microservice application.
- Vert.x blueprint - Job Queue
- The official Vert.x blueprint showing how to build a distributed job processing application.
- Vert.x blueprint - TODO backend
- The official Vert.x blueprint showing how to build a backend for a TODO application.
- Vert.x examples
- The official Vert.x examples including web examples, how to use the official database clients, etc.
- Vert.x feeds - Example of an RSS aggregator built using Vert.x, Gradle, MongoDB, Redis, Handlebars templates, AngularJS, the event bus and SockJS.
- Vert.x Markdown service - Example on how to use service-proxy with Gradle.
- Example using event bus and service proxies to connect vertx and node - Step by step example with wiki description showing how to connect Vert.x and Node using event bus and service proxies.
- Vert.x Todo-Backend implementation - Pure Java 8 implementation of the Todo MVC backend. Uses a Vert.x LocalMap for storage.
- Kotlin Todo-Backend implementation - Kotlin implementation of the Todo MVC backend.
- Scala Todo-Backend implementation - Scala implementation of the Todo MVC backend.
- Grooveex Todo-Backend implementation - Todo MVC backend implementation with Vert.x + Groovy + some syntactic sugar + DSL routing facilities.
- Vert.x Gradle Starter - Java 8 starter application with example of using Vert.x with Gradle build system, profiles configuration and SLF4J.
- Vert.x Gentics Mesh Example - Example on how to build a template-based web server with Gentics Mesh and handlebars.
- HTTP/2 showcase - A simple demo, showing how HTTP/2 can drastically improve user experience when a huge latency is involved.
- Vert.x Music Store - An example application on how to build Vert.x applications with RxJava.
- Crabzilla - Yet another Event Sourcing experiment. A project exploring Vert.x to develop Event Sourcing / CQRS applications.
- Vert.x PostgreSQL Starter - A starter to build a monolithic CRUD RESTful Web Service with Vert.x stack and PostgreSQL.
- Cloud Foundry - An example Vert.x for deploying to a Cloud Foundry service provider.
- Knative - An example application on how to use Reactive Extensions Vert.x with Knative.
- Starter Single Verticle API - REST API Starter and Project Template ready to deploy with lots of plumbing code, examples, and documentation to quickly develope an API with almost no knowledge of vert.x and without any waste of time.
Deployment
- Vert.x Deploy Application - (Seamless) deploy to AWS based Vert.x application clusters.
Utilities
- Chime - Time scheduler working on Vert.x event bus allowing for scheduling with cron-style and interval timers.
- Vert.x Cron - Schedule events with cron specifications. Has event bus and Observable versions.
- Vert.x CronUtils - An abstraction of cron-utils for the vertx scheduler. Unix, Cron4j and Quartz style expressions are supported.
- Vert.x Scheduler - A lightweight plugable scheduler based on plain Vert.x core without any external libs for scheduling with cron-style and interval timers with a detail monitor on both sync and async task.
- Vert.x POJO config - Allows for mapping between standard JSON configuration and a (type-safe) configuration Java bean. Also allows the configuration bean to be validated through JSR 303.
- Vert.x Async - Portage of caolan/async nodejs module to Vert.x framework that provides helpers methods for common async patterns.
- Vert.x JOLT - JSON to JSON transformation tool based on the original bazaarvoice JOLT project. Helpful to transform different json structure into an expected json format.
- Vert.x Dependent Verticle Deployer - A Vert.x Verticle intended to deploy verticles and their dependent verticles.
- Vert.x Dataloader - Java port of Facebook Dataloader for Vert.x. Efficient batching and caching for your data layer.
- Vert.x Util - A collection of Vert.x utility methods.
- Vert.x Web Accesslog - Just a simple handler to be used in Vert.x Web to generate access logs.
- Vert.x GraphQL Utils - A route handler and Vert.x compatible interfaces to handle GraphQL queries in Vert.x and Vert.x Web.
- Nannoq-Tools - Nannoq-Tools is a toolkit for constructing robust, scalable and distributed applications leveraging Vert.x including modules for authentication, cluster management, Firebase Cloud Messaging, DynamoDB, fully generic queries, REST, and more.
- Contextual logging - Mapped Diagnostic Context (MDC) that works with the Vert.x event-loop model.
Presentations
Community
- User Group - Discuss all user issues related to using Vert.x.
- Developer Group - A group for Vert.x core developers and contributors.
- Discord Server - Chat about any Vert.x-related topic.
- Issues - Vert.x core issue tracker.
- Wiki - Contains useful information about Vert.x.
- Blog - The official Vert.x blog containing many tutorials and other information.
Articles
- Going reactive with Eclipse Vert.x and RX Java
- First Steps With Vert.x and Infinispan - Part 2: PUSH API
- First Steps With Vert.x and Infinispan - Part 1: REST API
- Location Transparency With Vert.x
- Reactive Microservices and Service Discovery with Vert.x
- https://dzone.com/articles/vertx-330-development-automation
- Vert.x 3.3.0 Features Enhanced Networking Microservices, Testing and More
- Launching Vert.x Dynamically
- Secure Your Vertx 3 App With Pac4j
- Interview with Tim Fox About Vert.x 3, the Original Reactive, Microservice Toolkit for the JVM
Tutorials
Social events / Meetups
Front-End
- VertxUI - A pure Java front-end toolkit with descriptive fluent views-on-models, POJO traffic, JUnit testing on the virtual DOM or mixed-language on a real DOM, and more.
Contribute
Contributions welcome! Read the contribution guidelines first.
Awesome Terraform
A curated list of resources on HashiCorp's Terraform.
Your contributions are welcome!
Terraform enables you to safely and predictably create, change, and improve production infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
Sponsored by Scalr - Terraform Automation & Collaboration Software
Contents
- Legend
- Official Resources
- Community
- Books
- Tutorials and Blog Posts
- Beginner Guides
- Writing Custom Providers
- How-To
- Multi-Environment Configuration
- Azure
- AWS
- Google Cloud
- Miscellaneous
- Community Modules
- Private Module Registries
- Private Provider Registries
- Providers
- Hashicorp supported providers
- Vendor supported providers
- Testing
- Tools
- Libraries
- Boilerplates
- Terraform Enterprise
- Videos
- Editor Plugins
- License
Legend
- Not compatible with terraform >= 0.12 :ghost:
- Abandoned :skull:
- Monetized :heavy_dollar_sign:
Official Resources
- Hashicorp Terraform Blog
- Introduction to Terraform
- Terraform Documentation
- Terraform GitHub Actions
- Terraform learn
Community
- weekly.tf - Terraform Weekly Newsletter - Various news in the Terraform world (projects, announcements, discussions).
- Complete Terraform documentation as PDF files (Updated nightly)
- Terraform AWS Modules + meta-configurations repository
- Terraform Bug Tracker
- Terraform Community Modules
- Terraform Gitter
- Terraform Discuss
- Terraform Provider/Module Registry
- Terraform PDF Doc :skull:
- Terragrunt Reference Architecture
Books
- Big Little Book On Terraform
- Bootstrapping Microservices with Docker, Kubernetes, and Terraform.
- Deep-Dive Terraform on Azure
- Getting Started with Terraform, 2nd ed.
- HashiCorp Infrastructure Automation Certification Guide
- Infrastructure as Code
- Patterns and Practices for Infrastructure as Code: With examples in Python and Terraform
- Terraform Best Practices - open-source ebook
- Terraform Cookbook
- Terraform in Action
- Terraform: Up & Running, 2nd ed.
- The Terraform Book
Tutorials and Blog Posts
Beginner Guides
- A Comprehensive Guide to Terraform - Series of blog posts from the author of "Terraform: Up & Running" that guide the reader from beginning with Terraform to using it in the real world.
- Using Terraform for Cloud Deployments - Part 1 - Provisioning an EC2 instance.
- Hello, world: The Fargate/Terraform tutorial I wish I had - Blog post describing setting up an ECS Fargate cluster from scratch
Writing Custom Providers
- Creating custom terraform providers - Guide for creating custom providers.
- Writing a Terraform provider - Guide for creating custom providers.
- Writing Custom Providers - Official documentation for creating custom providers.
How-To
- How To Write OPA for Terraform - How to use Open Policy Agent to evaluate and enforce policy on your Terraform plans
- Deploying Discourse with Terraform - Shows how Terraform can create a running instance of Discourse on DigitalOcean in one command.
- Deploying Django to AWS ECS with Terraform - Looks at how to use Terraform to spin up the required AWS infrastructure for running a Django app on ECS.
- Easily Deploy A Seneca Microservice to ECS with Wercker and Terraform: Part I, II & III - Illustrates how Terraform can be incorporated into a microservice deployment pipeline.
- Terraform for a Highly Available VPN between AWS and Azure - Terraform code to deploy a highly available VPN between AWS and Azure.
- Terraforming 1Password - How 1Password migrated from CloudFormation to Terraform.
- Tutorial: How to Use Terraform to Deploy OpenStack Workloads - Illustrates how easy it is to use the OpenStack Terraform provider to deploy a web server.
- Zero Downtime Updates with HashiCorp Terraform - Ensuring zero downtime of your infrastructure.
- Google Cloud Platform for 10$ a month using terraform - Shows how to use terraform to create a secure Google Kubernetes Cluster, Google Cloud Run Services and other infrastructure elements for less than 10$ a month.
Multi-Environment Configuration
- Terraform Design Patterns: the Terrafile - Managing Terraform modules and their versions within Terraform projects with Terrafile.
- Terraform, VPC, and why you want a tfstate file per env - Some gotchas surrounding using Terraform in large projects with multiple environments and how to avoid them.
- Using Pipelines to Manage Environments with Infrastructure as Code - Explains different approaches for building a pipeline to handle infrastructure changes moving from one environment to the next.
Azure
- Learning HashiCorp Terraform - Guide for Azure.
- New Terraform Azure Automation Resources - Azure Automation.
- Terraforming Azure PaaS - Deploy PaaS Resources on Azure.
AWS
- AWS Lambda the Terraform Way - Understand AWS Lambda in-depth, beyond executing functions, using Terraform. Also includes guides for integration with S3, API Gateway, DynamoDB, Kinesis, SQS.
- Managing AWS Lambda Functions with Terraform - What is AWS Lambda used for and how to use Terraform to manage AWS Lambda functions?
Google Cloud
-Managing infrastructure as code with Terraform, Cloud Build, and GitOps - Setup and manage infrastructure as code with Terraform, Cloud Build, and GitOps. -Getting started with Terraform on Google Cloud - Using Terraform to create a VM in Google Cloud and Starting a basic Python Flask server. -Managing Cloud Infrastructure with Terraform - Deploy Kubernetes Load Balancer Service with Terraform,HTTPS Content-Based Load Balancer with Terraform,Modular Load Balancing with Terraform - Regional Load Balancer, Custom Providers with Terraform, Cloud SQL with Terraform,Building a VPN Between Google Cloud and AWS with Terraform. -Hashicorp Terraform Tutorials for Google Cloud - Get started with Terraform on Google Cloud.
Miscellaneous
- Sharing data between Terraform configurations - Illustrates how to use remote state to share data between Terraform configurations.
- The Segment AWS Stack - Shows the behind the scenes of the infrastructure powered by Terraform that solved The Million Dollar Engineering Problem at Segment.
- Top 3 Terraform Testing Strategies for Ultra-Reliable Infrastructure-as-Code
- Two Weeks with Terraform - Some hard-earned experience from using Terraform in the wild, and some operational wisdom.
- Terraform: Beyond the Basics with AWS - Explanation of a demo using Terraform to provision a sample AWS architecture.
- Terraform cost estimation - Anonymized, secure, and free Terraform cost estimation based on Terraform plan (0.12+) or Terraform state (any version).
- How to Debug Terraform Projects: Tutorial
Community Modules
For more Community Modules not listed here please see the Terraform Module Registry.
- rancher-terraform-digitalocean - Rancher server on digitalocean.
- segmentio/stack - Configures production infrastructure with AWS, Docker, and ECS.
- terraform-aws-alb - Creates Application load-balancer on AWS (verified module).
- terraform-aws-appconfig - Creates AWS AppConfig resources on AWS.
- terraform-aws-atlantis - Creates Terraform configurations for running Atlantis on AWS Fargate. Github, Gitlab and BitBucket are supported.
- terraform-aws-autoscaling - Creates Auto-Scaling Groups and Launch Configurations (verified module).
- terraform-aws-customer-gateway - Creates Customer Gateway on AWS.
- terraform-aws-datadog-forwarders - Creates resources on AWS to forward logs/metrics to Datadog.
- terraform-aws-dms - Creates AWS DMS (Database Migration Service) resources on AWS.
- terraform-aws-dynamodb-table - Creates DynamoDB table on AWS.
- terraform-aws-ec2-instance - Creates EC2 instances on AWS.
- terraform-aws-ecr - Manages Docker container registries on AWS ECR.
- terraform-aws-ecs - Creates AWS ECS resources on AWS.
- terraform-aws-efs - Defines an EFS Filesystem.
- terraform-aws-eks - Creates Elastic Kubernetes Service on AWS (very popular module).
- terraform-aws-elb - Creates Elastic load-balancer on AWS (verified module).
- terraform-aws-eventbridge - Creates EventBridge resources on AWS.
- terraform-aws-jenkins-ha-agents - EC2 Based Jenkins deployment with HA (spot) agents. Runs on EFS for immutability. Fully customizeable, with sensible defaults.
- terraform-aws-jenkins - Build a Docker image with Jenkins, saves it to an ECR repo, and deploys it to Elastic Beanstalk running a Docker stack.
- terraform-aws-key-pair - Automatically Generate SSH Key Pairs (Public/Private Keys).
- terraform-aws-lambda - Terraform module, which builds dependencies and packages, and also creates AWS Lambda resources in countless combinations.
- terraform-aws-lambda-auto-package - A terraform module to define a lambda function which source files are automatically built and packaged for lambda deployment.
- terraform-aws-managed-service-prometheus - Creates AWS Managed Service for Prometheus (AMP) resources on AWS.
- terraform-aws-modules - Collection of Terraform AWS modules supported by the community (includes official AWS modules).
- terraform-aws-msk-kafka-cluster - Creates AWS MSK (Managed Streaming for Kafka) resources on AWS.
- terraform-aws-notify-slack - Creates SNS topic and Lambda function which sends notifications to Slack.
- terraform-aws-postgresql-rds - Creates PostgreSQL on RDS.
- terraform-aws-rds - Creates RDS resources on AWS (verified module).
- terraform-aws-rds-aurora - Creates RDS Aurora cluster resources on AWS (verified module).
- terraform-aws-rds-proxy - Creates AWS RDS Proxy resources on AWS.
- terraform-aws-redshift - Creates Redshift resources on AWS.
- terraform-aws-route53 - Creates Route53 resources on AWS.
- terraform-aws-secure-baseline - Set up your AWS account with the secure baseline configuration based on CIS Amazon Web Services Foundations.
- terraform-aws-security-group - Creates EC2-VPC security groups on AWS (verified module).
- terraform-aws-ssh-bastion-service - Terraform plan to deploy ssh bastion as a stateless service on AWS.
- terraform-aws-s3-bucket - Creates S3 bucket resources on AWS.
- terraform-aws-transit-gateway - Creates Transit Gateway resources on AWS.
- terraform-aws-vpc - Creates VPC resources on AWS (verified and very popular module).
- terraform-aws-vpn-gateway - Creates VPN gateway resources on AWS.
- terraform-azurerm-aks - Create AKS resources on Azure.
- terraform-azurerm-iis - Install IIS Server on Azure VM instance.
- terraform-azurerm-mysql - Create MySql Database on Azure.
- terraform-azurerm-redis - Create Redis on Azure.
- terraform-azurerm-sqlserver - Create SQl Server Database on Azure.
- terraform-cloudflare-maintenance - Module to create a Maintenance Page using Cloudflare Workers.
- terraform-digitalocean-droplet - Terraform module for managing DigitalOcean Droplets and related resources.
- terraform-ecs-jenkins - Provisions Jenkins on AWS ECS using Terraform.
- terraform-google-project-factory - Opinionated Google Cloud Platform project creation and configuration with Shared VPC, IAM, APIs, etc.
- terraform-linode-k8s - Installs Kubernetes on Linode Instances.
- terraform-static-website-s3-cloudfront - Creates static websites on AWS S3 & Cloudfront based on variables.
- tf_aws_bastion_s3_keys - Creates bastion hosts on AWS EC2.
Private Module Registries
- anthology - Private Terraform registry implementation as an alternative to the official registry.
- citizen - Private Terraform Module Registry
- modulehub - Private Terraform Module Registry and State backend.
- terraform-simple-registry - Simple implementation of the Terraform registry protocols.
- terraform-registry - Serve terraform provider registry backed by GitHub releases.
Private Provider Registries
- terustry - Open Source terraform provider registry acting as a proxy for gitlab or github releases.
Providers
Hashicorp supported providers
- terraform-provider-aws - Plugin for Amazon Web Services.
- terraform-provider-azurerm - Plugin for Microsoft Azure.
- terraform-provider-docker - Plugin for Docker.
- terraform-provider-google - Plugin for Google Cloud Platform.
- terraform-provider-helm - Plugin for Helm.
- terraform-provider-kubernetes - Plugin for Kubernetes.
- terraform-provider-vsphere - Plugin for VMware vSphere.
Vendor supported providers
- terraform-provider-alicloud - Plugin for Alibaba Cloud.
- terraform-provider-azuredevops - Provider for Azure DevOps (VSTS).
- terraform-provider-buildkite - Plugin for Buildkite.
- terraform-provider-checkly - Manage Checkly resources for API & E2E monitoring.
- terraform-provider-datadog - Plugin for Datadog.
- terraform-provider-digitalocean - Plugin for DigitalOcean.
- terraform-provider-dominos - Provider for Dominos Pizza.
- terraform-provider-github - Plugin for GitHub.
- terraform-provider-gitlab - Plugin for GitLab.
- terraform-provider-graphql - Plugin for GraphQL queries and mutations.
- terraform-provider-hcloud - Plugin for Hetzner Cloud.
- terraform-provider-healthchecksio - Provider to manage healthchecks.io resources.
- terraform-provider-heroku - Plugin for Heroku.
- terraform-provider-ibm - Plugin for IBM Cloud.
- terraform-provider-k8s - Simple Kubernetes Provider, works with any manifest.
- terraform-provider-keycloak - Provider to manage the settings of your Keycloak identity provider server.
- terraform-provider-linode - Plugin for Linode.
- terraform-provider-openstack - Plugin for OpenStack.
- terraform-provider-pingdom - Provider to manage Pingdom resources.
- terraform-provider-rancher2 - Provider for Rancher v2.
- terraform-provider-secrethub - Provider for SecretHub.
- terraform-provider-snowflake - Provider for Snowflake data warehouse.
- terraform-provider-spinnaker - Manage Spinnaker applications and pipelines with Terraform.
- terraform-provider-spotinst - Devops automation platform for AWS, Azure, GCP.
- terraform-provider-stripe - Provider for Stripe.
- terraform-provider-ucloud - Provider to manage UCloud resources.
- terraform-provider-uptimerobot - Provider to manage uptimerobot resources.
- terraform-provider-vaulted - Encrypted HashiCorp Vault secrets via Terraform that can be stored in SCM such as Git.
Testing
- kitchen-terraform - Provides a set of Test Kitchen plugins which enable a system to use Test Kitchen to converge a Terraform configuration and verify the resulting Terraform state with InSpec controls.
- rspec-terraform - RSpec tests for your Terraform modules.
- terraform-compliance - BDD Testing for Terraform Files.
- terraform_validate - Assists in the enforcement of user-defined standards in Terraform.
- terratest - Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.
- clarity - A declarative test framework for Terraform for unit testing.
Tools
- AirIAM - AirIAM is a tool for AWS IAM to least privilege Terraform execution framework.
- astro - Astro is a tool for managing multiple Terraform executions as a single command. :ghost:
- atmos - A universal tool that converts deep merged YAML to module inputs. :alien:
- atlantis - Unified workflow for collaborating on Terraform through GitHub.
- aztfy - A tool to bring existing Azure resources under Terraform's management.
- blast radius - Interactive visualizations of Terraform dependency graphs. :skull:
- Checkov - Terraform static analysis tool for terraform>=0.12
- Cloudrail - Terraform and Live Cloud context-based analysis tool for terraform>=0.12 :heavy_dollar_sign:
- driftctl - Detect, track and alert on infrastructure drift
- flora - Terraform version manager.
- fogg - A tool for eliminating toil in managing terraform repositories.
- former2 - Generate terraform configuration from your existing resources within your AWS account.
- gaia - A web application to import and run your Terraform modules.
- hcldump - Dump the HCL (v2) abstract syntax tree.
- hcledit - A command line editor for HCL.
- hclgrep - Syntax based grep for HCL(v2).
- iam-policy-json-to-terraform - Small tool to convert an IAM Policy in JSON format into a Terraform aws_iam_policy_document
- k2tf - Kubernetes YAML to Terraform HCL converter.
- KICS - Scans IaC projects for security vulnerabilities, compliance issues, and infrastructure misconfiguration. Currently working with Terraform projects, Kubernetes manifests, Dockerfiles, AWS CloudFormation Templates, and Ansible playbooks.
- Infracost - Cloud cost estimates for Terraform in your CLI and pull requests.
- inframap - Read your tfstate or HCL to generate a graph specific for each provider, showing only the resources that are most important/relevant.
- json2hcl - Convert JSON to HCL and vice versa. :ghost:
- modules.tf-lambda - Infrastructure as code generator from visual diagrams created with Cloudcraft.co to Terraform.
- para - The missing 3rd-party plugin manager and a "swiss army knife" for Terraform/Terragrunt - just 1 tool to facilitate all workflows. :skull:
- pre-commit-terraform - pre-commit git hooks to take care of Terraform configurations (auto-format, validate, update docs).
- pretf - drop-in Terraform wrapper that generates Terraform configuration with Python. See pretf documentation
- python-terrafile - Systematically manage external modules from Github for use in Terraform.
- prettyplan - Prettyplan (available online here) is a small tool to help you view large Terraform plans with ease. :ghost:
- regula - Evaluates Terraform infrastructure-as-code for potential AWS, Azure, and Google Cloud security misconfigurations and compliance violations prior to deployment.
- rover - Interactive Terraform state and configuration explorer.
- ruby-terraform - Simple Ruby wrapper for invoking terraform commands.
- scenery - Another Terraform plan output prettifier. :ghost:
- scratchrelaxtv - Simple Python tool to help with module development - extract vars from
main.tfto generatevariables.tfand make module usage stub fromvariables.tf. - serverless.tf - Doing serverless with Terraform - serverless.tf is an opinionated open-source framework for developing, building, deploying, and securing serverless applications and infrastructures on AWS using Terraform. Read more.
- Shisho - Lightweight static analyzer for Terraform.
- tads-boilerplate - The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices.
- tau - Tau is a thin wrapper on top of terraform to manage multiple deployments, dependencies and secrets.
- terraboard - Web dashboard to inspect Terraform States.
- terraboot - DSL to generate a terraform configuration and run it.
- terracognita - Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration.
- terracost - Cloud cost estimation for Terraform in your CLI.
- TerraDepot Terraform state repository, based on the default http remote backend. Allows the central administration of tfstates on AWS S3.
- terradozer - Terraform destroy without configuration files.
- terrafile - Systematically manage external modules from Github for use in Terraform (written in Go).
- terrafile - Systematically manage external modules from Github for use in Terraform (written in Ruby).
- terraform-bundle - Easily builds bundles containing a Terraform binary as well as provider binaries. Useful for CI and air-gapped Terraform Enterprise.
- terraform-cdk - CDK (Cloud Development Kit) for Terraform allows developers to use familiar programming languages to define cloud infrastructure and provision it through HashiCorp Terraform.
- terraform-credentials-vault - A Terraform "credentials helper" plugin that allows providing credentials for Terraform-native services (private module registries, Terraform Cloud, etc) via environment variables.
- terraform-docs - Quick utility to generate docs from terraform modules.
- terraform-graph-beautifier - Command line tool allowing to convert the barely usable output of the terraform graph command to something more meaningful and explanatory.
- terraform-landscape - (only 0.11 and earlier) Improve Terraform's plan output to be easier to read and understand.
- terraform-operator - A Kubernetes CRD to handle Terraform operations.
- terraform-plan-parser - Command line utility and JavaScript API for parsing stdout from
terraform planand converting it to JSON. :ghost: - terraform-provisioner - Tool for managing multiple provisions of the same Terraform scripts.
-
terraform-rake-tasks - Shared Rake tasks for managing terraform plans.
-
terraform.py - Ansible dynamic inventory script for parsing Terraform state files.
- terraformer - CLI tool to generate terraform files from existing infrastructure. Infrastructure to Code. Supported many providers.
- terraforming - Export existing AWS resources to Terraform style (tf, tfstate). Similar to
terraformer. - terraformize - Apply\Destroy Terraform modules via a simple REST API endpoint.
- Terraform-Visual A simple but powerful tool to visualize Terraform plan.
- terragrunt - Terragrunt is a thin wrapper for Terraform that provides extra tools for keeping your Terraform configurations DRY, working with multiple Terraform modules, and managing remote state.
- terrahelp - Command line utility aimed at providing supplementary functionality which can sometimes prove useful when working with Terraform.
- terrahub - TerraHub is terraform automation and orchestration tool. Seamlessly integrated into console.terrahub.io, enterprise friendly GUI to show realtime terraform executions, as well as auditing and reporting capabilities for historical terraform runs. :heavy_dollar_sign:
- terrascan - Collection of security and best practice test for static code analysis of terraform templates
- terraspace - The Terraform Framework
- terrastate - Visual Studio Code extension to monitor/deploy/destroy Terraform resources in your workspace
- terratag - Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources.
- tf-init-booster A Pre-terraform routine that speedups terraform modules download for bulky blueprints.
- tfcmt - CLI to notify the result of plan and apply as Pull Request comment.
- tfsec - Terraform static analysis tool that supports terraform <0.12 & >=0.12 & directly integrates with HCL parser for better results.
- tfenv - Terraform version manager inspired by rbenv.
- tfjson - Utility to read in a Terraform plan file and dump it out in JSON. :skull:
- tflint - Terraform linter for detecting errors that can not be detected by
terraform plan - tfmask - Terraform utility to mask select output from
terraform planandterraform apply - tfmigrate - A Terraform state migration tool for GitOps.
- tfmigrator - Go library and CLI to migrate Terraform Configuration and State
- tfscaffold - Framework for controlling multi-environment multi-component terraform-managed AWS infrastructure.
- tfschema - Schema inspector for Terraform providers.
- tfupdate - Update version constraints in your Terraform configurations.
- tfvaultenv - tfvaultenv reads secrets from HashiCorp Vault and outputs environment variables for various Terraform providers with those secrets.
- tfwrapper - Rubygem providing rake tasks for running Hashicorp Terraform sanely.
- tgf - Terragrunt frontend for executing Terragrunt/Terraform through Docker.
- xterrafile Systematically manage external modules from the module registry, git or local directories for use in Terraform (written in Go).
- yor - Automatically tag and trace infrastructure as code frameworks (Terraform, Cloudformation and Serverless) .
Libraries
- pyhcl - HCL parser in Python
- python-hcl2 - HCL2 parser in Python
- rhcl - Pure Ruby HCL parser
Boilerplates
- Terraform Generator - Scaffolding for a new terraform module or project with support of test frameworks (terratest and kitchen-terraform)
- Terraform GitOps Framework - Everything you need to build reliable automation for AKS, EKS and GKE Kubernetes clusters in one free and open-source framework.
Terraform Enterprise
- terraform-enterprise-cli - Terraform Enterprise Command Line Interface.
- terraform-enterprise-client - Terraform Enterprise API Ruby Client and Command Line tool.
- terraform-enterprise-migrator - Script for migrating Terraform Enterprise environments from Legacy to new version of Terraform Enterprise.
- tfe-state-explorer - Simple shell for exploring remote terraform enterprise state, with autocomplete. :skull:
- Scalr - Alternative to Terraform Enterprise with OPA integration :heavy_dollar_sign:
- env0 - Alternative to Terraform Cloud/Enterprise with OPA integration, custom flows and Terragrunt support :heavy_dollar_sign:
- modulehub - Private Terraform Module Registry and State backend.
- Brainboard - Visually Design, Deploy & Manage modern cloud infrastructures starting from any Cloud Provider - AWS, GCP, Azure
Videos
- Your Weekly Dose of Terraform - YouTube channel with weekly live streams covering Terraform news, reviews, interviews, Q&A, live coding, and some hacking with Terraform.
- Terraform explained in 15 mins - Terraform explained in 15 mins.
- Terraform Course - Automate your AWS cloud infrastructure.
- How to Build Reusable, Composable, Battle tested Terraform Modules - Yevgeniy Brikman talks about how to write Terraform code so that it is reusable, composable and testable. The presentation focuses on Terraform modules, but also provides a brief and clear explanation of what problem Terraform was created to solve and a short demo of Terraform basics (~39 min, October 2017).
- Building Scalable, Repeatable Infrastructure in the Cloud with Terraform - Demonstrates how Terraform enables the practice of Infrastructure as Code by deploying TeamCity in AWS using a hosted PostgreSQL.
- Creating a Google Compute Instance with Terraform - Example of creating a Google Compute Instance with Terraform code.
- Creating a Terraform Provider for Just About Anything - Learn how to contribute to a Terraform provider or create your own from this walkthrough.
- Evolving Your Infrastructure with Terraform - CTO of OpenCredo provides an extensive look at using Terraform in the real-world with the help of some interesting use-cases.
- Going Multi-Cloud with Terraform and Nomad.
- How to Extend the Terraform Provider List - In this talk, Paul will walk through the creation of a terraform provider.
- Orchestrating Containers with Terraform and Consul - Mitchell Hashimoto shows how Terraform can be used to deploy and scale containerized workloads.
- Production ChaosMonkey with Terraform - How DigitalOcean uses Terraform to run production integration tests.
- Running a Terraform Environment at Scale - Running Terraform at scale with hundreds of AWS accounts.
- Setup Continuous Integration for a Terraform module - Example of using CI with Kitchen-Terraform to test, tag and publish our Terraform module which creates a Google Compute Instance.
- State of Terraform Providerland - How Terraform providers work and how to write one.
- Terraform At Scale - How Segment uses Terraform.
- Terraform w/ Lee Trout - Focuses on development patterns and how to effectively structure Terraform code.
- Terraforming the Composable World - Integrating Terraform with an on-premise bare metal provisioning.
- Test and verify a Google Compute Instance with Kitchen-Terraform - Example of using Kitchen-Terraform to test our Terraform code that creates a Google Compute.
- Untangling Terraform Through Refactoring - How to refactor your Terraform code in a careful way with minimum risk.
- Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code) - Complete course from beginner to pro, with no cloud provider focus, with a general approach
Editor Plugins
- Atom terraform-lookup
- Emacs terraform-mode
- Intellij
- Terraform-lsp (Language Server Protocol for Terraform)
- Vim-Terraform
- Vim-Terraform-Completion
- VS Code
License
To the extent possible under law, Shuaib Yunus has waived all copyright and related or neighboring rights to this work.
Awesome Vapor 
Vapor is currently one of the most popular server-side Swift frameworks. It allows you to take the language you already know if you ever developed an iOS application and use it in a whole new way, to develop fast, scalable and reliable back-end systems that integrate easily with a wide range of third party services. This is a curated list of:
- modern libraries that easily integrate with Vapor and follow Vapor’s philosophy of providing simple, clean yet powerful APIs;
- well-written tutorials, books, videos and education materials;
- tools to make your development process simpler and more enjoyable;
- and more!
Contents
- How to use
- Libraries
- Tools
- Services
- Education
- Articles
- Books
- Newsletters
- Videos
- Open-source Projects
- License
How to use
Simply press Command + F to search for a keyword. If you’re only interested in entries related to Vapor 3 or only to Vapor 4, you may use the automatically generated filtered lists available on the filtered branch by visiting the links in this sentence. You may also find the legacy archived content in the legacy folder.
Libraries
API Error Middleware – Vapor middleware for converting thrown errors to JSON responses.
APNS – Vapor APNS for iOS.
Bugsnag – Report errors with Bugsnag.
CouchDB Client – Simple CouchDB client for Vapor.
CrudRouter – Automatic RESTful CRUD router generation for any Fluent Model.
CSRF – A package to add protection to Vapor against CSRF attacks.
CSV Framework – A simple framework to read and write CSV files.
Ferno – Vapor Firebase Realtime database provider.
Flash – Flash messages between views.
FluentQuery – Build complex raw SQL queries while still using Swift keypaths.
Gatekeeper – Rate limiting middleware for Vapor.
Google Cloud Provider – Interact with Google Cloud Platform APIs from your Vapor project.
Guardian – Modern rate-limiting middleware.
Imperial – Federated Authentication with OAuth providers.
JWT Keychain – Easily scaffold a keychain using JWT for Vapor.
JWT Middleware – Middleware to Authenticate and Authorize Requests in Vapor.
Leaf Error Middleware – Serve up custom 404 and server error pages for your Vapor App.
Leaf Markdown – Markdown renderer for Vapor.
Lingo Vapor – Vapor provider for Lingo – the Swift localization library.
Local Storage – Storage driver using local filesystem.
MailCore – Sending e-mails via SMTP, MailGun and SendGrid.
Meow – An alternative codable ORM for MongoDB.
MongoKitten – MongoDB driver in Swift.
Pagination – Simple Vapor 3 Pagination.
Paginator – Query pagination for Vapor and Fluent.
S3 – Library for accessing the Amazon S3 service (and compatible) with support for most commonly used operations.
S3 Storage – Library for simple access to the Amazon S3 service.
Sanitize – Powerful model extraction from Vapor JSON requests.
SendGrid Provider – SendGrid-powered mail backend for Vapor.
SimpleFileLogger – A simple file logging provider for Vapor.
Slugify – Convenience for sluggifying your strings.
Storage – Eases the use of multiple storage and CDN services.
Stripe Provider – Stripe Provider for Vapor.
Submissions – Conveniences for creating forms and validating (form) submissions.
Sugar – A package of sugar for Vapor.
SwifQL – Easily build flexible and type-safe SQL with pure Swift.
SwiftyBeaver Provider – SwiftyBeaver Logging Provider for Vapor, the server-side Swift web framework.
Telesign Provider – A Telesign provider for Vapor.
Vapor Mailgun Service – A service to be used with Vapor to send emails.
Vapor reCAPTCHA – Validate Google reCAPTCHAs using Vapor.
Vapor Request Storage – A replacement for request.storagewhich was available in Vapor 1 & 2.
Vapor Security Headers – Harden Your Security Headers For Vapor.
Vapor Test Tools – Helper designed to make testing your endpoints in Vapor 3 pain-free.
VaporExt – A collection of Swift extensions for wide range of Vapor data types and classes.
WKHTMLTOPDF – Build PDF files from Leaf templates or web pages through the wkhtmltopdfCLI tool.
XMLCoding – XML encoder and decoder.
Tools
- Ether – A Command-Line Interface for the Swift Package Manager.
- Heroku buildpack: curl with HTTP/2 support
- Ice – A developer friendly package manager for Swift; 100% compatible with Swift Package Manager.
- Sourcery – Meta-programming for Swift, stop writing boilerplate code.
Sublimate – Fast prototyping with synchronization and authentication based on Sourcery.- Swifter – A macOS tool to help you manage your Xcode projects and give you a quick access to DerivedData folder cleaning and management.
Services
Education
Articles
Deep Dive into Setup and Deployment for Heroku and Ubuntu
How to test controllers by mocking dependencies in Vapor 3 and Swift
Vapor 3 Tutorials – Big collection of small tutorials.
Transforming from Vapor 2 to Vapor 3 – Transitioning from Vapor 2 to Vapor 3 with a real world project.
Tutorials for Beginner to Advanced – Written tutorials for Beginner to Advanced.
Using the dependency injection framework for testing in Vapor 3 and Swift – How to use dependency injection framework which will help you manage dependencies and mock them inside your tests.
Watermarking photos with ImageMagick, Vapor 3 and Swift on macOS and Linux – Tutorial on how to use the ImageMagick library in Swift.
What’s new in Vapor 4?
Books
Newsletters
- VaporNation – Weekly Vapor newsletter with all things Vapor.
Videos
Open-source Projects
SteamPress – A Blogging Engine and Platform written in Swift for use with the Vapor Framework.
User Manager Service – A small, useful user manager made for production application setups.
License
To the extent possible under law, Milan Vit has waived all copyright and related or neighbouring rights to this work.
Awesome Dash 
A curated list of awesome Dash (plotly) resources
Dash is a productive Python framework for building web applications. Written on top of Flask, Plotly.js, and React.js, Dash is ideal for building data visualization apps with highly custom user interfaces in pure Python. It's particularly suited for anyone who works with data in Python.
Contents
- Tutorials
- Component Libraries
- App Examples
- Idiomatic examples
- Galleries
- Cheat sheets
- Talks
- Books
- Community
- Contributors
Tutorials
- Introducing Plotly Dash - A high level introduction to Dash by Chris Parmer, the author of Dash. This essay was released as part of Dash's official launch (June 21, 2017).
- Plotly's tutorials - Part 1: App Layout
- Plotly's tutorials - Part 2: Interactivity
- Plotly's tutorials - Part 3: Interactive Graphing
- Plotly's tutorials - Part 4: Callbacks With State
- Interactive Web-Based Dashboards in Python - How the MVC model pertains to Dash and a walkthrough of building an app.
- Using Plotly’s Dash to deliver public sector decision support dashboards - Buiding a complex dashboard step-by-step.
- OPS CodeDay: Dash Plotly Map + Graph - How to use Jupyter notebooks in tandom with Dash to create mapping viz.
- Creating Interactive Visualizations with Plotly’s Dash Framework - High level overview of how to get started with Dash.
- Finding Bigfoot with Dash, Part 1 - Walkthrough of building a dashboard of Bigfoot sightings. Part 2, Part 3.
- Visualize Earthquakes with Plotly Dash - Environmental scan of alternatives to Dash followed with a tutorial.
- ARGO Labs - Plotly Dash Tutorial (Video) - Detailed introduction to creating interactive dashboards.
- Data Visualization GUIs with Dash and Python (Video playlist) - Five-part series exploring Dash features.
- Interactive Visualization of Machine Learning and Computer Vision with Dash - Official introduction video.
- Webinar: Converting React components to Dash components - Official tutorial about how to convert React components to Dash components using the Dash Component Boilerplate cookiecutter template.
- Interactive Image Processing with Dash-Canvas - Official introduction video to the Dash Canvas components.
- Dash Cytoscape Component - Official introduction video to the Dash Cytoscape components.
- An introduction to Dash DataTable - Official introduction video to the Dash DataTable components.
Component Libraries
- Tutorial on creating custom Dash components with React.js.
- Dash Bio Components - Suite of bioinformatics components that make it simpler to analyze and visualize bioinformatics data and interact with them in a Dash application.
- Dash Canvas Components - Module for image annotation and image processing using Dash.
- Awesome React Components - Catalog of React.js components potentially interesting to be wrapped into Dash components.
- Awesome React - Helpful resources for developing React.js components.
- Dash Core Components
- Dash Cytoscape Component - Graph visualization component for creating easily customizable, high-performance, interactive, and web-based networks.
- Dash DataTable Component - Interactive table that supports rich styling, conditional formatting, editing, sorting, filtering, and more.
- Dash DAQ Components - Set of controls that make it simpler to integrate data acquisition and controls into your Dash applications.
- Dash ECharts Components - ECharts(V5) Components for Dash.
- Dash HTML Components
- mydcc - Extension of Dash Core Components.
- sd-material-ui - StratoDem Analytics implementations of material-ui components for Dash.
- sd-range-slider - Range Slider Dash component.
- dj-plotly-dash - Plotly Dash fork for Django.
- dash-flexbox-grid - Wrapper around react-flexbox-grid for Plotly Dash.
- dash-color-picker - Wrapper around react-color.
- dash-dual-listbox - Wrapper around react-duallist.
- dash-bootstrap-components - Layout engine, default styles and high-level components based on Bootstrap.
- dash-uploader - Upload component for Dash. Supports large data files.
- Dash Mantine Components - Collection of 40+ Dash components based on Mantine React Components library.
App Examples
- Oil and Gas Explorer - Explore oil and gas production over time and with linked visualisations. Source Code.
- Uber Rides - Displays all of the Uber rides in New York City in 2014. Pandas on the backend filters a 0.5gig datafile. Source Code.
- Simple Stock Tickers - Queries data from Google Finance and displays the results as candlestick charts. Source Code.
- Volatility Surface Explorer - Fetches CBOE options chain data from Yahoo Finance with Pandas Datareader and calculates the implied volatility of each option visualised in a 3D mesh chart. Source Code.
- Drug Discovery - Displays a description of the drug as you hover over points in the graph. Source Code.
- Live Wind Streaming - Continually queries a SQL database and displays live charts of wind speed and wind direction. Source Code.
- Recession in 255 Charts - Adapted from NYTimes's excellent How the Recession Reshaped the Economy in 255 Charts. Source Code.
- 3D Yield Curve - Adapted from NYTimes's excellent A 3-D View of a Chart That Predicts The Economic Future: The Yield Curve. Source Code.
- Finding Bigfoot - Several plots (including a map), a grid layout built with Bootstrap, interactions with an input field, and caching (See also Tutorials). Source Code.
- Visualize Earthquakes with Plotly Dash - Great UI and usage of geospatial analytics with Dash. Includes basic unit tests. Source Code.
- Street Quality IDentification [SQUID] - Highlights poor quality roads with maps, data table and photos of the offending piece of road. Source Code.
- VoxelViz - Competition winning Visualization tool for (f)MRI data-sets. Source Code.
- Traffic Accidents UK - Explore the 140,008 traffic accidents in the UK in 2015. Source Code.
- New York Taxi Rides - A full year of the YellowCab Taxi company data from their prime, numbering well over 100 million trips. Dash + Vaex dataframe with over a 100 million rows. Source Code.
- GutenSearch - Look inside the books of Project Gutenberg. Source Code.
Idiomatic examples
- Dash recipes - A collection of scripts and examples created of the plotly team while answering questions from the greater Dash community.
Galleries
- Plotly App Gallery - Plotly's collection of Dash applications.
- Dash Recipes GitHub - Collection of scripts and examples created while answering questions from the greater Dash community.
- Dash Data Dashboards and Apps - Collection of data dashboards with real life data, for various topics, as well as a few apps for online marketing built with Dash.
Talks
- Dash: Data exploration web apps in pure Python - Chelsea Douglas, PyData DC 2018.
- Overview of Dash - Chris Parmer, creator of Dash (SciPy 2017).
- We're Launching Dash - Chris Parmer, creator of Dash, speaking about the motivations behind Dash before it was launched (Plotcon NYC 2016).
- Plotly dash and data visualisation in Python, PyData, Berlin 2017 - Volodymyr Kazantsev (slides only).
Books
- Interactive Dashboards and Data Apps with Plotly and Dash: Harness the power of a fully fledged frontend web framework in Python – no JavaScript required.
Cheat sheets
Community
Contributors
- Luke Singham
- Aly Sivji
- Chris Parmer
- Sergey Pikhovkin
- Pascal Bugnion
- Florian Kromer
- Elias Dabbas
- vaexio
- Fanchao MENG
- Snehil Vijay
License
This work is licensed under a Creative Commons Attribution 4.0 International License.
Awesome FastAPI | 
A curated list of awesome things related to FastAPI.
FastAPI is a modern, high-performance, batteries-included Python web framework that's perfect for building RESTful APIs.
Contents
- Third-Party Extensions
- Admin
- Auth
- Databases
- Developer Tools
- Utils
- Resources
- Official Resources
- External Resources
- Podcasts
- Articles
- Tutorials
- Talks
- Videos
- Courses
- Hosting
- PaaS
- IaaS
- Serverless
- Projects
- Boilerplate
- Docker Images
- Open Source Projects
- Sponsors
Third-Party Extensions
Admin
- FastAPI Admin - Functional admin panel that provides a user interface for performing CRUD operations on your data.
- SQLAlchemy Admin - Admin Panel for FastAPI/Starlette that works with SQLAlchemy models.
Auth
- AuthX - Customizable Authentications and Oauth2 management for FastAPI.
- FastAPI Auth - Pluggable auth that supports the OAuth2 Password Flow with JWT access and refresh tokens.
- FastAPI Azure Auth - Azure AD authentication for your APIs with single and multi tenant support.
- FastAPI Cloud Auth - Simple integration between FastAPI and cloud authentication services (AWS Cognito, Auth0, Firebase Authentication).
- FastAPI Login - Account management and authentication (based on Flask-Login).
- FastAPI JWT Auth - JWT auth (based on Flask-JWT-Extended).
- FastAPI Permissions - Row-level permissions.
- FastAPI Security - Implements authentication and authorization as dependencies in FastAPI.
- FastAPI Simple Security - Out-of-the-box API key security manageable through path operations.
- FastAPI Users - Account management, authentication, authorization.
Databases
ORMs
- FastAPI SQLAlchemy - Simple integration between FastAPI and SQLAlchemy.
- FastAPIwee - A simple way to create REST API based on PeeWee models.
- GINO - A lightweight asynchronous ORM built on top of SQLAlchemy core for Python asyncio.
- FastAPI Example
- ORM - An async ORM.
- ormar - Ormar is an async ORM that uses Pydantic validation and can be used directly in FastAPI requests and responses so you are left with only one set of models to maintain. Alembic migrations included.
- FastAPI Example - Using FastAPI with ormar.
- Piccolo - An async ORM and query builder, supporting Postgres and SQLite, with batteries (migrations, security, etc).
- FastAPI Examples - Using FastAPI with Piccolo.
- Piccolo Admin - A powerful and modern admin GUI, using the Piccolo ORM.
- Prisma Client Python - An auto-generated, fully type safe ORM powered by Pydantic and tailored specifically for your schema - supports SQLite, PostgreSQL, MySQL, MongoDB, MariaDB and more.
- FastAPI Example
- Tortoise ORM - An easy-to-use asyncio ORM (Object Relational Mapper) inspired by Django.
- FastAPI Example - An example of the Tortoise-ORM FastAPI integration.
- Tutorial: Setting up Tortoise ORM with FastAPI
- Aerich - Tortoise ORM migrations tools.
- SQLModel - SQLModel (which is powered by Pydantic and SQLAlchemy) is a library for interacting with SQL databases from Python code, with Python objects.
Query Builders
- asyncpgsa - A wrapper around asyncpg for use with SQLAlchemy Core.
- Databases - Async SQL query builder that works on top of the SQLAlchemy Core expression language.
ODMs
- Beanie - Asynchronous Python ODM for MongoDB, based on Motor and Pydantic, which supports data and schema migrations out of the box.
- MongoEngine - A Document-Object Mapper (think ORM, but for document databases) for working with MongoDB from Python.
- Motor - Asynchronous Python driver for MongoDB.
- ODMantic - AsyncIO MongoDB ODM integrated with Pydantic.
Other Tools
- Pydantic-SQLAlchemy - Convert SQLAlchemy models to Pydantic models.
- FastAPI-CamelCase - CamelCase JSON support for FastAPI utilizing Pydantic.
- CamelCase Models with FastAPI and Pydantic - Accompanying blog post from the author of the extension.
Developer Tools
- FastAPI Code Generator - Create a FastAPI app from an OpenAPI file, enabling schema-driven development.
- FastAPI Client Generator - Generate a mypy- and IDE-friendly API client from an OpenAPI spec.
- FastAPI Profiler - A FastAPI Middleware of joerick/pyinstrument to check your service performance.
- FastAPI Versioning - API versioning.
- Jupyter Notebook REST API - Run your Jupyter notebooks as RESTful API endpoints.
- Manage FastAPI - CLI tool for generating and managing FastAPI projects.
- msgpack-asgi - Automatic MessagePack content negotiation.
- FastAPI Mail - Lightweight mail system for sending emails and attachments (individual and bulk).
Utils
- ASGI Correlation ID - Request ID logging middleware.
- FastAPI Cache - A simple lightweight cache system.
- FastAPI Cache - A tool to cache FastAPI response and function results, with support for Redis, Memcached, DynamoDB, and in-memory backends.
- FastAPI Chameleon - Adds integration of the Chameleon template language to FastAPI.
- FastAPI Contrib - Opinionated set of utilities: pagination, auth middleware, permissions, custom exception handlers, MongoDB support, and Opentracing middleware.
- FastAPI CRUDRouter - A FastAPI router that automatically creates and documents CRUD routes for your models.
- FastAPI Events - Asynchronous event dispatching/handling library for FastAPI and Starlette.
- FastAPI Jinja - Adds integration of the Jinja template language to FastAPI.
- FastAPI Lazy - Lazy package to start your project using FastAPI.
- FastAPI Limiter - A request rate limiter for FastAPI.
- FastAPI MQTT - An extension for the MQTT protocol.
- FastAPI Opentracing - Opentracing middleware and database tracing support for FastAPI.
- FastAPI Pagination - Pagination for FastAPI.
- FastAPI Plugins - Redis and Scheduler plugins.
- FastAPI ServiceUtils - Generator for creating API services.
- FastAPI SocketIO - Easy integration for FastAPI and SocketIO.
- FastAPI Utilities - Reusable utilities: class-based views, response inferring router, periodic tasks, timing middleware, SQLAlchemy session, OpenAPI spec simplification.
- FastAPI Websocket Pub/Sub - The classic pub/sub pattern made easily accessible and scalable over the web and across your cloud in realtime.
- FastAPI Websocket RPC - RPC (bidirectional JSON RPC) over Websockets made easy, robust, and production ready.
- OpenTelemetry FastAPI Instrumentation - Library provides automatic and manual instrumentation of FastAPI web frameworks, instrumenting http requests served by applications utilizing the framework.
- Prerender Python Starlette - Starlette middleware for Prerender.
- Prometheus FastAPI Instrumentator - A configurable and modular Prometheus Instrumentator for your FastAPI application.
- SlowApi - Rate limiter (based on Flask-Limiter).
- Starlette Context - Allows you to store and access the request data anywhere in your project, useful for logging.
- Starlette Exporter - One more prometheus integration for FastAPI and Starlette.
- Starlette OpenTracing - Opentracing support for Starlette and FastAPI.
- Starlette Prometheus - Prometheus integration for FastAPI and Starlette.
- Strawberry GraphQL - Python GraphQL library based on dataclasses.
Resources
Official Resources
- Documentation - Comprehensive documentation.
- Tutorial - Official tutorial showing you how to use FastAPI with most of its features, step by step.
- Source Code - Hosted on GitHub.
- Discord - Chat with other FastAPI users.
External Resources
- TestDriven.io FastAPI - Multiple FastAPI-specific articles that focus on developing and testing production-ready RESTful APIs, serving up machine learning models, and more.
Podcasts
- Build The Next Generation Of Python Web Applications With FastAPI - In this episode of Podcast Init, the create of FastAPI, Sebastián Ramirez, shares his motivations for building FastAPI and how it works under the hood.
- FastAPI on PythonBytes - Nice overview of the project.
Articles
- FastAPI has Ruined Flask Forever for Me
- Why we switched from Flask to FastAPI for production machine learning - In-depth look at why you may want to move from Flask to FastAPI.
Tutorials
- Async SQLAlchemy with FastAPI - Learn how to use SQLAlchemy asynchronously.
- Build and Secure an API in Python with FastAPI - Secure and maintain an API based on FastAPI and SQLAlchemy.
- Demystifying Authentication with FastAPI and a Frontend - Add token-based authentication.
- Deploy a Dockerized FastAPI App to Google Cloud Platform - A short guide to deploying a Dockerized Python app to Google Cloud Platform using Cloud Run and a SQL instance.
- Deploy Machine Learning Models with Keras, FastAPI, Redis and Docker
- Deploying Iris Classifications with FastAPI and Docker - Dockerizing a FastAPI application.
- Developing and Testing an Asynchronous API with FastAPI and Pytest - Develop and test an asynchronous API with FastAPI, Postgres, Pytest, and Docker using Test-Driven Development.
- FastAPI for Flask Users - Learn FastAPI with a side-by-side code comparison to Flask.
- FastAPI Microservice Patterns - Blog post series with exemplary implementations of microservice patterns.
- Local Development Environment - Skaffold, docker, kubectl and minikube in a nutshell.
- Service discovery in Container Orchestration Platforms - Enabling FastAPI service communication in Kubernetes explained.
- Asynchronous Communication - Enabling loosely coupled services with messaging.
- Application Monitoring - Application metric monitoring with Prometheus and Grafana.
- Serverless Deployment - About the current status of the compatibility between FastAPI and Kubernetes-native FaaS platforms.
- Getting started with GraphQL in Python with FastAPI and Ariadne - Generate a FullStack playground using FastAPI, GraphQL and Ariadne.
- How to monitor your FastAPI service - Explains how to implement Application Performance Monitoring (APM) using OpenTelemetry and Datadog/Jaeger.
- Implementing FastAPI Services – Abstraction and Separation of Concerns - FastAPI application and service structure for a more maintainable codebase.
- Introducing FARM Stack - FastAPI, React, and MongoDB - Getting started with a complete FastAPI web application stack.
- Porting Flask to FastAPI for ML Model Serving - Comparison of Flask vs FastAPI.
- Real-time data streaming using FastAPI and WebSockets - Learn how to stream data from FastAPI directly into a real-time chart.
- Running FastAPI applications in production - Use Gunicorn with systemd for production deployments.
- Serving Machine Learning Models with FastAPI in Python - Use FastAPI to quickly and easily deploy and serve machine learning models in Python as a RESTful API.
- Streaming video with FastAPI - Learn how to serve video streams.
- Using Hypothesis and Schemathesis to Test FastAPI - Apply property-based testing to FastAPI.
Talks
- PyConBY 2020: Serve ML models easily with FastAPI - From the talk by Sebastian Ramirez you will learn how to easily build a production-ready web (JSON) API for your ML models with FastAPI, including best practices by default.
- PyCon UK 2019: FastAPI from the ground up - This talk shows how to build a simple REST API for a database from the ground up using FastAPI.
Videos
- Building a Stock Screener with FastAPI - A you build a web-based stock screener with FastAPI, you'll be introduced to many of FastAPI's features, including Pydantic models, dependency injection, background tasks, and SQLAlchemy integration.
- Building Web APIs Using FastAPI - Use FastAPI to build a web application programming interface (RESTful API).
- FastAPI - A Web Framework for Python - See how to do numeric validations with FastAPI.
- FastAPI vs. Django vs. Flask - Which framework is best for Python in 2020? Which uses async/await the best? Which is the fastest?
- Serving Machine Learning Models As API with FastAPI - Build a machine learning API with FastAPI.
Courses
- Test-Driven Development with FastAPI and Docker - Learn how to build, test, and deploy a text summarization microservice with Python, FastAPI, and Docker.
- Modern APIs with FastAPI and Python - A course designed to get you creating new APIs running in the cloud with FastAPI quickly.
- Full Web Apps with FastAPI Course - You'll learn to build full web apps with FastAPI, equivalent to what you can do with Flask or Django.
- The Definitive Guide to Celery and FastAPI - Learn how to add Celery to a FastAPI application to provide asynchronous task processing.
Hosting
PaaS
(Platforms-as-a-Service)
- Heroku (Step-by-step tutorial, ML model on Heroku tutorial)
- AWS Elastic Beanstalk
- Google App Engine
- Microsoft Azure App Service
- Deta (example)
IaaS
(Infrastructure-as-a-Service)
Serverless
Frameworks:
- Chalice
- Mangum - Adapter for running ASGI applications with AWS Lambda and API Gateway.
- Vercel - (formerly Zeit) (example).
Compute:
Projects
Boilerplate
- Full Stack FastAPI and PostgreSQL - Base Project Generator - Full stack, modern web application generator, which includes FastAPI, PostgreSQL, Docker, Celery, Vue frontend, automatic HTTPS and more (developed by the creator of FastAPI, Sebastián Ramírez).
- FastAPI and Tortoise ORM - Powerful but simple template for web APIs w/ FastAPI (as web framework) and Tortoise-ORM (for working via database without headache).
- FastAPI Model Server Skeleton - Skeleton app to serve machine learning models production-ready.
- cookiecutter-spacy-fastapi - Quick deployments of spaCy models with FastAPI.
- cookiecutter-fastapi - Cookiecutter template for FastAPI projects using: Machine Learning, Poetry, Azure Pipelines and pytest.
- openapi-python-client - Generate modern FastAPI Python clients (via FastAPI) from OpenAPI.
- Pywork - Yeoman generator to scaffold a FastAPI app.
- fastapi-gino-arq-uvicorn - Tempate for a high-performance async REST API, in Python. FastAPI + GINO + Arq + Uvicorn (w/ Redis and PostgreSQL).
- FastAPI and React Template - Full stack cookiecutter boilerplate using FastAPI, TypeScript, Docker, PostgreSQL, and React.
- FastAPI Nano - Simple FastAPI template with factory pattern architecture.
- FastAPI template - Flexible, lightweight FastAPI project generator. It includes support for SQLAlchemy, multiple databases, CI/CD, Docker, and Kubernetes.
Docker Images
- inboard - Docker images to power your FastAPI apps and help you ship faster.
- uvicorn-gunicorn-fastapi-docker - Docker image with Uvicorn managed by Gunicorn for high-performance FastAPI web applications in Python 3.7 and 3.6 with performance auto-tuning.
- uvicorn-gunicorn-poetry - This Docker image provides a platform to run FastAPI using Gunicorn with Uvicorn workers. It provides Poetry for managing dependencies and setting up a virtual environment in the container.
- uvicorn-poetry - This Docker image provides a platform to run FastAPI with Uvicorn on Kubernetes container orchestration system. It provides Poetry for managing dependencies and setting up a virtual environment in the container.
Open Source Projects
- Awesome FastAPI Projects - Organized list of projects that use FastAPI.
- Bitcart - Platform for merchants, users and developers which offers easy setup and use.
- Bunnybook - A tiny social network built with FastAPI, React+RxJs, Neo4j, PostgreSQL, and Redis.
- Coronavirus-tg-api - API for tracking the global coronavirus (COVID-19, SARS-CoV-2) outbreak.
- Dispatch - Manage security incidents.
- FastAPI CRUD Example:
- Async flavor
- Sync Flavor
- DogeAPI - API with high performance to create a simple blog and CRUD with OAuth2PasswordBearer.
- FastAPI Websocket Broadcast - Websocket 'broadcast' demo.
- FastAPI with Celery, RabbitMQ, and Redis - Minimal example utilizing FastAPI and Celery with RabbitMQ for task queue, Redis for Celery backend, and Flower for monitoring the Celery tasks.
- JeffQL - Simple authentication and login API using GraphQL and JWT.
- JSON-RPC Server - JSON-RPC server based on FastAPI.
- Mailer - Dead-simple mailer micro-service for static websites.
- OPAL (Open Policy Administration Layer) - Real-time authorization updates on top of Open-Policy; built with FastAPI, Typer, and FastAPI WebSocket pub/sub.
- RealWorld Example App - mongo
- RealWorld Example App - postgres
- redis-streams-fastapi-chat - A simple Redis Streams backed chat app using Websockets, Asyncio and FastAPI/Starlette.
- Sprites as a service - Generate your personal 8-bit avatars using Cellular Automata.
- Slackers - Slack webhooks API.
- TermPair - View and control terminals from your browser with end-to-end encryption.
- Universities - API service for obtaining information about +9600 universities worldwide.
Sponsors
Please support this open source project by checking out our sponsors:
Awesome CDK

Curated list of awesome AWS Cloud Development Kit (AWS CDK) open-source projects, guides, blogs and other resources.
The AWS Cloud Development Kit (AWS CDK) is an open-source software development framework for defining cloud infrastructure in code.
Contents
- Construct Libraries
- APIs
- Databases
- Static Websites
- Security
- Ops
- Queue
- CI/CD
- Monitoring
- Workflows
- Multi-accounts setup
- High-Level Frameworks
- Scaffolding
- Language Support
- Library Publishing
- Tools
- Training Materials and Sample Code
- Blog Posts & Talks
- Related Projects
- Tips & Tricks
Construct Libraries
This section includes code libraries in various programming languages which vend constructs that can be used in CDK apps.
APIs
- cdk-chalice - AWS CDK construct for AWS Chalice (Python Serverless Microframework for AWS).
- auto-cdk - Automatically generate api-gateway/lambda integrations with the filesystem (beta).
Databases
- aws-cdk-dynamodb-seeder - A simple CDK seeder for DynamoDB.
- cdk-tweet-sentiment - Identify sentiments in tweets and log them into an Amazon DynamoDB table.
- cdk-dynamo-table-viewer - Exposes the contents of an Amazon DynamoDB table through a public HTML page.
- cdk-postgresql - AWS CDK Constructs for PostgreSQL.
- cdk-sqlserver-seeder - CDK construct that executes custom SQL scripts against SQL Server database.
Static Websites
- cdk-static-website - CDK component that creates a static website using S3, configures CloudFront (CDN) and maps a custom domain via Route53 (DNS).
- ness - CDK powered CLI tool for deploying static sites to your AWS account.
Security
- cdk-passwordless - Construct for having passwordless authentication using userpool.
- cdk-iam-generator - Construct to generate IAM Managed Policies and IAM Roles using JSON Configuration.
- c3 - Enables compliancy with privacy and security best practices.
- cdk-iam-floyd - IAM policy statement generator with fluent interface.
- k9-cdk - Construct to generate secure S3 bucket policies easily.
- cdk-cloudfront-authorization - CloudFront with Cognito authentication using Lambda@Edge.
Ops
- cdk-instanceStopRule - CDK component which creates an instance with a CloudWatch rule to stop it at the end of the day.
- cdk-time-bomb - CDK Construct that implodes your AWS CDK Stack after a set amount of time.
Queue
- cdk-tweet-queue - Fills up an SQS queue with tweets from a tweeter search query.
- cdk-ses-template-mailer - Constructs to create AWS SES email templates + microservice to send templated emails with AWS SES.
- cdk-sqs-monitored - SQS Construct with dead letter queue and configured alarms.
CI/CD
- aws-delivlib - Synthesizes CI/CD pipelines for multi-language software delivery (used by the CDK itself).
- cdk-blue-green-container-deployment - Blue/Green container deployment with CodeDeploy.
Monitoring
- cdk-watchful - Automatic dashboards and alarms for CDK apps.
- aws-cdk-billing-alarm - Construct that sets up email alerts for exceeding an amount on your AWS bill.
Workflows
- cdk-pull-request-check - CDK component that automatically check pull requests.
- cdk-github-webhook - CDK component that provisions GitHub webhooks.
- cdk-codepipeline-slack - CDK component that provisions a #slack approval workflow.
- cdk-codecommit-backup - Backup CodeCommit repositories to S3.
- Alexa Deployment Pipeline - Construct which creates a CodePipeline to deploy Alexa Skills to Lambda and to the Developer console using AWS SAM and DeployToAlexa action.
- cdk-developer-tools-notifications - Slack / Microsoft Teams / Email notifications for developer tools: CodeCommit, CodeBuild, CodeDeploy, CodePipeline.
- aws-pdf-textract-pipeline - ETL pipeline for crawling PDFs from the Web using Puppeteer and transforming their contents into structured data using AWS Textract and storing the results in DynamoDB.
Multi-accounts setup
- aws-bootstrap-kit - Creates a multi-account set-up with AWS Organization, AWS SSO, DNS, and AWS CodePipeline.
High-Level Frameworks
- punchcard - TypeScript framework to unify infrastructure and runtime code for the CDK, so you can declare constructs and implement runtime logic within the context of one Node.js application.
- aws-cdk-pure - A toolkit to develop purely functional and high-order cloud components with AWS CDK.
- cdk-stepfunctions-patterns - A set of Step Functions high-level resiliency patterns.
- Orkestra - An event-driven alternative to Airflow built on the AWS CDK and Step Functions.
- SST - An open source framework for building serverless applications with CDK. It features a Live Lambda Development environment, to test and debug Lambda functions locally without having to redeploy them.
- Datajob - Build and deploy a serverless data pipeline or machine learning pipeline on AWS with no effort.
Scaffolding
- ReactJS + Cognito + CDK Starter - Starter project for ReactJS + Amazon Cognito + Amazon Amplify Framework with AWS CDK support.
- cra-template-aws-cdk - Create React App template using AWS CDK for out of the box, simple provisioning of serverless React apps.
- create-cdk-app - Create CDK apps from templates.
- awscdk-jsii-template - A GitHub template repository to generate a ready environment to build, test and publish your JSII construct lib for AWS CDK.
Language Support
- AWS-CDK-Kotlin-DSL - A Wrapper library of AWS CDK Java. CI automatically generates code and deploys it by daily.
- aws-cdk-maven-plugin - A plugin to define and deploy your AWS CDK applications using Java and Maven.
- aws-lambda-nodejs-webpack - Alternative Node.js lambda CDK construct, using webpack.
- aws-lambda-nodejs-esbuild - Alternative Node.js lambda CDK construct, using esbuild.
Library Publishing
- GitHub Action - GitHub Action for AWS CDK.
- jsii-publish - A Docker image and GitHub action to build and publish CDK constructs created via JSII.
Tools
- CDK-Dia - Automatic infrastructure diagrams for AWS CDK.
Training Materials and Sample Code
- Official CDK Examples - A set of example projects for the AWS CDK.
- CDK Serverless Workshop - A workshop that guides you through the process of creating and deploying CDK application.
- Build an App with AWS Cloud Development Kit course on egghead.io
- Infrastructure is Code with the AWS CDK - Recording of re:Invent 2018 session.
- GitHub Changelog Crawler - A fully fledged CDK app written by Nathan Peck which uses Fargate, API Gateway, Lambda, CloudFront, S3, ElastiCache, and Dynamodb.
- ECS with CI/CD - Demo of deploying ECS application using CDK.
- Example templates for aws cdk - Working TypeScript snippets from several AWS projects.
- Lambda packaging asset - CDK asset which builds lambda function and produces a ZIP file with dependencies.
- Open CDK Guide - Open source guide on CDK and best practices.
- Colorteller Example - Great example project using Fargate and Appmesh.
- CDK Patterns - An opensource collection of serverless architecture patterns built with CDK.
- Create a CI/CD pipeline using CodePipeline and CodeBuild - The cra-pipeline project on GitHub shows an AWS CodePipeline with AWS CodeBuild to deploy a static React application.
- React SPA with server-side rendering on AWS Lambda - The cra-serverless project is a serverless architecture to add pre-rendering to a React website created with create-react-app.
- Mini Tutorial: Setup AWS Lambda + ACM + API Gateway with AWS Cloud Development Kit - Deploy a functional public API that receives an HTML form (e.g. /contact_us.html) POST request and delivers its data to Pushover notification service.
- Example of REST API built with CDK - Source code that powers REST APIs at https://api.l3x.in/.
- dilbert-feed - A serverless application written in Go that allows you to enjoy Dilbert in your RSS feed reader without any ads.
- django-postgres-vue-gitlab-ecs - An example Django + Vue.js web app deployed with CDK using GitLab CI.
- nextjs-vercel-aws-cdk-example - A PostgreSQL (RDS), EventBridge (crons) and SNS (background jobs) example along with a Next.js application.
- Create and Publish CDK Constructs Using projen and jsii - A step-by-step guide with sample code to create a new CDK construct using projen and
jsiiand publish it to npm, Maven Central, PyPi and NuGet.
Blog Posts & Talks
- Introduction to how and why CDK - By Leo Lapworth.
- How to Build a CDK Construct Library - By Philipp Garbe.
- CDK All The Things: A Whirlwind Tour - By Kevin S Lin.
- AWS CDK Developer Preview Announcement - The first AWS CDK Developer Preview announced on on 27 August 2018.
- Contributing to the AWS Cloud Development Kit - By Mike Cowgill from Intuit.
- First look into AWS Cloud Development Kit - By Philipp Garbe.
- Boost your AWS Infrastructure with the CDK - SlideShare by Philipp Garbe.
- Getting started with AWS CDK for Amazon ECS - By Nathan Peck.
- AWS re:Invent 2018, best of show: CDK - Aller Media Tech Blog.
- AWS Cloud Development Kit introduction with Live Demos - AWS User Group Finland Meetup January 2019.
- AWS CDK — a glimpse into the future - By Nordcloud Engineering.
- AWS Infrastructure as Code with CDK - By Ross Rhodes.
- Callbacks with AWS Step Functions - By Ross Rhodes.
- Using the CDK for CodePipelines Setup - By Stefan Freitag.
- Using the CDK for AWS MSK Setup - By Stefan Freitag.
- Serverless Dotnet - E01: Intro to AWS CDK - By Jake Scott.
- GitHub repository - By Jake Scott.
- Infrastructure is Code with the AWS CDK - AWS Tech Talk Webinar.
- tecRacer Amazon AWS Blog - Several Blog Posts from aws-blog.de by Gernot Glawe.
- Using CDK to build a UDP NLB Logging Service - By ClouderDex.
- GitHub Repo - By ClouderDex.
- Purely Functional Cloud Components with AWS CDK - Bu fogfish.
- Using the CDK to probe multiple accounts (sfn/lambda/sqs/sechub) - Blog post from fudless.xyz.
- Scheduled Lambda Functions and CI/CD pipeline with AWS CDK - By Maarten Thoelen.
- GitHub Repo - By Maarten Thoelen.
- AWS Client VPN with mutual TLS - By Kirill Merkushev.
- CDK Step Functions - By Matt Morgan.
- Loading DynamoDB with Custom Resources - By Matt Morgan.
- Loading DynamoDB with Provider Framework - By Matt Morgan.
- German: React SPA und server-side rendering (SSR) mit AWS Lambda und CloudFront - By superluminar GmbH.
- Introducing AWS CDK with a real life Lambda and API gateway example - By Alexander Fortin.
- CloudWatch Dashboards as Code (the Right Way) Using AWS CDK - By Simon-Pierre Gingras.
- Coding the Jamstack missing parts: databases, crons & background jobs - By Vincent Voyer.
- AWS CDK Continuous Integration and Delivery Using Travis CI - By Thomas Poignant.
- Custom Resources with AWS CDK - By Roy Ben-Yosef.
- Recommended AWS CDK project structure for Python applications - By Alex Pulver.
Related Projects
- jsii - JavaScript interop interface, the technology that CDK uses to create language bindings (currently supports .NET, Java and Python).
- cdk8s - Define Kubernetes native apps and abstractions using object-oriented programming.
- cdktf - Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform.
Tips & Tricks
- Reflect on the CDK Type System - Explore the CDK's type system.
- Testing Your Construct Library CodeBuild Configuration Locally - With the
jsii/superchain:latestDocker Image.
Contributing
Contributions welcome! Read the contribution guidelines first.
A curated list of resources on managing accounts, users, roles,
permissions, authentication and authorization.
Trusting is hard. Knowing who to trust, even harder.
— Maria V. Snyder[1]
IAM stands for Identity and Access Management. But is more than handling user accounts: it encompass authentication, authorization and privacy, making this perimeter quite complex. It is an essential pillar of the cloud stack, where users, products and security meets. The other pillar being billing & payments 💰.
This knowledge base expose all the technologies, protocols and jargon of the domain in a comprehensive and actionable manner.
Contents
- Overview
- Security
- Account Management
- Cryptography
- Zero-trust Network
- Authentication
- Password-based
- Password-less
- Security Key
- Multi-Factor
- SMS-based
- Public-Key Infrastructure (PKI)
- JWT
- OAuth2 & OpenID
- SAML
- Authorization
- Policy models
- Open-source policy frameworks
- AWS policy tools
- Macaroons
- Secret Management
- Hardware Security Module (HSM)
- Trust & Safety
- User Identity
- Fraud
- Moderation
- Threat Intelligence
- Captcha
- Blocklists
- Hostnames and Subdomains
- Emails
- Reserved IDs
- Profanity
- Privacy
- Anonymization
- GDPR
- UX/UI
- Competitive Analysis
- History
Overview

In a Stanford class providing an overview of cloud computing, the software architecture of the platform is described as in the right diagram →
Here we set out the big picture: definition and strategic importance of the domain, its place in the larger ecosystem, plus some critical features.
-
The EnterpriseReady SaaS Feature Guides - The majority of the features making B2B users happy will be implemented by the IAM perimeter.
-
IAM is hard. It's really hard. - “Overly permissive AWS IAM policies that allowed
s3:GetObjectto*(all) resources”, led to $80 million fine for Capital One. The only reason why you can't overlook IAM as a business owner. -
IAM Is The Real Cloud Lock-In - A little click-baity, but author admit that “It depends on how much you trust them to 1. Stay in business; 2. Not jack up your prices; 3. Not deprecate services out from under you; 4. Provide more value to you in business acceleration than they take away in flexibility.”
Security
Security is one of the most central pillar of IAM foundations. Here are some broad concepts.
-
Enterprise Information Security - Mozilla's security and access guidelines.
-
Mitigating Cloud Vulnerabilities - “This document divides cloud vulnerabilities into four classes (misconfiguration, poor access control, shared tenancy vulnerabilities, and supply chain vulnerabilities)”.
-
Cartography - A Neo4J-based tool to map out dependencies and relationships between services and resources. Supports AWS, GCP, GSuite, Okta and GitHub.
Account Management
The foundation of IAM: the definition and life-cycle of users, groups, roles and permissions.
-
As a user, I want… - A meta-critic of account management, in which features expected by the business clash with real user needs, in the form of user stories written by a fictional project manager.
-
Things end users care about but programmers don't - In the same spirit as above, but broader: all the little things we overlook as developers but users really care about. In the top of that list lies account-centric features, diverse integration and import/export tools. I.e. all the enterprise customers needs to cover.
-
Separate the account, user and login/auth details - Sound advice to lay down the foundation of a future-proof IAM API.
-
Identity Beyond Usernames - On the concept of usernames as identifiers, and the complexities introduced when unicode characters meets uniqueness requirements.
-
Kratos - User login, user registration, 2FA and profile management.
-
Conjur - Automatically secures secrets used by privileged users and machine identities.
-
SuperTokens - Open source alternative to Auth0 / Firebase Auth / AWS Cognito.
-
UserFrosting - Modern PHP user login and management framework.
Cryptography
The whole authentication stack is based on cryptography primitives. This can't be overlooked.
-
Cryptographic Right Answers - An up to date set of recommendations for developers who are not cryptography engineers. There's even a shorter summary available.
-
Security Recommendations for Any Device that Depends on Randomly-Generated Numbers - “The phrase ‘random number generator’ should be parsed as follows: It is a random generator of numbers. It is not a generator of random numbers.”
-
Real World Crypto Symposium - Aims to bring together cryptography researchers with developers, focusing on uses in real-world environments such as the Internet, the cloud, and embedded devices.
-
An Overview of Cryptography - “This paper has two major purposes. The first is to define some of the terms and concepts behind basic cryptographic methods, and to offer a way to compare the myriad cryptographic schemes in use today. The second is to provide some real examples of cryptography in use today.”
-
Papers we love: Cryptography - Foundational papers of cryptography.
-
Lifetimes of cryptographic hash functions - “If you are using compare-by-hash to generate addresses for data that can be supplied by malicious users, you should have a plan to migrate to a new hash every few years”.
Zero-trust Network
Zero trust network security operates under the principle “never trust, always verify”.
-
BeyondCorp: A New Approach to Enterprise Security - Quick overview of Google's Zero-trust Network initiative.
-
What is BeyondCorp? What is Identity-Aware Proxy? - More companies add extra layers of VPNs, firewalls, restrictions and constraints, resulting in a terrible experience and a slight security gain. There's a better way.
-
oathkeeper - Identity & Access Proxy and Access Control Decision API that authenticates, authorizes, and mutates incoming HTTP requests. Inspired by the BeyondCorp / Zero Trust white paper.
-
transcend - BeyondCorp-inspired Access Proxy server.
-
Pomerium - An identity-aware proxy that enables secure access to internal applications.
Authentication
Protocols and technologies to verify that you are who you pretend to be.
-
API Tokens: A Tedious Survey - An overview and comparison of all token-based authentication schemes for end-user APIs.
-
A Child's Garden of Inter-Service Authentication Schemes - In the same spirit as above, but this time at the service level.
-
Scaling backend authentication at Facebook - How-to in a nutshell: 1. Small root of trust; 2. TLS isn't enough; 3. Certificate-based tokens; 4. Crypto Auth Tokens (CATs). See the slides for more details.
Password-based
-
The new NIST password guidance - A summary of NIST Special Publication 800-63B covering new password complexity guidelines.
-
Password Storage Cheat Sheet - The only way to slow down offline attacks is by carefully choosing hash algorithms that are as resource intensive as possible.
-
Password expiration is dead - Recent scientific research calls into question the value of many long-standing password-security practices such as password expiration policies, and points instead to better alternatives such as enforcing banned-password lists and MFA.
-
Practical Recommendations for Stronger, More Usable Passwords - This study recommend the association of: blocklist checks against commonly leaked passwords, password policies without character-class requirements, minimum-strength policies.
-
Banks, Arbitrary Password Restrictions and Why They Don't Matter - “Arbitrary low limits on length and character composition are bad. They look bad, they lead to negative speculation about security posture and they break tools like password managers.”
-
Dumb Password Rules - Shaming sites with dumb password rules.
-
Plain Text Offenders - Public shaming of websites storing passwords in plain text.
-
Password Manager Resources - A collection of password rules, change URLs and quirks by sites.
-
A Well-Known URL for Changing Passwords - Specification defining site resource for password updates.
-
How to change the hashing scheme of already hashed user's passwords - Good news: you're not stuck with a legacy password saving scheme. Here is a trick to transparently upgrade to stronger hashing algorithm.
Password-less
-
An argument for passwordless - Passwords are not the be-all and end-all of user authentication. This article tries to tell you why.
-
WebAuthn guide - A very accessible guide to WebAuthn, a standard allowing “servers to register and authenticate users using public key cryptography instead of a password”, supported by all major browsers.
Security Key
-
Webauthn and security keys - Describe how authentication works with security keys, details the protocols, and how they articulates with WebAuthn. Key takeaway: “There is no way to create a U2F key with webauthn however. (…) So complete the transition to webauthn of your login process first, then transition registration.”
-
Getting started with security keys - A practical guide to stay safe online and prevent phishing with FIDO2, WebAuthn and security keys.
-
Solo - Open security key supporting FIDO2 & U2F over USB + NFC.
-
OpenSK - Open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.
-
YubiKey Guide - Guide to using YubiKey as a SmartCard for storing GPG encryption, signing and authentication keys, which can also be used for SSH. Many of the principles in this document are applicable to other smart card devices.
-
YubiKey at Datadog - Guide to setup Yubikey, U2F, GPG, git, SSH, Keybase, VMware Fusion and Docker Content Trust.
Multi-Factor
-
Breaking Password Dependencies: Challenges in the Final Mile at Microsoft - The primary source of account hacks is password spraying (on legacy auth like SMTP, IMAP, POP, etc.), second is replay attack. Takeaway: password are insecure, use and enforce MFA.
-
Beyond Passwords: 2FA, U2F and Google Advanced Protection - An excellent walk-trough over all these technologies.
-
A Comparative Long-Term Study of Fallback Authentication - Key take-away: “schemes based on email and SMS are more usable. Mechanisms based on designated trustees and personal knowledge questions, on the other hand, fall short, both in terms of convenience and efficiency.”
-
Secrets, Lies, and Account Recovery: Lessons from the Use of Personal Knowledge Questions at Google - “Our analysis confirms that secret questions generally offer a security level that is far lower than user-chosen passwords. (…) Surprisingly, we found that a significant cause of this insecurity is that users often don't answer truthfully. (…) On the usability side, we show that secret answers have surprisingly poor memorability”.
-
How effective is basic account hygiene at preventing hijacking - Google security team's data shows 2FA blocks 100% of automated bot hacks.
-
Your Pa$$word doesn't matter - Same conclusion as above from Microsoft: “Based on our studies, your account is more than 99.9% less likely to be compromised if you use MFA.”
-
Attacking Google Authenticator - Probably on the verge of paranoia, but might be a reason to rate limit 2FA validation attempts.
-
Compromising online accounts by cracking voicemail systems - Or why you should not rely on automated phone calls as a method to reach the user and reset passwords, 2FA or for any kind of verification. Not unlike SMS-based 2FA, it is currently insecure and can be compromised by the way of its weakest link: voicemail systems.
-
Getting 2FA Right in 2019 - On the UX aspects of 2FA.
-
2FA is missing a key feature - “When my 2FA code is entered incorrectly I'd like to know about it”.
-
Authelia - Open-source authentication and authorization server providing two-factor authentication and single sign-on (SSO) for your applications via a web portal.
-
Kanidm - Simple, secure and fast identity management platform.
SMS-based
TL;DR: don't. For details, see articles below.
-
SMS 2FA auth is deprecated by NIST - NIST has said that 2FA via SMS is bad and awful since 2016.
-
Is SMS 2FA Secure? No. - Definitive research project demonstrating successful attempts at SIM swapping.
-
Hackers Hit Twitter C.E.O. Jack Dorsey in a 'SIM Swap.' You're at Risk, Too.
-
AT\&T rep handed control of his cellphone account to a hacker
-
The Most Expensive Lesson Of My Life: Details of SIM port hack
-
AWS is on its way to deprecate SMS-based 2FA - “We encourage you to use MFA through a U2F security key, hardware device, or virtual (software-based) MFA device. You can continue using this feature until January 31, 2019.”
Public-Key Infrastructure (PKI)
Certificate-based authentication.
-
PKI for busy people - Quick overview of the important stuff.
-
Everything you should know about certificates and PKI but are too afraid to ask - PKI lets you define a system cryptographically. It's universal and vendor neutral.
-
lemur- Acts as a broker between CAs and environments, providing a central portal for developers to issue TLS certificates with 'sane' defaults. -
CFSSL - A swiss army knife for PKI/TLS by CloudFlare. Command line tool and an HTTP API server for signing, verifying, and bundling TLS certificates.
-
JA3 - Method for creating SSL/TLS client fingerprints that should be easy to produce on any platform and can be easily shared for threat intelligence.
JWT
JSON Web Token is a bearer's token.
-
Introduction to JSON Web Tokens - Get up to speed on JWT with this article.
-
Learn how to use JWT for Authentication - Learn how to use JWT to secure your web app.
-
Using JSON Web Tokens as API Keys - Compared to API keys, JWTs offers granular security, homogenous auth architecture, decentralized issuance, OAuth2 compliance, debuggability, expiration control, device management.
-
Managing a Secure JSON Web Token Implementation - JWT has all sorts of flexibility that make it hard to use well.
-
Hardcoded secrets, unverified tokens, and other common JWT mistakes - A good recap of all JWT pitfalls.
-
Adding JSON Web Token API Keys to a DenyList - On token invalidation.
-
Stop using JWT for sessions - And why your "solution" doesn't work, because stateless JWT tokens cannot be invalidated or updated. They will introduce either size issues or security issues depending on where you store them. Stateful JWT tokens are functionally the same as session cookies, but without the battle-tested and well-reviewed implementations or client support.
-
JWT, JWS and JWE for Not So Dummies! - A signed JWT is known as a JWS (JSON Web Signature). In fact a JWT does not exist itself — either it has to be a JWS or a JWE (JSON Web Encryption). Its like an abstract class — the JWS and JWE are the concrete implementations.
-
JOSE is a Bad Standard That Everyone Should Avoid - The standards are either completely broken or complex minefields hard to navigate.
-
JWT.io - Allows you to decode, verify and generate JWT.
-
loginsrv- Standalone minimalistic login server providing a JWT login for multiple login backends (htpasswd, OSIAM, user/password, HTTP basic authentication, OAuth2: GitHub, Google, Bitbucket, Facebook, Gitlab). -
jwtXploiter - A tool to test security of json web token.
OAuth2 & OpenID
OAuth 2.0 is an authorization framework. OpenID Connect (OIDC) is an authentication layer on top of it.
The old OpenID is dead; the new OpenID Connect is very much not-dead.
-
An Illustrated Guide to OAuth and OpenID Connect - Explain how these standards work using simplified illustrations.
-
OAuth 2 Simplified - A reference article describing the protocol in simplified format to help developers and service providers implement it.
-
OAuth 2.0 and OpenID Connect (in plain English) - Starts with an historical context on how these standards came to be, clears up the innacuracies in the vocabulary, then details the protocols and its pitfalls to make it less intimidating.
-
Everything You Need to Know About OAuth (2.0) - A good overview with a practical case study on how Teleport, an open-source remote access tool, allows users to log in through GitHub SSO.
-
OAuth in one picture - A nice summary card.
-
How to Implement a Secure Central Authentication Service in Six Steps - Got multiple legacy systems to merge with their own login methods and accounts? Here is how to merge all that mess by the way of OIDC.
-
Open-Sourcing BuzzFeed's SSO Experience - OAuth2-friendly adaptation of the Central Authentication Service (CAS) protocol. You'll find there good OAuth user flow diagrams.
-
The Decline of OpenID - OpenID is being replaced in the public web to a mix of OAuth 1, OAuth 2 or other proprietary SSO protocols.
-
Why Mastercard Doesn't Use OAuth 2.0 - “They did this to provide message-level integrity. OAuth 2 switched to Transport-level confidentiality/Integrity.” (which TLS provides) (source).
-
OAuth 2.0 Security Best Current Practice - “Updates and extends the OAuth 2.0 Security Threat Model to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application”.
-
Hidden OAuth attack vectors - How to identify and exploit some of the key vulnerabilities found in OAuth 2.0 authentication mechanisms.
-
PKCE Explained - “PKCE is used to provide one more security layer to the authorization code flow in OAuth and OpenID Connect.”
-
Hydra - Open-source OIDC & OAuth2 Server.
-
Cierge - Open-source authentication server (OIDC) that handles user signup, login, profiles, management, and more.
-
Keycloak - Open-source Identity and Access Management. Supports OIDC, OAuth 2 and SAML 2, LDAP and AD directories, password policies.
-
Casdoor - A UI-first centralized authentication / Single-Sign-On (SSO) platform based. Supports OIDC and OAuth 2, social logins, user management, 2FA based on Email and SMS.
-
IdentityServer - Free, open source OpenID Connect and OAuth 2.0 framework for ASP.NET Core.
-
authentik - Open-source Identity Provider similar to Keycloak.
-
ZITADEL - An Open-Source solution built with Go and Angular to manage all your systems, users and service accounts together with their roles and external identities. ZITADEL provides you with OIDC, OAuth 2.0, login & register flows, passwordless and MFA authentication. All this is built on top of eventsourcing in combination with CQRS to provide a great audit trail.
SAML
Security Assertion Markup Language (SAML) 2.0 is a means to exchange authorization and authentication between services, like OAuth/OpenID protocols above.
Typical SAML identity provider is an institution or a big corporation's internal SSO, while the typical OIDC/OAuth provider is a tech company that runs a data silo.
-
SAML vs. OAuth - “OAuth is a protocol for authorization: it ensures Bob goes to the right parking lot. In contrast, SAML is a protocol for authentication, or allowing Bob to get past the guardhouse.”
-
The Difference Between SAML 2.0 and OAuth 2.0 - “Even though SAML was actually designed to be widely applicable, its contemporary usage is typically shifted towards enterprise SSO scenarios. On the other hand, OAuth was designed for use with applications on the Internet, especially for delegated authorisation.”
-
What's the Difference Between OAuth, OpenID Connect, and SAML? - Identity is hard. Another take on the different protocol is always welcome to help makes sense of it all.
-
How SAML 2.0 Authentication Works - Overview of the how and why of SSO and SAML.
-
Web Single Sign-On, the SAML 2.0 perspective - Another naive explanation of SAML workflow in the context of corporate SSO implementation.
-
The Beer Drinker's Guide to SAML - SAML is arcane at times. A another analogy might helps get more sense out of it.
-
SAML is insecure by design - Not only weird, SAML is also insecure by design, as it relies on signatures based on XML canonicalization, not XML byte stream. Which means you can exploit XML parser/encoder differences.
-
The Difficulties of SAML Single Logout - On the technical and UX issues of single logout implementations.
Authorization
Now that we know you are you, are you allowed to perform what you want to do?
Policy specification is the science, enforcement is the art.
Policy models
As a concept, access control policies can be designed to follow very different archetypes, from classic Access Control Lists to Role Based Access Control. In this section we explore lots of different patterns and architectures.
-
Why Authorization is Hard - Because it needs multiple tradeoffs on Enforcement which is required in so many places, on Decision architecture to split business logic from authorization logic, and on Modeling to balance power and complexity.
-
The never-ending product requirements of user authorization - How a simple authorization model based on roles is not enough and gets complicated fast due to product packaging, data locality, enterprise organizations and compliance.
-
RBAC like it was meant to be - How we got from DAC (unix permissions, secret URL), to MAC (DRM, MFA, 2FA, SELinux), to RBAC. Details how the latter allows for better modeling of policies, ACLs, users and groups.
-
The Case for Granular Permissions - Discuss the limitations of RBAC and how ABAC (Attribute-Based Access Control) addresses them.
-
In Search For a Perfect Access Control System - The historical origins of authorization schemes. Hints at the future of sharing, trust and delegation between different teams and organizations.
-
Semantic-based Automated Reasoning for AWS Access Policies using SMT - Zelkova is how AWS does it. This system perform symbolic analysis of IAM policies, and solve the reachability of resources according user's rights and access constraints. Also see the higher-level introduction given at re:inforce 2019.
-
Zanzibar: Google's Consistent, Global Authorization System - Scales to trillions of access control lists and millions of authorization requests per second to support services used by billions of people. It has maintained 95th-percentile latency of less than 10 milliseconds and availability of greater than 99.999% over 3 years of production use. Other bits not in the paper. Zanzibar Academy is a site dedicated to explaining how Zanzibar works.
-
Description of an authz system that is built around labeled security and RBAC concepts.
Open-source policy frameworks
Collection of open-source projects if you're looking to roll your own policy implementation.
-
Keto - Policy decision point. It uses a set of access control policies, similar to AWS policies, in order to determine whether a subject is authorized to perform a certain action on a resource.
-
Ladon - Access control library, inspired by AWS.
-
Athenz - Set of services and libraries supporting service authentication and role-based authorization (RBAC) for provisioning and configuration.
-
Casbin - Open-source access control library for Golang projects.
-
Open Policy Agent - Allows end to end testing of your policies across SQL, Kubernetes, Terraform, Kafka, Envoy, S3 (via Minio), EC2/ECS/Lambda (Linux).
-
Gubernator - High performance rate-limiting micro-service and library.
-
Biscuit - Biscuit merge concepts from cookies, JWTs, macaroons and Open Policy Agent. “It provide a logic language based on Datalog to write authorization policies. It can store data, like JWT, or small conditions like Macaroons, but it is also able to represent more complex rules like role-based access control, delegation, hierarchies.”
-
Oso - A batteries-included library for building authorization in your application.
-
Cerbos - An authorization endpoint to write context-aware access control policies.
AWS policy tools
Tools and resources exclusively targetting the AWS IAM policies ecosystem.
-
Become an AWS IAM Policy Ninja - “In my nearly 5 years at Amazon, I carve out a little time each day, each week to look through the forums, customer tickets to try to find out where people are having trouble.”
-
Cloudsplaining - Security assessment tool that identifies violations of least privilege and generates a risk-prioritized report.
-
Policy Sentry - Writing security-conscious IAM Policies by hand can be very tedious and inefficient. Policy Sentry helps users to create least-privilege policies in a matter of seconds.
-
Aardvark and Repokid - Netflix tools to enforce least privilege on AWS. The idea is that the default policy on new things is deny all, and then it monitors cloudtrail for privilege failures and reconfigures IAM to allow the smallest possible privilege to get rid of that deny message.
-
Principal Mapper - Quickly evaluates permissions.
-
PolicyUniverse - Parse and process AWS policies, statements, ARNs, and wildcards.
-
IAM Floyd - AWS IAM policy statement generator with fluent interface. Helps with creating type safe IAM policies and writing more restrictive/secure statements by offering conditions and ARN generation via IntelliSense. Available for Node.js, Python, .Net and Java.
-
ConsoleMe - A self-service tool for AWS that provides end-users and administrators credentials and console access to the onboarded accounts based on their authorization level of managing permissions across multiple accounts, while encouraging least-privilege permissions.
Macaroons
A clever curiosity to distribute and delegate authorization.
-
Google's Macaroons in Five Minutes or Less - If I'm given a Macaroon that authorizes me to perform some action(s) under certain restrictions, I can non-interactively build a second Macaroon with stricter restrictions that I can then give to you.
-
Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud - Google's original paper.
-
Google paper's author compares Macaroons and JWTs - As a consumer/verifier of macaroons, they allow you (through third-party caveats) to defer some authorization decisions to someone else. JWTs don't.
Secret Management
Architectures, software and hardware allowing the storage and usage of secrets to allow for authentication and authorization, while maintaining the chain of trust.
-
Secret at Scale at Netflix - Solution based on blind signatures. See the slides.
-
High Availability in Google's Internal KMS - Not GCP's KMS, but the one at the core of their infrastructure. See the slides.
-
vault- Secure, store and tightly control access to tokens, passwords, certificates, encryption keys. -
sops- Encrypts the values of YAML and JSON files, not the keys. -
gitleaks- Audit git repos for secrets. -
truffleHog- Searches through git repositories for high entropy strings and secrets, digging deep into commit history. -
Keywhiz - A system for managing and distributing secrets, which can fit well with a service oriented architecture (SOA).
-
roca- Python module to check for weak RSA moduli in various key formats.
Hardware Security Module (HSM)
HSMs are physical devices guaranteeing security of secret management at the hardware level.
-
HSM: What they are and why it's likely that you've (indirectly) used one today - Really basic overview of HSM usages.
-
Tidbits on AWS Cloud HSM hardware - AWS CloudHSM Classic is backed by SafeNet's Luna HSM, current CloudHSM rely on Cavium's Nitrox, which allows for partitionable "virtual HSMs".
-
CrypTech - An open hardware HSM.
-
Keystone - Open-source project for building trusted execution environments (TEE) with secure hardware enclaves, based on the RISC-V architecture.
-
Project Oak - A specification and a reference implementation for the secure transfer, storage and processing of data.
-
Everybody be cool, this is a robbery! - A case study of vulnerability and exploitability of a HSM (in French, sorry).
Trust & Safety
Once you've got a significant user base, it is called a community. You'll then be responsible to protect it: the customer, people, the company, the business, and facilitate all interactions and transactions happening therein.
A critical intermediation complex driven by a policy and constraint by local laws, the Trust & Safety department is likely embodied by a cross-functional team of 24/7 operators and systems of highly advanced moderation and administration tools. You can see it as an extension of customer support services, specialized in edge-cases like manual identity checks, moderation of harmful content, stopping harassment, handling of warrants and copyright claims, data sequestration and other credit card disputes.
-
Trust and safety 101 - A great introduction on the domain and its responsabilities.
-
What the Heck is Trust and Safety? - A couple of real use-case to demonstrate the role of a TnS team.
- Awesome List of Billing and Payments: Fraud links - Section dedicated to fraud management for billing and payment, from our sister repository.
User Identity
Most businesses do not collect customer's identity to create user profiles to sell to third party, no. But you still have to: local laws require to keep track of contract relationships under the large Know You Customer (KYC) banner.
-
The Laws of Identity - Is this paper aims at identity metasystem, its laws still provides great insights at smaller scale, especially the first law: to always allow user control and ask for consent to earn trust.
-
How Uber Got Lost - “To limit "friction" Uber allowed riders to sign up without requiring them to provide identity beyond an email — easily faked — or a phone number. (…) Vehicles were stolen and burned; drivers were assaulted, robbed and occasionally murdered. The company stuck with the low-friction sign-up system, even as violence increased.”
-
A Comparison of Personal Name Matching: Techniques and Practical Issues - Customer name matching has lots of application, from account deduplication to fraud monitoring.
-
Statistically Likely Usernames - Wordlists for creating statistically likely usernames for use in username-enumeration, simulated password-attacks and other security testing tasks.
-
Facebook Dangerous Individuals and Organizations List - Some groups and content are illegal in some juridictions. This is an example of a blocklist.
-
Sherlock - Hunt down social media accounts by username across social networks.
Fraud
As an online service provider, you're exposed to fraud, crime and abuses. You'll be surprised by how much people gets clever when it comes to money. Expect any bug or discrepancies in your workflow to be exploited for financial gain.
-
After Car2Go eased its background checks, 75 of its vehicles were stolen in one day. - Why background check are sometimes necessary.
-
Investigation into the Unusual Signups - A really detailed analysis of suspicious contributor signups on OpenStreetMap. This beautiful and high-level report demonstrating an orchestrated and directed campaign might serve as a template for fraud reports.
-
MIDAS: Detecting Microcluster Anomalies in Edge Streams - A proposed method to “detects microcluster anomalies, or suddenly arriving groups of suspiciously similar edges, in edge streams, using constant time and memory.”
-
Gephi - Open-source platform for visualizing and manipulating large graphs.
Moderation
Any online communities, not only those related to gaming and social networks, requires their operator to invest a lot of resource and energy to moderate it.
-
Still Logged In: What AR and VR Can Learn from MMOs - “If you host an online community, where people can harm another person: you are on the hook. And if you can't afford to be on the hook, don't host an online community”.
-
You either die an MVP or live long enough to build content moderation - “You can think about the solution space for this problem by considering three dimensions: cost, accuracy and speed. And two approaches: human review and machine review. Humans are great in one of these dimensions: accuracy. The downside is that humans are expensive and slow. Machines, or robots, are great at the other two dimensions: cost and speed - they’re much cheaper and faster. But the goal is to find a robot solution that is also sufficiently accurate for your needs.”
-
Keep out the bad apples: How to moderate a marketplace - “With great power comes great responsibility. Some of my tips and tricks to make your marketplace a safer place.”
-
The despair and darkness of people will get to you - Moderation of huge social networks is performed by an army of outsourced subcontractors. These people are exposed to the worst and generally ends up with PTSD.
-
The Cleaners - A documentary on these teams of underpaid people removing posts and deleting accounts.
Threat Intelligence
How to detect, unmask and classify offensive online activities. Most of the time these are monitored by security, networking and/or infrastructure engineering teams. Still, these are good resources for T\&S and IAM people, who might be called upon for additional expertise for analysis and handling of threats.
-
Awesome Threat Intelligence - “A concise definition of Threat Intelligence: evidence-based knowledge, including context, mechanisms, indicators, implications and actionable advice, about an existing or emerging menace or hazard to assets that can be used to inform decisions regarding the subject's response to that menace or hazard.”
-
SpiderFoot - An open source intelligence (OSINT) automation tool. It integrates with just about every data source available and uses a range of methods for data analysis, making that data easy to navigate.
-
Standards related to Threat Intelligence - Open standards, tools and methodologies to support threat intelligence analysis.
-
MISP taxonomies and classification - Tags to organize information on “threat intelligence including cyber security indicators, financial fraud or counter-terrorism information.”
-
Browser Fingerprinting: A survey - Fingerprints can be used as a source of signals to identify bots and fraudsters.
-
The challenges of file formats - At one point you will let users upload files in your system. Here is a corpus of suspicious media files that can be leveraged by scammers =to bypass security or fool users.
-
SecLists - Collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.
-
PhishingKitTracker - CSV database of email addresses used by threat actor in phishing kits.
-
PhoneInfoga - Tools to scan phone numbers using only free resources. The goal is to first gather standard information such as country, area, carrier and line type on any international phone numbers with a very good accuracy. Then search for footprints on search engines to try to find the VoIP provider or identify the owner.
-
Confusable Homoglyphs - Homoglyphs is a common phishing trick.
Captcha
Another line of defense against spammers.
-
Awesome Captcha - Reference all open-source captcha libraries, integration, alternatives and cracking tools.
-
reCaptcha - reCaptcha is still an effective, economical and quick solution when your company can't afford to have a dedicated team to fight bots and spammers at internet scale.
-
You (probably) don't need ReCAPTCHA - Starts with a rant on how the service is a privacy nightmare and is tedious UI-wise, then list alternatives.
-
Anti-captcha - Captchas solving service.
Blocklists
The first mechanical line of defense against abuses consist in plain and simple deny-listing. This is the low-hanging fruit of fraud fighting, but you'll be surprised how they're still effective.
-
Bloom Filter - Perfect for this use-case, as bloom filters are designed to quickly check if an element is not in a (large) set. Variations of bloom filters exist for specific data types.
-
How Radix trees made blocking IPs 5000 times faster - Radix trees might come handy to speed-up IP blocklists.
Hostnames and Subdomains
Useful to identified clients, catch and block swarms of bots, and limit effects of dDOS.
-
hosts- Consolidates reputable hosts files, and merges them into a unified hosts file with duplicates removed. -
nextdns/metadata- Extensive collection of list for security, privacy and parental control. -
The Public Suffix List - Mozilla's registry of public suffixes, under which Internet users can (or historically could) directly register names.
-
Country IP Blocks - CIDR country-level IP data, straight from the Regional Internet Registries, updated hourly.
-
Certificate Transparency Subdomains - An hourly updated list of subdomains gathered from certificate transparency logs.
-
common-domain-prefix-suffix-list.tsv- Top-5000 most common domain prefix/suffix list. -
hosts-blocklists- No more ads, tracking and other virtual garbage. -
xkeyscorerules100.txt- NSA's XKeyscore matching rules for TOR and other anonymity preserving tools. -
pyisp- IP to ISP lookup library (includes ASN). -
AMF site blocklist - Official French denylist of money-related fraud sites.
Emails
-
Burner email providers - A list of temporary email providers. And its derivative Python module.
-
MailChecker - Cross-language temporary (disposable/throwaway) email detection library.
-
Temporary Email Address Domains - A list of domains for disposable and temporary email addresses. Useful for filtering your email list to increase open rates (sending email to these domains likely will not be opened).
-
gman- “A ruby gem to check if the owner of a given email address or website is working for THE MAN (a.k.a verifies government domains).” Good resource to hunt for potential government customers in your user base. -
Swot- In the same spirit as above, but this time to flag academic users.
Reserved IDs
-
General List of Reserved Words - This is a general list of words you may want to consider reserving, in a system where users can pick any name.
-
Hostnames and usernames to reserve - List of all the names that should be restricted from registration in automated systems.
Profanity
-
List of Dirty, Naughty, Obscene, and Otherwise Bad Words - Profanity blocklist from Shutterstock.
-
profanity-check- Uses a linear SVM model trained on 200k human-labeled samples of clean and profane text strings.
Privacy
As the guardian of user's data, the IAM stack is deeply bounded by the respect of privacy.
-
Privacy Enhancing Technologies Decision Tree - A flowchart to select the right tool depending on data type and context.
-
Paper we love: Privacy - A collection of scientific studies of schemes providing privacy by design.
-
IRMA Authentication - Open-source app and protocol that offers privacy-friendly attribute based authentication and signing using Camenisch and Lysyanskaya's Idemix.
-
Have I been Pwned? - Data breach index.
-
Automated security testing for Software Developers - Most privacy breaches were allowed by known vulnerabilities in third-party dependencies. Here is how to detect them by the way of CI/CD.
-
Email marketing regulations around the world - As the world becomes increasingly connected, the email marketing regulation landscape becomes more and more complex.
-
World's Biggest Data Breaches & Hacks - Don't be the next company leaking your customer's data.
Anonymization
As a central repository of user data, the IAM stack stakeholders have to prevent any leakage of business and customer data. To allow for internal analytics, anonymization is required.
-
The False Allure of Hashing for Anonymization - Hashing is not sufficient for anonymization no. But still it is good enough for pseudonymization (which is allowed by the GDPR).
-
Four cents to deanonymize: Companies reverse hashed email addresses - “Hashed email addresses can be easily reversed and linked to an individual”.
-
Why differential privacy is awesome - Explain the intuition behind differential privacy, a theoretical framework which allow sharing of aggregated data without compromising confidentiality. See follow-up articles with more details and practical aspects.
-
k-anonymity: an introduction - An alternative anonymity privacy model.
-
Presidio - Context aware, pluggable and customizable data protection and PII data anonymization service for text and images.
-
Diffix: High-Utility Database Anonymization - Diffix try to provide anonymization, avoid pseudonymization and preserve data quality. Written in Elixir at Aircloak, it acts as an SQL proxy between the analyst and an unmodified live database.
GDPR
The well-known European privacy framework
-
GDPR Tracker - Europe's reference site.
-
GDPR Developer Guide - Best practices for developers.
-
GDPR – A Practical guide for Developers - A one-page summary of the above.
-
GDPR Tracker - Track the GDPR compliance of cloud services and subprocessors.
-
GDPR documents - Templates for personal use to have companies comply with "Data Access" requests.
-
Dark Patterns after the GDPR - This paper demonstrates that, because of the lack of GDPR law enforcements, dark patterns and implied consent are ubiquitous.
-
GDPR Enforcement Tracker - List of GDPR fines and penalties.
-
Ship Your Enemies GDPR - Weaponizing GDPR to help you send your enemies a Data Requests designed to waste as much of their time as possible.
UX/UI
As stakeholder of the IAM stack, you're going to implement in the backend the majority of the primitives required to build-up the sign-up tunnel and user onboarding. This is the first impression customers will get from your product, and can't be overlooked: you'll have to carefully design it with front-end experts. Here is a couple of guides to help you polish that experience.
-
The 2020 State of SaaS Product Onboarding - Covers all the important facets of user onboarding.
-
User Onboarding Teardowns - A huge list of deconstructed first-time user signups.
-
Discover UI Design Decisions Of Leading Companies - From Leaked Screenshots & A/B Tests.
-
Conversion Optimization - A collection of tactics to increase the chance of users finishing the account creation funnel.
-
Trello User Onboarding - A detailed case study, nicely presented, on how to improve user onboarding.
-
11 Tips for Better Signup / Login UX - Some basic tips on the login form.
-
Don't get clever with login forms - Create login forms that are simple, linkable, predictable, and play nicely with password managers.
-
Why are the username and password on two different pages? - To support both SSO and password-based login. Now if breaking the login funnel in 2 steps is too infuriating to users, solve this as Dropbox does: an AJAX request when you enter your username.
-
HTML attributes to improve your users' two factor authentication experience - “In this post we will look at the humble
<input>element and the HTML attributes that will help speed up our users' two factor authentication experience”. -
Remove password masking - Summarizes the results from an academic study investigating the impact removing password masking has on consumer trust.
-
For anybody who thinks "I could build that in a weekend," this is how Slack decides to send a notification - Notifications are hard. Really hard.
Competitive Analysis
A bunch of resources to keep track of the current status and progress of all companies operating in the domain.
-
AWS Security, Identity & Compliance announcements - The source of all new features added to the IAM perimeter.
-
GCP IAM release notes - Also of note: Identity, Identity Platform, Resource Manager, Key Management Service/HSM, Access Context Manager, Identity-Aware Proxy, Data Loss Prevention and Security Scanner.
-
Unofficial Weekly Google Cloud Platform newsletter - Relevant keywords:
IAMandSecurity. -
DigitalOcean Accounts changelog - All the latest accounts updates on DO.
-
163 AWS services explained in one line each - Help makes sense of their huge service catalog. In the same spirit: AWS in simple terms & AWS In Plain English.
-
Google Cloud Developer's Cheat Sheet - Describe all GCP products in 4 words or less.
History
- cryptoanarchy.wiki - Cypherpunks overlaps with security. This wiki compiles information about the movement, its history and the people/events of note.
Contributing
Your contributions are always welcome! Please take a look at the contribution guidelines first.
Footnotes
The header image is based on a modified photo by Ben Sweet.
[1]: Poison Study (Mira, 2007). [↑]
Awesome Slim 
A curated list of awesome Slim framework packages and resources.
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.
Contents
Educational
- User Guide - The official documentation for Slim Framework.
- Stack Overflow - Slim Framework questions over Stack Overflow.
- Discussion Forum - The official Slim Framework discussion forum.
- Slim 4 - GraphQL - Creating a modern HTTP APIs usig GraphQL.
- Slim 4 - ReactPHP - Slim in combination with ReactPHP for the performance boost.
Boilerplate
- Slim 4 MVC Skeleton - This is a simple web application skeleton project.
- Slim 4 Skeleton - Web application skeleton that uses the PHP-DI, Nyholm PSR7 and Twig.
- Slim 4 Skeleton - This is a skeleton to quickly set up a new Slim 4 application.
- Slim Skeleton - The official Slim Framework 4 Skeleton Application.
Middlewares
- Slim Basic Auth - PSR-7 and PSR-15 HTTP Basic Authentication Middleware.
- Slim CSRF - Slim Framework CSRF protection middleware.
- Slim HTTP Cache - Slim Framework HTTP cache middleware and service provider.
- Slim JWT Auth - PSR-7 and PSR-15 JWT Authentication Middleware.
- Slim Minify - Slim middleware to minify HTML output generated by the slim.
- Slim Session - A very simple session middleware for Slim Framework.
- Slim Whoops - PHP whoops error on slim framework.
Templating
- Slim Twig View - Slim Framework view helper built on top of the Twig templating component.
- Slim Plates - Render your Slim application views using Plates template engine.
- Slim PHP View - This is a renderer for rendering PHP view scripts into a PSR-7 Response object.
Development
- Pest Slim Plugin - The Slim Plugin for Pest gives your basic functionality for testing.
- Slim Test - Slim Framework test helper built on top of the PHPUnit test framework.
Miscellaneous
- BasePath - Base path detector for Slim 4.
- PHP-DI Slim Bridge - PHP-DI integration with the Slim framework.
- Slim Config - A file configuration loader that supports PHP, INI, XML, JSON, and YML files.
- Slim Console - Slim Framework Console.
- Slim Flash - Slim Framework flash messages service provider.
- Slim JSON API - Slim extension to implement fast JSON API's.
- Slim Validation - A validation library for the Slim Framework.
- IntelliJ Slim - Provides boilerplate codes for easier new project creation using skeleton.
Contributing
Contributions welcome! Read the contribution guidelines first.







