premisa
Operativo versión: gogs_0.12.1_windows_amd64
.
premisa
Para que Gogs se ejecute como un servicio de Windows, se deben cumplir las dos condiciones siguientes:
- Utilice
minwinsvc
la pestaña Construir para obtener el soporte de Windows integrado. - No utilice
minwinsvc
la pestaña Build y por NSSM registrado como servicio.
Antes de registrarse como servicio, debe asegurarse de otorgar al binario de Gogs los permisos de lectura y escritura en el directorio correspondiente, incluido el directorio raíz ( [repository] ROOT
) donde se almacena el almacén .
Modifique el C:\Gogs\custom\conf\app.ini
archivo de información correspondiente:
RUN_USER = COMPUTERNAME$
Configure el usuario en ejecución de Gogs como el usuario del sistema local a través de la configuración anterior. COMPUTERNAME
El valor del comando se echo %COMPUTERNAME%
puede obtener, si USER-PC
se usa el valor de retorno del comando RUN_USER = USER-PC$
:
[server]
DOMAIN = gogs
PROTOCOL = http
HTTP_ADDR = 127.0.1.1
HTTP_PORT = 80
OFFLINE_MODE = true
EXTERNAL_URL = http://gogs/
Mueve el puerto de escucha de Gogs a 80 en la subred de la interfaz local y le dice al HTTPd de Gogs que su host virtual es el dominio "gogs". Esto le permite renunciar a incluir un número de puerto al navegar y evita la colisión con otros servicios de host local. La dirección IP puede ser cualquier cosa en el rango 127.0.0.2 - 127.254.254.254
, siempre que sea exclusiva de Gogs.
Para completar esa ruta de red, abra Notepad.exe como administrador e incluya lo siguiente en C:\Windows\System32\drivers\etc\hosts
:
# Gogs local HTTPd
127.0.1.1 gogs
La entrada del archivo hosts garantizará que todas las solicitudes al dominio "gogs" sean capturadas por su interfaz localhost. En un navegador web, por lo general, gogs/
en la barra de direcciones es suficiente para activar esa ruta.
Método 1: usar funciones integradas
Abra un símbolo del sistema (símbolo del sistema) como administrador. Ejecute el siguiente comando
sc create gogs start= auto binPath= "\"C:\gogs\gogs.exe\" web --config \"C:\gogs\custom\conf\app.ini\""
Asegúrese de que haya =
un espacio después de cada uno . Puede optar por agregar otros parámetros para modificar aún más el servicio o modificarlo manualmente en la consola de administración de servicios.
Para iniciar el servicio, ejecute el siguiente comando
C:\> net start gogs
Debería ver el siguiente resultado
The gogs service is starting.
The gogs service was started successfully.
## Método 2: usar nssm
Obtener el archivo nssm.exe requiere su computadora (32 bits o 64 bits; están empaquetados en el archivo zip de Iain) y colocarlo en un directorio en la variable de entorno% PATH% (o se agregará). Abra la línea de comando como administrador y ejecute el siguiente comando para configurar Gogs como servicio
Abra la línea de comando como administrador y luego ejecute el siguiente comando para configurar Gogs como servicio:
C:\>nssm install gogs
Aparecerá "NSSM Service Installer". La configuración es la siguiente
Pestaña de aplicación:
- Camino:
C:\gogs\gogs.exe
- Directorio de inicio:
C:\gogs
- Argumentos:
web
Pestaña de detalles:
- Nombre para mostrar:
Gogs
- Descripción:
A painless self-hosted Git service.
- Tipo de inicio:
Automatic (Delayed Start)
Tenga en cuenta que hemos elegido el inicio diferido para que el servicio no afecte el tiempo de inicio temprano. Gogs comenzará dos minutos después de los servicios no retrasados.
Ficha E / S:
- Salida (stdout):
C:\gogs\log\gogs-nssm.txt
- Error (stderr):
C:\gogs\log\gogs-nssm.txt
Eso capturará toda la salida de texto que normalmente recibiría de Gogs en la consola de línea de comando y, en su lugar, lo registrará en ese archivo.
Pestaña de rotación de archivos:
- Cheque:
Rotate files
- Restringir la rotación a archivos mayores a:
1000000 bytes
Pestaña de entorno:
- Variables de entorno:
PATH=%PATH%;C:\gogs;C:\Program Files (x86)\Git\bin
Esa es una garantía de que ambos gogs.exe
y git.exe
estarán en la variable de ruta del servicio Gogs durante el tiempo de ejecución.
Haga clic en "Instalar servicio" y debe confirmar que se realizó correctamente.
Si falló, consulte la consola de línea de comandos que inició para ver el mensaje de error. Cuando tenga éxito, vaya a la línea de comandos y haga:
nssm start gogs
Debería ver:
gogs: START: The operation completed successfully.
Compruebe que esto sea cierto abriendo C:\gogs\log\gogs-nssm.txt
. Debería ver los procedimientos de inicio de Gogs, que terminan con:
timestamp [I] Run Mode: Production
timestamp [I] Listen: http://127.0.1.1:80
Ahora apunte su navegador web http://gogs/
e inicie sesión.
Gogs se ejecuta como un servicio y no será necesario ejecutarlo manualmente, a menos que algo salga mal. NSSM intentará reiniciar el servicio por usted, si el servidor de Gogs falla.
Cuando necesite reiniciarlo después de los app.ini
cambios, vaya a una línea de comando de administrador después de los cambios y haga:
nssm restart gogs
Consulte la hoja de trucos de configuración para obtener una referencia de la custom\conf\app.ini
configuración.
Un ejemplo del manejo de registros y errores en acción:
[log]
ROOT_PATH = C:\gogs\log
Al momento de escribir esta línea, hará que se imprima lo siguiente C:\gogs\log\gogs-nssm.txt
:
timestamp [T] Custom path: C:/gogs/custom
timestamp [T] Log path: C:\gogs\log
timestamp [I] Gogs x.y.z
timestamp [log.go:294 Error()] [E] Fail to set logger(file): invalid character 'g' in string escape code
Esto es lo que se esperaba en C:\custom\conf\app.ini
:
ROOT_PATH = C:/gogs/log
Y esta fue la nssm
interacción al resolverlo:
C:\>nssm restart gogs
gogs: STOP: The operation completed successfully.
gogs: Unexpected status SERVICE_PAUSED in response to START control.
C:\>nssm start gogs
gogs: START: An instance of the service is already running.
C:\>nssm stop gogs
gogs: STOP: The operation completed successfully.
C:\>nssm start gogs
gogs: Unexpected status SERVICE_PAUSED in response to START control.
C:\>nssm restart gogs
gogs: STOP: The operation completed successfully.
gogs: START: The operation completed successfully.