
This guides explains how you can run Gogs git server as a service on your Mac using launchd . Command line tools
First you need to install Xcode from the Mac App Store . Once installed, you also need the Command Line Tools , you can initiate the download process by executing $ xcode-select --install in the Terminal.
The command line tools include Git.
mysql or PostgreSQL serverYou also need a database server for Gogs. You can install MySQL using MacPorts. A good tutorial can be found here .
You can alternatively run MariaDB instead of MySQL. My blogposts about MAMP (using MacPorts) includes a section about MariaDB.
Installing and configuring GogsI could try to write a good tutorial here, but the developers of Gogs already made a very nice tutorial about how you can install and configure Gogs. Read it here .
Launchd configCreate a launchd config file ~/Library/LaunchAgents/io.gogs.web.plist
<?xml version=”1.0" encoding=”UTF-8"?><!DOCTYPE plist PUBLIC “-//Apple Computer//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version=”1.0">
<dict>
<key>Label</key>
<string>io.gogs.web</string>
<key>EnvironmentVariables</key>
<dict>
<key>HOME</key>
<string>/Users/mathias</string>
</dict>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>cd /Users/mathias/Sites/gogs; ./gogs web</string>
</array>
<key>UserName</key>
<string>mathias</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>WorkingDirectory</key>
<string>/Users/mathias</string>
<key>StandardOutPath</key>
<string>/Users/mathias/Sites/gogs/launchd.log</string>
<key>StandardErrorPath</key>
<string>/Users/mathias/Sites/gogs/launchd_error.log</string>
</dict>
</plist>
You can now start and stop Gogs using the following commands:
$ launchctl load ~/Library/LaunchAgents/io.gogs.web.plist$ launchctl unload ~/Library/LaunchAgents/io.gogs.web.plist HTTPS proxy
I then run Caddy in front of Gogs to use Caddy’s built-in automated HTTPS support. My git subdomain is then a reverse proxy to Gogs:
git.my-domain.com {proxy / http://localhost:3000
}
More info about running Caddy as a service can be found in this blogpost: Running Caddy as a service on macOS X server .