mirror of
https://gitea.com/jwobith/docker-gitea.git
synced 2025-07-14 03:54:35 +00:00
fix markdownlint warnings
This commit is contained in:
129
README.md
129
README.md
@ -1,44 +1,47 @@
|
|||||||
docker-gitea
|
# docker-gitea
|
||||||
============
|
|
||||||
|
|
||||||
Docker Gitea Service
|
## Docker Gitea Service
|
||||||
--------------------
|
|
||||||
|
|
||||||
[Gitea](https://gitea.io) is a self-hosted git service written in Go that is comparable to other self-hosted git projects like [Gitlab](https://about.gitlab.com/install/?version=ce). It provides an interface that is similar to [Github](https://github.com) but a solution that you host yourself. While it does not currently have more complex features like built-in CI it is a lightweight and functional solution to host your own public and private repositories. This repository contains the necessary configuration to run a full Gitea service in [Docker](https://docs.docker.com) using [Docker Compose](https://docs.docker.com/compose) and the capability to auto renew SSL certificates with [Let's Encrypt](https://www.letsencrypt.org).
|
[Gitea](https://gitea.io) is a self-hosted git service written in Go that is comparable to other self-hosted git projects like [Gitlab](https://about.gitlab.com/install/?version=ce). It provides an interface that is similar to [Github](https://github.com) but a solution that you host yourself. While it does not currently have more complex features like built-in CI it is a lightweight and functional solution to host your own public and private repositories. This repository contains the necessary configuration to run a full Gitea service in [Docker](https://docs.docker.com) using [Docker Compose](https://docs.docker.com/compose) and the capability to auto renew SSL certificates with [Let's Encrypt](https://www.letsencrypt.org).
|
||||||
|
|
||||||
## Table of contents
|
## Table of contents
|
||||||
|
|
||||||
* [Requirements](#requirements)
|
- [docker-gitea](#docker-gitea)
|
||||||
* [Quick start](#quick-start)
|
- [Docker Gitea Service](#docker-gitea-service)
|
||||||
* [Additional steps](#additional-steps)
|
- [Table of contents](#table-of-contents)
|
||||||
- [Create git user](#create-git-user)
|
- [Requirements](#requirements)
|
||||||
- [SSH passthrough](#ssh-passthrough)
|
- [Quick start](#quick-start)
|
||||||
* [Security](#security-note)
|
- [Additional steps](#additional-steps)
|
||||||
- [SSH root access](#ssh-root-access)
|
- [Create git user](#create-git-user)
|
||||||
- [External ports](#external-ports)
|
- [SSH passthrough](#ssh-passthrough)
|
||||||
* [Configuration](#configuration)
|
- [Installation](#installation)
|
||||||
- [Environment](#environment)
|
- [Security](#security)
|
||||||
- [Images](#images)
|
- [SSH root access](#ssh-root-access)
|
||||||
- [Containers](#containers)
|
- [External ports](#external-ports)
|
||||||
- [Volumes](#volumes)
|
- [Configuration](#configuration)
|
||||||
- [Advanced configuration](#advanced-configuration)
|
- [Environment](#environment)
|
||||||
* [Documentation](#documentation)
|
- [Images](#images)
|
||||||
* [Contributing](#contributing)
|
- [Containers](#containers)
|
||||||
|
- [Volumes](#volumes)
|
||||||
|
- [Advanced configuration](#advanced-configuration)
|
||||||
|
- [Documentation](#documentation)
|
||||||
|
- [Contributing](#contributing)
|
||||||
|
- [License](#license)
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
Here are the basic requirements:
|
Here are the basic requirements:
|
||||||
|
|
||||||
* An internet connected server or VPS with a static IP address
|
- An internet connected server or VPS with a static IP address
|
||||||
- SSH access to the server
|
- SSH access to the server
|
||||||
- Storage space on the server for the service and repository data
|
- Storage space on the server for the service and repository data
|
||||||
* A domain with an `A` record pointing to the server IP (Configured at DNS provider)
|
- A domain with an `A` record pointing to the server IP (Configured at DNS provider)
|
||||||
|
|
||||||
Name | TTL | Class | Type | Record
|
Name | TTL | Class | Type | Record
|
||||||
--- | --- | --- | --- | ---
|
--- | --- | --- | --- | ---
|
||||||
`git.example.com` | `1200` | `IN` | `A` | `$IP`
|
`git.example.com` | `1200` | `IN` | `A` | `$IP`
|
||||||
|
|
||||||
* An email address (e.g. gitea@example.com) configured at your domain (If you want the Gitea service to be able to send email)
|
- An email address (e.g. gitea@example.com) configured at your domain (If you want the Gitea service to be able to send email)
|
||||||
- Make sure to note down the outgoing (SMTP) mail server information (e.g. smtp.example.com:465)
|
- Make sure to note down the outgoing (SMTP) mail server information (e.g. smtp.example.com:465)
|
||||||
|
|
||||||
This guide assumes you are using Debian/Ubuntu but it can be adapted to other variations of linux. If you would like to add additional configuration options or help automate some of the setup see [contributing](#contributing) below.
|
This guide assumes you are using Debian/Ubuntu but it can be adapted to other variations of linux. If you would like to add additional configuration options or help automate some of the setup see [contributing](#contributing) below.
|
||||||
@ -86,7 +89,7 @@ docker run hello-world
|
|||||||
|
|
||||||
Clone this repository and setup the [.env](#environment) file for your desired configuration.
|
Clone this repository and setup the [.env](#environment) file for your desired configuration.
|
||||||
|
|
||||||
```
|
```shell
|
||||||
# Clone this repository to your computer
|
# Clone this repository to your computer
|
||||||
git clone https://github.com/jwobith/docker-gitea && cd docker-gitea
|
git clone https://github.com/jwobith/docker-gitea && cd docker-gitea
|
||||||
|
|
||||||
@ -171,10 +174,10 @@ echo "no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty $(cat /hom
|
|||||||
|
|
||||||
The first time you go to the site Gitea will guide you through the installation wizard.
|
The first time you go to the site Gitea will guide you through the installation wizard.
|
||||||
|
|
||||||
* Create an administrator user with a strong password.
|
- Create an administrator user with a strong password.
|
||||||
* Enter the email address and password for the Gitea server email account.
|
- Enter the email address and password for the Gitea server email account.
|
||||||
* Enter the correct mail server information.
|
- Enter the correct mail server information.
|
||||||
* The remaining items should stay at the default setting.
|
- The remaining items should stay at the default setting.
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
@ -200,9 +203,9 @@ Restart the ssh server with `sudo service ssh restart`.
|
|||||||
|
|
||||||
If a firewall is configured on the host the following external ports must be opened:
|
If a firewall is configured on the host the following external ports must be opened:
|
||||||
|
|
||||||
* 80/tcp for Web UI HTTP
|
- 80/tcp for Web UI HTTP
|
||||||
* 443/tcp for Web UI HTTPS
|
- 443/tcp for Web UI HTTPS
|
||||||
* 22/tcp for SSH
|
- 22/tcp for SSH
|
||||||
|
|
||||||
On a Debian/Ubuntu server this can be configured using UFW:
|
On a Debian/Ubuntu server this can be configured using UFW:
|
||||||
|
|
||||||
@ -249,57 +252,57 @@ Variable | Description | Example
|
|||||||
|
|
||||||
### Images
|
### Images
|
||||||
|
|
||||||
* **nginx/nginx**: Nginx docker image on docker hub.
|
- **nginx/nginx**: Nginx docker image on docker hub.
|
||||||
* **jwilder/docker-gen**: Docker-gen image on docker hub.
|
- **jwilder/docker-gen**: Docker-gen image on docker hub.
|
||||||
* **jrcs/letsencrypt-nginx-proxy-companion**: Proxy companion docker image on docker hub.
|
- **jrcs/letsencrypt-nginx-proxy-companion**: Proxy companion docker image on docker hub.
|
||||||
* **gitea/gitea**: Gitea docker image on docker hub.
|
- **gitea/gitea**: Gitea docker image on docker hub.
|
||||||
* **postgres:14.5**: PostgreSQL docker image on docker hub.
|
- **postgres:14.5**: PostgreSQL docker image on docker hub.
|
||||||
|
|
||||||
### Containers
|
### Containers
|
||||||
|
|
||||||
* **nginx**: Reverse proxy provided by nginx.
|
- **nginx**: Reverse proxy provided by nginx.
|
||||||
* **nginx-gen**: Container generation for nginx using docker-gen and template `nginx.tmpl`.
|
- **nginx-gen**: Container generation for nginx using docker-gen and template `nginx.tmpl`.
|
||||||
* **nginx-proxy-companion**: Companion to nginx for creating, renewing, and using Let's Encrypt SSL certificates.
|
- **nginx-proxy-companion**: Companion to nginx for creating, renewing, and using Let's Encrypt SSL certificates.
|
||||||
* **gitea**: Gitea, a self-hosted git service written in Go.
|
- **gitea**: Gitea, a self-hosted git service written in Go.
|
||||||
* **db**: PostgreSQL, the database for the git server.
|
- **db**: PostgreSQL, the database for the git server.
|
||||||
|
|
||||||
### Volumes
|
### Volumes
|
||||||
|
|
||||||
Local
|
Local
|
||||||
* **/var/lib/gitea**: Persistent volume for Gitea data
|
- **/var/lib/gitea**: Persistent volume for Gitea data
|
||||||
|
|
||||||
Named
|
Named
|
||||||
* **conf**: Persistent volume for nginx configuration
|
- **conf**: Persistent volume for nginx configuration
|
||||||
* **vhost**: Persistent volume for nginx virtual host configuration
|
- **vhost**: Persistent volume for nginx virtual host configuration
|
||||||
* **html**: Persistent volume for nginx html data
|
- **html**: Persistent volume for nginx html data
|
||||||
* **certs**: Persistent volume for nginx certificate data
|
- **certs**: Persistent volume for nginx certificate data
|
||||||
* **postgres**: Persistent volume for PostgreSQL database
|
- **postgres**: Persistent volume for PostgreSQL database
|
||||||
|
|
||||||
### Advanced configuration
|
### Advanced configuration
|
||||||
|
|
||||||
To make additional configuration changes first shut down the containers with `docker-compose down`
|
To make additional configuration changes first shut down the containers with `docker-compose down`
|
||||||
|
|
||||||
* Edit `docker-compose.yml` to update the Docker service
|
- Edit `docker-compose.yml` to update the Docker service
|
||||||
* Edit `/var/lib/gitea/gitea/conf/app.ini` to update the Gitea configuration
|
- Edit `/var/lib/gitea/gitea/conf/app.ini` to update the Gitea configuration
|
||||||
* Edit `nginx.tmpl` to update the Nginx configuration
|
- Edit `nginx.tmpl` to update the Nginx configuration
|
||||||
|
|
||||||
Restart the containers with `docker-compose up -d`
|
Restart the containers with `docker-compose up -d`
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
* [Gitea Website](https://gitea.io)
|
- [Gitea Website](https://gitea.io)
|
||||||
* [Gitea Docker Installation](https://docs.gitea.io/en-us/install-with-docker)
|
- [Gitea Docker Installation](https://docs.gitea.io/en-us/install-with-docker)
|
||||||
* [Docker](https://docs.docker.com)
|
- [Docker](https://docs.docker.com)
|
||||||
* [Docker Compose](https://docs.docker.com/compose)
|
- [Docker Compose](https://docs.docker.com/compose)
|
||||||
* [Gitea Repo](https://github.com/go-gitea/gitea)
|
- [Gitea Repo](https://github.com/go-gitea/gitea)
|
||||||
* [Gitea Image](https://hub.docker.com/r/gitea/gitea)
|
- [Gitea Image](https://hub.docker.com/r/gitea/gitea)
|
||||||
* [Nginx Repo](https://github.com/nginx/nginx)
|
- [Nginx Repo](https://github.com/nginx/nginx)
|
||||||
* [Nginx Image](https://hub.docker.com/\_/nginx)
|
- [Nginx Image](https://hub.docker.com/\_/nginx)
|
||||||
* [docker-gen Repo](https://github.com/jwilder/docker-gen)
|
- [docker-gen Repo](https://github.com/jwilder/docker-gen)
|
||||||
* [docker-gen Image](https://hub.docker.com/r/jwilder/docker-gen)
|
- [docker-gen Image](https://hub.docker.com/r/jwilder/docker-gen)
|
||||||
* [docker-letsencrypt-nginx-proxy-companion Repo](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion)
|
- [docker-letsencrypt-nginx-proxy-companion Repo](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion)
|
||||||
* [letsencrypt-nginx-proxy-companion Image](https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-companion)
|
- [letsencrypt-nginx-proxy-companion Image](https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-companion)
|
||||||
* If you find any problems please fill out an [issue](https://github.com/jwobith/docker-gitea/issues/new). Thank you!
|
- If you find any problems please fill out an [issue](https://github.com/jwobith/docker-gitea/issues/new). Thank you!
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user