# Deploy Gitea for a small development team

Confirm current template, SSH/domain requirements, and repository backup approach. Check the named site's prerequisites, task result, backup scope and recovery handoff with xCloud.

Canonical: https://xcloud.host/use-cases/workflows/deploy-gitea-for-a-small-development-team/
Published: 2026-09-30 · Updated: 2026-09-30 · Technical review: 2026-09-30
Evidence: Source reviewed; no production deployment test claimed
Editorial owner: xCloud editorial

Intent: Confirm current template, SSH/domain requirements, and repository backup approach.
For: site-owner, administrator

## Requirements and responsibilities

- Name the team, server, hostname, owner and affected users for the Gitea application. Record the current version and the actual business flow that must survive the change. Confirm the current dashboard form, plan eligibility, and server capacity before committing a resource change. A one-click catalog listing is discovery, not permission or proof that the connected MCP profile can install it. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- Prepare a non-sensitive test input and an acceptance record. Keep access to the app administrator and an independent observer where possible; omit secrets from AI prompts and client reports. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- For a Docker app, identify persistent volumes, bind mounts, external databases and app-level export requirements. A Docker backup briefly stops the app, and an in-place restore replaces current state. Agree a maintenance window and owner before any action that interrupts the service or overwrites data. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)

## Illustrative situation

A five-person development team wants private repositories in Gitea. The owner needs a tested push path and consistent backup of repository files and database.

## Choose the approach

- Choose HTTPS or SSH clone access deliberately and restrict repository creation and membership to named users. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- Gitea documentation recommends stopping the instance for native dump consistency because Git repositories and database can change together. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)

## Dashboard and application procedure

### 1. Define repository access

**Where:** Development team and Gitea docs

**Permissions:** Authorized xCloud read access to the named team and site; the relevant app or provider owner supplies records outside xCloud.

**Inputs:** Users, organizations, SSH policy, hostname

**Action:** Decide who creates repos, who can push and whether private repos are the default. Choose an HTTPS or SSH access method.

**Expected result:** An access map for the first project.

**Verify:** Have a developer and viewer confirm expected rights.

**If it fails:** If public repositories are prohibited, set policy before adding real code.

Capability: Confirm requirements and inspect resources
Sources: [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/)

### 2. Check hosting and storage

**Where:** xCloud One-Click Apps catalog

**Permissions:** Authorized xCloud read access to the named team and site; the relevant app or provider owner supplies records outside xCloud.

**Inputs:** Gitea template, server, disk, data path

**Action:** Confirm the template and persistent database/repository paths, then choose a compatible Docker + NGINX server and stable hostname.

**Expected result:** A deployable target with adequate storage.

**Verify:** Inspect current template requirements and free disk.

**If it fails:** If repository or database path lies outside protected storage, revise backup plan.

Capability: Confirm requirements and inspect resources
Sources: [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/)

### 3. Deploy the Gitea host

**Where:** xCloud dashboard → One-Click Apps

**Permissions:** Authorized xCloud site owner with dashboard rights for the exact setting, backup, staging or restore action and a reviewed target.

**Inputs:** Approved xCloud site, hostname and protected first-run administrator handoff

**Action:** Install through the supported dashboard path and record the Gitea first-run URL, persistent storage and generated credential handoff.

**Expected result:** A reachable Gitea host ready for protected application setup.

**Verify:** Confirm the xCloud site and hostname match the approved deployment, then verify that the expected protected first-run page is reachable.

**If it fails:** If the hostname, certificate or first-run page is wrong, stop application setup and resolve the hosting or access issue before entering credentials.

Capability: Install a selected one-click app in xCloud dashboard
Sources: [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/); [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md)

### 4. Exercise Git permissions

**Where:** Developer terminal and Gitea UI

**Permissions:** Authorized Gitea application administrator or delegated role with rights for this task; hosting access alone is insufficient.

**Inputs:** Test key/token, branch and sample commit

**Action:** Complete Gitea administrator setup, create a private test repository and limited users. Clone, push a harmless commit, pull as another permitted user and verify a viewer cannot push.

**Expected result:** Git operations match intended rights.

**Verify:** Compare the commit hash in the local clone and Gitea web view. Verify signed-out users cannot browse the private test repository and a viewer cannot push.

**If it fails:** If repository access is public unexpectedly, correct application settings before importing code. If SSH fails but web login works, inspect key and network configuration separately.

Capability: Configure and test Gitea in its application UI
Sources: [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/)

### 5. Secure consistent recovery

**Where:** Gitea backup guidance and xCloud Docker Backup

**Permissions:** Authorized xCloud team/site operator with the discovered write scope for this exact operation and owner approval for its target and interruption.

**Inputs:** Database, repositories, attachments, config, maintenance window

**Action:** Identify all Gitea state. Schedule a short interruption for a consistent app-level dump or validate xCloud's stopped-app snapshot, then test restoration on an isolated instance.

**Expected result:** A recovery method covering Git and database together.

**Verify:** Check restored commit and user/repo metadata.

**If it fails:** If repository files and DB disagree, do not reopen pushes until a consistent point is restored.

Capability: Create and inspect Docker backups
Sources: [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/)

## Maintenance

- Review this task after app or template updates and at the cadence agreed with the owner. Record failures as dated observations rather than assuming host health proves service health. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- Watch access changes, backup completion, free storage and external providers. Recheck integrations after credential, DNS, mail or source-data changes. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)

## Recovery decisions

- Before data recovery, identify incident time, completed backup, target and records created after the snapshot. Preserve current evidence and live data before replacement. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)
- Use the documented dashboard or application recovery procedure with the authorized owner. Repeat the task-specific limited-user check; reconcile newer records before reopening writes. Sources: [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md); [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/); [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/); [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/); [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md); [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/)

## AI handoff

Connect an authorized xCloud MCP profile and discover its exact tools and team scope. The packaged REST wrapper is GET-only; use dashboard or app controls for undocumented writes.

### Supported scope

- **Confirm requirements and inspect resources** (mcp; read): Discover the connected profile and operation schema first; only teams granted to the connection are visible. Checkpoint: Confirm exact team, server and site identity. Use dashboard\_url returned by the resource; do not invent a dashboard link. Operation identifiers to discover: teams.index, servers.show, sites.show. Scopes: read:servers, read:sites. Sources: [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs); [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md)

### Copyable agent brief

```text
Read selected Docker server, Gitea site and backup state. Return storage, hostname and interruption plan. Do not create app repositories or users through hosting MCP. Ask the Gitea owner to verify commit and role tests and a consistent restore.
```

### Manual checkpoints

- Approve exact site, target, cost and any write or maintenance window after inspecting the proposed plan.
- An authorized Gitea administrator must configure and test app users, content, integrations and business rules in the app.
- Native WordPress staging, backup schedule/settings, push/pull and all restores are dashboard-only; Docker restore is dashboard-only and replaces state.
- Reconcile data created after the chosen recovery point before any destructive restore.

## Feature coverage

- **git decision, evidence and task action** (covered): The procedure identifies the authorized task boundary and observable result. Steps: step-1, step-2, step-3, step-4
- **backup, ongoing operation and recovery** (covered): Recovery and maintenance are checked in the task procedure. Steps: step-4, step-5

## Sources

- [xCloud agent capability boundaries](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/reference/capability-map.md) — reviewed 2026-09-30; v4.4.2 package; xCloud v2.8.8 capability review
- [xCloud MCP documentation and connection profiles](https://app.xcloud.host/mcp/docs) — reviewed 2026-09-30
- [Gitea backup and restore](https://docs.gitea.com/administration/backup-and-restore/) — reviewed 2026-09-30
- [Gitea repository and organization permissions](https://docs.gitea.com/1.22/usage/permissions/) — reviewed 2026-09-30
- [Back up and restore Docker apps](https://xcloud.host/docs/backup-and-restore-docker-apps/) — reviewed 2026-09-30
- [Docker backup operations and storage constraints](https://github.com/xCloudDev/xcloud-agent-skills/blob/main/plugins/xcloud/skills/sites/reference/docker-backups.md) — reviewed 2026-09-30; v4.4.2
- [xCloud One Click Apps catalog](https://xcloud.host/one-click-apps/) — reviewed 2026-09-30

## Continue

[Explore all use cases](https://xcloud.host/use-cases/)

- [Back up and recover a Docker application](https://xcloud.host/use-cases/operations/docker-backup-and-recovery/)
