Forgejo
| Description / name | Input element |
|---|---|
| Container Registry | |
| Container Configuration Root Path | |
| Timezone | |
| User ID | |
| Group ID | |
| Forgejo Host Port | |
| Forgejo /config Path |
Forgejo is a self-hosted lightweight software forge
| Port | 3000 |
| Registry | ghcr.io/daemonless/forgejo |
| Daemonless | daemonless/forgejo |
| Source | codeberg.org/forgejo/forgejo |
| Website | forgejo.org |
Version Tags
| Tag | Description | Best For |
|---|---|---|
15 / lts |
Built from latest upstream source release of the v15 branch. | Alternative build. |
15-latest / lts-latest |
Built from latest upstream source release of the v15 branch with latest FreeBSD packages. | Most users — recommended. |
15-pkg-latest / lts-pkg-latest |
FreeBSD Latest. Rolling package updates. | Staying current. |
16 |
Built from latest upstream source release of the v16 branch. | Alternative build. |
16-latest |
Built from latest upstream source release of the v16 branch with latest FreeBSD packages. | Alternative build. |
16-pkg-latest |
FreeBSD Latest. Rolling package updates. | Staying current. |
Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions, including the security model for host vs. container privileges.
Deployment
Save as compose.yaml, then run podman-compose up -d.
Save as run.sh, then run sh run.sh.
Save as forgejo-deploy.yaml, then run ansible-playbook forgejo-deploy.yaml.
Warning
Exposing ports in AppJail means that your service can be reached from remote hosts. If that is not your intention, do not expose the ports and communicate with the service using the jail's IPv4 address or hostname assigned by the virtual network.
Save the files above, then run appjail-director up.
Save the files above, then run sh run.sh.
Experimental
Bastille's OCI support is experimental. It requires buildah and shares the host network stack (inherit). Mount volumes with --volume HOST JAIL; without it, image-declared volumes are stored under ${bastille_volumesdir}/${jail}.
Save as bastille-compose.yml, then run bastille up.
Access at: http://localhost:3000
Interactive Configuration
Parameters
Environment Variables
| 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 |
Volumes
| Path | Description |
|---|---|
/config |
Configuration, repositories, and data directory |
Ports
| Port | Protocol | Description |
|---|---|---|
3000 |
TCP | Web UI |
22 |
TCP | SSH port |
First run
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.
SSH Setup
If you modify the port mapping from the default 2222:22 you need to update the 2 environment variables
described below accordingly.
SSH_LISTEN_PORT env var
This variable indicates on which port Forgejo'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 sshd_config config file.
SSH_PORT env var
This variable tells Forgejo on which port the ssh server is reachable from the outside and is
used when constructing the ssh URLs shown in Forgejo'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 Forgejo.
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.
Implementation Details
- Architectures: amd64
- User:
bsd(UID/GID set via PUID/PGID). Defaults to1000:1000. - Base: Built on
ghcr.io/daemonless/base(FreeBSD 15.1).
Need help? Join our Discord community.