Git Compose — Deploy Guide
Git Compose — Deploy Guide
This guide explains how the built-in Git Compose feature works and how to use it to deploy docker-compose projects to your Docker servers — no CI/CD pipeline or Gitea Actions required.
How It Works
LightDockerWebUI acts as the deployment agent. The entire workflow runs from the web UI:
- Pull — The app clones or pulls your git repository to a local directory on the WebUI host
- Deploy — When you click "Deploy", the app runs
docker compose up -das a local subprocess, targeting the selected Docker server via theDOCKER_HOSTenvironment variable - Stop — Same approach: runs
docker compose stopagainst the target server - The WebUI host needs network access to your git repository (to pull)
- The WebUI host needs network access to the Docker API on each target server (typically port 2376)
- The
dockerCLI must be installed on the WebUI host - Docker servers must have their API exposed via TCP (configured in Add Server page)
- Repository URL — Your HTTPS git repo URL (e.g.
https://gitea.example.com/user/compose-files.git) - Personal Access Token — A token with read/write access to the repo
- Branch — The branch to track (default:
main) - Auto Push — When enabled, edits made in the UI are automatically committed and pushed back to the repo
- Server Name — A friendly display name
- Docker Host — The FQDN or IP address of the server
- Docker Port — The Docker API port (e.g.
2376) - SSH User / Password — Optional, used for remote terminal access
- Active Server (default) — Uses whichever server is currently selected globally
- Specific server — Always deploys to the chosen server, regardless of which server is globally active
- Go to Git Compose
- Click Pull Latest to fetch the newest compose files from the repository
- Find your project in the table
- (Optional) Change the Target Server dropdown to assign or override the target
- Click Deploy — the compose project is started on the resolved server
- The project's assigned server (from the Target Server dropdown)
- Falls back to the globally active server if no assignment is set
- Click New Project on the Git Compose page
- Enter a project name (letters, numbers, hyphens, underscores)
- A folder with a template
docker-compose.ymlis created in the repo - If Auto Push is enabled, the new file is committed and pushed to git automatically
Git Repo (Gitea/GitHub) --pull--> Local clone on WebUI host --docker compose up--> Docker Server (via DOCKER_HOST=tcp://...)
There is no SSH deploy and no CI/CD pipeline involved. The WebUI machine talks directly to the Docker daemon API over TCP.
Prerequisites
Setup
1. Configure the Git Repository
Go to Settings and fill in the Git Repository section:
2. Add Docker Servers
Go to Add Server and configure one or more Docker servers:
3. Assign Servers to Projects
On the Git Compose page, each project row has a Target Server dropdown. Use it to assign a specific Docker server per compose project:
The assignment is saved automatically when you change the dropdown.
Deploying a Project
The server is resolved in this order:
Stopping a Project
Click Stop on a running project. It targets the same server as deploy (assigned server or active server).
Creating a New Project
Editing Compose Files
Click Edit on any project to open the built-in editor. Changes are saved to the local clone and (if Auto Push is enabled) pushed to git.
Deleting a Project
Click Delete to remove the compose file from the git repository. This does not stop running containers — stop the project first if needed.
Do I Need Gitea Actions?
No. The Git Compose feature handles the entire deploy workflow from the web UI. Gitea Actions are only useful if you want automatic deployment on git push — i.e., push a change to the repo and have it deploy without clicking "Deploy" in the UI. See the Gitea Actions Integration doc for that approach.
For manual, push-button deploys from the web UI, Gitea Actions are not needed.