--- title: "Setup Tutorial" weight: 10 description: "Step-by-step tutorial to set up your first Flamenco Docker development environment" --- # Docker Development Environment Tutorial In this tutorial, we'll set up a complete Flamenco development environment using Docker. By the end, you'll have a fully functional Flamenco Manager and Worker running in containers, with hot-reloading for development. This tutorial takes approximately **30 minutes** to complete, including the optimized 26-minute build process. ## What You'll Learn - How to set up the optimized Docker development environment - Why the build process is reliable and fast - How to verify your setup is working correctly - How to access the Flamenco web interface ## Prerequisites Before we start, make sure you have: - Docker 20.10 or later installed - Docker Compose v2.0 or later - At least 4GB of available RAM - 10GB of free disk space - Git for cloning the repository Let's verify your Docker installation: ```bash docker --version docker compose version ``` You should see version numbers for both commands. If not, [install Docker](https://docs.docker.com/get-docker/) first. ## Step 1: Clone the Repository First, we'll get the Flamenco source code: ```bash git clone https://projects.blender.org/studio/flamenco.git cd flamenco ``` Take a moment to look around. You'll see several important files we'll be using: - `Dockerfile.dev` - The multi-stage Docker build configuration - `compose.dev.yml` - Docker Compose development services - `Makefile.docker` - Convenient commands for managing the environment ## Step 2: Set Up the Environment Now we'll initialize the development environment. This step creates the necessary configuration and builds the Docker images: ```bash make -f Makefile.docker dev-setup ``` This command: 1. Checks prerequisites (Docker, Docker Compose) 2. Creates necessary Docker networks 3. Sets up environment configuration from `.env` 4. Builds the optimized multi-stage Docker images 5. Initializes shared storage volumes **What's happening during the build:** You'll see several stages executing: - **Base stage**: Installing system dependencies (Alpine packages) - **Deps stage**: Downloading Go modules and Node.js packages - **Build-tools stage**: Compiling Mage and installing generators - **Development stage**: Building Flamenco binaries The entire process should complete in about **26 minutes**. This is dramatically faster than the original 60+ minute failures, thanks to the optimizations we've implemented. ## Step 3: Start the Services Once the build completes successfully, start the core services: ```bash make -f Makefile.docker dev-start ``` This starts: - **Flamenco Manager** on port 9000 - **Flamenco Worker** configured to connect to the Manager - Shared storage volumes for projects and renders You should see output indicating the services are starting. Wait about 30 seconds for everything to initialize. ## Step 4: Verify the Installation Let's check that everything is running correctly: ```bash make -f Makefile.docker status ``` You should see both `flamenco-manager` and `flamenco-worker` services showing as "Up". Now, let's verify the web interface is accessible: ```bash curl -s http://localhost:9000/api/v3/version ``` You should get a JSON response with version information. If you see this, congratulations! Your Flamenco Manager is running. ## Step 5: Access the Web Interface Open your web browser and navigate to: ``` http://localhost:9000 ``` You should see the Flamenco Manager web interface. The first time you access it, you'll go through a setup wizard: 1. **Welcome screen** - Click "Continue" to start setup 2. **Shared Storage** - The path `/shared-storage` is already configured 3. **Variables Configuration** - Default paths for Blender and FFmpeg 4. **Worker Registration** - Your Docker worker should appear automatically Complete the setup wizard. Once finished, you should see: - The main Flamenco dashboard - Your worker listed as "awake" in the Workers tab - Empty jobs list (we haven't submitted any jobs yet) ## Step 6: Test the Environment Let's verify everything is working by checking the worker connection: 1. In the web interface, click on the **Workers** tab 2. You should see your worker named `docker-dev-worker` 3. The status should show **"awake"** with a green indicator 4. Click on the worker name to see detailed information If your worker shows as connected, excellent! Your development environment is ready. ## What We've Accomplished We've successfully: ✅ Set up a complete Flamenco development environment in Docker ✅ Built optimized containers using multi-stage builds ✅ Started Manager and Worker services ✅ Verified the web interface is accessible ✅ Confirmed worker connectivity The environment provides: - **Fast, reliable builds** (26 minutes vs 60+ minute failures) - **Complete isolation** from your host system - **Hot-reloading** for development changes - **Production-like** container architecture - **Comprehensive tooling** via the Makefile ## Next Steps Now that your environment is running, you can: - **Submit your first render job** through the web interface - **Make code changes** and see them reflected automatically - **Access development tools** with `make -f Makefile.docker dev-tools` - **Monitor logs** with `make -f Makefile.docker logs-follow` ## Understanding the Build Speed The dramatic performance improvement (168x faster Go module downloads) comes from several key optimizations: 1. **Go Module Proxy**: Using `https://proxy.golang.org` instead of direct Git access 2. **Multi-stage builds**: Intelligent layer caching for dependencies 3. **Alpine optimization**: Proper package management with pip3 and uv 4. **Binary placement**: Avoiding Docker mount conflicts These optimizations transform an unreliable development experience into a fast, predictable one. ## If Something Goes Wrong If you encounter issues: 1. **Check the logs**: `make -f Makefile.docker logs` 2. **Restart services**: `make -f Makefile.docker dev-restart` 3. **Rebuild if needed**: `make -f Makefile.docker dev-rebuild` For specific problems, see the [Troubleshooting Guide](../how-to/) for detailed solutions. --- **Congratulations!** You now have a fully functional Flamenco Docker development environment. The optimized build process and containerized architecture provide a reliable foundation for Flamenco development work.