add gitea to community containers

Signed-off-by: Simon L. <szaimen@e.mail.de>
This commit is contained in:
Simon L.
2026-08-25 14:56:40 +02:00
parent 6b788eec5e
commit 463d741096
6 changed files with 154 additions and 1 deletions
+1
View File
@@ -23,6 +23,7 @@ This container creates Let's Encrypt certificates for subdomains of `your-nc-dom
| Container | Subdomain | Geoblocking | IP Allow List | Authentication |
|---------------------------------------------------------------------------------------------------------------------|----------------------------------|-------------|---------------|----------------|
| [azuracast](https://github.com/nextcloud/all-in-one/tree/main/community-containers/azuracast) | `radio.your-nc-domain.com` | ✅ | | |
| [gitea](https://github.com/nextcloud/all-in-one/tree/main/community-containers/gitea) | `git.your-nc-domain.com` | ✅ | | |
| [glances](https://github.com/nextcloud/all-in-one/tree/main/community-containers/glances) | `glances.your-nc-domain.com` | ✅ | | ✅ |
| [jellyfin](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin) | `media.your-nc-domain.com` | ✅ | | |
| [joplin-server](https://github.com/nextcloud/all-in-one/tree/main/community-containers/joplin-server) | `joplin.your-nc-domain.com` | ✅ | | |
@@ -35,6 +35,11 @@
"source": "nextcloud_aio_jellyseerr",
"destination": "/jellyseerr",
"writeable": false
},
{
"source": "nextcloud_aio_gitea",
"destination": "/gitea",
"writeable": false
}
]
}
+1 -1
View File
@@ -1,6 +1,6 @@
## Fail2ban
This container bundles [fail2ban](https://github.com/fail2ban/fail2ban) and auto-configures it for you in order to block ip-addresses automatically.
It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden, https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin, and https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr, if installed.
It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden, https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin, https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr, and https://github.com/nextcloud/all-in-one/tree/main/community-containers/gitea, if installed.
### Notes
- If you get an error like `"ip6tables v1.8.9 (legacy): can't initialize ip6tables table filter': Table does not exist (do you need to insmod?)"`, you need to enable ip6tables on your host via `sudo modprobe ip6table_filter`.
+96
View File
@@ -0,0 +1,96 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-gitea",
"display_name": "Gitea",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/gitea",
"image": "ghcr.io/go-gitea/gitea",
"image_tag": "latest-rootless",
"internal_port": "3000",
"restart": "unless-stopped",
"depends_on": [
"nextcloud-aio-gitea-database"
],
"ports": [
{
"ip_binding": "%APACHE_IP_BINDING%",
"port_number": "3000",
"protocol": "tcp"
},
{
"ip_binding": "",
"port_number": "2222",
"protocol": "tcp"
}
],
"environment": [
"TZ=%TIMEZONE%",
"GITEA__server__DOMAIN=git.%NC_DOMAIN%",
"GITEA__server__ROOT_URL=https://git.%NC_DOMAIN%/",
"GITEA__server__HTTP_PORT=3000",
"GITEA__server__SSH_DOMAIN=git.%NC_DOMAIN%",
"GITEA__server__SSH_PORT=2222",
"GITEA__server__SSH_LISTEN_PORT=2222",
"GITEA__database__DB_TYPE=postgres",
"GITEA__database__HOST=nextcloud-aio-gitea-database:5432",
"GITEA__database__NAME=gitea",
"GITEA__database__USER=gitea",
"GITEA__database__PASSWD=%GITEA_DB_PASSWORD%",
"GITEA__security__INSTALL_LOCK=true",
"GITEA__service__DISABLE_REGISTRATION=true",
"GITEA__log__MODE=console,file",
"GITEA__log__LEVEL=Info",
"GITEA__log__ROOT_PATH=/var/lib/gitea/log",
"GITEA__log__ENABLE_SSH_LOG=true"
],
"secrets": [
"GITEA_DB_PASSWORD"
],
"volumes": [
{
"source": "nextcloud_aio_gitea",
"destination": "/var/lib/gitea",
"writeable": true
},
{
"source": "nextcloud_aio_gitea_config",
"destination": "/etc/gitea",
"writeable": true
}
],
"backup_volumes": [
"nextcloud_aio_gitea",
"nextcloud_aio_gitea_config"
]
},
{
"container_name": "nextcloud-aio-gitea-database",
"display_name": "Gitea Database (PostgreSQL)",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/gitea",
"image": "postgres",
"image_tag": "18",
"internal_port": "5432",
"restart": "unless-stopped",
"environment": [
"TZ=%TIMEZONE%",
"POSTGRES_PASSWORD=%GITEA_DB_PASSWORD%",
"POSTGRES_DB=gitea",
"POSTGRES_USER=gitea",
"PGDATA=/var/lib/postgresql/data"
],
"secrets": [
"GITEA_DB_PASSWORD"
],
"volumes": [
{
"source": "nextcloud_aio_gitea_database",
"destination": "/var/lib/postgresql/data",
"writeable": true
}
],
"backup_volumes": [
"nextcloud_aio_gitea_database"
]
}
]
}
+50
View File
@@ -0,0 +1,50 @@
## Gitea
This container bundles [Gitea](https://about.gitea.com/), a lightweight self-hosted Git service, and auto-configures it for you. It ships with its own PostgreSQL database container.
### Notes
- You need to configure a reverse proxy in order to run this container since Gitea needs a dedicated (sub)domain! For that, you might have a look at https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy or follow https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md. You need to point the reverse proxy at port 3000 of this server.
- Currently, only `git.$NC_DOMAIN` is supported as subdomain! So if Nextcloud is using `your-domain.com`, Gitea will use `git.your-domain.com`. The reverse proxy and domain must be configured accordingly!
- If you use the [caddy community container](https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy), the `git.your-domain.com` subdomain is configured automatically. You only need to make sure that the DNS record for `git.your-domain.com` points at your server.
- Make sure that no other service is using port `2222/tcp` on your host as otherwise the container will fail to start. You can check this with `sudo netstat -tulpn | grep 2222` before installing this container. Note that this port is always exposed on all interfaces and is not affected by AIOs `APACHE_IP_BINDING`.
- If you want to secure the installation with fail2ban, you might want to check out https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban. It picks up Gitea's log automatically and bans ip-addresses after failed sign-in attempts.
- The data of Gitea and its database will be automatically included in AIOs backup solution!
- Registration of new users is disabled by default (`DISABLE_REGISTRATION=true`) so that your instance is not open to the public. See below on how to create the first user.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### How to create the first user
Since the web installer and registration are disabled, you need to create the first admin user manually after the container was started. Make sure to wait until the container is fully up and running (you should be able to open `https://git.your-domain.com` in your browser) as the command will otherwise fail with a database connection error:
```
sudo docker exec -it nextcloud-aio-gitea gitea admin user create \
--admin --username "your-username" --email "your@email.com" --random-password
```
Afterwards you can log in at `https://git.your-domain.com` with the printed password and change it in the user settings. Further users can be invited by the admin user from the web interface.
> [!Note]
> If you do not have CLI access to the server, you can run docker commands via a web session by using this community container: https://github.com/nextcloud/all-in-one/tree/main/community-containers/container-management
### How to use Git over SSH
Port `2222/tcp` is exposed on the host for Git over SSH.
If you want to access Gitea via SSH from outside your local network, you need to forward port `2222/tcp` in your router to your server. Note that this is not needed if you only want to use Gitea via the web interface or clone via HTTPS.
Clone urls will use port `2222`, e.g.:
```
git clone ssh://git@git.your-domain.com:2222/your-username/your-repo.git
```
You can also add this to your `~/.ssh/config` so that the port can be omitted:
```
Host git.your-domain.com
Port 2222
User git
```
### Repository
https://github.com/go-gitea/gitea
### Maintainer
https://github.com/szaimen
+1
View File
@@ -33,6 +33,7 @@ flowchart TD
JSER(["🎯 Jellyseerr\nMedia request manager"]):::community
JOPLIN(["📝 Joplin Server\nNotes sync server"]):::community
NOTIF(["📣 Notifications\nExternal push notify"]):::community
GITEA(["🍵 Gitea\nSelf-hosted Git service"]):::community
end
subgraph COMM_MEDIA["🎬 Media"]