LinuxCommandLibrary

takeout

Downloads Google data archive

TLDR

Display a list of available services

$ takeout enable
copy

Enable a specific service
$ takeout enable [name]
copy

Enable a specific service with the default parameters
$ takeout enable --default [name]
copy

Display a list of enabled services
$ takeout disable
copy

Disable a specific service
$ takeout disable [name]
copy

Disable all services
$ takeout disable --all
copy

Start a specific container
$ takeout start [container_id]
copy

Stop a specific container
$ takeout stop [container_id]
copy

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.

Copied to clipboard