Gitea
v1.0.0Self-hosted Git repositories, code review, issues, and project collaboration.
x-arcane:
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/gitea.svg
urls:
- https://docs.gitea.com/installation/install-with-docker/
services:
gitea:
image: docker.gitea.com/gitea:latest
restart: unless-stopped
ports:
- "${BIND_ADDRESS:-127.0.0.1}:${APP_PORT:-3006}:3000"
- "${SSH_PORT:-2223}:22"
environment:
USER_UID: ${PUID:-1000}
USER_GID: ${PGID:-1000}
GITEA__database__DB_TYPE: sqlite3
GITEA__server__DOMAIN: ${DOMAIN:-localhost}
GITEA__server__SSH_DOMAIN: ${DOMAIN:-localhost}
GITEA__server__ROOT_URL: ${BASE_URL:-http://localhost:3006/}
GITEA__server__SSH_PORT: ${SSH_PORT:-2223}
GITEA__service__DISABLE_REGISTRATION: "true"
volumes:
- gitea-data:/data
labels:
com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/gitea.svg
volumes:
gitea-data:
BIND_ADDRESS=127.0.0.1
APP_PORT=3006
SSH_PORT=2223
DOMAIN=localhost
BASE_URL=http://localhost:3006/
PUID=1000
PGID=1000
README
The web interface binds to loopback by default. Open it on the Docker host or through an SSH tunnel. For LAN access, set BIND_ADDRESS to a trusted interface after completing account setup; use an authenticated HTTPS reverse proxy for remote access.
Set DOMAIN and BASE_URL to the hostname and URL users will access, then open that URL to complete the installation wizard. Keep SQLite selected and create the administrator in the wizard; public registration is disabled.
SSH clone URLs use SSH_PORT (default 2223). If you change the HTTP port, update BASE_URL too. Repositories, configuration, and the SQLite database persist in gitea-data; back up the whole volume. This template does not install an Actions runner.