first commit
This commit is contained in:
commit
145ee4a365
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
**/.env
|
||||
**/*env
|
||||
**/data
|
||||
**/images
|
||||
**/extras
|
||||
@ -0,0 +1,29 @@
|
||||
# This file is auto-generated by openmediavault (https://www.openmediavault.org)
|
||||
# WARNING: Do not edit this file, your changes will get lost.
|
||||
|
||||
# Syncthing_Balaitus
|
||||
# Syncthing en g470 sobre omv7
|
||||
---
|
||||
services:
|
||||
syncthing:
|
||||
image: ${CONTAINER_IMAGE}
|
||||
container_name: ${CONTAINER_NAME}
|
||||
hostname: ${HOSTNAME} #optional
|
||||
environment:
|
||||
- PUID=${MY_UID}
|
||||
- PGID=${MY_GID}
|
||||
- TZ=Etc/UTC
|
||||
volumes:
|
||||
- ${COMPOSE_SYNCTHING_CONFIG_PATH}/config:/config
|
||||
- ${COMPOSE_DATA_PATH}/1_Projects:/1_Projects
|
||||
- ${COMPOSE_DATA_PATH}/2_Areas:/2_Areas
|
||||
- ${COMPOSE_DATA_PATH}/3_Resources:/3_Resources
|
||||
- ${COMPOSE_DATA_PATH}/4_Archives:/4_Archives
|
||||
- ${COMPOSE_SYNCTHING_MY_PKM}:/PKM
|
||||
ports:
|
||||
- 8384:8384
|
||||
- 22000:22000/tcp
|
||||
- 22000:22000/udp
|
||||
- 21027:21027/udp
|
||||
restart: unless-stopped
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
# This file is auto-generated by openmediavault (https://www.openmediavault.org)
|
||||
# WARNING: Do not edit this file, your changes will get lost.
|
||||
|
||||
# Syncthing_Balaitus
|
||||
# Syncthing en g470 sobre omv7
|
||||
|
||||
30
_omv7_compose-files/omv7-gitea/compose.override.yml
Normal file
30
_omv7_compose-files/omv7-gitea/compose.override.yml
Normal file
@ -0,0 +1,30 @@
|
||||
# This file is auto-generated by openmediavault (https://www.openmediavault.org)
|
||||
# WARNING: Do not edit this file, your changes will get lost.
|
||||
|
||||
# omv7-gitea
|
||||
# Gitea en OpenMediaVault v7 - AUN EN DESARROLLO (falta revisar los PATH)
|
||||
---
|
||||
services:
|
||||
my_service:
|
||||
environment:
|
||||
- USER_UID=${GITEA_UID}
|
||||
- USER_GID=${GITEA_GID}
|
||||
- GITEA__database__DB_TYPE=${RDBMS}
|
||||
- GITEA__database__HOST=my_db:${RDBMS_PORT}
|
||||
- GITEA__database__NAME=${DB_NAME}
|
||||
- GITEA__database__USER=${DB_USER}
|
||||
- GITEA__database__PASSWD=${DB_PASSWD}
|
||||
volumes:
|
||||
- ${GITEA_PATH_HOST}:${GITEA_PATH_CONTAINER}
|
||||
- ${PATH_VOL_HOST_SSH_KEY}/:${GITEA_SSH_PATH_CONTAINER}
|
||||
ports:
|
||||
- "${GITEA_SSH_EXPOSE}:${GITEA_SSH_CONTAINER}"
|
||||
- "${GITEA_IP_SSH_EXPOSE}:${GITEA_SSH_CONTAINER}"
|
||||
my_db:
|
||||
environment:
|
||||
- POSTGRES_USER=${DB_USER}
|
||||
- POSTGRES_PASSWORD=${DB_PASSWD}
|
||||
- POSTGRES_DB=${DB_NAME}
|
||||
volumes:
|
||||
- ${POSTGRES_VOL_PATH_HOST}:${POSTGRES_PATH_CONTAINER}
|
||||
|
||||
31
_omv7_compose-files/omv7-gitea/omv7-gitea.yml
Normal file
31
_omv7_compose-files/omv7-gitea/omv7-gitea.yml
Normal file
@ -0,0 +1,31 @@
|
||||
# This file is auto-generated by openmediavault (https://www.openmediavault.org)
|
||||
# WARNING: Do not edit this file, your changes will get lost.
|
||||
|
||||
# omv7-gitea
|
||||
# Gitea en OpenMediaVault v7 - AUN EN DESARROLLO (falta revisar los PATH)
|
||||
# docker-compose.yml
|
||||
|
||||
---
|
||||
networks:
|
||||
my_net:
|
||||
external: false
|
||||
services:
|
||||
my_service:
|
||||
image: ${GITEA_IMAGE}
|
||||
container_name: ${CONTAINER_NAME}
|
||||
restart: always
|
||||
networks:
|
||||
- my_net
|
||||
volumes:
|
||||
- ${TIMEZONE_FILE}:${TIMEZONE_FILE_CONTAINER}
|
||||
- ${LOCALTIME_FILE}:${LOCALTIME_FILE_CONTAINER}
|
||||
ports:
|
||||
- "${GITEA_HTTP_EXPOSE}:${GITEA_HTTP_CONTAINER}"
|
||||
depends_on:
|
||||
- my_db
|
||||
my_db:
|
||||
image: ${RDBMS_IMAGE}
|
||||
restart: always
|
||||
networks:
|
||||
- my_net
|
||||
|
||||
26
gitea/docker-compose.override.yml
Normal file
26
gitea/docker-compose.override.yml
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
services:
|
||||
my_service:
|
||||
environment:
|
||||
- USER_UID=${GITEA_UID}
|
||||
- USER_GID=${GITEA_GID}
|
||||
- GITEA__database__DB_TYPE=${RDBMS}
|
||||
- GITEA__database__HOST=my_db:${RDBMS_PORT}
|
||||
- GITEA__database__NAME=${DB_NAME}
|
||||
- GITEA__database__USER=${DB_USER}
|
||||
- GITEA__database__PASSWD=${DB_PASSWD}
|
||||
volumes:
|
||||
- ${GITEA_PATH_HOST}:${GITEA_PATH_CONTAINER}
|
||||
- ${GITEA_ACCOUNT_SSH}:${GITEA_SSH_PATH_CONTAINER}
|
||||
|
||||
ports:
|
||||
- "${GITEA_SSH_EXPOSE}:${GITEA_SSH_CONTAINER}"
|
||||
- "${GITEA_IP_SSH_EXPOSE}:${GITEA_SSH_CONTAINER}"
|
||||
|
||||
my_db:
|
||||
environment:
|
||||
- POSTGRES_USER=${DB_USER}
|
||||
- POSTGRES_PASSWORD=${DB_PASSWD}
|
||||
- POSTGRES_DB=${DB_NAME}
|
||||
volumes:
|
||||
- ${POSTGRES_VOL_PATH_HOST}:${POSTGRES_PATH_CONTAINER}
|
||||
26
gitea/docker-compose.yml
Normal file
26
gitea/docker-compose.yml
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
networks:
|
||||
my_net:
|
||||
external: false
|
||||
|
||||
services:
|
||||
my_service:
|
||||
image: ${GITEA_IMAGE}
|
||||
container_name: ${CONTAINER_NAME}
|
||||
restart: always
|
||||
networks:
|
||||
- my_net
|
||||
volumes:
|
||||
- ${TIMEZONE_FILE}:${TIMEZONE_FILE_CONTAINER}
|
||||
- ${LOCALTIME_FILE}:${LOCALTIME_FILE_CONTAINER}
|
||||
ports:
|
||||
- "${GITEA_HTTP_EXPOSE}:${GITEA_HTTP_CONTAINER}"
|
||||
depends_on:
|
||||
- my_db
|
||||
|
||||
my_db:
|
||||
image: ${RDBMS_IMAGE}
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
- my_net
|
||||
219
gitea/gitea.md
Normal file
219
gitea/gitea.md
Normal file
@ -0,0 +1,219 @@
|
||||
# Estructura inicial del proyecto
|
||||
|
||||
```bash
|
||||
gitea $ tree -a
|
||||
.
|
||||
├── docker-compose.override.yml
|
||||
├── docker-compose.yml
|
||||
└── .env
|
||||
```
|
||||
|
||||
_Nota autor:_ algunos de los datos quizas son ofuscados/ocultos en este reporte. Este documento es solo a modo de referencia para despliegue de esta aplicación docker aquí compartida.
|
||||
|
||||
## Definicion de los contenedores Docker
|
||||
|
||||
En este despliegue se utiliza junto a la definición del `docker-compose.yml`, el fichero `.env` y `docker-compose.override.yml` para que se permita el despliegue de la misma aplicación en diferentes entornos (ejemplo: entorno desarrollo, pruebas, producción, etc).
|
||||
|
||||
## Archivo .env
|
||||
|
||||
Variables de entorno referenciadas en los archivos YAML.
|
||||
Archivo: .env
|
||||
|
||||
```bash
|
||||
VAR=VALUE
|
||||
...
|
||||
```
|
||||
|
||||
## Archivo docker-compose.yml
|
||||
|
||||
Archivo principal para definir los servicios de tu aplicación.
|
||||
Archivo: docker-compose.yml
|
||||
|
||||
```yaml
|
||||
---
|
||||
## version: '3.9'
|
||||
|
||||
networks:
|
||||
my_net:
|
||||
external: false
|
||||
|
||||
services:
|
||||
my_service:
|
||||
image: ${GITEA_IMAGE}
|
||||
container_name: ${CONTAINER_NAME}
|
||||
restart: always
|
||||
networks:
|
||||
- my_net
|
||||
volumes:
|
||||
- ${TIMEZONE_FILE}:${TIMEZONE_FILE_CONTAINER}
|
||||
- ${LOCALTIME_FILE}:${LOCALTIME_FILE_CONTAINER}
|
||||
ports:
|
||||
- "${GITEA_HTTP_EXPOSE}:${GITEA_HTTP_CONTAINER}"
|
||||
depends_on:
|
||||
- my_db
|
||||
|
||||
my_db:
|
||||
image: ${RDBMS_IMAGE}
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
- my_net
|
||||
```
|
||||
|
||||
## Archivo docker-compose.override.yml
|
||||
|
||||
Útil para ajustar configuraciones según el entorno (desarrollo, prueba, producción).
|
||||
Archivo: docker-compose.override.yml
|
||||
|
||||
```yaml
|
||||
---
|
||||
## version: '3.9'
|
||||
services:
|
||||
my_service:
|
||||
environment:
|
||||
- USER_UID=${GITEA_UID}
|
||||
- USER_GID=${GITEA_GID}
|
||||
- GITEA__database__DB_TYPE=${RDBMS}
|
||||
- GITEA__database__HOST=my_db:${RDBMS_PORT}
|
||||
- GITEA__database__NAME=${DB_NAME}
|
||||
- GITEA__database__USER=${DB_USER}
|
||||
- GITEA__database__PASSWD=${DB_PASSWD}
|
||||
volumes:
|
||||
- ${GITEA_PATH_HOST}:${GITEA_PATH_CONTAINER}
|
||||
- .../.ssh/:${GITEA_SSH_PATH_CONTAINER}
|
||||
|
||||
ports:
|
||||
- "${GITEA_SSH_EXPOSE}:${GITEA_SSH_CONTAINER}"
|
||||
- "${GITEA_IP_SSH_EXPOSE}:${GITEA_SSH_CONTAINER}"
|
||||
|
||||
my_db:
|
||||
environment:
|
||||
- POSTGRES_USER=${DB_USER}
|
||||
- POSTGRES_PASSWORD=${DB_PASSWD}
|
||||
- POSTGRES_DB=${DB_NAME}
|
||||
volumes:
|
||||
- ${POSTGRES_VOL_PATH_HOST}:${POSTGRES_PATH_CONTAINER}
|
||||
```
|
||||
|
||||
# Ejecución y configuración
|
||||
|
||||
## Configuración autenticación ssh - Docker Shell (with authorized_keys)
|
||||
|
||||
_Referencia principal:_ [Installation with Docker](https://docs.gitea.com/installation/install-with-docker#docker-shell-with-authorized_keys) - Docker Shell (with authorized_keys).
|
||||
|
||||
### Configuración usario para el contenedor Gitea
|
||||
|
||||
En el host motor de Docker se realizan las siguientes tareas de configuración. Estas son:
|
||||
|
||||
```
|
||||
source .env
|
||||
export CONTAINER_NAME GITEA_ACCOUNT GITEA_UID GITEA_GID
|
||||
sudo groupadd -g ${GITEA_UID} ${GITEA_ACCOUNT}
|
||||
sudo useradd -u ${GITEA_UID} -g ${GITEA_GID} -G docker -d /home/${GITEA_ACCOUNT} ${GITEA_ACCOUNT}
|
||||
#sudo usermod -G docker -a ${GITEA_ACCOUNT}
|
||||
sudo -u ${GITEA_ACCOUNT} ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"
|
||||
|
||||
sudo -u ${GITEA_ACCOUNT} cat /home/${GITEA_ACCOUNT}/.ssh/id_rsa.pub | sudo -u ${GITEA_ACCOUNT} tee -a /home/${GITEA_ACCOUNT}/.ssh/authorized_keys
|
||||
sudo -u ${GITEA_ACCOUNT} chmod 600 /home/${GITEA_ACCOUNT}/.ssh/authorized_keys
|
||||
|
||||
cat <<EOF | sudo tee /home/${GITEA_ACCOUNT}/docker-shell
|
||||
#!/bin/sh
|
||||
/usr/bin/docker exec -i -u ${GITEA_ACCOUNT} --env SSH_ORIGINAL_COMMAND="\$SSH_ORIGINAL_COMMAND" ${CONTAINER_NAME} sh "\$@"
|
||||
EOF
|
||||
sudo chmod +x /home/${GITEA_ACCOUNT}/docker-shell
|
||||
sudo usermod -s /home/${GITEA_ACCOUNT}/docker-shell ${GITEA_ACCOUNT}
|
||||
|
||||
# id ${GITEA_ACCOUNT} # <-- el usuario git sobre el host anfitrion debe poder ejecutar docker para esta configuración funcione (es el usuario que redirecciona la conexión ssh al propio contenedor de Gitea).
|
||||
##$ id ${GITEA_ACCOUNT}
|
||||
## uid=...(git) gid=...(git) groups=...(git),...(docker)
|
||||
```
|
||||
|
||||
## Revisar/ajustar estructura
|
||||
|
||||
```bash
|
||||
mkdir -pv data/{gitea,postgres}
|
||||
```
|
||||
|
||||
### Estructura actual (sugerida)
|
||||
|
||||
```bash
|
||||
gitea]$ tree -a
|
||||
.
|
||||
├── data # Carpeta para los volúmenes persistentes
|
||||
│ ├── gitea
|
||||
│ └── postgres
|
||||
├── docker-compose.override.yml
|
||||
├── docker-compose.yml
|
||||
├── .env
|
||||
└── gitea.md
|
||||
```
|
||||
|
||||
## Iniciar los contenedores
|
||||
|
||||
```
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Instalar Gitea
|
||||
|
||||
Acceder a: `http://localhost:<$GITEA_HTTP_PORT_EXTERNAL>` e instalar Gitea
|
||||
|
||||

|
||||
|
||||
|
||||
## Registrar usuario y copiar credenciales
|
||||
|
||||
En esta sección se registra un usuario y se copia su clave pública.
|
||||
|
||||
### Registrar usuario
|
||||
|
||||

|
||||
|
||||
### Usuario logado - setting
|
||||
|
||||

|
||||
|
||||
#### Setting - copiar clave pública
|
||||
|
||||

|
||||
|
||||
|
||||
### Utilización de Gitea
|
||||
|
||||
En las siguientes capturas se muestran ejemplo como copiar/clonar dos repositorios que el usuario `userdevel1`. Uno mediante el URL sobre `http` y el otro mediante `ssh`.
|
||||
|
||||
- `git clone http://almalinux9-docker:3000/usrdevel1/repositorio1.git`
|
||||
|
||||

|
||||
|
||||
- `git clone git@almalinux9-docker:usrdevel1/repo-2.git`
|
||||
|
||||

|
||||
|
||||
## Otros comandos
|
||||
|
||||
- Ver los logs
|
||||
|
||||
```bash
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
## Resumen: explicación de la configuración
|
||||
|
||||
- .env
|
||||
|
||||
- Centraliza las credenciales y configuraciones sensibles.
|
||||
|
||||
- `docker-compose.yml`
|
||||
|
||||
- Define los servicios principales, como Postgres y Gitea (Nginx), con configuraciones básicas, en contenedores separados.
|
||||
|
||||
- `docker-compose.override.yml`
|
||||
|
||||
- Extiende o reemplaza configuraciones para propósitos específicos, como desarrollo o debug.
|
||||
|
||||
- Volúmenes
|
||||
|
||||
- La base de datos de Postgres en ubica en `...data/postgres`.
|
||||
- El servicio o aplicación Gitea se persiste en `...data/gitea`.
|
||||
- También se utilizan otros volumenes, como el de las credenciales.
|
||||
Loading…
Reference in New Issue
Block a user