DirDev.com

Awesome Flask Awesome

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

  • Flask-Admin - Functional admin panel that provides a user interface for managing data based on your models.

APIs

RESTful API Support

RESTful API + Swagger/OpenAPI Documentation Support

Swagger/OpenAPI Documentation Support

Auth

Basic Auth and Session-based (for HTML Endpoints)

Curious about the differences differences between Flask-User and Flask-Security? Review the Flask-User FAQ.

JWT-based (for JSON Endpoints)

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

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

ODMs

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

Fixtures

Logging

  • Rollbar - Flask error logging with Rollbar.

Monitoring

Tracing

Testing

Email

Forms

  • Flask-WTF - Integrates Flask with WTForms (provides CSRF protection as well).

Security

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

Resources

Official Resources

External Resources

Community

  • Discord - Pallets Projects community on Discord (use the #get-help channel for Flask support).
  • IRC Channel - Chat with other Flask users on IRC channel #pocoo on 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

Podcasts

Tutorials

Courses

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

Hosting

PaaS

(Platforms-as-a-Service)

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 Awesome Netlify Status

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

  • 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

Where to start (Windows)


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"

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-compose alternative) 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

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

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

Desktop

Native desktop applications for managing and montoring docker hosts and clusters

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

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 Dockerfile clickable 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 ansible and buildah by @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 dfg is 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:

Linter

Metadata

  • opencontainer - A convention and shared namespace for Docker labels defined by OCI Image Spec.

Registry

Services to securely store your Docker images.

Development with Docker

API Client

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

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.yaml file 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

Awesome Lists

Demos and Examples

Good Tips

Raspberry Pi & ARM

Security

Videos

Communities and Meetups

Brazilian

Chinese

English

Russian

Spanish

Stargazers over time

Stargazers over time

Contributor over time

Contributor over time

Awesome Vagrant

Awesome Gitter Build Status

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

Notable plugins

You can install these modules by this command vagrant plugin install MODULE-NAME

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

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 PHP Web 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

Books

  • 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

CC0

To the extent possible under law, Ievgen Kuzminov has waived all copyright and related or neighboring rights to this work.

Awesome Pyramid

Awesome IRC
Freenode

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.
  • Websauna - a full stack application framework for Pyramid

Asset Management

Packages that help manage the static assets of a project.

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.

Debugging

Packages that help hunt down bugs.

Email

Packages that help manage email sending.

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.

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

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

Videos

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?

Contributing

Just fork and send a pull request with your awesome Pyramid apps, projects or resources.

License

CC0

To the extent possible under law, @uralbash has waived all copyright and related or neighboring rights to this work.

Awesome Play1 play-isthe1! Awesome

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 |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | registered on playframework.com/modules | the module is registered in playframework.com/modules. The badge points to the registered page. | | registered on playframework.com/modules | 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. | | mavenized | the module is available in MavenCentral thanks to the maven-play-plugin. The badge poins to the maven repository of the module. | | Updated since the play module registry was frozen | 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

Deployment

Injection/dependencies

Language

Messaging/events

  • [akka] Akka support registered on playframework.com/modules Allows you to configure akka through The Play! framework’s conf/application.conf file.
  • [camel] Camel registered on playframework.com/modules A EIP + Messaging module for the Play! Framework
  • [pusher] Pusher registered on playframework.com/modules This module lets you easily add realtime functionality to your Play applications with Pusher using websockets.
  • [rabbitmq] RabbitMQ registered on playframework.com/modules RabbitMQ offers a highly available and scalable, and yet lightweight, messaging system.

Monitoring

  • [accesslog] Accesslog registered on playframework.com/modulesmavenized A Play framework module that performs request logging similar to an access log file in nginx or apache.
  • [betterlogs] BetterLogs registered on playframework.com/modules 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 registered on playframework.com/modules InfoPlay is a module which gives many informations like infophp in PHP language.
  • [jpastats] Jpastats registered on playframework.com/modules Record how many database queries were executed during a request
  • [log4play] Log4Play registered on playframework.com/modules Provides a log4j appender which publishes log entries to an EventStream
  • [play-hibernate-statistics] Hibernate statistics registered on playframework.com/modules Displays MBean Hibernate statistics
  • [playerrors] Playerrors registered on playframework.com/modules 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 registered on playframework.com/modules Displays a mini profiler in your application
  • [recordtracking] RecordTracking registered on playframework.com/modules RecordTracking unobtrusively tracks the creation, updating and elimination events regarding to records.
  • [statsd] Statsd registered on playframework.com/modules The module is a wrapper over StatsD which allow for dead simple statistic aggregation from within play.

Persistence

  • [associations] Associations registered on playframework.com/modulesmavenized This module reduces the code to manage bi-directional associations.
  • [cream] JCR for Play! registered on playframework.com/modules A module that seamlessly integrates Apache Jackrabbit(JCR 2.0) with Play framework
  • [ebean] EBean ORM support registered on playframework.com/modulesmavenized Adds Ebean ORM to play!. Still in very experimental phase.
  • [mongo] MongoDB registered on playframework.com/modules 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 registered on playframework.com/modulesmavenizedUpdated since the play module registry was frozen Seamlessly MongoDB access integration with Play’s Model interface.
  • [mybatisplay] MyBatisPlay registered on playframework.com/modules Provides support for MyBatis persistence framework.
  • [neo4j] logisima-neo4j registered on playframework.com/modules Integrate neo4j database into your play! project.
  • [objectify] Objectify registered on playframework.com/modules Objectify is a flexible abstraction on Google App Engine/J which makes data access simple and elegant
  • [orientdb] OrientDB registered on playframework.com/modules OrientDB for Play! Framework
  • [redis] Redis registered on playframework.com/modulesmavenized The Redis Play! module helps you easily use Redis in your Play! applications
  • [riak] Riak registered on playframework.com/modules Allow to use riak-java-client in play! way.
  • [s3blobs] S3Blobs registered on playframework.com/modules The S3Blobs Play Framework Module provides an easy way to read an write files from Amazon S3 from within JPA entities.
  • [siena] Siena registered on playframework.com/modulesmavenizedUpdated since the play module registry was frozen Enables Siena support to map your Java entities to GAE/MySQL/PostgreSQL/H2 from your play application
  • [twig] Twig registered on playframework.com/modules 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

Rest

  • [jersey] Jersey registered on playframework.com/modules Integrates Jersey into the Play! Framework.
  • [resteasy] RESTEasy Play! module registered on playframework.com/modules The RESTEasy Play! module allows you to define JAX-RS RESTful web services in the Play! Framework using RESTEasy.
  • [resteasycrud] RESTEasy CRUD module registered on playframework.com/modules The Play! RESTEasy CRUD module which allows you to automagically generate your RESTful CRUD resources for a given model
  • [swagger] Swagger registered on playframework.com/modules Creates a self-documenting meta-description for REST APIs which allows for code-gen, UI-sandbox, and test framework.

Scaffolding

  • [crudsiena] CRUD for Siena registered on playframework.com/modules Offers a fully usable web interface for your Siena Model objects with a few more features than default [crud] module.
  • [mocha] Mocha registered on playframework.com/modules An implementation of mocha UI javascript interface for Play!
  • [play-bootstrap] Basic bootstrap scaffolding registered on playframework.com/modules Creating Bootstrap based applications (derived from the default [scaffold] module).
  • [scaffold] Scaffold registered on playframework.com/modules Scaffold will generate basic scaffolding for bootstrapping a project from your JPA or Senia entities
  • [elasticsearch] ElasticSearch registered on playframework.com/modules Elastic Search is a Distributed Search Solution based on Apache Lucene. This module provides an embedded Elastic Server instance for Rapid Development.
  • [search] Search registered on playframework.com/modulesmavenized Search allows you to have basic full text search functionalities to your JPA Model. It is based on Lucene.

Security

  • [browserid] BrowserID registered on playframework.com/modules 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 registered on playframework.com/modules This module is a CAS client for Play! application.
  • [casino] Casino registered on playframework.com/modules This project provides a simple method to integrate sign-up and password recovery to your project
  • [deadbolt] Deadbolt registered on playframework.com/modulesmavenized Deadbolt is an authorisation mechanism for defining access rights to certain controller methods or parts of a view
  • [fbconnect] Facebook connect registered on playframework.com/modules Easily integrate Facebook based authentication into any Play framework application.
  • [force] Force.com registered on playframework.com/modules Build Play! applications that integrates to Force.com. Provides OAuth authentication and REST API adapter.
  • [linkedin] LinkedIn OAuth Authentication registered on playframework.com/modules Easily integrate LinkedIn’s OAuth authentication into your Play Framework application
  • [oauth] OAuth Client registered on playframework.com/modules This module provides tools to connect to an OAuth provider, such as Twitter or Google.
  • [recaptcha] Recaptcha registered on playframework.com/modulesmavenized Quickly integrate reCaptcha.com challenge-response test in your applications.
  • [securepermissions] Secure Permissions registered on playframework.com/modules Extends the defaut secure module to add permission checks based on the rules in the Seam Framework (based on Drools rules).
  • [securesocial] SecureSocial registered on playframework.com/modulesmavenized 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 registered on playframework.com/modules Allow users to login to your Play! application via Shibboleth.

Template

Testing

  • [cobertura] Cobertura registered on playframework.com/modulesmavenized Integrates with Cobertura to calculate the percentage of code accessed by tests (test coverage).
  • [httpmock] HttpMock registered on playframework.com/modules Caches WebService requests to emulate them in order to overcome connection problems (lag, denial of service, HTTP errors) for fast developping.
  • [mockito] Mockito registered on playframework.com/modulesmavenized Mockito is a mocking framework that tastes really good
  • [qunit] QUnit registered on playframework.com/modulesmavenized The QUnit module provides integration of JUnit Javascript tests with the Play! Framework.
  • [spocktests] Spock tests registered on playframework.com/modules Runs Spock specifications and to write BDD style tests (still wrapped as junit) with the expressive power of groovy.
  • [springtester] spring tester registered on playframework.com/modulesmavenized Write tests that can auto-magically inject mocks (using Mockito) into Play applications wired up using the spring module.
  • [tests] Alternative Test module registered on playframework.com/modules The Test Module for Play!Framework helps you write tests quicker, is a cleaner and reusable manner.
  • [webdrive] Webdrive registered on playframework.com/modulesmavenized WebDrive module provides Selenium 2 testing support for Play framework

Translation

  • [i18ntools] I18ntools registered on playframework.com/modules This module will add some tools to ease use of i18n in your Play! projects.
  • [messages] @messages registered on playframework.com/modulesmavenized Module messages provides a web based tool for managing your application’s localizations.
  • [nemrod] Nemrod registered on playframework.com/modules This module helps to import and export translations from your application to a Nemrod instance automatically.
  • [play-i18ned] Play-i18ned registered on playframework.com/modules Converts default i18n files from an Excel Sheet and the other way around.

Misc

Tools

You know a tool that every player should use? Tell us!

Resources

License

CC0

To the extent possible under law, PerfectCarl has waived all copyright and related or neighboring rights to this work.

Awesome CakePHP Awesome

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

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

Asset Management

Tools for managing, compressing and minifying website assets.

Auditing / Logging

Plugins for auditing and logging.

Authentication and Authorization

Plugins and libraries for implementing authentication and authorization.

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.

Email

Plugins for sending and parsing email.

Environment

Plugins for environment.

File Manipulation

Plugins for file manipulation.

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.

HTTP

Plugins for HTTP and 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.

Libs

Useful libraries or tools that don't fit in any of the other categories.

Markup

Plugins for working with markup.

Migration

Plugins and resources around migration and upgrading.

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.

Tools for building navigation structures.

NoSQL

Plugins for working with "NoSQL" backends.

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.

PDF

Plugins and software for working with PDF files.

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.

Plugins and software for indexing and performing search queries on data.

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.

Third Party APIs

Plugins for accessing third party APIs.

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

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 Websites

Useful and current CakePHP-related websites and blogs.

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 Internals Reading

Reading materials related to the CakePHP internals and decisions.

Conferences

Official

International conference.

MeetUps

Regional meet-ups.

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 Awesome

A list of awesome Symfony bundles, utilities and resources.

Table of contents:

Administration

Certification

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

Distributions

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

Internationalization

Miscellaneous

Monitoring

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

Resources

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

Template Engine

Third Party APIs

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

CC0

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 Awesome

Build Status

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

Series for begginers

Dependency Injection

EventDispatcher

Security

Forms

Doctrine

Translations

Bundles

Decoupling

Legacy

Performance

DDD

General

Books

License

CC0

To the extent possible under law, Tomas Votruba has waived all copyright and related or neighboring rights to this work.

Awesome Laravel Awesome Build Status

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

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
Testing & Debugging
Authentication & Authorization
Utilities
Media & Document Management
Integration with Javascript
Databases, ORMs, Migrations & Seeding
  • 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
Optimization
Monitoring
Localization
Third-party Service Integration

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

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

Videos

Conferences

Videos

Books

Starter Projects

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

Podcasts

Community

Local User Groups
Meetups

Jobs

Hosted Development Tools

Miscellaneous

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

CC BY 4.0

Awesome Laravel is licensed under a Creative Commons Attribution 4.0 International License.

Awesome Laravel Education Awesome

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 ;)

Laravel Logo

English Version

Index

New to Laravel

Quick References

Learn From Awesome 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

Mail

Testing and Coding Standard

Case Study

Tutorial

Blogs

Newsletters

Open Source Laravel

Coding Standard

Dependency Management

Develop Tools

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

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 Awesome Lint Awesome List

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

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

Examples

These apps & websites were built using the TALL stack.

Legend: 🔓 Open Source · 🔐 Closed Source

Awesome Rails

A curated list of awesome things related to Ruby on Rails Awesome

awesome-rails

Table of Contents

Use the "Table on Contents" menu on the top-left corner to explore the list.

Resources

Official Resources

Back to top

External Resources

Books

Video tutorials

Youtube channels

Other external resources

Back to top

Jobs

Tip: You can find list of remote job boards including Rails jobs on awesome-remote-job

Back to top

Community

Back to top

Articles

from dev.to:

from shopify.engineering:

from blog.planetargon.com:

from blog.arkency.com:

from scotch.io:

from sitepoint.com:

from pganalyze.com:

from semaphoreci.com:

from evilmartians.com:

from digitalocean.com

from not yet classified sources:

Back to top

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.

Back to top

Gems

[:red_circle:] : RubyGems link of gems

Direct dependencies of the "rails" gem:

Other gems that can be used with Rails

Back to top

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:.

Back to top

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 |

Back to top

DevTools

  • rails-dashboard - A dev-tool to improve your rails log.
  • Optic - Optic automatically documents and tests your APIs.

Back to top

Awesome Rails Gem Awesome

A collection of awesome Ruby Gems for Rails development.

The goal is to help every Rails developer to build an awesome Rails product/service.

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

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.

Email

  • 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

Awesome Actions Status

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.

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.

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

Dashboard

Admin Panels & Dashboards.

Debug

Debug & profiling tools.

i18n

List of i18n and l10n libraries and services.

Integration

Integration with third party services

## 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.

ODM

Libraries that implement Object-Document Mapper techniques.

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.

Searching

Searching tools & libraries.

SEO

Seo tools.

Shop & Ecommerce

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.

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

Slides

Books

E-Books

Magazines

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

.htaccess Snippets Awesome

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

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

# Remove "includeSubDomains" if you don't want to enforce HSTS on all subdomains Header always set Strict-Transport-Security "max-age=31536000;includeSubDomains" ```

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.2 Order allow,deny Deny from all Satisfy All

## 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

Require valid-user

Require valid-user ```

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 ExpiresActive on ExpiresDefault "access plus 1 month"

# 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 Awesome

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

Architecture

Configuration

Tutorials

Modules development

APIs

Hacks

Tips

Nginx + Lua

OpenResty

Tengine

Talks

License

CC0

To the extent possible under law, Frederic Cambus has waived all copyright and related or neighboring rights to this work.

Awesome Dropwizard Awesome

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

Open Source

Boilerplate Destruction

  • Brahma-HibernateUtils - An annotation processor to keep track of @Entity classes to make entity registration in dropwizard super simple.

Authentication

Assets

Data Stores

Metrics

Logging

Scheduled/Recurrence Jobs

Guice

Deployment

Tutorials

Guides

Community

Videos

Contribute

Contributions welcome! Read the contribution guidelines first.

Awesome!

Check out more awesome projects.

License

CC0

To the extent possible under law, Steve Agalloco has waived all copyright and related or neighboring rights to this work.

Awesome-Kubernetes

Awesome Links validator Python application Slack Widget Documentation Status Binder

A curated list for awesome kubernetes sources inspired by @sindresorhus' awesome

final-k8s

"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.


Starting Point

A place that marks the beginning of a journey

Contributing

Contributions are most welcome!

This list is just getting started, please contribute to make it super awesome.

Check out the Contributing Guidelines.

License

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

Awesome lumen Awesome

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

Demos

Tutorials

Written

Videos

Packages and Middleware

Made With Lumen

Books

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

CC0

This work (Awesome Lumen) is free of known copyright restrictions.

Awesome Serverless Awesome

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

  • 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

Literature / Education

Professional services

Awesome Wicket Awesome

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

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

License

CC0

Awesome Vert.x Awesome

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 (stack) 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

  • Vert.x Web (stack) - 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

Database Clients

Clients for connecting to databases

  • Relational Databases
  • Reactive SQL Client (stack) - High performance reactive SQL client.
  • JDBC (stack) - Asynchronous interface around a JDBC datasource.
  • MySQL / PostgreSQL (stack) - 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 DSL and uses the reactive and non-blocking SQL driver from Vert.x.

  • NoSQL Databases

  • MongoDB (stack) - An asynchronous client for interacting with a MongoDB database.
  • Redis (stack) - Asynchronous API to interact with Redis.
  • Cassandra (stack) - 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 (stack) - 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 (stack) - Interact with AMQP 1.0 servers using the Vert.x Producer and Consumer APIs.
  • MQTT (stack) - 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 (stack) - A RabbitMQ client (AMQP 0.9.1).
  • Kafka Client (stack) - 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 (stack) - 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 (stack) - 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 (stack) - 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 (stack) - Metrics implementation using DropWizard metrics.
  • Micrometer metrics (stack) - 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 (stack) - Ceylon support.
  • Groovy (stack) - Groovy support.
  • Java (stack) - Vert.x main repository (including the Java API).
  • JavaScript (stack) - JavaScript support.
  • Python - Python support.
  • Ruby (stack) - Ruby support.
  • Scala - (stack) - Scala support.
  • Kotlin - (stack) - Kotlin support.
  • EcmaScript - EcmaScript >=6 (JavaScript) support.
  • Php - Php support.

Language extensions

Reactive

  • Reactive Streams (stack) - Vert.x Reactive Streams.
  • Vert.x Rx (stack) - Vert.x Reactive Extensions.
  • Vert.x Sync (stack) - Vert.x fiber support.
  • Kotlin coroutines (stack) - 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

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

Cloud Support

Docker

Microservices

Search Engines

Template Engines

  • KorTE Template Engine - Kotlin Template Engine similar to Twig/Django/Liquid supporting calling Kotlin suspend methods.

Service Factory

Config

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

Development Tools

  • Vert.x shell (stack) - 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

Examples

Deployment

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

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 Awesome

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

Scalr - Terraform Automation & Collaboration Software

Contents

Legend

  • Not compatible with terraform >= 0.12 :ghost:
  • Abandoned :skull:
  • Monetized :heavy_dollar_sign:

Official Resources

Community

Books

Tutorials and Blog Posts

Beginner Guides

Writing Custom Providers

How-To

Multi-Environment Configuration

Azure

AWS

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

Community Modules

For more Community Modules not listed here please see the Terraform Module Registry.

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

Vendor supported providers

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.tf to generate variables.tf and make module usage stub from variables.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 plan and 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 plan and terraform 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

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

Editor Plugins

License

CC0

To the extent possible under law, Shuaib Yunus has waived all copyright and related or neighboring rights to this work.

Awesome Vapor Awesome

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

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

  • v3 API Error Middleware – Vapor middleware for converting thrown errors to JSON responses.
  • v3 APNS – Vapor APNS for iOS.
  • v3 Bugsnag – Report errors with Bugsnag.
  • v3 CouchDB Client – Simple CouchDB client for Vapor.
  • v3 CrudRouter – Automatic RESTful CRUD router generation for any Fluent Model.
  • v3 CSRF – A package to add protection to Vapor against CSRF attacks.
  • v3 CSV Framework – A simple framework to read and write CSV files.
  • v3 Ferno – Vapor Firebase Realtime database provider.
  • v3 Flash – Flash messages between views.
  • v3 FluentQuery – Build complex raw SQL queries while still using Swift keypaths.
  • v3 Gatekeeper – Rate limiting middleware for Vapor.
  • v3 Google Cloud Provider – Interact with Google Cloud Platform APIs from your Vapor project.
  • v3 Guardian – Modern rate-limiting middleware.
  • v3 Imperial – Federated Authentication with OAuth providers.
  • v3 JWT Keychain – Easily scaffold a keychain using JWT for Vapor.
  • v3 JWT Middleware – Middleware to Authenticate and Authorize Requests in Vapor.
  • v3 Leaf Error Middleware – Serve up custom 404 and server error pages for your Vapor App.
  • v3 Leaf Markdown – Markdown renderer for Vapor.
  • v3 Lingo Vapor – Vapor provider for Lingo – the Swift localization library.
  • v3 Local Storage – Storage driver using local filesystem.
  • v3 MailCore – Sending e-mails via SMTP, MailGun and SendGrid.
  • v3 Meow – An alternative codable ORM for MongoDB.
  • v3 MongoKitten – MongoDB driver in Swift.
  • v3 Pagination – Simple Vapor 3 Pagination.
  • v3 Paginator – Query pagination for Vapor and Fluent.
  • v3 S3 – Library for accessing the Amazon S3 service (and compatible) with support for most commonly used operations.
  • v3 S3 Storage – Library for simple access to the Amazon S3 service.
  • v3 Sanitize – Powerful model extraction from Vapor JSON requests.
  • v3 SendGrid Provider – SendGrid-powered mail backend for Vapor.
  • v3 SimpleFileLogger – A simple file logging provider for Vapor.
  • v3 Slugify – Convenience for sluggifying your strings.
  • v3 Storage – Eases the use of multiple storage and CDN services.
  • v3 Stripe Provider – Stripe Provider for Vapor.
  • v3 Submissions – Conveniences for creating forms and validating (form) submissions.
  • v3 Sugar – A package of sugar for Vapor.
  • v3 SwifQL – Easily build flexible and type-safe SQL with pure Swift.
  • v3 SwiftyBeaver Provider – SwiftyBeaver Logging Provider for Vapor, the server-side Swift web framework.
  • v3 Telesign Provider – A Telesign provider for Vapor.
  • v3 Vapor Mailgun Service – A service to be used with Vapor to send emails.
  • v3 Vapor reCAPTCHA – Validate Google reCAPTCHAs using Vapor.
  • v3 Vapor Request Storage – A replacement for request.storage which was available in Vapor 1 & 2.
  • v3 Vapor Security Headers – Harden Your Security Headers For Vapor.
  • v3 Vapor Test Tools – Helper designed to make testing your endpoints in Vapor 3 pain-free.
  • v3 VaporExt – A collection of Swift extensions for wide range of Vapor data types and classes.
  • v3 WKHTMLTOPDF – Build PDF files from Leaf templates or web pages through the wkhtmltopdf CLI tool.
  • v3 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.
  • v3 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

Books

Newsletters

  • VaporNation – Weekly Vapor newsletter with all things Vapor.

Videos

Open-source Projects

  • v3 SteamPress – A Blogging Engine and Platform written in Swift for use with the Vapor Framework.
  • v3 User Manager Service – A small, useful user manager made for production application setups.

License

CC0

To the extent possible under law, Milan Vit has waived all copyright and related or neighbouring rights to this work.

Awesome Dash Awesome

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

  • 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

Books

Cheat sheets

Community

Contributors

License

CC0
This work is licensed under a Creative Commons Attribution 4.0 International License.

Awesome FastAPI | Awesome

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

  • 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

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

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

Developer Tools

Email

  • FastAPI Mail - Lightweight mail system for sending emails and attachments (individual and bulk).

Utils

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

Articles

Tutorials

Talks

Videos

Courses

Hosting

PaaS

(Platforms-as-a-Service)

IaaS

(Infrastructure-as-a-Service)

Serverless

Frameworks:

Compute:

Projects

Boilerplate

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

Sponsors

Please support this open source project by checking out our sponsors:

Awesome CDK 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

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

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

Monitoring

Workflows

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

Library Publishing

Tools

  • CDK-Dia - Automatic infrastructure diagrams for AWS CDK.

Training Materials and Sample Code

Blog Posts & Talks

  • 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

Contributing

Contributions welcome! Read the contribution guidelines first.

Awesome IAM

A curated list of resources on managing accounts, users, roles, permissions, authentication and authorization. Awesome

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

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:GetObject to * (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.

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.

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.

Password-based

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

SMS-based

TL;DR: don't. For details, see articles below.

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.

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.

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.

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.

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.

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.

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.

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.

Hostnames and Subdomains

Useful to identified clients, catch and block swarms of bots, and limit effects of dDOS.

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

Profanity

Privacy

As the guardian of user's data, the IAM stack is deeply bounded by the respect of privacy.

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.

GDPR

The well-known European privacy framework

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.

Competitive Analysis

A bunch of resources to keep track of the current status and progress of all companies operating in the domain.

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 Awesome

Slim Framework

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

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.