2025-11-10 08:06:55 +00:00
|
|
|
# Devcontainer Setup
|
|
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
|
|
Zammad provides a pre-configured development container (devcontainer) for a ready-to-use development environment.
|
|
|
|
|
|
2025-12-07 17:20:04 +00:00
|
|
|
This is the **recommended** way to set up your environment, as it eliminates the need to manually install and
|
|
|
|
|
configure dependencies.
|
2025-11-10 08:06:55 +00:00
|
|
|
|
|
|
|
|
### Stack options
|
|
|
|
|
|
|
|
|
|
- Default
|
2026-03-03 15:26:41 +00:00
|
|
|
- With Mailserver (for local email testing)
|
2025-12-04 11:33:02 +00:00
|
|
|
- With Ollama (for local AI playground)
|
2025-11-10 08:06:55 +00:00
|
|
|
- With Selenium (for integration tests)
|
|
|
|
|
|
|
|
|
|
## Prerequisites
|
|
|
|
|
|
|
|
|
|
- VS Code with the Dev Containers extension (or other compatible editors / terminals).
|
|
|
|
|
- Docker Desktop or Docker CLI.
|
|
|
|
|
|
|
|
|
|
Ensure Docker has at least 8 GB of memory and sufficient CPU allocated.
|
|
|
|
|
You can configure this in Docker Desktop's settings (Settings > Resources).
|
|
|
|
|
|
|
|
|
|
## Build and Launch the Container
|
|
|
|
|
|
|
|
|
|
- Clone the [Zammad repository](https://github.com/zammad/zammad) (if you haven't already).
|
|
|
|
|
- Open the root of the Zammad checkout in VS Code.
|
|
|
|
|
A pop-up will appear in the bottom-right corner: "Reopen in Container". Click it.
|
|
|
|
|
- VS Code will now build the devcontainer.
|
|
|
|
|
|
|
|
|
|
## Accessing Zammad
|
|
|
|
|
|
|
|
|
|
Once the build is complete, the container will automatically:
|
|
|
|
|
|
|
|
|
|
- Start all required services (PostgreSQL, Redis, Elasticsearch).
|
|
|
|
|
- Initialize and seed the database.
|
|
|
|
|
|
|
|
|
|
Open a new terminal window and start the development server:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
dev
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Access the app at [https://localhost:3000](https://localhost:3000)
|
|
|
|
|
|
|
|
|
|
The first run may take a few minutes while Rails compiles assets.
|
|
|
|
|
You may see a blank browser window until this is complete.
|
|
|
|
|
|
|
|
|
|
### Default Credentials
|
|
|
|
|
|
|
|
|
|
```text
|
2025-11-28 09:05:37 +00:00
|
|
|
Username / Email: admin@example.com
|
2025-11-10 08:06:55 +00:00
|
|
|
Password: test
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Customizing Your Development Environment
|
|
|
|
|
|
|
|
|
|
You can personalize your Zammad development container using your own dotfiles.
|
|
|
|
|
|
|
|
|
|
### Dev Container Settings
|
|
|
|
|
|
|
|
|
|
Before using dotfiles, configure the following settings in VS Code:
|
|
|
|
|
|
|
|
|
|
- `dotfiles.installCommand` - Command provided by your repository to deploy the dotfiles (for example `install.sh`)
|
|
|
|
|
- `dotfiles.repository` - Git repository to clone
|
|
|
|
|
|
|
|
|
|
These settings are only available when the folder is opened locally.
|
|
|
|
|
|
|
|
|
|
The devcontainer comes with [oh-my-zsh](https://ohmyz.sh/) pre-installed,
|
|
|
|
|
so you can extend it with your own themes, aliases, and plugins.
|
|
|
|
|
|
|
|
|
|
> [!TIP]
|
|
|
|
|
> When setting this up for the first time, a container rebuild is required.
|
|
|
|
|
|
|
|
|
|
## Known Issues
|
|
|
|
|
|
|
|
|
|
### Rebase Issues on Mac
|
|
|
|
|
|
|
|
|
|
When working inside the devcontainer on mac, you might encounter problems rebasing branches.
|
|
|
|
|
This is due to a known issue between Docker Desktop and Git file stat checks.
|
|
|
|
|
|
|
|
|
|
You can resolve this by configuring Git to perform minimal file stat checking:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
git config set --system core.checkStat minimal
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Note that this setting will not persist between container rebuilds, so you can also place it in your local .gitconfig first:
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
[core]
|
|
|
|
|
checkStat = minimal
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## What's Next?
|
|
|
|
|
|
|
|
|
|
Now that your development environment is up and running, the next step is to get familiar with the Zammad development workflow.
|
|
|
|
|
|
|
|
|
|
Read the [Development Workflow](development-workflow.md) guide for details on testing, debugging, and contributing code.
|