diff --git a/gitea-rc4/docker-compose.override.yml b/gitea-rc4/docker-compose.override.yml new file mode 100644 index 0000000..a539b9e --- /dev/null +++ b/gitea-rc4/docker-compose.override.yml @@ -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_VOL_HOST}:${GITEA_VOL_CONTAINER} + - ${GIT_SSH_VOL_HOST}:${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} diff --git a/gitea-rc4/docker-compose.yml b/gitea-rc4/docker-compose.yml new file mode 100644 index 0000000..7f25b83 --- /dev/null +++ b/gitea-rc4/docker-compose.yml @@ -0,0 +1,28 @@ +--- +## 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 diff --git a/gitea-rc4/gitea-rc4.md b/gitea-rc4/gitea-rc4.md new file mode 100644 index 0000000..d864779 --- /dev/null +++ b/gitea-rc4/gitea-rc4.md @@ -0,0 +1,132 @@ +# Estructura inicial del proyecto + +```bash +gitea-rc4 $ tree -a +. +├── docker-compose.override.yml +├── docker-compose.yml +└── .env +``` + +_Nota autor:_ algunos datos en este documento pueden estar ofuscados. + +## Configuración y ejecución de los contenedores Docker + +### 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 de la aplicación y usario de 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 <` e instalar Gitea + +![Gitea - instalación](images/gitea-install.png) + +## Registrar usuario y copiar credenciales + +En esta sección se registra un usuario y se copia su clave pública. + +### Registrar usuario + +![Gitea - registrar usuario](images/gitea-register-account.png) + +### Usuario logado - setting + +![Account user - settings](images/gitea-account-settings.png) + +#### Setting - copiar clave pública + +![Account user - add key](images/gitea-add-key.png) + +### 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 http](images/git-gitea-clone-w-http.png) + +- `git clone git@almalinux9-docker:usrdevel1/repo-2.git` + +![git clone ssh](images/git-gitea-clone-w-ssh.png) + +## 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. diff --git a/gitea-rc4/images/git-gitea-clone-w-http.png b/gitea-rc4/images/git-gitea-clone-w-http.png new file mode 100644 index 0000000..848dfc2 Binary files /dev/null and b/gitea-rc4/images/git-gitea-clone-w-http.png differ diff --git a/gitea-rc4/images/git-gitea-clone-w-ssh.png b/gitea-rc4/images/git-gitea-clone-w-ssh.png new file mode 100644 index 0000000..b1430b0 Binary files /dev/null and b/gitea-rc4/images/git-gitea-clone-w-ssh.png differ diff --git a/gitea-rc4/images/gitea-account-settings.png b/gitea-rc4/images/gitea-account-settings.png new file mode 100644 index 0000000..e84bea2 Binary files /dev/null and b/gitea-rc4/images/gitea-account-settings.png differ diff --git a/gitea-rc4/images/gitea-add-key.png b/gitea-rc4/images/gitea-add-key.png new file mode 100644 index 0000000..f90b8cf Binary files /dev/null and b/gitea-rc4/images/gitea-add-key.png differ diff --git a/gitea-rc4/images/gitea-install.png b/gitea-rc4/images/gitea-install.png new file mode 100644 index 0000000..518a6e1 Binary files /dev/null and b/gitea-rc4/images/gitea-install.png differ diff --git a/gitea-rc4/images/gitea-register-account.png b/gitea-rc4/images/gitea-register-account.png new file mode 100644 index 0000000..9414ce9 Binary files /dev/null and b/gitea-rc4/images/gitea-register-account.png differ