Lightweight self-hosted Git service — a community managed fork of Gogs written in Go.
| Port | 3000 |
| Registry | ghcr.io/daemonless/gitea |
| Source | https://github.com/go-gitea/gitea |
| Website | https://about.gitea.com/ |
| Tag | Description | Best For |
|---|---|---|
latest / pkg |
FreeBSD Quarterly. Uses stable, tested packages. | Most users. Matches Linux Docker behavior. |
pkg-latest |
FreeBSD Latest. Rolling package updates. | Newest FreeBSD packages. |
Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.
services:
gitea:
image: "ghcr.io/daemonless/gitea:latest"
container_name: gitea
environment:
- PUID=1000 # User ID for the application process
- PGID=1000 # Group ID for the application process
- TZ=UTC # Timezone for the container
- SSH_PORT=2222 # Published port for sshd (used in clone URLs)
- SSH_LISTEN_PORT=22 # Port on which sshd listens inside the container
volumes:
- "/path/to/containers/gitea:/config"
ports:
- "3000:3000"
- "2222:22"
restart: unless-stopped.env:
DIRECTOR_PROJECT=gitea
PUID=1000
PGID=1000
TZ=UTC
SSH_PORT=2222
SSH_LISTEN_PORT=22
appjail-director.yml:
options:
- virtualnet: ':<random> default'
- nat:
services:
gitea:
name: gitea
options:
- container: 'boot args:--pull'
oci:
user: root
environment:
- PUID: !ENV '${PUID}'
- PGID: !ENV '${PGID}'
- TZ: !ENV '${TZ}'
- SSH_PORT: !ENV '${SSH_PORT}'
- SSH_LISTEN_PORT: !ENV '${SSH_LISTEN_PORT}'
volumes:
- gitea: /config
volumes:
gitea:
device: '/path/to/containers/gitea'Makejail:
ARG tag=latest
OPTION overwrite=force
OPTION from=ghcr.io/daemonless/gitea:${tag}
podman run -d --name gitea \
-p 3000:3000 \
-p 2222:22 \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=UTC \
-e SSH_PORT=2222 \
-e SSH_LISTEN_PORT=22 \
-v /path/to/containers/gitea:/config \
ghcr.io/daemonless/gitea:latest- name: Deploy gitea
containers.podman.podman_container:
name: gitea
image: "ghcr.io/daemonless/gitea:latest"
state: started
restart_policy: always
env:
PUID: "1000"
PGID: "1000"
TZ: "UTC"
SSH_PORT: "2222"
SSH_LISTEN_PORT: "22"
ports:
- "3000:3000"
- "2222:22"
volumes:
- "/path/to/containers/gitea:/config"Access at: http://localhost:3000
| Variable | Default | Description |
|---|---|---|
PUID |
1000 |
User ID for the application process |
PGID |
1000 |
Group ID for the application process |
TZ |
UTC |
Timezone for the container |
SSH_PORT |
2222 |
Published port for sshd (used in clone URLs) |
SSH_LISTEN_PORT |
22 |
Port on which sshd listens inside the container |
| Path | Description |
|---|---|
/config |
Configuration, repositories, and data directory |
| Port | Protocol | Description |
|---|---|---|
3000 |
TCP | Web UI |
22 |
TCP | SSH port |
If no configuration file exists when the container starts, it will generate an initial default
config file at /config/custom/conf/app.ini.
You can make configuration changes in this file later (e.g. SMTP configuration) and they will be
preserved across container restarts.
If you modify the port mapping from the default 2222:22 you need to update the 2 environment variables
described below accordingly.
This variable indicates on which port Gitea's ssh server listens inside the container.
If your port mapping for ssh is 2222:22, this variable should be set to 22.
This variable is used on every container start to modify the Gitea configuration.
This variable tells Gitea on which port the ssh server is reachable from the outside and is
used when constructing the ssh URLs shown in Gitea's web UI.
If your port mapping for ssh is 2222:22, this variable should be set to 2222.
This variable is used only during the first container startup to create the initial configuration file for Gitea.
If you want to modify the SSH_PORT later, you need to change the configuration in the [server]
section of /config/custom/conf/app.ini.
Architectures: amd64
User: bsd (UID/GID via PUID/PGID, defaults to 1000:1000)
Base: FreeBSD 15.0
Need help? Join our Discord community.