takeout
Downloads Google data archive
TLDR
Display a list of available services
Enable a specific service
Enable a specific service with the default parameters
Display a list of enabled services
Disable a specific service
Disable all services
Start a specific container
Stop a specific container
SYNOPSIS
takeout <command> [arguments]
Common commands:
takeout list
takeout enable <service> [project_path]
takeout disable <service> [project_path]
takeout fresh <service>
takeout link <service> <project_path>
takeout unlink <service> <project_path>
takeout install
takeout self-update
PARAMETERS
list
Lists all available services and their current status (enabled/disabled).
enable <service> [project_path]
Enables a specified service (e.g., mysql, redis), optionally linking it to a project directory. This starts the Docker container for the service.
disable <service> [project_path]
Disables a specified service, optionally unlinking it from a project. This stops and removes the Docker container for the service.
fresh <service>
Stops, removes, and recreates a service's container, effectively resetting its data. Useful for development when you need a clean slate.
link <service> <project_path>
Links an already enabled service to a specific project directory. This makes the service's environment variables available within the specified project.
unlink <service> <project_path>
Unlinks a service from a project directory, removing its environmental linkage from that specific project.
install
Performs initial setup, downloading necessary Docker images and configuring Takeout on your system.
self-update
Updates the Takeout CLI tool to its latest available version.
--path <path>
A global option to specify a custom path for the Takeout data and configuration directory, overriding the default location.
--help
Displays help information for the overall command or a specific subcommand.
--version
Displays the installed version of the Takeout CLI tool.
DESCRIPTION
takeout is not a standard Linux command found in typical distributions. Instead, it refers to a third-party utility, most prominently "BeyondCode Takeout," designed to simplify the management of isolated development services (like MySQL, PostgreSQL, Redis, Memcached) using Docker. Its primary goal is to provide a clean, consistent way to enable and disable services for local projects without polluting the host system or requiring complex Docker configurations manually. It is particularly popular within the PHP and Laravel development communities for managing project dependencies, allowing developers to quickly spin up and tear down services required for different applications without environment conflicts.
CAVEATS
takeout is not a standard Unix/Linux command. It is a third-party application, primarily used for web development environments. Its functionality and availability depend entirely on installing this specific tool. It requires Docker to be installed and running on your system, as it operates by managing Docker containers. It is often associated with the PHP/Laravel ecosystem and may not be relevant for general Linux administration tasks or other programming languages/frameworks.
INSTALLATION
Takeout can typically be installed via Homebrew on macOS, or through a custom installer script on Linux, which downloads the executable and places it in your PATH. It is crucial to have Docker Desktop or Docker Engine installed and running beforehand, as Takeout acts as an orchestration layer on top of Docker.
PURPOSE IN DEVELOPMENT
Takeout acts as an abstraction layer over Docker, allowing developers to manage services like databases (MySQL, PostgreSQL), caching systems (Redis, Memcached), or message queues (RabbitMQ) with simple commands without needing to manually write or manage complex Docker Compose files or individual containers. This significantly promotes consistency, ease of setup, and portability across different development projects and teams.
HISTORY
BeyondCode Takeout was developed by the BeyondCode team, a prominent group known for various developer tools in the PHP/Laravel ecosystem. It emerged as a solution to simplify the setup and management of local development services, addressing the complexities of managing multiple Docker containers or conflicting local installations for different projects. Its development is relatively recent, gaining traction among developers seeking more streamlined and isolated development environments, especially since the rise of Docker in development workflows.
SEE ALSO
docker(1): The foundational containerization platform that takeout leverages to run services., laravel sail: A lightweight command-line interface for interacting with a Laravel Docker development environment, serving a similar purpose to takeout but integrated specifically with Laravel., ddev: A comprehensive local PHP development environment system based on Docker, providing pre-configured environments for various PHP applications., valet: A minimalist Mac development environment for Laravel, offering a similar concept of local service management but specific to macOS and without Docker.